📄 calculate24appui.cpp
字号:
/* Copyright (c) 2005, Nokia. All rights reserved */
#include <avkon.hrh>
#include <aknnotewrappers.h>
#include "Calculate24.pan"
#include "Calculate24AppUi.h"
#include "Calculate24AppView.h"
#include "Calculate24.hrh"
#include <Calculate24.rsg>
int calculate(int p1, int p2, int p3, int p4, int total, char *answer);
void CCalculate24AppUi::ConstructL()
{
BaseConstructL(EAknEnableSkin);
iAppView = CCalculate24AppView::NewL(ClientRect());
AddToStackL(iAppView);
CALCULATE();
}
CCalculate24AppUi::CCalculate24AppUi()
:iTotal(24),
iNum1(1),
iNum2(2),
iNum3(3),
iNum4(4)
{
// add any construction that cannot leave here
}
CCalculate24AppUi::~CCalculate24AppUi()
{
if (iAppView)
{
iEikonEnv->RemoveFromStack(iAppView);
delete iAppView;
iAppView = NULL;
}
if(iMallocBuffer)
{
User::Free(iMallocBuffer);
iMallocBuffer = NULL;
}
}
TBool CCalculate24AppUi::GetInputNumber(TInt &num)
{
TBool b = EFalse;
//TInt ret = num;
TName ret;
ret.Num(num);
CAknTextQueryDialog* nameDialog = CAknTextQueryDialog::NewL(ret, CAknQueryDialog::ENoTone);
if(nameDialog->ExecuteLD(R_DIALOG_INPUT))
{
TLex lex(ret);
TInt val = num;
lex.Val(val);
if(val!=0 && num!=val)
{
num = val;
b = !b;
}
}
return b;
}
void CCalculate24AppUi::CALCULATE()
{
char str[256] = {0};
int ret = calculate(iNum1,iNum2,iNum3,iNum4,iTotal,str);
bIsOk = EFalse;
switch(ret)
{
case 0:
{
bIsOk = ETrue;
iBuffer.Copy(TPtrC8((const TUint8 *)str));
iBuffer.Append(_L(" = "));
iBuffer.AppendNum(iTotal);
}
break;
case -1:
iBuffer.Copy(_L("If you get it, please E-mail to:zefeng.luo@chaotex.com"));
break;
default:
{
iBuffer.Num(ret);
}
break;
}
iAppView->DrawNow();
}
void CCalculate24AppUi::HandleCommandL(TInt aCommand)
{
switch(aCommand)
{
case EEikCmdExit:
case EAknSoftkeyExit:
Exit();
break;
case ECalculateMalloc:
{
TInt size = 150000*1024;
void *mallocBuffer = NULL;
TName info;
for(;;)
{
mallocBuffer = User::Alloc(size);
if(mallocBuffer)
{
User::Free(mallocBuffer);
info.Num(size/1024);
CEikonEnv::Static()->AlertWin(info);
break;
}
size -= 50*1024;
}
}
break;
case ECalculate:
{
CALCULATE();
}
break;
case ECalculateSetTotal:
{
if(GetInputNumber(iTotal))
CALCULATE();
}
break;
case ECalculateSetNum1:
{
if(GetInputNumber(iNum1))
CALCULATE();
}
break;
case ECalculateSetNum2:
{
if(GetInputNumber(iNum2))
CALCULATE();
}
break;
case ECalculateSetNum3:
{
if(GetInputNumber(iNum3))
CALCULATE();
}
break;
case ECalculateSetNum4:
{
if(GetInputNumber(iNum4))
CALCULATE();
}
break;
default:
Panic(ECalculate24BasicUi);
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -