📄 mysettinglist.cpp
字号:
/*
* ============================================================================
* Name : CMySettingList from CMySettingList.h
* Part of : SettingList
* Created : 16.03.2006 by ToBeReplacedByAuthor
* Implementation notes:
* Initial content was generated by Series 60 Application Wizard.
* Version :
* Copyright: ToBeReplacedByCopyright
* ============================================================================
*/
// INCLUDE FILES
#include "SettingList.hrh"
#include "MySettingList.h"
// ================= MEMBER FUNCTIONS =======================
// ---------------------------------------------------------
// CSettingListContainer::ConstructL(const TRect& aRect)
// EPOC two phased constructor
// ---------------------------------------------------------
//
CMySettingList::CMySettingList(CMySettings& aSettings, MObserver& aObserver)
: iSettings(aSettings), iObserver(aObserver)
{
}
// Destructor
CMySettingList::~CMySettingList()
{
}
// New functions
void CMySettingList::EditL()
{
EditItemL(ListBox()->CurrentItemIndex(), ETrue);
}
//from CAknSettingItemList
CAknSettingItem* CMySettingList::CreateSettingItemL(TInt aSettingId)
{
/*
NOTE: the viable pass its reference into CAknSettingItem as its external data
the CAknSettingItem will maintain internal data, whose init value is external data
after calling StoreL(), the external data will be replaced by internal data
*/
CAknSettingItem* item = NULL;
switch (aSettingId)
{
case ESettingListItemBinary:
{
item = new(ELeave) CAknBinaryPopupSettingItem(aSettingId, iSettings.iBinary);
break;
}
case ESettingListItemEnum:
{
item = new(ELeave) CAknEnumeratedTextPopupSettingItem(aSettingId, iSettings.iEnum);
break;
}
case ESettingListItemInteger:
{
item = new(ELeave) CAknIntegerEdwinSettingItem(aSettingId, iSettings.iInteger);
break;
}
case ESettingListItemText:
{
item = new(ELeave) CAknTextSettingItem(aSettingId, iSettings.iText);
break;
}
case ESettingListItemAlphaPsw:
{
item = new(ELeave) CAknPasswordSettingItem(aSettingId, CAknPasswordSettingItem::EAlpha, iSettings.iAlphaPsw);
break;
}
case ESettingListItemNumPsw:
{
item = new(ELeave) CAknPasswordSettingItem(aSettingId, CAknPasswordSettingItem::ENumeric, iSettings.iNumPsw);
break;
}
case ESettingListItemDate:
{
item = new(ELeave) CAknTimeOrDateSettingItem(aSettingId, CAknTimeOrDateSettingItem::EDate, iSettings.iDate);
break;
}
case ESettingListItemTime:
{
item = new(ELeave) CAknTimeOrDateSettingItem(aSettingId, CAknTimeOrDateSettingItem::ETime, iSettings.iTime);
break;
}
case ESettingListItemSlider:
{
item = new(ELeave) CAknSliderSettingItem(aSettingId, iSettings.iSlider);
break;
}
case ESettingListItemVolume:
{
item = new(ELeave) CAknVolumeSettingItem(aSettingId, iSettings.iVolume);
break;
}
case ESettingListItemAddr:
{
item = new(ELeave) CAknIpFieldSettingItem(aSettingId, iSettings.iAddr);
break;
}
default:
{
User::Leave(KErrNotFound);
break;
}
}
return item;
}
void CMySettingList::EditItemL(TInt aIndex, TBool aCalledFromMenu)
{
// Popup the setting page
CAknSettingItemList::EditItemL(aIndex, aCalledFromMenu);
// Get data from the setting page and store it
CAknSettingItemArray* itemArray = SettingItemArray();
CAknSettingItem& item= *(itemArray->operator[](aIndex));
item.StoreL();
// Notify observer a setting is changed
iObserver.OnChangedL();
}
//End Of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -