亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dynamiclistcontainer.cpp

?? 一個學習Symbian很好的例子
?? CPP
字號:
/**
* 
* @brief Definition of CDynamicListContainer
*
* Copyright (c) EMCC Software Ltd 2003
* @version 1.0
*/

// INCLUDE FILES

// Class include
#include "DynamicListContainer.h"

// System includes
#include <akniconarray.h> // CAknIcon
#include <aknlists.h> // CAknSingleStyleListBox
#include <barsread.h> // TResource Reader
#include <e32def.h> // STATIC_CAST
#include <eikclbd.h> // CColumnListBoxData
#include <eikmenub.h> // CEikMenuBar
#include <DynamicList.mbg> // icons
#include <DynamicList.rsg> // R_DYNAMICLIST_SAVED_GAMES_LISTBOX
#include <stringloader.h> // StringLoader
#include <uikon.hrh> // TKeyCode #defines

// CONSTANTS
const TInt KNumberOfIcons(2);

// N.B. #define'd as DLL cannot contain writeable static data
#define KListPosition TPoint(0,0) 



// ================= MEMBER FUNCTIONS =======================

/**
* Symbian OS 2nd phase constructor.  Creates a Window for the controls, which it contains.
* Constructs a label and adds it to the window, which it then activates.
* @param aRect The rectangle for this window
*/		
void CDynamicListContainer::ConstructL(const TRect& aRect)
	{
	CreateWindowL();
	
	// Create the list
	CreateListL();	

	// Observe the list
	iSavedGamesListBox->SetListBoxObserver(this);

	// Set the icons in the list's drawer
	SetupListIconsL();

	// Set up scroll bars
	SetupScrollBarsL();
	
	// Set the list items
	SetupListItemsL();
	
	SetRect(aRect);
	ActivateL();
	}

/**
* Constructs the iSavedGamesList, setting its window.
*
*/
void CDynamicListContainer::CreateListL()
	{
	// First phase construction
	iSavedGamesListBox = new (ELeave) CAknSingleGraphicStyleListBox;
	iSavedGamesListBox->SetContainerWindowL(*this);
	
	// Second Phase Construction
	TResourceReader reader;
	CEikonEnv::Static()->CreateResourceReaderLC(reader, R_DYNAMICLIST_SAVED_GAMES_LISTBOX);
	iSavedGamesListBox->ConstructFromResourceL(reader);
	CleanupStack::PopAndDestroy(); // reader
	}

/**
* Creates vertical scrollbars for the list, which appear automatically when required.
*
*/
void CDynamicListContainer::SetupScrollBarsL()
	{
	iSavedGamesListBox->CreateScrollBarFrameL();
	iSavedGamesListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
		CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
	}

/**
* Loads icons from a file and sets them in the drawer for iSavedGamesList
*
*/
void CDynamicListContainer::SetupListIconsL()
	{
	// Get the name of the file containing the icons	
	HBufC* iconFileName;
	iconFileName = StringLoader::LoadLC(R_ICON_FILE_NAME);	// Pushes iconFileName onto the Cleanup Stack.

	// Create an array of icons, reading them from the file
	CArrayPtr<CGulIcon>* icons = new(ELeave) CAknIconArray(KNumberOfIcons);
	CleanupStack::PushL(icons);
	icons->AppendL(iEikonEnv->CreateIconL(*iconFileName, EMbmDynamiclist1player, EMbmDynamiclist1player_mask));
	icons->AppendL(iEikonEnv->CreateIconL(*iconFileName, EMbmDynamiclist2player, EMbmDynamiclist2player_mask));
	CleanupStack::Pop(icons);
	CleanupStack::PopAndDestroy(iconFileName);

	iSavedGamesListBox->ItemDrawer()->ColumnData()->SetIconArray(icons); // passing ownership of icons

	}



/**
* Symbian OS 2 phase constructor.
* Constructs the CDynamicListContainer using the NewLC method, popping
* the constructed object from the CleanupStack before returning it.
* 
* @param aRect The rectangle for this window
* @return The newly constructed CDynamicListContainer
*/
CDynamicListContainer* CDynamicListContainer::NewL(const TRect& aRect)
	{
	CDynamicListContainer* self = CDynamicListContainer::NewLC(aRect);
	CleanupStack::Pop(self);
	return self;
	}

/**
* Symbian OS 2 phase constructor.
* Constructs the CDynamicListContainer using the constructor and ConstructL 
* method, leaving the constructed object on the CleanupStack before returning it.
* 
* @param aRect The rectangle for this window
* @return The newly constructed CDynamicListContainer
*/
CDynamicListContainer* CDynamicListContainer::NewLC(const TRect& aRect)
	{
	CDynamicListContainer* self = new (ELeave) CDynamicListContainer;
	CleanupStack::PushL(self);
	self->ConstructL(aRect);
	return self;
	}

/** 
* Destructor.  Frees up memory for the iLabel.
*/
CDynamicListContainer::~CDynamicListContainer()
	{
	delete iSavedGamesListBox;
	}

/**
*	
* Called by framework when the view size is changed.  Resizes the
* iLabel accordingly.
*
*/
void CDynamicListContainer::SizeChanged()
	{
	iSavedGamesListBox->SetExtent (KListPosition, iSavedGamesListBox->MinimumSize());
	}

/**
* Called by the framework in compound controls	
* @return The number of controls in this CDynamicListContainer
*/
TInt CDynamicListContainer::CountComponentControls() const
	{
	return 1; // return number of controls inside this container
	}

/**
* Called by the framework in compound controls	
* @param The index of the control to return
* @return The control for aIndex
*/
CCoeControl* CDynamicListContainer::ComponentControl(TInt aIndex) const
	{
	switch (aIndex)
		{
		case 0:
			return iSavedGamesListBox;
		default:
			return NULL;
		}
	}

/**
* Called by the framework to draw this control.  Clears the area in 
* aRect.
* @param aRect in which to draw
*/
void CDynamicListContainer::Draw(const TRect& aRect) const
	{
	CWindowGc& gc = SystemGc();
	gc.Clear(aRect);
	}

/**
* Called by the framework whenever a key event occurs.	
* Passes the key event to the saved games list if it is not null, otherwise returns
* EKeyWasNotConsumed
* @param aKeyEvent the Key event which occured, e.g. select key pressed
* @param aType the type of Key event which occurred, e.g. key up, key down
* @return TKeyResponse EKeyWasNotConsumed if the key was not processed, EKeyWasConsumed if it was
*/
TKeyResponse CDynamicListContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
	{
	if (iSavedGamesListBox)
		return iSavedGamesListBox->OfferKeyEventL (aKeyEvent, aType);
	else
		return EKeyWasNotConsumed;
	}

/**
* Plays the currently select game in the iSavedGamesListBox, if one exists.  
* This is an empty implementation of this method
*/
void CDynamicListContainer::PlaySelectedGame()
	{
	}

/**
* Called by the framework whenever a list event occurs for which this container
* is an observer.
* @param aListBoxEvent The type of event which occured
*
*/
void CDynamicListContainer::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aListBoxEvent)
	{
	
	// if the Select Key has been pressed
	if ((aListBoxEvent == MEikListBoxObserver::EEventEnterKeyPressed) ||
		(aListBoxEvent == MEikListBoxObserver::EEventItemClicked))
		{
			PlaySelectedGame();
		}
	}

/**
* Populates the list model's item array with a list of saved games
*/
void CDynamicListContainer::SetupListItemsL()
	{
	CTextListBoxModel* model = iSavedGamesListBox->Model();  // not taking ownership
	model->SetOwnershipType (ELbmOwnsItemArray);
	CDesCArray* savedGamesArray = STATIC_CAST(CDesCArray*, model->ItemTextArray());
	LoadSavedGamesL(*savedGamesArray);
	}



/**
* Loads the list of saved games into aSavedGamesArray.  
* This method merely creates some list items dynamically, and adds them
* to the array.  In a real-world example, it is likely that the 
* items would be read from a file  
* @param aSavedGamesArray The array where the saved game items will be stored
*/
void CDynamicListContainer::LoadSavedGamesL(CDesCArray& aSavedGamesArray)
	{
	// Strings will be of the format "0\tSaved Game i", where i is a number from 1 to 10
	_LIT (KStringHeader, "0\tSaved Game %d");
	TBuf <16> aString;
	for (TInt i = 1; i< 11; i++)
		{
		aString.Format(KStringHeader(), i);
		aSavedGamesArray.AppendL (aString);
		}
	}

/**
* Deletes the currently selected game
*/
void CDynamicListContainer::DeleteSelectedL()
	{
	if (iSavedGamesListBox)
		{
		CTextListBoxModel* model = iSavedGamesListBox->Model();
		
		if (model->NumberOfItems() > 0)
			{
			CDesCArray* itemArray = STATIC_CAST(CDesCArray*, model->ItemTextArray());
			
			TInt currentItem = iSavedGamesListBox->CurrentItemIndex();
			itemArray->Delete(currentItem);
			
			AknListBoxUtils::HandleItemRemovalAndPositionHighlightL(
				iSavedGamesListBox, 
				currentItem, 
				ETrue);
						
			}
		}
	
	}



// End of File	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情图片小说一区| 国产精品久久久一区麻豆最新章节| 亚洲三级在线看| 色综合天天在线| 一区二区三区小说| 欧美日韩在线播放三区| 久久国产免费看| 久久人人超碰精品| 91免费看`日韩一区二区| 一区二区三区在线视频免费| 欧美巨大另类极品videosbest| 另类小说综合欧美亚洲| 国产午夜一区二区三区| 91美女蜜桃在线| 婷婷丁香激情综合| 精品精品国产高清a毛片牛牛| 国产999精品久久| 亚洲精品欧美综合四区| 欧美一级日韩不卡播放免费| 国产剧情一区二区| 亚洲综合清纯丝袜自拍| 日韩精品最新网址| gogogo免费视频观看亚洲一| 一区二区日韩电影| 欧美成人a∨高清免费观看| 91在线一区二区三区| 亚洲国产一区二区三区| 久久久综合精品| 91久久线看在观草草青青| 麻豆91免费看| 国产精品不卡视频| 日韩精品一区二区三区视频| 91色porny在线视频| 美国十次综合导航| 亚洲精品乱码久久久久| 欧美精品一区二区三区四区| 91传媒视频在线播放| 精品亚洲国产成人av制服丝袜| 亚洲欧洲精品天堂一级 | 99久久伊人久久99| 日韩1区2区3区| 一区二区中文字幕在线| 日韩三级视频中文字幕| 欧美午夜影院一区| jizzjizzjizz欧美| 国产在线国偷精品产拍免费yy| 亚洲黄色av一区| 国产精品无码永久免费888| 666欧美在线视频| 91美女片黄在线| 成人一区二区三区在线观看| 日本vs亚洲vs韩国一区三区 | 欧美成人女星排名| 色菇凉天天综合网| 成人黄色电影在线| 韩国v欧美v日本v亚洲v| 奇米亚洲午夜久久精品| 亚洲成人7777| 亚洲自拍与偷拍| 亚洲天堂成人在线观看| 中文字幕精品综合| www国产成人免费观看视频 深夜成人网| 欧洲一区在线电影| 91麻豆免费在线观看| 99视频有精品| 成人动漫在线一区| 成人av网在线| 成人sese在线| 不卡的电影网站| 国产宾馆实践打屁股91| 国产成人午夜精品影院观看视频 | 久久综合五月天婷婷伊人| 91麻豆精品91久久久久久清纯 | 亚洲色图视频免费播放| 中文字幕亚洲在| 国产精品污www在线观看| 国产欧美一区二区在线| 久久婷婷国产综合国色天香| 亚洲精品在线一区二区| 精品国产乱码久久久久久图片| 日韩女优视频免费观看| 精品久久五月天| 久久精品日韩一区二区三区| 国产农村妇女精品| 国产精品美女久久久久久久网站| 中文字幕国产精品一区二区| 国产精品白丝在线| 亚洲一区二区三区中文字幕| 亚洲午夜日本在线观看| 亚洲aaa精品| 六月婷婷色综合| 国产剧情一区在线| 97精品久久久久中文字幕| 欧美视频一区二区三区在线观看| 欧美日韩国产大片| 日韩欧美中文字幕一区| 久久久久久久久久久黄色| 国产精品网站在线播放| 亚洲精品伦理在线| 亚洲一级二级三级| 久久99精品国产.久久久久久| 国产经典欧美精品| 色哟哟亚洲精品| 欧美绝品在线观看成人午夜影视| 日韩一区二区免费高清| 国产视频一区不卡| 亚洲一区二区三区四区五区中文 | 欧美少妇性性性| 欧美一区二区播放| 国产三级精品三级| 亚洲一区二区三区中文字幕| 久久99久久久久| 不卡在线观看av| 日韩一级免费一区| 中文字幕日本不卡| 麻豆精品新av中文字幕| 99精品在线观看视频| 日韩一区二区三区精品视频| 国产精品久久久一区麻豆最新章节| 亚洲韩国精品一区| 国产精品资源在线看| 色欧美日韩亚洲| 精品福利在线导航| 亚洲自拍偷拍av| 国产麻豆9l精品三级站| 欧美三级在线看| 国产欧美日本一区二区三区| 午夜欧美2019年伦理| 成人综合婷婷国产精品久久| 欧美日韩和欧美的一区二区| 国产精品久久久久一区| 日本不卡123| 欧美性xxxxxxxx| 国产精品久久久久久久久搜平片| 日韩在线一区二区三区| 99在线精品免费| 久久久精品2019中文字幕之3| 亚洲国产精品久久人人爱| 国产99久久精品| 欧美成人综合网站| 樱桃视频在线观看一区| 国产mv日韩mv欧美| 2020日本不卡一区二区视频| 亚洲sss视频在线视频| 成人黄色在线视频| 久久夜色精品国产噜噜av | 久久99精品久久久| 欧美日韩精品一区二区三区| 最新热久久免费视频| 国产一区二区不卡老阿姨| 欧美一级视频精品观看| 亚洲成人动漫精品| 色网站国产精品| 亚洲同性同志一二三专区| 成人免费福利片| 久久精品亚洲精品国产欧美kt∨ | 亚洲精品乱码久久久久久| 成人高清av在线| 亚洲国产精品成人综合色在线婷婷| 精品一区二区三区欧美| 在线电影院国产精品| 五月天一区二区| 欧美日韩成人一区二区| 午夜国产精品影院在线观看| 欧美性猛交xxxx乱大交退制版| 一区二区视频免费在线观看| 一本色道久久综合精品竹菊| 亚洲另类在线视频| 91高清视频在线| 午夜日韩在线电影| 日韩一区二区精品葵司在线| 青青草成人在线观看| 精品国产髙清在线看国产毛片 | 日本一区二区免费在线观看视频| 国产真实乱偷精品视频免| 久久久精品综合| 国产精品一区久久久久| 国产欧美一区二区精品性色| 国产.精品.日韩.另类.中文.在线.播放| 久久精品夜色噜噜亚洲a∨| 国产成人8x视频一区二区| 国产日产欧产精品推荐色| 不卡一区二区三区四区| 洋洋成人永久网站入口| 欧美日韩成人在线一区| 久久99久国产精品黄毛片色诱| 久久精品人人爽人人爽| 91在线视频在线| 午夜一区二区三区在线观看| 3d动漫精品啪啪| 国产一区二区三区免费播放 | 亚洲精品美腿丝袜| 欧美日韩成人综合| 国产一区二区在线电影| 国产精品毛片高清在线完整版| 一本久道久久综合中文字幕| 日av在线不卡| 中文字幕av在线一区二区三区| 色偷偷一区二区三区| 麻豆精品国产91久久久久久|