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

📄 appui.cpp

📁 《SymbianOSC手机应用开发》源码
💻 CPP
字号:
// appui.cpp
//
// Copyright (c) 2000 Symbian Ltd.  All rights reserved.
//

#include "appui.h"
#include "controller.h"
#include "appview.h"
#include <gdp.h>

#include <eikenv.h>
#include <eikbutb.h>
#include <eiktbar.h>
#include <eikdialg.h>
#include <eikedwin.h>

// send dialog

class CGameSendDialog : public CEikDialog
	{
public:
	CGameSendDialog(CGameEngine* aEngine, HBufC*& aString);
private:
	// from CEikDialog
	void PreLayoutDynInitL(); // initialization
	TBool OkToExitL(TInt aKeycode); // termination
private:
	CGameEngine* iEngine;
	HBufC*& iString;
	};

CGameSendDialog::CGameSendDialog(CGameEngine* aEngine, HBufC*& aString)
	: iEngine(aEngine), iString(aString)
	{
	}

void CGameSendDialog::PreLayoutDynInitL() // initialization
	{
	static_cast<CEikEdwin*>(Control(EGameControlIdSendText))->SetTextL(&(iEngine->LastSent()));
	}

TBool CGameSendDialog::OkToExitL(TInt /* aKeycode */) // termination
	{
	CEikEdwin* edwin=STATIC_CAST(CEikEdwin*, Control(EGameControlIdSendText));
	iString=edwin->GetTextInHBufL();
	return ETrue;
	}

// app UI

void CGameAppUi::ConstructL()
    {
    BaseConstructL();
	iController=new(ELeave) CGameController;
	iController->ConstructL(this);
    }

CGameAppUi::~CGameAppUi()
	{
	delete iController;
	}

void CGameAppUi::HandleCommandL(TInt aCommand)
	{
	switch (aCommand)
		{
	case EGameCmdSend:
		CmdSendL();
		break;
	case EGameCmdReceiveAll:
		CmdReceiveL();
		break;
	case EEikCmdExit: 
		Exit();
		break;
		}
	}

void CGameAppUi::CmdSendL()
	{
	HBufC* string=0;
	CEikDialog* dialog=new(ELeave) CGameSendDialog(iController->iGameEngine, string);
	if (!dialog->ExecuteLD(R_GAME_SEND_DIALOG))
		return;
	// handle new sent-string in engine
	CleanupStack::PushL(string);
	iController->CmdSendMessageL(*string);
	CleanupStack::PopAndDestroy(); // string
	}

void CGameAppUi::CmdReceiveL()
	{
	iController->iGdp->ReceiveAll();
	}

// document

CGameDocument::CGameDocument(CEikApplication& aApp)
		: CEikDocument(aApp)
	{
	}

CEikAppUi* CGameDocument::CreateAppUiL()
	{
    return new(ELeave) CGameAppUi;
	}

// application

TUid CGameApplication::AppDllUid() const
	{
	return KUidExample;
	}

CApaDocument* CGameApplication::CreateDocumentL()
	{
	return new(ELeave) CGameDocument(*this);
	}

// DLL interface stuff

EXPORT_C CApaApplication* NewApplication()
	{
	return new CGameApplication;
	}

GLDEF_C TInt E32Dll(TDllReason)
	{
	return KErrNone;
	}

⌨️ 快捷键说明

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