📄 aknexgridviewasmenu.cpp
字号:
/* Copyright (c) 2004, Nokia. All rights reserved */
// INCLUDE FILES
#include <aknviewappui.h>
#include <avkon.hrh>
#include <AknGridView.h>
#include <akntitle.h>
#include <AknExGrid.rsg>
#include "AknExGridAppUi.h"
#include "AknExGridView.h"
#include "AknExGridViewAsMenu.h"
#include "AknExGridContainerAsMenu.h"
#include "AknExGrid.hrh"
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
// CAknExGridViewAsMenu::NewL()
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CAknExGridViewAsMenu* CAknExGridViewAsMenu::NewL()
{
CAknExGridViewAsMenu* self = CAknExGridViewAsMenu::NewLC();
CleanupStack::Pop( self );
return self;
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsMenu::NewLC()
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CAknExGridViewAsMenu* CAknExGridViewAsMenu::NewLC()
{
CAknExGridViewAsMenu* self = new ( ELeave ) CAknExGridViewAsMenu();
CleanupStack::PushL( self );
self->ConstructL();
return self;
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsMenu::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CAknExGridViewAsMenu::ConstructL()
{
BaseConstructL( R_EXGR_VIEW_MENU );
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsMenu::~CAknExGridViewAsMenu()
// Destructor.
// -----------------------------------------------------------------------------
//
CAknExGridViewAsMenu::~CAknExGridViewAsMenu()
{
if ( iContainer )
{
AppUi()->RemoveFromStack( iContainer );
}
delete iContainer;
}
// -----------------------------------------------------------------------------
// TUid CAknExGridViewAsMenu::Id()
// Returns the View Id.
// -----------------------------------------------------------------------------
//
TUid CAknExGridViewAsMenu::Id() const
{
return KViewMenuId;
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsMenu::HandleCommandL()
// Handles the commands.
// -----------------------------------------------------------------------------
//
void CAknExGridViewAsMenu::HandleCommandL( TInt aCommand )
{
TBuf<KLengthOfAboutString> aboutString;
switch ( aCommand )
{
case EAknSoftkeyBack:
{
CEikStatusPane *sp = StatusPane();
CAknTitlePane* titlePane = static_cast<CAknTitlePane*>
( sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
titlePane->SetTextToDefaultL();
static_cast<CAknExGridAppUi*>( AppUi() )
->ChangeActiveViewAndTabL( KViewId, EAknExGridViewTab );
break;
}
case EAknExGridCmdShowMenu:
iContainer->ShowGridInMenuL();
break;
case EAknExGridCmdNumOfItems:
iContainer->EnterNumberOfItemsL();
break;
case EAknExGridCmdChangeSize:
iContainer->DetermineChangeSizeL();
break;
case EAknExGridCmdFillingOrder:
iContainer->DetermineFillingOrderL();
break;
case EAknExGridCmdLoopingVertFollowLoop:
iContainer->SetVerticalScrollingTypeL(
CAknGridView::EScrollIncrementLineAndLoops );
break;
case EAknExGridCmdLoopingVertFollowStop:
iContainer->SetVerticalScrollingTypeL(
CAknGridView::EScrollIncrementLineAndStops );
break;
case EAknExGridCmdLoopingVertFollowGrid:
iContainer->SetVerticalScrollingTypeL(
CAknGridView::EScrollFollowsGrid );
break;
case EAknExGridCmdLoopingVertStopEnd:
iContainer->SetVerticalScrollingTypeL(
CAknGridView::EScrollStops );
break;
case EAknExGridCmdLoopingHorizFollowLoop:
iContainer->SetHorizontalScrollingTypeL(
CAknGridView::EScrollIncrementLineAndLoops );
break;
case EAknExGridCmdLoopingHorizFollowStop:
iContainer->SetHorizontalScrollingTypeL(
CAknGridView::EScrollIncrementLineAndStops );
break;
case EAknExGridCmdLoopingHorizFollowGrid:
iContainer->SetHorizontalScrollingTypeL(
CAknGridView::EScrollFollowsGrid );
break;
case EAknExGridCmdLoopingHorizStopEnd:
iContainer->SetHorizontalScrollingTypeL(
CAknGridView::EScrollStops );
break;
case EAknExGridCmdAbout:
iCoeEnv->ReadResource(
aboutString, R_EXGR_TEXT_ABOUT_MENU );
iEikonEnv->AlertWin( aboutString );
break;
case EAknExGridCmdClose:
{
CEikStatusPane *sp = StatusPane();
CAknTitlePane* titlePane = static_cast<CAknTitlePane*>
( sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
titlePane->SetTextToDefaultL();
static_cast<CAknExGridAppUi*>( AppUi() )
->ChangeActiveViewAndTabL( KViewId, EAknExGridViewTab );
break;
}
case ESGridSoftKeyNext:
{
if(iContainer->AutoTestL())
{
CEikStatusPane *sp = StatusPane();
CAknTitlePane* titlePane = static_cast<CAknTitlePane*>
( sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
titlePane->SetTextToDefaultL();
static_cast<CAknExGridAppUi*>( AppUi() )
->ChangeActiveViewAndTabL( KViewId, EAknExGridViewTab );
}
break;
}
default:
{
AppUi()->HandleCommandL( aCommand );
break;
}
}
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsMenu::HandleClientRectChange()
// Handles the size of the clientrect.
// -----------------------------------------------------------------------------
//
void CAknExGridViewAsMenu::HandleClientRectChange()
{
if ( iContainer )
{
iContainer->SetRect( ClientRect() );
}
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsMenu::DoActivateL()
// Creates the Container class object.
// -----------------------------------------------------------------------------
//
void CAknExGridViewAsMenu::DoActivateL(
const TVwsViewId& /*aPrevViewId*/, TUid /*aCustomMessageId*/,
const TDesC8& /*aCustomMessage*/ )
{
iContainer = CAknExGridContainerAsMenu::NewL( ClientRect() );
iContainer->SetMopParent(this);
AppUi()->AddToStackL( *this, iContainer );
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsMenu::DoDeactivate()
// Deletes the Container class object.
// -----------------------------------------------------------------------------
//
void CAknExGridViewAsMenu::DoDeactivate()
{
if ( iContainer )
{
AppUi()->RemoveFromStack( iContainer );
}
delete iContainer;
iContainer = NULL;
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -