mediasettings/mediasettingsapp/src/MPSettingsSliderSettingItem.cpp
changeset 0 96612d01cf9f
child 1 6711b85517b7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mediasettings/mediasettingsapp/src/MPSettingsSliderSettingItem.cpp	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,152 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   CAknSettingItemList compliant setting item class for slider settings.*
+*/
+
+
+// Version : %version: 4 %
+
+
+
+
+// INCLUDE FILES
+#include    <aknslider.h>
+#include    <StringLoader.h>
+#include    <aknslidersettingpage.h>
+#include    <MediaSettings.rsg>
+#include    <barsread.h>
+
+#include    "MPSettingsSliderSettingItem.h"
+#include	"mpxlog.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CMPSettingsSliderSettingItem::CMPSettingsSliderSettingItem
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CMPSettingsSliderSettingItem::CMPSettingsSliderSettingItem(TInt aIdentifier,
+    TInt& aExternalSliderValue, TInt aResource, TBool aBareFigure) :
+        CAknSliderSettingItem(aIdentifier, aExternalSliderValue),
+        iResource(aResource),
+        iBareFigure(aBareFigure)
+    {
+    MPX_FUNC("#MS# CMPSettingsSliderSettingItem::CMPSettingsSliderSettingItem()");
+    }
+
+// -----------------------------------------------------------------------------
+// CMPSettingsSliderSettingItem::~CMPSettingsSliderSettingItem
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CMPSettingsSliderSettingItem::~CMPSettingsSliderSettingItem()
+    {
+    MPX_FUNC("#MS# CMPSettingsSliderSettingItem::~CMPSettingsSliderSettingItem()");
+	if (iSettingText) 
+		{
+		delete iSettingText;
+		}
+    }
+
+// -----------------------------------------------------------------------------
+// CMPSettingsSliderSettingItem::SettingTextL
+// -----------------------------------------------------------------------------
+//
+const TDesC& CMPSettingsSliderSettingItem::SettingTextL()
+    {
+    delete iSettingText;
+    iSettingText = NULL;
+
+    if (iBareFigure)
+        {
+        iSettingText = CAknSlider::CreateValueTextInHBufCL(InternalSliderValue(),
+                                                           iResource);
+        }
+    else 
+        {
+        iSettingText = StringLoader::LoadL(iResource, InternalSliderValue());
+        }
+
+	TPtr text = iSettingText->Des();
+   	AknTextUtils::LanguageSpecificNumberConversion(text);
+	MPX_DEBUG2(_L("#MS# CMPSettingsSliderSettingItem::SettingTextL(%S)"),&text);
+    return *iSettingText;
+    }
+
+// -----------------------------------------------------------------------------
+// CMPSettingsSliderSettingItem::CreateSettingPageL
+// -----------------------------------------------------------------------------
+//
+CAknSettingPage* CMPSettingsSliderSettingItem::CreateSettingPageL()
+    {
+    MPX_FUNC("#MS# CMPSettingsSliderSettingItem::CreateSettingPageL()");
+    CAknSliderSettingPage* settingPage = 
+        static_cast<CAknSliderSettingPage*>(CAknSliderSettingItem::CreateSettingPageL());
+    CleanupStack::PushL(settingPage);
+
+    if (iBareFigure && AknTextUtils::DigitModeQuery())
+        {
+        settingPage->ConstructL();
+        CAknSlider* slider = settingPage->SliderControl();
+        
+        // Read unnecessary SLIDER resource struct members
+        TResourceReader reader;
+        CCoeEnv::Static()->CreateResourceReaderLC(reader, iResource);
+
+        for (TInt ii = 0; ii < 6; ++ii)
+            {
+            reader.ReadInt16(); // layout, minvalue, maxvalue, step, valuetype, decimalplaces
+            }
+        
+        HBufC* buf = reader.ReadHBufCL(); // singular_valuelabel
+        delete buf;
+        buf = NULL;
+        
+        // Read minlabel from resource file
+        buf = reader.ReadHBufCL(); // minlabel
+        CleanupStack::PushL(buf);
+        TPtr ptr = buf->Des();
+        AknTextUtils::DisplayTextLanguageSpecificNumberConversion(ptr);
+        MPX_DEBUG2(_L("#MS# CMPSettingsSliderSettingItem::CreateSettingPageL() min(%S)"),&ptr);
+        slider->SetMinimumTextL(*buf);
+        CleanupStack::PopAndDestroy(); // buf
+        buf = NULL;
+        
+        // Read maxlabel from resource file
+        buf = reader.ReadHBufCL(); // maxlabel
+        CleanupStack::PushL(buf);
+        ptr.Set(buf->Des());
+        AknTextUtils::DisplayTextLanguageSpecificNumberConversion(ptr);
+        MPX_DEBUG2(_L("#MS# CMPSettingsSliderSettingItem::CreateSettingPageL() max(%S)"),&ptr);
+        slider->SetMaximumTextL(*buf);
+        CleanupStack::PopAndDestroy(2); // buf & reader
+        }
+
+    CleanupStack::Pop(); // settingPage
+    return settingPage;
+    }
+
+// -----------------------------------------------------------------------------
+// CMPSettingsSliderSettingItem::CreateBitmapL
+// -----------------------------------------------------------------------------
+//
+CFbsBitmap* CMPSettingsSliderSettingItem::CreateBitmapL()
+    {
+    MPX_FUNC("#MS# CMPSettingsSliderSettingItem::CreateBitmapL()");
+    return NULL;
+    }
+
+//  End of File