bitmapappui.cpp

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

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

// INCLUDE FILES

//    Class include
#include "Bitmapappui.h"

// System includes
#include <aknnavi.h> // CAknNavigationControlContainer
#include <aknnavide.h> // CAknNavigationDecorator
#include <akntabgrp.h> // CAknTabGroup
#include <Bitmap.rsg>

// User includes
#include "Bitmap.hrh" // TBitmapViewNumber
#include "BitmapDrawView.h" // CBitmapDrawView
#include "BitmapBitBltView.h" // CBitmapBitBltView
#include "BitmapBitBltMaskView.h" // CBitmapBitBltMaskView

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

/**
 * Symbian OS 2nd phase constructor.  Constructs the application's views, 
 * transferring ownership of them to the superclass.
 * Sets view 1 as the default and remembers that this is the current view id.  
 */    

void CBitmapAppUi::ConstructL()
{
    BaseConstructL();
    
    // Show tabs for main views from resources
    CEikStatusPane* sp = StatusPane();
    
    // Fetch pointer to the default navi pane control
    iNaviPane = (CAknNavigationControlContainer*)sp->ControlL(
        TUid::Uid(EEikStatusPaneUidNavi));
    
    // Tabgroup has been read from resource and it were pushed to the navi pane. 
    // Get pointer to the navigation decorator with the ResourceDecorator() function. 
    // Application owns the decorator and it has responsibility to delete the object.
    iDecoratedTabGroup = iNaviPane->ResourceDecorator();
    if (iDecoratedTabGroup)
    {
        iTabGroup = (CAknTabGroup*) iDecoratedTabGroup->DecoratedControl();
    }
    
    iDrawView = CBitmapDrawView::NewL();
    AddViewL(iDrawView); // transfer ownership
    
    iBitBltView = CBitmapBitBltView::NewL();
    AddViewL(iBitBltView); // transfer ownership
    
    iBitBltMaskView = CBitmapBitBltMaskView::NewL();
    AddViewL(iBitBltMaskView); // transfer ownership
    
    SetDefaultViewL(*iDrawView);
}

/**
 * Destructor.
 * Deletes the iDecoratedTabGroup
 */    

CBitmapAppUi::~CBitmapAppUi()
{
    delete iDecoratedTabGroup;
}

/**
 * From CEikAppUi, takes care of key event handling for the views.
 *
 * @param aKeyEvent Event to handled.
 * @param aType Type of the key event. 
 * @return Response code (EKeyWasConsumed, EKeyWasNotConsumed). 
 */

TKeyResponse CBitmapAppUi::HandleKeyEventL(
    const TKeyEvent& aKeyEvent, TEventCode /*aType*/)
{
    if (!iTabGroup)
    {
        return EKeyWasNotConsumed;
    }
    
    TInt active = iTabGroup->ActiveTabIndex();
    TInt count = iTabGroup->TabCount();
    
    switch (aKeyEvent.iCode)
    {
        case EKeyLeftArrow:
            if (active > 0)
            {
                active--;
                iTabGroup->SetActiveTabByIndex(active);
                ActivateLocalViewL(TUid::Uid(iTabGroup->TabIdFromIndex(active)));
            }
            break;
        case EKeyRightArrow:
            if((active + 1) < count)
            {
                active++;
                iTabGroup->SetActiveTabByIndex(active);
                ActivateLocalViewL(TUid::Uid(iTabGroup->TabIdFromIndex(active)));
            }
            break;
        default:
            return EKeyWasNotConsumed;
            break;
    }
    
    return EKeyWasConsumed;
}

/**
 * From CEikAppUi, takes care of command handling for the application views.
 *
 * @param aCommand command to be handled
 */

void CBitmapAppUi::HandleCommandL(TInt aCommand)
{
    switch (aCommand)
    {
        case EEikCmdExit:
        {
            Exit();
            break;
        }
        default:
            break;
    }    
}

// End of File

⌨️ 快捷键说明

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