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

📄 calculate24appui.cpp

📁 这是一个基于symbian操作系统的速算24游戏
💻 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 + -