📄 aknexgridviewasselection.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 "AknExGridView.h"
#include "AknExGridAppUi.h"
#include "AknExGridViewAsSelection.h"
#include "AknExGridContainerAsSelection.h"
#include "AknExGrid.hrh"
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
// CAknExGridViewAsSelection::NewL()
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CAknExGridViewAsSelection* CAknExGridViewAsSelection::NewL()
{
CAknExGridViewAsSelection* self = CAknExGridViewAsSelection::NewLC();
CleanupStack::Pop( self );
return self;
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsSelection::NewLC()
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CAknExGridViewAsSelection* CAknExGridViewAsSelection::NewLC()
{
CAknExGridViewAsSelection* self =
new ( ELeave ) CAknExGridViewAsSelection();
CleanupStack::PushL( self );
self->ConstructL();
return self;
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsSelection::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CAknExGridViewAsSelection::ConstructL()
{
BaseConstructL( R_EXGR_VIEW_SELECTION );
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsSelection::~CAknExGridViewAsSelection()
// Destructor.
// -----------------------------------------------------------------------------
//
CAknExGridViewAsSelection::~CAknExGridViewAsSelection()
{
if ( iContainer )
{
AppUi()->RemoveFromStack( iContainer );
}
delete iContainer;
}
// -----------------------------------------------------------------------------
// TUid CAknExGridViewAsSelection::Id()
// Returns the View Id.
// -----------------------------------------------------------------------------
//
TUid CAknExGridViewAsSelection::Id() const
{
return KViewSelectionId;
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsSelection::HandleCommandL()
// Handles the commands.
// -----------------------------------------------------------------------------
//
void CAknExGridViewAsSelection::HandleCommandL( TInt aCommand )
{
TBuf<KLengthOfAboutString> aboutString;
switch ( aCommand )
{
case EAknSoftkeyBack: // return to main view
{
CEikStatusPane *sp = StatusPane();
CAknTitlePane* titlePane = static_cast<CAknTitlePane*>
( sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
titlePane->SetTextToDefaultL();
static_cast<CAknExGridAppUi*>( AppUi() )
->ChangeActiveViewAndTabL( KViewId, EAknExGridViewTab );
break;
}
case EAknExGridCmdAddOneItemInsert:
iContainer->InsertDataL( 1 );
break;
case EAknExGridCmdAddFiveItemsInsert:
iContainer->InsertDataL( 5 );
break;
case EAknExGridCmdAddOneItemToTheLast:
iContainer->AddDataL( 1 );
break;
case EAknExGridCmdAddFiveItemsToTheLast:
iContainer->AddDataL( 5 );
break;
case EAknExGridCmdRemoveOneItemFromCurrent:
iContainer->RemoveDataL( 1 , KRemoveFromCurrent );
break;
case EAknExGridCmdRemoveFiveItemsFromCurrent:
iContainer->RemoveDataL( 5 , KRemoveFromCurrent );
break;
case EAknExGridCmdRemoveOneItemFromLast:
iContainer->RemoveDataL( 1 , KRemoveFromLast );
break;
case EAknExGridCmdRemoveFiveItemsFromLast:
iContainer->RemoveDataL( 5 , KRemoveFromLast );
break;
case EAknExGridCmdRemoveAllItems:
iContainer->RemoveDataL( KRemoveAllItems , KRemoveFromLast );
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 EAknExGridCmdChangeSize:
iContainer->DetermineChangeSizeL();
break;
case EAknExGridCmdContainText:
iContainer->SelectContents( EContainText );
break;
case EAknExGridCmdContainGraphic:
iContainer->SelectContents( EContainGraphic );
break;
case EAknExGridCmdContainBoth:
iContainer->SelectContents( EContainBoth );
break;
case EAknExGridCmdAbout:
iCoeEnv->ReadResource(
aboutString, R_EXGR_TEXT_ABOUT_SELECTION );
iEikonEnv->AlertWin( aboutString );
break;
case EAknExGridCmdClose: // return to main view
{
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;
}
}
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsSelection::HandleClientRectChange()
// Handles the size of the clientrect.
// -----------------------------------------------------------------------------
//
void CAknExGridViewAsSelection::HandleClientRectChange()
{
if ( iContainer )
{
iContainer->SetRect( ClientRect() );
}
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsMenu::DoActivateL()
// Creates the Container class object.
// -----------------------------------------------------------------------------
//
void CAknExGridViewAsSelection::DoActivateL(
const TVwsViewId& /*aPrevViewId*/, TUid /*aCustomMessageId*/,
const TDesC8& /*aCustomMessage*/ )
{
iContainer = CAknExGridContainerAsSelection::NewL( ClientRect(),
EAknExGridSelectionGrid );
iContainer->SetMopParent( this );
AppUi()->AddToStackL( *this, iContainer );
}
// -----------------------------------------------------------------------------
// CAknExGridViewAsSelection::DoDeactivate()
// Deletes the Container class object.
// -----------------------------------------------------------------------------
//
void CAknExGridViewAsSelection::DoDeactivate()
{
if ( iContainer )
{
AppUi()->RemoveFromStack( iContainer );
}
delete iContainer;
iContainer = NULL;
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -