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

📄 serverui.h

📁 gameboy 模拟器的源代码
💻 H
字号:
// SERVERUI.H

#ifndef SERVERUI_H
#define SERVERUI_H

#include <e32base.h>

class CFbsBitmap;
class CFont;
class CWsScreenDevice;
class CFbsBitmapDevice;
class CFbsBitGc;

enum TCbaLabel
	{
	ECbaEmpty,
	ECbaOk,
	ECbaCancel,
	ECbaYes,
	ECbaNo
	};

enum TControlType
	{
	EList,
	EQuery,
	EKeySelectQuery,
	ENote
	};

enum TUIType
	{
	EUITitle,
	EUILabel,
	EUITextEditor,
	};

class TUIEntry
	{
public:
	TUIType iType;
	TBuf<64> iText;
	TInt iParam1;
	TInt iParam2;
	TInt iParam3;
	};

class CUIEntryList : public CArrayFixFlat<TUIEntry>
	{
public:
	CUIEntryList();
	~CUIEntryList();
	void AddTitleL(const TDesC& aText);
	void AddListItemL(const TDesC& aText);
	};


class MServerUiObserver
	{
public:
	virtual void ListItemSelection(TInt aListId, TInt aIndex) = 0;
	virtual void CbaPressed(TInt aListId, TCbaLabel) = 0;
	virtual void KeySelect(TInt aId, TInt aKey) = 0;
	virtual void Redraw(TBool aMenu) = 0;
	};

class CServerUi : public CBase
	{
public:
	CServerUi();
	~CServerUi();
	void ConstructL(CWsScreenDevice* aDevice, CFbsBitmap* aScreen, CFbsBitmap* aCba, MServerUiObserver* aObserver);
	void Draw(CFbsBitmap* aScreen);
	void DrawEntries(TUint16* aPtr, CFbsBitmap* aScreen);
	void DrawText();
	void KeyEvent(TInt aScanCode);

	// UI Building methods
	void CreateList(TInt aId, const TDesC& aTitle);
	void CreateQueryL(TInt aId, const TDesC& aQuery);
	void CreateQueryL(TInt aId, const TDesC& aTitle, const TDesC& aQuery);
	void CreateKeySelectQueryL(TInt aId, const TDesC& aTitle, const TDesC& aQuery);
	void CreateNoteL(const TDesC& aTitle, const TDesC& aMessage);
	void SetCba(TCbaLabel aLabel1, TCbaLabel aLabel2);

	void AddListItem(const TDesC& aItem);
	void Activate(TBool aActivate);
private:
	void DrawEntry(TUIEntry& aEntry, TUint16* aPtr, TBool aSelected, TBool aTitle);
	void FindInitialSelection();
	void FindPreviousSelection();
	void FindNextSelection();
	void SetTextForLabel(TDes& aLabel, TCbaLabel aLabelId);
	void CbaPressed(TCbaLabel aLabel);
public:
	TBool iIsActive;
private:
	CUIEntryList* iEntryList;
	TInt iSelected;
	CFont* iFont;
	CWsScreenDevice* iDevice;
	CFbsBitmapDevice* iBitDevice;
	CFbsBitGc* iBitGc;
	CFbsBitmap* iCba;
	CFbsBitmapDevice* iCbaBitDevice;
	CFbsBitGc* iCbaBitGc;
	MServerUiObserver* iObserver;
	TInt iId;
	TCbaLabel iLabel1;
	TCbaLabel iLabel2;
	TBuf<16> iLabelText1;
	TBuf<16> iLabelText2;
	TInt iLabelPos1;
	TInt iLabelPos2;
	TControlType iControlType;
	TInt iListOffset;
	};


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -