tetriscontainer.cpp

来自「在symbian2.0平台上开发的完整的俄罗斯方块的源码。」· C++ 代码 · 共 90 行

CPP
90
字号
#include <eikspane.h>
#include <eiktbar.h>


#include "TetrisContainer.h"
#include "Tetris.hrh"
#include "CEngine.h"
#include "TetrisDocument.h"



// construct and destruct
CTetrisContainer::CTetrisContainer(CTetrisDocument* aDocument) : iDocument(aDocument)
{}

//~CTetrisContainer()
CTetrisContainer::~CTetrisContainer()
{
	if(iEngine)
	{
		//iEngine->Stop();
		delete iEngine;
		iEngine = NULL;
	}
	
	ControlEnv()->RemoveForegroundObserver(*this);
}


// ConstructL()
void CTetrisContainer::ConstructL(const TRect& aRect)
{
    CreateWindowL();

    // Set the windows size
    SetRect(aRect);

	ActivateL();

	SetFullScreen();

	ControlEnv()->AddForegroundObserverL( *this );
	// Start the engine
	iEngine = CEngine::NewL( iDocument->Model(), SystemGc(), Window(), 
							CCoeEnv::Static()->ScreenDevice()->DisplayMode());

	//iEngine->Start();
}

///////////////////////////////////////////////////////////////
// Method from Parent

void CTetrisContainer::HandleGainingForeground()
{
	iEngine->Start();
}

void CTetrisContainer::HandleLosingForeground()
{
	iEngine->Stop();
}


// Other Method

// SetFullScreen
void CTetrisContainer::SetFullScreen()
{
	CEikButtonGroupContainer*	iToolBar;		// use
	CEikStatusPane*				iStatusPane;	// use

	MEikAppUiFactory* f = CEikonEnv::Static()->AppUiFactory();
	iStatusPane = f->StatusPane();
	iToolBar = f->ToolBar();

	if( iToolBar )
		iToolBar->MakeVisible( EFalse );

	if( iStatusPane )
		iStatusPane->MakeVisible( EFalse );

	SetExtentToWholeScreen();
}

// Command()
void CTetrisContainer::Command(TInt aCommand)
{	
	iEngine->Command(aCommand);
}

⌨️ 快捷键说明

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