diff -r 000000000000 -r 96612d01cf9f mediasettings/mediasettingsapp/src/MPSettingsSliderSettingItem.cpp --- /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 +#include +#include +#include +#include + +#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(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