📄 s60testappview.cpp
字号:
#include <coemain.h>
#include <eikenv.h>
#include "S60TestAppView.h"
#include "S60TestDocument.h"
#include "S60TestEngine.h"
#include "S60Test.mbg"
#include "Step6.rsg"
#include "MyToneClass.h"
const TUint32 CS60TestAppView::KColors[10]=
{0xffffff, 0xff0000, 0x00ff00, 0x0000ff, 0xff00ff,
0xcc00dd, 0xadbeef, 0x000000, 0xffff00, 0xaaaaaa};
CS60TestAppView *CS60TestAppView::NewL(const TRect& aRect, CS60TestDocument *aDoc, CS60TestEngine *aEngine)
{
CS60TestAppView *self=CS60TestAppView::NewLC(aRect, aDoc, aEngine);
CleanupStack::Pop(self);
return self;
}
CS60TestAppView* CS60TestAppView::NewLC(const TRect& aRect, CS60TestDocument *aDoc, CS60TestEngine *aEngine)
{
CS60TestAppView *self=new(ELeave) CS60TestAppView(aDoc, aEngine);
CleanupStack::PushL(self);
self->ConstructL(aRect);
return self;
}
CS60TestAppView::CS60TestAppView(CS60TestDocument *aDoc, CS60TestEngine *aEngine)
{
iDoc=aDoc;
iFocus=true;
iEngine=aEngine;
CEikonEnv::Static()->ReadResource(iFormatLevel, R_FORMAT_LEVEL);
CEikonEnv::Static()->ReadResource(iFormatScore, R_FORMAT_SCORE);
}
CS60TestAppView::~CS60TestAppView()
{
delete iBackground;
delete iSound;
}
void CS60TestAppView::ConstructL(const TRect& aRect)
{
_LIT(iPathName, "\\System\\Apps\\Step6\\S60Test.mbm");
iBackground=CEikonEnv::Static()->CreateBitmapL(iPathName, EMbmS60testTlo);
CreateWindowL();
iSound=CMyToneClass::NewL();
iSound->PlayClipL();
SetRect(aRect);
ActivateL();
}
void CS60TestAppView::FocusChanged(TDrawNow aDrawNow)
{
if (IsFocused())
{
if (!iFocus)
{
iFocus=true;
iEngine->TechUnpause();
}
} else
{
if (iFocus)
{
iFocus=false;
iEngine->TechPause();
}
}
}
const int KCellSize=7;
const int KBoardOffset=2;
void CS60TestAppView::Draw(const TRect& /*aRect*/) const
{
CWindowGc &gc=SystemGc();
TRect rect=Rect();
gc.UseFont(iCoeEnv->NormalFont());
gc.DrawBitmap(TPoint(0, 0), iBackground);
TBuf<32> napis, format;
napis.Format(iFormatScore, iDoc->iScore);
gc.DrawText(napis, TPoint(83, 90));
napis.Format(iFormatLevel, iDoc->iLevel);
gc.DrawText(napis, TPoint(83, 126));
int i, j;
TFixedArray<TInt8, KGridX> arr;
gc.SetPenColor(TRgb(0));
gc.SetBrushStyle(CWindowGc::ESolidBrush);
for (i=0; i<KGridY; i++)
{
iDoc->GetRowContent(i, arr);
for (j=0; j<KGridX; j++)
{
gc.SetBrushColor(KColors[arr[j]]);
if (arr[j])
gc.DrawRect(TRect(KBoardOffset+KCellSize*j, KBoardOffset+KCellSize*i,
KBoardOffset+KCellSize*(j+1)+1, KBoardOffset+KCellSize*(i+1)+1));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -