gssettingsuis/Gs/GSFramework/src/GSTabHelper.cpp
branchGCC_SURGE
changeset 45 f48d04161a92
parent 27 572294aa6075
parent 43 3341fe7c643a
--- a/gssettingsuis/Gs/GSFramework/src/GSTabHelper.cpp	Fri Jun 11 16:24:54 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,288 +0,0 @@
-/*
-* Copyright (c) 2005 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:  Utility class for creating tab groups.
-*
-*/
-
-
-// INCLUDE FILES
-#include "gstabhelper.h"
-#include "gstabbedview.h"
-#include "GsLogger.h"
-
-#include <aknappui.h>
-#include <aknnavi.h>
-#include <aknnavide.h>
-#include <akntabgrp.h>
-#include <AknTabObserver.h>
-#include <eikspane.h>
-#include <gulicon.h>
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------------------------
-// CGSTabHelper::CGSTabHelper
-// C++ constructor.
-//
-// ---------------------------------------------------------------------------
-//
-CGSTabHelper::CGSTabHelper()
-    {
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGSTabHelper::NewL()
-// Symbian OS two-phased constructor.
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CGSTabHelper* CGSTabHelper::NewL()
-    {
-    CGSTabHelper* self = NewLC();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGSTabHelper::NewLC()
-// Symbian OS two-phased constructor.
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CGSTabHelper* CGSTabHelper::NewLC()
-    {
-    CGSTabHelper* self = new(ELeave) CGSTabHelper();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGSTabHelper::ConstructL(const TRect& aRect)
-// Symbian OS default constuctor.
-//
-// ---------------------------------------------------------------------------
-//
-void CGSTabHelper::ConstructL()
-    {
-    iNaviDecorator = NULL;
-
-    iAppUi =  static_cast<CAknViewAppUi*>( CCoeEnv::Static()->AppUi() );
-
-    CEikStatusPane* statusPane = iAppUi->StatusPane();
-
-    // Fetch pointer to the default navi pane container:
-    iNaviContainer = static_cast<CAknNavigationControlContainer*>
-        ( statusPane->ControlL( TUid::Uid(EEikStatusPaneUidNavi ) ) );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGSTabHelper::~CGSTabHelper()
-// Destructor
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CGSTabHelper::~CGSTabHelper()
-    {
-    RemoveTabGroup();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CGSTabHelper::CreateTabGroupL()
-//
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGSTabHelper::CreateTabGroupL( TUid aActiveViewUid,
-                                             MGSTabbedViewOwner* aTabOwner )
-    {
-    iTabOwner = aTabOwner;
-    CreateTabGroupL( aActiveViewUid, iTabOwner->TabbedViews() );
-    }
-
-// ---------------------------------------------------------------------------
-// CGSTabHelper::CreateTabGroupL()
-//
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CGSTabHelper::CreateTabGroupL(
-    TUid aActiveViewUid,
-    CArrayPtrFlat<CGSPluginInterface>* aTabbedViews )
-    {
-    RemoveTabGroup();//Remove possible old tab group.
-    iNaviDecorator = iNaviContainer->CreateTabGroupL( this );
-    iTabGroup =
-        static_cast<CAknTabGroup*> ( iNaviDecorator->DecoratedControl() );
-
-    switch ( aTabbedViews->Count() )
-        {
-        case 1:
-            iTabGroup->SetTabFixedWidthL( KTabWidthWithOneTab );
-            break;
-        case 2:
-            iTabGroup->SetTabFixedWidthL( KTabWidthWithTwoTabs );
-            break;
-        case 3:
-            iTabGroup->SetTabFixedWidthL( KTabWidthWithThreeTabs );
-            break;
-        default:
-            iTabGroup->SetTabFixedWidthL( KTabWidthWithFourTabs );
-            break;
-        }
-
-    for( TInt i = 0; i < aTabbedViews->Count(); i++ )
-        {
-        CGSPluginInterface* tabbedView = aTabbedViews->operator[]( i );
-        CGulIcon* icon = NULL;
-        TRAPD
-            (
-            err,
-            icon = tabbedView->CreateIconL( KGSIconTypeTab );
-            )
-
-        // CreateIconL should not leave outside. If creating icon leaves, use
-        // default icon.
-        if( err != KErrNone )
-            {
-            __GSLOGSTRING2(
-                "[CGSTabHelper] ERROR: 0x%X::CreateIconL failed (%d), using default icon.",
-                tabbedView->Id().iUid, err );
-
-            icon =
-                tabbedView->CGSPluginInterface::CreateIconL( KGSIconTypeTab );
-            }
-        CleanupStack::PushL( icon );
-        iTabGroup->AddTabL( tabbedView->Id().iUid,
-                           icon->Bitmap(),
-                           icon->Mask() );
-
-        // Bitmaps are now owned by the tab:
-        icon->SetBitmapsOwnedExternally( ETrue );
-
-        // Delete icon object. Bitmaps are not owned by icon anymore and thus
-        // not deleted:
-        CleanupStack::PopAndDestroy( icon );
-        }
-
-    iNaviContainer->PushL( *iNaviDecorator );
-
-    // The active tab should be same as active plugin
-    iTabGroup->SetActiveTabById( aActiveViewUid.iUid );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGSTabHelper::CreateTabGroupL()
-//
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CGSTabHelper::CreateTabGroupL(
-    TUid aActiveViewUid,
-    CArrayPtrFlat<MGSTabbedView>* aTabbedViews )
-    {
-    RemoveTabGroup();//Remove possible old tab group.
-    iNaviDecorator = iNaviContainer->CreateTabGroupL( this );
-    iTabGroup =
-        static_cast<CAknTabGroup*> ( iNaviDecorator->DecoratedControl() );
-
-    switch ( aTabbedViews->Count() )
-        {
-        case 1:
-            iTabGroup->SetTabFixedWidthL( KTabWidthWithOneTab );
-            break;
-        case 2:
-            iTabGroup->SetTabFixedWidthL( KTabWidthWithTwoTabs );
-            break;
-        case 3:
-            iTabGroup->SetTabFixedWidthL( KTabWidthWithThreeTabs );
-            break;
-        default:
-            iTabGroup->SetTabFixedWidthL( KTabWidthWithFourTabs );
-            break;
-        }
-
-    for( TInt i = 0; i < aTabbedViews->Count(); i++ )
-        {
-        MGSTabbedView* tabbedView = aTabbedViews->operator[]( i );
-
-         // Takes icon ownership
-        CGulIcon* icon = tabbedView->CreateTabIconL();
-        CleanupStack::PushL( icon );
-
-
-        iTabGroup->AddTabL( tabbedView->Id().iUid,
-                           icon->Bitmap(),
-                           icon->Mask() );
-
-        //Bitmaps are now owned by the tab:
-        icon->SetBitmapsOwnedExternally( ETrue );
-
-        // Delete icon object. Bitmaps are not owned by icon anymore and thus
-        // not deleted:
-        CleanupStack::PopAndDestroy( icon );
-        }
-
-    iNaviContainer->PushL( *iNaviDecorator );
-
-    // The active tab should be same as active plugin
-    iTabGroup->SetActiveTabById( aActiveViewUid.iUid );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGSTabHelper::RemoveTabGroup()
-//
-// Removes the tab group owned by this class from navi pane.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CGSTabHelper::RemoveTabGroup()
-    {
-    if( iNaviDecorator )
-        {
-        iNaviContainer->Pop( iNaviDecorator );
-        delete iNaviDecorator;
-        iNaviDecorator = NULL;
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGSTabHelper::TabChangedL()
-//
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CGSTabHelper::TabChangedL( TInt aIndex )
-    {
-    TUid uid;
-    uid.iUid = iTabGroup->TabIdFromIndex( aIndex );
-
-    // If has a tab owner, notify it:
-    if( iTabOwner )
-        {
-        iTabOwner->TabChangedL( uid );
-        }
-
-    iAppUi->ActivateLocalViewL( uid );
-    }
-
-
-//  End of File