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

📄 cbabutton.cpp

📁 一个symbian上成熟的小游戏源码
💻 CPP
字号:
#include "CbaButton.h"

CCbaButton::CCbaButton(const TRect& aRect ):CBaseControl(aRect)
{
}

CCbaButton::~CCbaButton()
{
	if (iLCmd)
	{
		delete iLCmd->iText;
		delete iLCmd;
	}
	if (iRCmd)
	{
		delete iRCmd->iText;
		delete iRCmd;
	}
}

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

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

void CCbaButton::ConstructL()
{
	CBaseControl::SetBackground(EMbmGgballBan02_m);
	
	TInt rectWidth=iRect.Width();
	TInt cellWidth=iBackground->CellWidth();
	TInt backCols=rectWidth/cellWidth;
	iBackground->SetRange(1,backCols,1);
	iBackground->SetPosition(iRect.iTl.iX,iRect.iTl.iY);
}

void CCbaButton::Draw(CBitmapContext& aGc) const
{
	//画背景
	CBaseControl::Draw(aGc);

	DrawText(aGc);
}

void CCbaButton::DrawText(CBitmapContext& gc) const
{
	if (iLCmd)
	{
		CBaseControl::DrawText(gc,*iLCmd->iText);
	}
	if (iRCmd)
	{
		CBaseControl::DrawText(gc,*iRCmd->iText,CGraphicsContext::ERight);
	}
}

void CCbaButton::SetLeftCmd( TInt aResourceId,TFunction aFun )
{
	if (iLCmd)
	{
		delete iLCmd->iText;
		delete iLCmd;
	}
	iLCmd=NULL;
	iLCmd=new(ELeave)CmdNode;
	iLCmd->iFun=aFun;
	iLCmd->iText=StringLoader::LoadL(aResourceId);
}

void CCbaButton::SetRightCmd( TInt aResourceId,TFunction aFun )
{
	if (iRCmd)
	{
		delete iRCmd->iText;
		delete iRCmd;
	}
	iRCmd=NULL;
	iRCmd=new(ELeave)CmdNode;
	iRCmd->iFun=aFun;
	iRCmd->iText=StringLoader::LoadL(aResourceId);
}

TFunction CCbaButton::LeftCmdFunction()
{
	return iLCmd->iFun;
}

TFunction CCbaButton::RightCmdFunction()
{
	return iRCmd->iFun;
}

⌨️ 快捷键说明

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