psln/PslnFramework/src/PslnFWBaseView.cpp
changeset 37 89c890c70182
parent 34 6b5204869ed5
child 45 667edd0b8678
--- a/psln/PslnFramework/src/PslnFWBaseView.cpp	Fri Jun 25 18:53:58 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,423 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Base view for all plugin views.
-*
-*/
-
-
-// INCLUDE FILES
-#include "pslnfwbaseview.h"
-#include "pslnfwbasecontainer.h"
-#include "PslnConst.h"
-#include "PslnDebug.h"
-
-// For Download and Help command handling
-#include <psln.hrh>
-#include <hlplch.h>
-
-// AVKON utilities
-#include <aknnavide.h>
-#include <akntitle.h>
-#include <aknViewAppUi.h>
-#include <akntabgrp.h>
-
-// General Utilities
-#include <barsread.h>
-#include <bautils.h>
-#include <data_caging_path_literals.hrh>
-#include <StringLoader.h>
-
-// Static view locations.
-const TInt KPslnFWGeneralThemeViewLocation = 0;
-
-// ========================= MEMBER FUNCTIONS ================================
-// ---------------------------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------------------------
-EXPORT_C CPslnFWBaseView::CPslnFWBaseView() : iResourceLoader( *iCoeEnv ),
-    iMyTabIndex ( KErrNotFound )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-EXPORT_C CPslnFWBaseView::~CPslnFWBaseView()
-    {
-    iResourceLoader.Close();
-    if ( iContainer )
-        {
-        CAknViewAppUi* appUi = AppUi();
-        if ( appUi )
-            {
-            appUi->RemoveFromStack( iContainer );
-            }
-        delete iContainer;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CPslnFWBaseView::Container
-// ---------------------------------------------------------------------------
-EXPORT_C CPslnFWBaseContainer* CPslnFWBaseView::Container()
-    {
-    return iContainer;
-    }
-
-// ---------------------------------------------------------------------------
-// CPslnFWBaseView::SetCurrentItem
-// ---------------------------------------------------------------------------
-EXPORT_C void CPslnFWBaseView::SetCurrentItem( TInt aIndex )
-    {
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::SetCurrentItem");
-    if ( aIndex > 0 )
-        {
-        iCurrentItem = aIndex;
-        }
-    else
-        {
-        // If invalid index, set to first.
-        iCurrentItem = 0;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CPslnFWBaseView::HandleListBoxEventL
-// ---------------------------------------------------------------------------
-EXPORT_C void CPslnFWBaseView::HandleListBoxEventL( CEikListBox* /*aListBox*/,
-                                                TListBoxEvent aEventType )
-    {
-    switch ( aEventType )
-        {
-        case EEventItemClicked:
-            if ( iContainer && iContainer->iMSKObserver )
-                {
-                iContainer->iMSKObserver->CheckMiddleSoftkeyLabelL();
-                }
-            break;
-        case EEventEnterKeyPressed:
-        case EEventItemDoubleClicked:
-        case EEventItemSingleClicked:
-            HandleListBoxSelectionL();
-            break;
-        default:
-           break;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// Sets navi_pane.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::SetNaviPaneL()
-    {
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::SetNaviPaneL BEGIN");
-    if ( !iNaviControlContainer )
-        {
-        CAknViewAppUi* appUi = AppUi();
-        if ( appUi )
-            {
-            CEikStatusPane* sp = appUi->StatusPane();
-            iNaviControlContainer = static_cast<CAknNavigationControlContainer*>
-                ( sp->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
-            }
-        }
-
-    _LIT( KPanicText, "CPslnFWBaseView" );
-    __ASSERT_DEBUG( iNaviControlContainer, User::Panic( KPanicText, KErrGeneral ) );
-    	        
-    if ( iNaviPaneContext )
-        {
-        iNaviControlContainer->PushL( *iNaviPaneContext );
-        }
-    else
-        {
-        iNaviControlContainer->PushDefaultL();
-        }
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::SetNaviPaneL END");
-    }
-
-// ---------------------------------------------------------------------------
-// CPslnFWBaseView::CreateNaviPaneContextL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::CreateNaviPaneContextL( TInt /*aResourceId*/ )
-    {
-    // Deprecated.
-    }
-
-// ---------------------------------------------------------------------------
-// Sets navi_pane decorator.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::SetNaviPaneDecorator(
-    CAknNavigationDecorator* aDecorator )
-    {
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::SetNaviPaneDecorator");
-    iNaviPaneContext = aDecorator;
-    }
-
-// ---------------------------------------------------------------------------
-// Sets navi_pane and activates a tab.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::SetNaviPaneL( const TInt aTabLocation )
-    {
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::SetNaviPaneL w/ param BEGIN");
-    if ( !iNaviControlContainer )
-        {
-        CAknViewAppUi* appUi = AppUi();
-        if ( appUi )
-            {
-            CEikStatusPane* sp = appUi->StatusPane();
-            iNaviControlContainer = static_cast<CAknNavigationControlContainer*>
-                ( sp->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
-            }
-        }
-    if ( iNaviPaneContext && ( aTabLocation > 0 ) )
-        {
-        CAknTabGroup* tabGrp = static_cast <CAknTabGroup*>
-                    ( iNaviPaneContext->DecoratedControl() );
-        tabGrp->SetActiveTabByIndex( aTabLocation );
-        iNaviControlContainer->PushL( *iNaviPaneContext );
-        }
-    else
-        {
-        iNaviControlContainer->PushDefaultL();
-        }
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::SetNaviPaneL w/ param END");
-    }
-
-// ---------------------------------------------------------------------------
-// Activates the view.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::DoActivateL( const TVwsViewId& aPrevViewId,
-                                        TUid /*aCustomMessageId*/,
-                                        const TDesC8& /*aCustomMessage*/ )
-    {
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::DoActivateL END");
-    iPrevViewId = aPrevViewId;
-    CAknViewAppUi* appUi = AppUi();
-    if ( !iContainer )
-        {
-        CreateContainerL();
-        if ( appUi )
-            {
-            AppUi()->AddToStackL( *this, iContainer );
-            }
-        iContainer->iListBox->SetListBoxObserver( this );
-        }
-
-#ifdef RD_CONTROL_PANEL
-    TInt titlePaneResID = KErrNotFound;
-    SetTitlePaneL( titlePaneResID );
-    // Retrieve title pane and set it.
-    CEikStatusPane* sp = iAvkonAppUi->StatusPane();
-    if ( sp )
-        {
-        CAknTitlePane* titlePane = static_cast<CAknTitlePane*>(
-            sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
-        if ( ( titlePaneResID > KErrNone ) && titlePane )
-            {
-            HBufC* titlePaneText = NULL;
-            titlePaneText = StringLoader::LoadLC( titlePaneResID );
-            titlePane->SetTextL( titlePaneText->Des() );
-            CleanupStack::PopAndDestroy( titlePaneText );
-            }
-        }
-#endif //RD_CONTROL_PANEL
-
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::DoActivateL END");
-    }
-
-// ---------------------------------------------------------------------------
-// Deactivates view.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::DoDeactivate()
-    {
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::DoDeactivate BEGIN");
-    if ( iContainer )
-        {
-        CAknViewAppUi* appUi = AppUi();
-        if ( appUi )
-            {
-            appUi->RemoveFromStack( iContainer );
-            }
-        delete iContainer;
-        iContainer = NULL;
-        }
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::DoDeactivate END");
-    }
-
-// ---------------------------------------------------------------------------
-// Sets the real tab location of the view.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::SetTabIndex( TInt aMyTabIndex )
-    {
-    if ( iNaviPaneContext &&
-         IsValidLocation( aMyTabIndex ) )
-        {
-        CAknTabGroup* tabGrp = static_cast <CAknTabGroup*>
-                    ( iNaviPaneContext->DecoratedControl() );
-        if ( tabGrp && ( tabGrp->TabCount() > aMyTabIndex  ) )
-            {
-            iMyTabIndex = aMyTabIndex;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// Gets the real tab location of the view.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt CPslnFWBaseView::GetTabIndex() const
-    {
-    return iMyTabIndex;
-    }
-
-// ---------------------------------------------------------------------------
-// Creates container.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::CreateContainerL()
-    {
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::CreateContainerL BEGIN");
-    NewContainerL();
-    iContainer->SetMopParent( this );
-
-    CPslnFWBaseContainer* container = iContainer;
-    iContainer = NULL;
-    CleanupStack::PushL( container );
-    container->ConstructL( ClientRect() );
-    CleanupStack::Pop( container );
-    iContainer = container;
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::CreateContainerL END");
-    }
-
-// ---------------------------------------------------------------------------
-// Opens localized resource file from static path.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::OpenLocalizedResourceFileL(
-    const TDesC& aResourceFileName,
-    RConeResourceLoader& aResourceLoader )
-    {
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::OpenLocalizedResourceFileL BEGIN");
-    // Find the resource file:
-    OpenLocalizedResourceFileL(
-        aResourceFileName,
-        aResourceLoader,
-        &KDC_RESOURCE_FILES_DIR );
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::OpenLocalizedResourceFileL END");
-    }
-
-// ---------------------------------------------------------------------------
-// Same as above, except this takes resource path from user.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::OpenLocalizedResourceFileL(
-            const TDesC& aResourceFileName,
-            RConeResourceLoader& aResourceLoader,
-            const TDesC* aPath )
-    {
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::OpenLocalizedResourceFileL 2 BEGIN");
-    // Find the resource file:
-    TParse* parse = new (ELeave) TParse;
-    CleanupStack::PushL( parse );
-    parse->Set( aResourceFileName, aPath, NULL );
-    TFileName* fileName = new (ELeave) TFileName( parse->FullName() );
-    CleanupStack::PushL( fileName );
-
-    // Open resource file:
-    aResourceLoader.OpenL( *fileName );
-
-    CleanupStack::PopAndDestroy( 2, parse ); // fileName, parse
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::OpenLocalizedResourceFileL 2 END");
-    }
-
-// ---------------------------------------------------------------------------
-// Sets middle softkey label.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::SetMiddleSoftKeyLabelL(
-    const TInt aResourceId, const TInt aCommandId )
-    {
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::SetMiddleSoftKeyLabelL BEGIN");
-    CEikButtonGroupContainer* cbaGroup = Cba();
-    if ( cbaGroup )
-        {
-        HBufC* middleSKText = StringLoader::LoadLC( aResourceId );
-        TPtr mskPtr = middleSKText->Des();
-        cbaGroup->AddCommandToStackL(
-            KPslnMSKControlID,
-            aCommandId,
-            mskPtr );
-        CleanupStack::PopAndDestroy( middleSKText );
-        }
-    PSLN_TRACE_DEBUG("CPslnFWBaseView::SetMiddleSoftKeyLabelL END");
-    }
-
-// ---------------------------------------------------------------------------
-// Handles Help command.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::HandleCommandL( TInt aCommand )
-    {
-    CAknViewAppUi* appUi = AppUi();
-    if ( !appUi )
-        {
-        User::Leave( KErrNotFound );
-        }
-    switch( aCommand )
-        {
-        case EAknCmdHelp:
-        case EPslnCmdAppHelp:
-            // launch Help
-            HlpLauncher::LaunchHelpApplicationL(
-                iCoeEnv->WsSession(), appUi->AppHelpContextL());
-            break;
-        default:
-            appUi->HandleCommandL( aCommand );
-            break;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// Set title pane to a view.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPslnFWBaseView::SetTitlePaneL( TInt& /*aResourceId*/ )
-    {
-    // Empty implementation to be overloaded.
-    }
-
-// ----------------------------------------------------------------------------
-// Checks that the location is valid.
-// ----------------------------------------------------------------------------
-//
-TBool CPslnFWBaseView::IsValidLocation( const TInt& aLoc ) const
-    {
-    TBool retVal = ETrue;
-    // First location is always forbidden.
-    if ( aLoc == KPslnFWGeneralThemeViewLocation )
-        {
-        retVal = EFalse;
-        }
-    return retVal;
-    }
-
-//End of File