📄 menudemoview.cpp
字号:
/*
* ============================================================================
* Name : CMenuDemoView from MenuDemoView.h
* Part of : GuiCtrls
* Created : 15.04.2005 by ToBeReplacedByAuthor
* Implementation notes:
* Initial content was generated by Series 60 Application Wizard.
* Version :
* Copyright: ToBeReplacedByCopyright
* ============================================================================
*/
// INCLUDE FILES
#include <aknviewappui.h>
#include <avkon.hrh>
#include <GuiCtrls.rsg>
#include "MenuDemoView.h"
#include "MenuDemoContainer.h"
#include <akntitle.h> // for title pane
#include <eikspane.h>
#include "GuiCtrls.hrh"
#include <eikmenup.h>
#include <eikmenub.h>
#include <barsread.h> // for TResourceReader
// ================= MEMBER FUNCTIONS =======================
// ---------------------------------------------------------
// CMenuDemoView::ConstructL(const TRect& aRect)
// EPOC two-phased constructor
// ---------------------------------------------------------
//
void CMenuDemoView::ConstructL()
{
BaseConstructL( R_MENU_DEMO_VIEW );
}
// ---------------------------------------------------------
// CMenuDemoView::~CMenuDemoView()
// destructor
// ---------------------------------------------------------
//
CMenuDemoView::~CMenuDemoView()
{
if ( iContainer )
{
AppUi()->RemoveFromViewStack( *this, iContainer );
}
delete iContainer;
}
// ---------------------------------------------------------
// TUid CMenuDemoView::Id()
//
// ---------------------------------------------------------
//
TUid CMenuDemoView::Id() const
{
return KMenuDemoViewId;
}
// ---------------------------------------------------------
// CMenuDemoView::HandleCommandL(TInt aCommand)
// takes care of view command handling
// ---------------------------------------------------------
//
void CMenuDemoView::HandleCommandL(TInt aCommand)
{
switch ( aCommand )
{
case EGuiCmdMenuShowItem:
{
iItemShow = ETrue;
break;
}
case EGuiCmdMenuHideItem:
{
iItemShow = EFalse;
break;
}
case EGuiCmdMenuSubMenuItem1:
{
iEikonEnv->InfoMsg(_L("Item 1 in Sub Menu"));
break;
}
case EGuiCmdMenuSubMenuItem2:
{
iEikonEnv->InfoMsg(_L("Item 2 in Sub Menu"));
break;
}
case EGuiCmdMenuDynItem1:
{
iEikonEnv->InfoMsg(_L("Dynamic Item1"));
break;
}
case EAknSoftkeyBack:
{
// To activate main view
AppUi()->ActivateLocalViewL(TUid::Uid(1));
//AppUi()->HandleCommandL(EEikCmdExit);
break;
}
default:
{
AppUi()->HandleCommandL( aCommand );
break;
}
}
}
void CMenuDemoView::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane )
{
if ( R_GUICTRLS_DEMO_MENU_OPERATION == aResourceId )
{
if (iItemShow)
{
aMenuPane->SetItemDimmed( EGuiCmdMenuShowItem, ETrue );
aMenuPane->SetItemDimmed( EGuiCmdMenuHideItem, EFalse );
aMenuPane->SetItemDimmed( EGuiCmdMenuDynItem1, EFalse );
}
else
{
aMenuPane->SetItemDimmed( EGuiCmdMenuShowItem, EFalse );
aMenuPane->SetItemDimmed( EGuiCmdMenuHideItem, ETrue );
aMenuPane->SetItemDimmed( EGuiCmdMenuDynItem1, ETrue );
}
}
}
// ---------------------------------------------------------
// CMenuDemoView::HandleClientRectChange()
// ---------------------------------------------------------
//
void CMenuDemoView::HandleClientRectChange()
{
if ( iContainer )
{
iContainer->SetRect( ClientRect() );
}
}
// ---------------------------------------------------------
// CMenuDemoView::DoActivateL(...)
//
// ---------------------------------------------------------
//
void CMenuDemoView::DoActivateL(
const TVwsViewId& /*aPrevViewId*/,TUid /*aCustomMessageId*/,
const TDesC8& /*aCustomMessage*/)
{
if (!iContainer)
{
iContainer = new (ELeave) CMenuDemoContainer;
iContainer->SetMopParent(this);
iContainer->ConstructL( ClientRect(), this );
AppUi()->AddToStackL( *this, iContainer );
}
CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane();
CAknTitlePane* title = (CAknTitlePane*)sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) );
title->SetTextL(_L("Menu Demo"));
}
// ---------------------------------------------------------
// CMenuDemoView::DoDeactivate()
//
// ---------------------------------------------------------
//
void CMenuDemoView::DoDeactivate()
{
if ( iContainer )
{
AppUi()->RemoveFromViewStack( *this, iContainer );
}
delete iContainer;
iContainer = NULL;
CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane();
CAknTitlePane* title = (CAknTitlePane*)sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) );
title->SetTextToDefaultL();
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -