📄 settingexamplesettinglist.cpp
字号:
/*
* ============================================================================
* Name : CExampleSettingList and SettingExampleSettingList
* from examplesettinglist.cpp
* Part of : SettingExample
* Created : 29/05/2006 by Forum Nokia
* Version : 2.0
* Copyright: Forum Nokia
* ============================================================================
*/
#include <barsread.h>
#include <SettingExample.rsg>
#include "SettingExample.hrh"
#include "SettingExampleSettingList.h"
#include "SettingExampleSettingsData.h"
CExampleSettingList *CExampleSettingList::NewL(CSettingsData &aData)
{
CExampleSettingList* self = CExampleSettingList::NewLC(aData);
CleanupStack::Pop(self);
return self;
}
CExampleSettingList *CExampleSettingList::NewLC(CSettingsData &aData)
{
CExampleSettingList* self = new (ELeave) CExampleSettingList(aData);
CleanupStack::PushL(self);
return self;
}
CExampleSettingList::CExampleSettingList(CSettingsData &aData) :
CAknSettingItemList(),
iSettingsData(aData)
{
}
CExampleSettingList::~CExampleSettingList()
{
// no specific destruction code required - no owned data
}
void CExampleSettingList::SizeChanged()
{
// if size changes, make sure component takes whole available space
CEikFormattedCellListBox *listbox = ListBox();
if (listbox)
{
listbox->SetRect(Rect());
}
}
void CExampleSettingList::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
{
if(aEventType == EEventEnterKeyPressed)
{
EditCurrentItemL();
}
}
void CExampleSettingList::EditCurrentItemL()
{
// invoke EditItemL on the current item
EditItemL(ListBox()->CurrentItemIndex(), // the item index
ETrue); // invoked from menu
//Updating CAknPasswordSettingItem.
if(ListBox()->CurrentItemIndex()==5)
{
(*(SettingItemArray()))[ListBox()->CurrentItemIndex()]->UpdateListBoxTextL();
}
StoreSettingsL();
}
CAknSettingItem * CExampleSettingList::CreateSettingItemL (TInt aIdentifier)
{
// method is used to create specific setting item as required at run-time.
// aIdentifier is used to determine what kind of setting item should be
// created
CAknSettingItem* settingItem = NULL;
switch (aIdentifier)
{
case ESettingText:
settingItem = new (ELeave) CAknTextSettingItem (
aIdentifier,
iSettingsData.Text());
break;
case ESettingRadioBtn:
settingItem = new (ELeave) CAknEnumeratedTextPopupSettingItem (
aIdentifier,
iSettingsData.iEnumeration);
break;
case ESettingCheckbox:
settingItem = new (ELeave) CSettingAppCheckBoxSettingItem (
aIdentifier,
(iSettingsData.CheckboxArray()));
break;
case ESettingVolume:
settingItem = new (ELeave) CAknVolumeSettingItem (
aIdentifier,
iSettingsData.Volume());
break;
case ESettingSlider:
settingItem = new (ELeave) CAknSliderSettingItem (
aIdentifier,
iSettingsData.Slider());
break;
case ESettingBinary:
settingItem = new (ELeave) CAknBinaryPopupSettingItem (
aIdentifier,
iSettingsData.Binary());
break;
case ESettingSecret:
settingItem = new (ELeave) CAknPasswordSettingItem (
aIdentifier,
CAknPasswordSettingItem::EAlpha,
iSettingsData.SecretText());
break;
case ESettingNumeric:
settingItem = new (ELeave) CAknTextSettingItem (
aIdentifier,
iSettingsData.NumericText());
break;
case ESettingDate:
settingItem = new (ELeave) CAknTimeOrDateSettingItem (
aIdentifier,
CAknTimeOrDateSettingItem::EDate,
iSettingsData.Date());
break;
case ESettingTime:
settingItem = new (ELeave) CAknTimeOrDateSettingItem (
aIdentifier,
CAknTimeOrDateSettingItem::ETime,
iSettingsData.Time());
break;
case ESettingIp:
settingItem = new (ELeave) CAknIpFieldSettingItem (
aIdentifier,
iSettingsData.IpAddress());
break;
default:
break;
}
return settingItem;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -