aknexeditorappui.cpp
来自「国内著名嵌入式培训机构内部资料,内含一些实例代码,包括技术专题书籍」· C++ 代码 · 共 256 行
CPP
256 行
/* Copyright (c) 2004, Nokia. All rights reserved */
#include <avkon.hrh>
#include <barsread.h>
#include <akntitle.h>
#include <aknnavi.h>
#include <akncontext.h>
#include <akntabgrp.h>
#include <aknnavide.h>
#include <AknExEditor.rsg>
#include "aknexeditor.hrh"
#include "AknExEditorScenarioManager.h"
#include "AknExEditorAppUi.h"
#include "AknExEditorView1.h"
#include "AknExEditorView4.h"
#include "AknExEditorView5.h"
#include "AknExEditorView6.h"
#include "AknExEditorView7.h"
#include "AknExEditorView9.h"
#include "AknExEditorView21.h"
#include "AknExEditorView22.h"
#include "AknExEditorView23.h"
#include "AknExEditorView25.h"
#include "AknExEditorView30.h"
#include "AknExEditorView33.h"
// ================= MEMBER FUNCTIONS =======================
// ----------------------------------------------------------------------------
// CAknExEditorAppUi::CAknExEditorAppUi()
// C++ default constructor can NOT contain any code, that
// might leave.
//-----------------------------------------------------------------------------
//
CAknExEditorAppUi::CAknExEditorAppUi()
: iDecoratedTabGroup( NULL ), iScenarioManager( NULL )
{
}
// ----------------------------------------------------------------------------
// CAknExEditorAppUi::ConstructL()
// two phased constructor
//-----------------------------------------------------------------------------
//
void CAknExEditorAppUi::ConstructL()
{
BaseConstructL();
// Show tabs for main views from resources
CEikStatusPane *sp = StatusPane();
// Title
iTitlePane = static_cast<CAknTitlePane*>( sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
// Fetch pointer to the default navi pane control
iNaviPane = ( CAknNavigationControlContainer* ) sp->ControlL(
TUid::Uid( EEikStatusPaneUidNavi ) );
// Create tabs.
iDecoratedTabGroup = iNaviPane->ResourceDecorator();
if ( iDecoratedTabGroup )
{
iTabGroup = ( CAknTabGroup* ) iDecoratedTabGroup->DecoratedControl();
}
// Create ScenarioManager
iScenarioManager = new ( ELeave ) CAknExEditorScenarioManager;
// Create and add views.
CAknExEditorView1* view1 = new ( ELeave ) CAknExEditorView1;
CleanupStack::PushL( view1 );
view1->ConstructL();
CleanupStack::Pop(); // view1
AddViewL( view1 ); // transfer ownership to CAknViewAppUi
CAknExEditorView4* view4 = new ( ELeave ) CAknExEditorView4;
CleanupStack::PushL( view4 );
view4->ConstructL();
CleanupStack::Pop(); // view4
AddViewL( view4 ); // transfer ownership to CAknViewAppUi
CAknExEditorView5* view5 = new ( ELeave ) CAknExEditorView5;
CleanupStack::PushL( view5 );
view5->ConstructL();
CleanupStack::Pop(); // view5
AddViewL( view5 ); // transfer ownership to CAknViewAppUi
CAknExEditorView6* view6 = new ( ELeave ) CAknExEditorView6;
CleanupStack::PushL( view6 );
view6->ConstructL();
CleanupStack::Pop(); // view6
AddViewL( view6 ); // transfer ownership to CAknViewAppUi
CAknExEditorView7* view7 = new ( ELeave ) CAknExEditorView7;
CleanupStack::PushL( view7 );
view7->ConstructL();
CleanupStack::Pop(); // view7
AddViewL( view7 ); // transfer ownership to CAknViewAppUi
CAknExEditorView9* View9 = new ( ELeave ) CAknExEditorView9;
CleanupStack::PushL( View9 );
View9->ConstructL();
CleanupStack::Pop(); // View9
AddViewL( View9 ); // transfer ownership to CAknViewAppUi
CAknExEditorView21* View21 = new ( ELeave ) CAknExEditorView21;
CleanupStack::PushL( View21 );
View21->ConstructL();
CleanupStack::Pop(); // view21
AddViewL( View21 ); // transfer ownership to CAknViewAppUi
CAknExEditorView22* View22 = new ( ELeave ) CAknExEditorView22;
CleanupStack::PushL( View22 );
View22->ConstructL();
CleanupStack::Pop(); // view22
AddViewL( View22 ); // transfer ownership to CAknViewAppUi
CAknExEditorView23* View23 = new ( ELeave ) CAknExEditorView23;
CleanupStack::PushL( View23 );
View23->ConstructL();
CleanupStack::Pop(); // view23
AddViewL( View23 ); // transfer ownership to CAknViewAppUi
CAknExEditorView25* View25 = new ( ELeave ) CAknExEditorView25;
CleanupStack::PushL( View25 );
View25->ConstructL();
CleanupStack::Pop(); // view25
AddViewL( View25 ); // transfer ownership to CAknViewAppUi
CAknExEditorView30* View30 = new ( ELeave ) CAknExEditorView30;
CleanupStack::PushL( View30 );
View30->ConstructL();
CleanupStack::Pop(); // view30
AddViewL( View30 );
CAknExEditorView33* View33 = new ( ELeave ) CAknExEditorView33;
CleanupStack::PushL( View33 );
View33->ConstructL();
CleanupStack::Pop(); // view33
AddViewL( View33 );
ActivateViewL( view1->Id() );
}
// ----------------------------------------------------------------------------
// CAknExEditorAppUi::~CAknExEditorAppUi()
// Destructor.
// ----------------------------------------------------------------------------
//
CAknExEditorAppUi::~CAknExEditorAppUi()
{
delete iDecoratedTabGroup;
delete iScenarioManager;
}
// ----------------------------------------------------------------------------
// CAknExEditorAppUi::DynInitMenuPaneL()
// This function is called by the EIKON framework just before it displays
// a menu pane. Its default implementation is empty, and by overriding it,
// the application can set the state of menu items dynamically according
// to the state of application data.
// ----------------------------------------------------------------------------
void CAknExEditorAppUi::DynInitMenuPaneL(
TInt /*aResourceId*/, CEikMenuPane* /*aMenuPane*/ )
{
}
// ----------------------------------------------------
// CAknExEditorAppUi::HandleCommandL()
// takes care of command handling.
// ----------------------------------------------------
//
void CAknExEditorAppUi::HandleCommandL( TInt aCommand )
{
switch ( aCommand )
{
case EAknCmdExit:
case EEikCmdExit: // Exit application
Exit();
break;
case EAknExEditorCmdNext:
ActivateNextViewL();
break;
case EAknExEditorCmdPrev:
ActivatePrevViewL();
break;
default:
break;
}
}
// ----------------------------------------------------
// CAknExEditorAppUi::HandleKeyEventL
// Handles key events.
// ( other items were commented in a header ).
// ----------------------------------------------------
//
TKeyResponse CAknExEditorAppUi::HandleKeyEventL(
const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/ )
{
return EKeyWasNotConsumed;
}
// ----------------------------------------------------
// CAknExEditorAppUi::ActivateNextViewL()
// Activates next view.
// ( other items were commented in a header ).
// ----------------------------------------------------
//
void CAknExEditorAppUi::ActivateNextViewL()
{
TUid viewId = iScenarioManager->NextViewTo( iCurrentViewId );
if ( viewId == TUid::Uid( KScenarioNotFound ) )
{
viewId = iScenarioManager->FirstViewId();
}
ActivateViewL( viewId );
}
// ----------------------------------------------------
// CAknExEditorAppUi::ActivatePrevViewL()
// Activates previous view.
// ( other items were commented in a header ).
// ----------------------------------------------------
//
void CAknExEditorAppUi::ActivatePrevViewL()
{
TUid viewId = iScenarioManager->PrevViewTo( iCurrentViewId );
if ( viewId == TUid::Uid( KScenarioNotFound ) )
{
viewId = iScenarioManager->LastViewId();
}
ActivateViewL( viewId );
}
// ----------------------------------------------------
// CAknExEditorAppUi::ActivatePrevViewL()
// Activates specified view and shows title.
// ( other items were commented in a header ).
// ----------------------------------------------------
//
void CAknExEditorAppUi::ActivateViewL( TUid aViewId )
{
ActivateLocalViewL( aViewId );
iCurrentViewId = aViewId;
TBuf<KTitleBufLength> newTitle;
iScenarioManager->GetTitle( aViewId, &newTitle );
iTitlePane->SetTextL( newTitle );
}
// End of File
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?