📄 controller.h
字号:
// controller.h
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
//
#ifndef __CONTROLLER_H
#define __CONTROLLER_H
#include <coecntrl.h>
#include <coemain.h>
#include <eikappui.h>
#include <eikapp.h>
#include <eikdoc.h>
#include <eikon.hrh>
#include <soloships.rsg>
#include "soloships.hrh"
#include "engine.h"
class CFleetView;
// app UID
const TUid KUidExample = { 0x10005cee };
// command handler
class MGameViewCmdHandler
{
public:
virtual void ViewCmdHitFleet(TInt aX, TInt aY)=0;
};
// controller
class CGameController : public CBase, public MGameViewCmdHandler
{
public:
// construct/destruct
static CGameController* NewL();
static CGameController* NewL(const CStreamStore& aStore, TStreamId aStreamId);
void SetAppView(CFleetView* aAppView);
~CGameController();
// persistence
TStreamId StoreL(CStreamStore& aStore) const;
// state
inline TBool IsMyTurn() const;
inline TBool IsFinished() const;
// game control
void Reset();
// zooming
void ZoomInL();
void ZoomOutL();
private:
enum TState {
EMyTurn, EFinished
};
private:
// construct/restore
void ConstructL();
void RestoreL(const CStreamStore& aStore, TStreamId aStreamId);
// stream persistence
void ExternalizeL(RWriteStream& aStream) const;
void InternalizeL(RReadStream& aStream);
// from MGameViewCmdHandler
void ViewCmdHitFleet(TInt aX, TInt aY);
private:
CFleetView* iAppView;
CGameEngine* iEngine;
private:
// cached pointers and values
CEikonEnv* iEnv;
// private persistent state
TState iState;
// zoom for internalizing
TInt iZoomFactor;
};
// state inlines
inline TBool CGameController::IsMyTurn() const { return iState==EMyTurn; }
inline TBool CGameController::IsFinished() const { return iState==EFinished; }
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -