shapedrawerappui.cpp

来自「series60 应用程序开发的源代码 series60 应用程序开发的源代码」· C++ 代码 · 共 133 行

CPP
133
字号
/**
 * 
 * @brief Definition of CShapeDrawerAppui
 *
 * Copyright (c) EMCC Software Ltd 2003
 * @version 1.0
 */

// INCLUDE FILES

// System includes
#include <eiktbar.h>
#include <eikenv.h>
#include <w32adll.h>
#include <avkon.hrh>
#include <sysutil.h>

// User Includes
#include "ShapeDrawer.pan"
#include "ShapeDrawerDocument.h"
#include "ShapeDrawerAppUi.h"
#include "ShapeDrawerGraphicView.h"
#include "ShapeDrawerGraphicViewContainer.h"
#include "ShapeDrawerListViewContainer.h"
#include "ShapeDrawerListView.h"
#include "ShapeDrawer.hrh"

_LIT(KShapeDrawerPanicName,    "ShapeDrawer");

// ================= MEMBER FUNCTIONS =======================

TBool CShapeDrawerAppUi::CheckDiscSpaceL()
{
    CEikDocument* eikDoc = Document();
    CShapeDrawerDocument* shapeDrawerDoc = static_cast<CShapeDrawerDocument*>(eikDoc);
    TInt fileEstimate = shapeDrawerDoc->DataSize();
    TBool result;
    RFs* fileSession = &CCoeEnv::Static()->FsSession();
    result = !SysUtil::DiskSpaceBelowCriticalLevelL(fileSession, fileEstimate, EDriveC);

    return result;
}


CShapeDrawerAppUi::CShapeDrawerAppUi() 
{
    //    No implementation required
}


void CShapeDrawerAppUi::ConstructL()
{

    BaseConstructL();
    
    iView1 = CShapeDrawerGraphicView::NewL();
    AddViewL(iView1); // transfer ownership
    
    iView2 = CShapeDrawerListView::NewL();
    AddViewL(iView2); // transfer ownership

    SetDefaultViewL(*iView1);

}


void CShapeDrawerAppUi::HandleCommandL(TInt aCommand)
{
    switch(aCommand)
    {
        case EShapeDrawerSwitchToListView:
        {
            TUid viewId;
            viewId.iUid = EShapeDrawerListViewId;
            ActivateLocalViewL(viewId);
            break;
        }
        case EShapeDrawerSwitchToGraphicView:
        {
            TUid viewId;
            viewId.iUid = EShapeDrawerGraphicViewId;
            ActivateLocalViewL(viewId);
            break;
        }
        case EAknSoftkeyExit:
        case EEikCmdExit:
            if (CheckDiscSpaceL())
            {
                SaveL();
            }
            Exit();
            break;
        case EClear:
             iView1->Container()->Clear();
            break;
        case ESelectBrushCircle:
            iView1->Container()->SetBrushShapeType(CShapeDrawerGraphicViewContainer::ECircle);
            break;
        case ESelectBrushRectangle:
            iView1->Container()->SetBrushShapeType(CShapeDrawerGraphicViewContainer::ERectangle);
            break;
        default:
            User::Panic(KShapeDrawerPanicName, EShapeDrawerUnknownCommand);
            break;
    }
 }

void CShapeDrawerAppUi::HandleModelChangeL()
{
    // Update the file name in the task list to show the current file.
    iEikonEnv->UpdateTaskNameL();
}


void CShapeDrawerAppUi::HandleForegroundEventL(TBool aForeground)
{
    if (!aForeground)
    {
        if (CheckDiscSpaceL())
        {
            SaveL();
        }
    }
   
    CAknAppUi::HandleForegroundEventL(aForeground);
}

//End of File




⌨️ 快捷键说明

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