⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysettinglist.cpp

📁 基于Symbian OS的手机开发与应用实践第11章代码。主要讲编辑框的使用。
💻 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 + -