diff -r 6b5204869ed5 -r 89c890c70182 psln/Src/PslnBaseView.cpp --- a/psln/Src/PslnBaseView.cpp Fri Jun 25 18:53:58 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,294 +0,0 @@ -/* -* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Provides Psln Application Base view methods. -* -*/ - - -// INCLUDE FILES - -#include "PslnBaseView.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "PslnFeatures.h" -#include "PslnUi.h" -#include "PslnBaseContainer.h" -#include "PslnConst.h" - -// ========================= MEMBER FUNCTIONS ================================ -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -CPslnBaseView::CPslnBaseView() - { - iPslnUi = static_cast( AppUi() ); - - if ( !iModel ) - { - iModel = iPslnUi->Model(); - } - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CPslnBaseView::~CPslnBaseView() - { - if ( iContainer ) - { - iPslnUi->RemoveFromStack( iContainer ); - delete iContainer; - } - if ( iNaviPaneContext && - iNaviPaneContext != iPslnUi->PslnTabGroup() ) - { - delete iNaviPaneContext; - } - } - -// --------------------------------------------------------------------------- -// CPslnBaseView::HandleListBoxEventL -// --------------------------------------------------------------------------- -// -void CPslnBaseView::HandleListBoxEventL( - CEikListBox* /*aListBox*/, TListBoxEvent aEventType) - { - switch ( aEventType ) - { - case EEventItemClicked: - case EEventFlickStopped: - if ( iContainer && iContainer->GetMiddleSoftkeyObserver() ) - { - iContainer->GetMiddleSoftkeyObserver()->CheckMiddleSoftkeyLabelL(); - } - HandleListBoxItemHighlightL(); - break; - case EEventEnterKeyPressed: - case EEventItemDoubleClicked: - case EEventItemSingleClicked: - HandleListBoxSelectionL(); - break; - case EEventPenDownOnItem: - HandleListBoxStylusDown(); - break; - case EEventItemDraggingActioned: - HandleListBoxStylusDrag(); - break; - default: - break; - } - } - -// --------------------------------------------------------------------------- -// CPslnBaseView::DoActivateL -// Activates the view. -// --------------------------------------------------------------------------- -// -void CPslnBaseView::DoActivateL( const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, const TDesC8& /*aCustomMessage*/ ) - { - if( aPrevViewId.iViewUid == Id() && - aPrevViewId.iAppUid == KUidPsln )//same view? - { - //if continuous activate same view twice,direct return,do nothing - return; - } - - if( iContainer ) - { - RemoveContainer(); - } - - CreateContainerL(); - iPslnUi->AddToStackL( *this, iContainer ); - iContainer->SetListBoxObserver( this ); - - SetNaviPaneL(); - TInt titlePaneResourceID = KErrNone; - SetTitlePaneL( titlePaneResourceID ); - // Retrieve title pane and set it. - CEikStatusPane* sp = iAvkonAppUi->StatusPane(); - if ( sp ) - { - CAknTitlePane* titlePane = static_cast( - sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); - if ( ( titlePaneResourceID > KErrNone ) && titlePane ) - { - HBufC* titlePaneText = NULL; - titlePaneText = StringLoader::LoadLC( titlePaneResourceID ); - titlePane->SetTextL( titlePaneText->Des() ); - CleanupStack::PopAndDestroy( titlePaneText ); - } - } - - CEikButtonGroupContainer* cba = Cba(); - if (cba) - { - TInt id = CbaResourceId( aPrevViewId, aCustomMessageId ); - cba->SetCommandSetL( id ); - cba->DrawDeferred(); - } - } - -// --------------------------------------------------------------------------- -// CPslnBaseView::DoDeactivate -// --------------------------------------------------------------------------- -// -void CPslnBaseView::DoDeactivate() - { - if ( iContainer ) - { - iCurrentItem = iContainer->CurrentItemIndex(); - RemoveContainer(); - } - } - -// --------------------------------------------------------------------------- -// CPslnBaseView::CreateContainerL() -// --------------------------------------------------------------------------- -// -void CPslnBaseView::CreateContainerL() - { - NewContainerL(); - iContainer->SetMopParent( this ); - - CPslnBaseContainer* container = iContainer; - iContainer = NULL; - CleanupStack::PushL( container ); - container->ConstructL( ClientRect() ); - CleanupStack::Pop( container ); - iContainer = container; - } - -// --------------------------------------------------------------------------- -// CPslnBaseView::SetNaviPaneL -// --------------------------------------------------------------------------- -// -void CPslnBaseView::SetNaviPaneL() - { -#ifndef RD_CONTROL_PANEL - CAknNavigationControlContainer* naviPane = iPslnUi->NaviContainer(); - if ( !naviPane ) - { - return; - } - if ( iNaviPaneContext ) - { - iPslnUi->NaviContainer()->PushL( *iNaviPaneContext ); - - if ( iNaviPaneContext == iPslnUi->PslnTabGroup() ) - { - iPslnUi->UpdateTabIndex(); - } - } - else - { - iPslnUi->NaviContainer()->PushDefaultL(); - } -#else - iPslnUi->NaviContainer()->PushDefaultL(); -#endif //RD_CONTROL_PANEL - } - -// --------------------------------------------------------------------------- -// Sets middle softkey label. -// --------------------------------------------------------------------------- -// -void CPslnBaseView::SetMiddleSoftKeyLabelL( - const TInt aResourceId, const TInt aCommandId ) - { - CEikButtonGroupContainer* cbaGroup = Cba(); - if ( cbaGroup ) - { - HBufC* middleSKText = StringLoader::LoadLC( aResourceId ); - TPtr mskPtr = middleSKText->Des(); - cbaGroup->AddCommandToStackL( - KPslnMSKControlID, - aCommandId, - mskPtr ); - CleanupStack::PopAndDestroy( middleSKText ); - } - } - -// --------------------------------------------------------------------------- -// Removes Help if it is not supported. -// --------------------------------------------------------------------------- -// -void CPslnBaseView::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ) - { - if ( aResourceId == R_PSLN_BASIC_MENUPANE ) - { - if( !PslnFeatures::IsHelpSupported() ) - { - // Disable help if not supported - aMenuPane->SetItemDimmed( EPslnCmdAppHelp, ETrue ); - } - } - } - -// --------------------------------------------------------------------------- -// Whether to set right softkey as exit -// --------------------------------------------------------------------------- -// -TInt CPslnBaseView::CbaResourceId(const TVwsViewId& /*aPrevViewId*/,TUid /*aCustomMessageId*/ ) - { - return R_AVKON_SOFTKEYS_OPTIONS_BACK; - } - -// ----------------------------------------------------------------------------- -// Handle listbox stylus move event. -// ----------------------------------------------------------------------------- -// -void CPslnBaseView::HandleListBoxStylusDown() - { - } - -// ----------------------------------------------------------------------------- -// Handle listbox stylus move event. -// ----------------------------------------------------------------------------- -// -void CPslnBaseView::HandleListBoxStylusDrag() - { - } - -// --------------------------------------------------------------------------- -// Removes container. -// --------------------------------------------------------------------------- -// -void CPslnBaseView::RemoveContainer() - { - if ( iPslnUi ) - { - iPslnUi->RemoveFromStack( iContainer ); - } - delete iContainer; - iContainer = NULL; - } - -//End of File