⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basecontrol.cpp

📁 一个symbian上成熟的小游戏源码
💻 CPP
字号:

#include <aknutils.h>
#include "BaseControl.h"
_LIT(KGGBallMbm,"GGBall.mbm");

CBaseControl::CBaseControl(const TRect& aRect)
{
	iRect=aRect;
	iShow=ETrue;
}

CBaseControl::~CBaseControl()
{
	delete iBackground;
	delete iBmpBack;
	delete iBmpBackMask;
	delete iText;
}

void CBaseControl::ConstructL()
{
}

CBaseControl* CBaseControl::NewLC( const TRect& aRect )
{
	CBaseControl* self=new(ELeave)CBaseControl(aRect);
	CleanupStack::PushL(self);
	self->ConstructL();
	return self;
}

CBaseControl* CBaseControl::NewL( const TRect& aRect  )
{
	CBaseControl* self=CBaseControl::NewLC(aRect);
	CleanupStack::Pop();
	return self;
}


void CBaseControl::DrawText( CBitmapContext& gc,
							CGraphicsContext::TTextAlign aAlign,
							TInt aLeftMargin) const
{
	DrawText(gc,*iText,aAlign,aLeftMargin);	
}

void CBaseControl::DrawText( CBitmapContext& gc,const TDesC& aText, 
							CGraphicsContext::TTextAlign aAlign/*=CGraphicsContext::ELeft*/, 
							TInt aLeftMargin/*=0*/ ) const
{
	CGraphicsTool::DrawText(gc,iFont,aText,iRect,aAlign,aLeftMargin);	
}

void CBaseControl::SetText( TInt aResourceId )
{
	iText = StringLoader::LoadL( aResourceId );	
}

void CBaseControl::Draw( CBitmapContext & aGc ) const
{
	if (iShow)
	{
		if (iBackground)
		{
			iBackground->Draw(aGc);
		}
		else
		{
			CGraphicsTool::DrawRect(aGc,iRect,TRgb(54,37,110),ETrue);	
		}

		if (iText)
		{
			DrawText(aGc);
		}
	}
}

void CBaseControl::SetBackground( TInt aEnumBmpBack/*=-1*/,TInt aEnumBmpBackMask/*=-1*/ )
{
	TFileName mbmFileName(KGGBallMbm);
	CompleteWithAppPath(mbmFileName);//z
	RDebug::Print(mbmFileName);

#ifdef __WINS__
	_LIT(KC,"c");
	mbmFileName.Replace(0,1,KC);
#endif

	//iBmp = iEikonEnv->CreateBitmapL(mbmFileName, EMbmGgballBan01_m);	

	if (aEnumBmpBack>=0)
	{
		iBmpBack = new (ELeave) CFbsBitmap();
		TInt loadRet=iBmpBack->Load(mbmFileName, aEnumBmpBack);//如果加载图片失败...,EMbmGgballBan01_m
		if (loadRet!=KErrNone)
		{
			delete iBmpBackMask;
			iBmpBackMask=NULL;
		}
	}

	if (aEnumBmpBackMask>=0)
	{
		iBmpBack = new (ELeave) CFbsBitmap();
		TInt loadRet=iBmpBack->Load(mbmFileName, aEnumBmpBackMask);
		if (loadRet!=KErrNone)
		{
			delete iBmpBackMask;
			iBmpBackMask=NULL;
		}
	}

	iBackground=CTiledLayer::NewL(iBmpBack,iBmpBackMask);
}

TBool CBaseControl::Visible() const
{
	return iShow;
}

void CBaseControl::Show()
{
	iShow=ETrue;
}

void CBaseControl::Hide()
{
	iShow=EFalse;
}

void CBaseControl::SetFont( const CFont* aFont )
{
	iFont=aFont;	
}

⌨️ 快捷键说明

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