📄 s60testdocument.cpp
字号:
#include "S60TestAppUi.h"
#include "S60TestDocument.h"
// Standard Symbian OS construction sequence
CS60TestDocument *CS60TestDocument::NewL(CEikApplication& aApp)
{
CS60TestDocument *self=NewLC(aApp);
CleanupStack::Pop(self);
return self;
}
CS60TestDocument *CS60TestDocument::NewLC(CEikApplication& aApp)
{
CS60TestDocument *self=new(ELeave) CS60TestDocument(aApp);
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
void CS60TestDocument::ConstructL()
{
TTime time;
time.HomeTime();
seed=time.Int64();
Reset();
}
CS60TestDocument::CS60TestDocument(CEikApplication& aApp)
:CAknDocument(aApp),
iGrid(),
iCurrBlock(),
iBlockPos(3, -4)
{
}
CS60TestDocument::~CS60TestDocument()
{
}
void CS60TestDocument::Reset()
{
iGrid.Clear();
iBlockPos=TPoint(3, -4);
iCurrBlock=TBlock::RandomBlock(seed);
}
void CS60TestDocument::NewBlock()
{
iCurrBlock=TBlock::RandomBlock(seed);
iBlockPos=TPoint(3, -4);
}
bool CS60TestDocument::FixBlock()
{
int i;
// check if it is outside the board
for (i=0; i<-iBlockPos.iY; i++)
if (iCurrBlock.RowMask(i))
return false;
iGrid.PutBlock(iCurrBlock, iBlockPos);
return true;
}
bool CS60TestDocument::IsBlock(const TPoint &p) const
{
if (p.iX>=iBlockPos.iX && p.iX<iBlockPos.iX+4 &&
p.iY>=iBlockPos.iY && p.iY<iBlockPos.iY+4)
return (iCurrBlock.RowMask(p.iY-iBlockPos.iY)&(1<<(3-p.iX+iBlockPos.iX)))>0;
return false;
}
void CS60TestDocument::GetRowContent(int nr, TFixedArray<TInt8, KGridX> &row) const
{
int i;
for (i=0; i<KGridX; i++)
{
if (IsBlock(TPoint(i, nr))) row[i]=iCurrBlock.Color();
else row[i]=iGrid.iContent[nr][i];
}
}
CEikAppUi *CS60TestDocument::CreateAppUiL()
{
// Create the application user interface, and return a pointer to it,
// the framework takes ownership of this object
iAppUi=new(ELeave) CS60TestAppUi(this);
return iAppUi;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -