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

📄 settingexamplesettinglist.cpp

📁 基于 symbian OS的屏幕设置经典程序,很不错,欢迎下载学习
💻 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 + -