📄 cbabutton.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 + -