diff -r f72a12da539e -r 5315654608de widgetmanager/src/wmmaincontainerview.cpp --- a/widgetmanager/src/wmmaincontainerview.cpp Thu Dec 17 08:40:49 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,436 +0,0 @@ -/* -* Copyright (c) 2009 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: -* Implementation of the main container view for WidgetManager application. -* -*/ - -// INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "wmplugin.h" -#include "widgetmanager.hrh" -#include "wmmaincontainerview.h" -#include "wmresourceloader.h" -#include "wmmaincontainer.h" -#include - - -// --------------------------------------------------------- -// CWmMainContainerView::CWmMainContainerView() -// --------------------------------------------------------- -// -CWmMainContainerView::CWmMainContainerView( - CWmPlugin& aWmPlugin ): - iWmPlugin( aWmPlugin ) - { - iWmMainContainer = NULL; - } - -// --------------------------------------------------------- -// CWmMainContainerView::~CWmMainContainerView() -// --------------------------------------------------------- -// -CWmMainContainerView::~CWmMainContainerView() - { - if ( iWmMainContainer != NULL ) - { - AppUi()->RemoveFromViewStack( *this, iWmMainContainer ); - delete iWmMainContainer; - iWmMainContainer = NULL; - } - } - -// --------------------------------------------------------- -// CWmMainContainerView::NewL -// --------------------------------------------------------- -// -CWmMainContainerView* CWmMainContainerView::NewL( - CWmPlugin& aWmPlugin ) - { - CWmMainContainerView* self = CWmMainContainerView::NewLC( - aWmPlugin ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------- -// CWmMainContainerView::NewLC -// --------------------------------------------------------- -// -CWmMainContainerView* CWmMainContainerView::NewLC( - CWmPlugin& aWmPlugin ) - { - CWmMainContainerView* self = - new ( ELeave ) CWmMainContainerView( aWmPlugin ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------- -// CWmMainContainerView::ConstructL -// --------------------------------------------------------- -// -void CWmMainContainerView::ConstructL() - { - BaseConstructL( R_WM_MAIN_CONTAINER_VIEW ); - } - -// --------------------------------------------------------- -// CWmMainContainerView::Id -// --------------------------------------------------------- -// -TUid CWmMainContainerView::Id() const - { - return TUid::Uid( EWmMainContainerViewId ); - } - -// --------------------------------------------------------- -// CWmMainContainerView::HandleCommandL -// --------------------------------------------------------- -// -void CWmMainContainerView::HandleCommandL( TInt aCommand ) - { - if ( !iWmMainContainer->ClosingDown() ) - { - switch ( aCommand ) - { - case EWmMainContainerViewOpenPortalMenuItemCommand: - HandleOpenMenuItemSelectedL(); - break; - case EWmMainContainerViewAddMenuItemCommand: - HandleAddMenuItemSelectedL(); - break; - case EWmMainContainerViewLaunchMenuItemCommand: - HandleLaunchMenuItemSelectedL(); - break; - case EWmMainContainerViewSearchMenuItemCommand: // flow through - case EAknSoftkeySearch: - HandleSearchMenuItemSelectedL(); - break; - case EWmMainContainerViewSortAlphaMenuItemCommand: - HandleSortAlphaMenuItemSelectedL(); - break; - case EWmMainContainerViewUninstallMenuItemCommand: - HandleUninstallMenuItemSelectedL(); - break; - case EWmMainContainerViewHelpMenuItemCommand: - HandleHelpMenuItemSelectedL(); - break; - case EWmMainContainerViewBackMenuItemCommand: // flow through - case EAknSoftkeyBack: - iWmPlugin.Deactivate(); - break; - case EWmMainContainerViewWiddetDetailsMenuItemCommand: - HandleDetailsMenuItemSelectedL(); - break; - case EAknSoftkeySelect: - if ( iWmMainContainer ) - iWmMainContainer->SelectL(); - break; - case EAknSoftkeyCancel: // flow through - case EEikCmdCanceled: - { - HandleDeactivateFindPaneL(); - break; - } - default: - break; - } - } - } - -// --------------------------------------------------------- -// CWmMainContainerView::DoActivateL -// --------------------------------------------------------- -// -void CWmMainContainerView::DoActivateL( - const TVwsViewId& aPrevViewId, - TUid /*aCustomMessageId*/, - const TDesC8& /*aCustomMessage*/ ) - { - if ( iWmMainContainer == NULL ) - { - iWmMainContainer = CreateContainerL(); - iWmMainContainer->SetClosingDown( EFalse ); - iWmMainContainer->SetMopParent( this ); - AppUi()->AddToStackL( *this, iWmMainContainer ); - } - - SetupStatusPaneL(); - - iWmMainContainer->SetExitStatus( KErrNone ); - iWmPlugin.MainViewActivated( aPrevViewId, iWmMainContainer ); - StatusPane()->SwitchLayoutL( - R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ); - StatusPane()->ApplyCurrentSettingsL(); - StatusPane()->DrawNow(); - CEikButtonGroupContainer* bgc( Cba() ); - - CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() ); - if ( cba ) - { - - bgc->SetBoundingRect( TRect() ); - cba->DrawNow(); - } - } - -// --------------------------------------------------------- -// CWmMainContainerView::DoDeactivate -// --------------------------------------------------------- -// -void CWmMainContainerView::DoDeactivate() - { - TInt exitStatus = KErrNone; - if ( iWmMainContainer != NULL ) - { - exitStatus = iWmMainContainer->ExitStatus(); - AppUi()->RemoveFromViewStack( *this, iWmMainContainer ); - delete iWmMainContainer; - iWmMainContainer = NULL; - } - - // display error, if such exists - if ( exitStatus == KHsErrorViewFull || - exitStatus == KHsErrorDoesNotFit ) - { - TRAP_IGNORE( iWmPlugin.ResourceLoader().InfoPopupL( - R_QTN_HS_ADD_WIDGET_NO_SPACE_NOTE, KNullDesC ) ); - } - else if ( exitStatus == KHsErrorMaxInstanceCountExceeded ) - { - TRAP_IGNORE( iWmPlugin.ResourceLoader().InfoPopupL( - R_QTN_HS_ADD_WIDGET_MAX_COUNT_NOTE, KNullDesC ) ); - } - else if ( exitStatus != KErrNone ) - { - iWmPlugin.ResourceLoader().ErrorPopup( exitStatus ); - } - - iWmPlugin.MainViewDeactivated(); - } - -// --------------------------------------------------------- -// CWmMainContainerView::HandleStatusPaneSizeChange -// --------------------------------------------------------- -// -void CWmMainContainerView::HandleStatusPaneSizeChange() - { - CAknView::HandleStatusPaneSizeChange(); - - // this may fail, but we're not able to propagate exceptions here - TVwsViewId view; - AppUi()->GetActiveViewId( view ); - if ( view.iViewUid == Id() ) - { - if ( iWmMainContainer ) - { - iWmMainContainer->SetRect( AppUi()->ClientRect() ); - } - } - - } - -// --------------------------------------------------------- -// CWmMainContainerView::SetupStatusPaneL -// --------------------------------------------------------- -// -void CWmMainContainerView::SetupStatusPaneL() - { - // setup the title pane - TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle ); - CEikStatusPaneBase::TPaneCapabilities subPaneTitle = - StatusPane()->PaneCapabilities( titlePaneUid ); - if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() ) - { - CAknTitlePane* title = static_cast< CAknTitlePane* >( - StatusPane()->ControlL( titlePaneUid ) ); - if ( title ) - { - TResourceReader reader; - iEikonEnv->CreateResourceReaderLC( - reader, R_WM_MAIN_CONTAINER_TITLE_RESOURCE ); - title->SetFromResourceL( reader ); - title->DrawDeferred(); - CleanupStack::PopAndDestroy(); // reader internal state - } - } - } - -// --------------------------------------------------------- -// CWmMainContainerView::CreateContainerL -// --------------------------------------------------------- -// -CWmMainContainer* CWmMainContainerView::CreateContainerL() - { - return CWmMainContainer::NewL( ClientRect(), NULL, this, iWmPlugin ); - } - -// --------------------------------------------------------- -// CWmMainContainerView::DynInitMenuPaneL -// --------------------------------------------------------- -// -void CWmMainContainerView::DynInitMenuPaneL( - TInt aResourceId, CEikMenuPane* aMenuPane ) - { - if ( aResourceId == R_WM_MAIN_CONTAINER_MENU_PANE && - iWmMainContainer ) - { - aMenuPane->SetItemDimmed( EWmMainContainerViewAddMenuItemCommand, - !iWmMainContainer->CanDoAdd() ); - aMenuPane->SetItemDimmed( EWmMainContainerViewWiddetDetailsMenuItemCommand, - !iWmMainContainer->CanDoDetails() ); - aMenuPane->SetItemDimmed( EWmMainContainerViewLaunchMenuItemCommand, - !iWmMainContainer->CanDoLaunch() ); - aMenuPane->SetItemDimmed( EWmMainContainerViewSearchMenuItemCommand, - !iWmMainContainer->CanDoFind() ); - aMenuPane->SetItemDimmed( EWmMainContainerViewSortAlphaMenuItemCommand, - !iWmMainContainer->CanDoSort() ); - aMenuPane->SetItemDimmed( EWmMainContainerViewHelpMenuItemCommand, - !iWmMainContainer->CanDoHelp() ); - aMenuPane->SetItemDimmed( EWmMainContainerViewUninstallMenuItemCommand, - !iWmMainContainer->CanDoUninstall() ); - if ( !iWmMainContainer->PortalSelected() ) - aMenuPane->DeleteMenuItem( EWmMainContainerViewOpenPortalMenuItemCommand ); - if ( !iWmMainContainer->WidgetSelected() ) - aMenuPane->DeleteMenuItem( EWmMainContainerViewAddMenuItemCommand ); - } - } - -// --------------------------------------------------------- -// CWmMainContainerView::HandleOpenMenuItemSelectedL -// --------------------------------------------------------- -// -TBool CWmMainContainerView::HandleOpenMenuItemSelectedL() - { - if ( iWmMainContainer && iWmMainContainer->PortalSelected() ) - { - iWmMainContainer->OpenOviPortalL(); - } - return ETrue; - } - -// --------------------------------------------------------- -// CWmMainContainerView::HandleDetailsMenuItemSelectedL -// --------------------------------------------------------- -// -TBool CWmMainContainerView::HandleDetailsMenuItemSelectedL() - { - if ( iWmMainContainer && iWmMainContainer->WidgetSelected() ) - { - iWmMainContainer->LaunchDetailsDialogL(); - } - return ETrue; - } - -// --------------------------------------------------------- -// CWmMainContainerView::HandleAddMenuItemSelectedL -// --------------------------------------------------------- -// -TBool CWmMainContainerView::HandleAddMenuItemSelectedL() - { - if ( iWmMainContainer && iWmMainContainer->WidgetSelected() ) - { - iWmMainContainer->AddWidgetToHomeScreenL(); - } - return ETrue; - } - -// --------------------------------------------------------- -// CWmMainContainerView::HandleLaunchMenuItemSelectedL -// --------------------------------------------------------- -// -TBool CWmMainContainerView::HandleLaunchMenuItemSelectedL() - { - if ( iWmMainContainer && iWmMainContainer->WidgetSelected() ) - { - iWmMainContainer->LaunchWidgetL(); - } - return ETrue; - } - -// --------------------------------------------------------- -// CWmMainContainerView::HandleSearchMenuItemSelectedL -// --------------------------------------------------------- -// -TBool CWmMainContainerView::HandleSearchMenuItemSelectedL() - { - if ( iWmMainContainer ) - { - iWmMainContainer->ActivateFindPaneL(); - } - return ETrue; - } - -// --------------------------------------------------------- -// CWmMainContainerView::HandleSortAlphaMenuItemSelectedL -// --------------------------------------------------------- -// -TBool CWmMainContainerView::HandleSortAlphaMenuItemSelectedL() - { - if ( iWmMainContainer ) - { - iWmMainContainer->SortListAlphabeticallyL(); - } - return ETrue; - } - -// --------------------------------------------------------- -// CWmMainContainerView::HandleUninstallMenuItemSelectedL -// --------------------------------------------------------- -// -TBool CWmMainContainerView::HandleUninstallMenuItemSelectedL() - { - if ( iWmMainContainer ) - { - iWmMainContainer->UninstallWidgetL(); - } - return ETrue; - } - -// --------------------------------------------------------- -// CWmMainContainerView::HandleHelpMenuItemSelectedL -// --------------------------------------------------------- -// -TBool CWmMainContainerView::HandleHelpMenuItemSelectedL() - { - iWmMainContainer->ShowHelpL(); - return ETrue; - } - -// --------------------------------------------------------- -// CWmMainContainerView::HandleDeactivateFindPaneL -// --------------------------------------------------------- -// -TBool CWmMainContainerView::HandleDeactivateFindPaneL() - { - if ( iWmMainContainer ) - { - iWmMainContainer->DeactivateFindPaneL(); - } - return ETrue; - } - -// End of file