📄 appui.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 + -