browserui/browser/BrowserAppSrc/BrowserWindowSelectionView.cpp
changeset 51 48e827313edd
parent 37 481242ead638
child 53 f427d27b98d8
--- a/browserui/browser/BrowserAppSrc/BrowserWindowSelectionView.cpp	Tue Feb 02 00:12:41 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,370 +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 the License "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 CBrowserWindowSelectionView.
-*
-*
-*/
-
-
-// INCLUDE FILES
-#include <aknviewappui.h>
-#include <avkon.hrh>
-#include <BrowserNG.rsg>
-#include <FeatMgr.h>
-#include <avkon.RSG>
-#include <eikbtgpc.h>
-#include <akntabgrp.h>
-#include <aknnavi.h>
-#include <brctlinterface.h>
-#include <brctldefs.h>
-#include "BrowserAppUi.h"
-#include "CommonConstants.h"
-#include "BrowserWindowSelectionView.h"
-#include "BrowserWindowSelectionContainer.h" 
-#include "Preferences.h"
-#include "Display.h"
-#include "BrowserWindowManager.h"
-#include "BrowserWindow.h"
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ----------------------------------------------------------------------------
-// CBrowserWindowSelectionView::NewLC
-// ----------------------------------------------------------------------------
-//
-CBrowserWindowSelectionView* CBrowserWindowSelectionView::NewLC( MApiProvider& aApiProvider )
-    {
-    CBrowserWindowSelectionView* view = new (ELeave) CBrowserWindowSelectionView( aApiProvider );
-    CleanupStack::PushL( view );
-    view->ConstructL( );    
-    return view;
-    }
-    
-// ---------------------------------------------------------
-// CBrowserWindowSelectionView::CBrowserWindowSelectionView
-// ---------------------------------------------------------
-//
-CBrowserWindowSelectionView::CBrowserWindowSelectionView( MApiProvider& aApiProvider ):
-CBrowserViewBase( aApiProvider )
-    {
-    }
-        
-// ---------------------------------------------------------
-// CBrowserWindowSelectionView::ConstructL(const TRect& aRect)
-// EPOC two-phased constructor
-// ---------------------------------------------------------
-//
-void CBrowserWindowSelectionView::ConstructL()
-    {
-    BaseConstructL( R_BROWSERWINDOWSELECTION_VIEW );    
-    iTitles = new (ELeave) CArrayFixFlat<HBufC*>( 2 );
-    iWindowIds = new (ELeave) CArrayFixFlat<TInt>( 2 );
-    }
-
-// ---------------------------------------------------------
-// CBrowserWindowSelectionView::~CBrowserWindowSelectionView()
-// destructor
-// ---------------------------------------------------------
-//
-CBrowserWindowSelectionView::~CBrowserWindowSelectionView()
-    {
-    if ( iContainer )
-        {
-        AppUi()->RemoveFromViewStack( *this, iContainer );
-        }
-
-    delete iContainer;
-    delete iWindowInfo;
-    delete iTitles;
-    delete iWindowIds;
-    }
-
-// ---------------------------------------------------------
-// TUid CBrowserWindowSelectionView::Id()
-//
-// ---------------------------------------------------------
-//
-TUid CBrowserWindowSelectionView::Id() const
-    {
-    return KUidBrowserWindowSelectionViewId;
-    }
-    
-// ---------------------------------------------------------------------------
-// CBrowserWindowSelectionView::CommandSetResourceIdL
-// ---------------------------------------------------------------------------
-TInt CBrowserWindowSelectionView::CommandSetResourceIdL()
-    {
-    TInt commandSet = 0; // R_AVKON_SOFTKEYS_EMPTY;
-    return commandSet;
-    }  
-    
-// ---------------------------------------------------------
-// CBrowserWindowSelectionView::HandleCommandL()
-// ---------------------------------------------------------
-//
-void CBrowserWindowSelectionView::HandleCommandL(TInt aCommand)
-    {   
-    switch ( aCommand )
-        {
-        case EAknCmdOpen:
-            {
-            TInt windowId = GetWindowIdFromTabIndex( iContainer->GetTabGroup()->ActiveTabIndex() );
-            ApiProvider().WindowMgr().SwitchWindowL( windowId );
-            //If the user switches window we reset the CalledFromAnotherApp status
-        	if(ApiProvider().CalledFromAnotherApp())
-            	{
-            	ApiProvider().SetCalledFromAnotherApp(EFalse);
-            	}
-            ApiProvider().SetViewToBeActivatedIfNeededL( GetPreviousViewID() );
-            break;                
-            }
-        case EWmlCmdCloseWindow:
-            {            
-            TInt windowId = GetWindowIdFromTabIndex( iContainer->GetTabGroup()->ActiveTabIndex() );
-            TInt newWindowId = ApiProvider().WindowMgr().DeleteWindowL( windowId, EFalse );
-            
-            // Check if there is only one remaining window,
-            // after closing the window.
-            delete iWindowInfo;
-            iWindowInfo = NULL;
-            iWindowInfo = ApiProvider().WindowMgr().GetWindowInfoL( this );
-            if ( iWindowInfo->Count() < 2 )
-                {
-                ApiProvider().SetViewToBeActivatedIfNeededL( KUidBrowserContentViewId );
-                ApiProvider().WindowMgr().SwitchWindowL( newWindowId );                
-                }
-            break;                
-            }            
-        case EWmlCmdCloseAllWindowButThis:
-            {
-            iWindowEventsDisabled = ETrue;
-            // Get current window id.
-            TInt windowId = GetWindowIdFromTabIndex( iContainer->GetTabGroup()->ActiveTabIndex() );
-            // Get all windows id.
-            delete iWindowInfo;
-            iWindowInfo = NULL;
-            iWindowInfo = ApiProvider().WindowMgr().GetWindowInfoL( this );
-            
-            // Delete all windows except this.            
-            for ( TInt i = 0; i < iWindowInfo->Count(); i++ )
-                {                
-                if ( (*iWindowInfo)[i]->iWindowId != windowId )
-                    {
-                    ApiProvider().WindowMgr().DeleteWindowL( (*iWindowInfo)[i]->iWindowId, ETrue );                    
-                    }                    
-                }
-            // Activate curent window.
-            ApiProvider().SetViewToBeActivatedIfNeededL( KUidBrowserContentViewId );
-            ApiProvider().WindowMgr().SwitchWindowL( windowId );
-            iWindowEventsDisabled = EFalse;            
-            break;                
-            }            
-        case EWmlCmdWindowSelectionCancel:
-            {
-            ApiProvider().SetViewToBeActivatedIfNeededL( KUidBrowserContentViewId );
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// CBrowserWindowSelectionView::HandleClientRectChange()
-// ---------------------------------------------------------
-//
-void CBrowserWindowSelectionView::HandleClientRectChange()
-    {
-    if ( iContainer )
-        {
-        iContainer->SetRect( ClientRect() );
-        }
-    }
-
-// ---------------------------------------------------------
-// CBrowserWindowSelectionView::DoActivateL(...)
-// 
-// ---------------------------------------------------------
-//
-void CBrowserWindowSelectionView::DoActivateL( const TVwsViewId& aPrevViewId,TUid /*aCustomMessageId*/,
-                                               const TDesC8& /*aCustomMessage*/)
-    {    
-    StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL );
-    StatusPane()->MakeVisible( ETrue );
-
-    iPreviousViewID = ApiProvider().LastActiveViewId( );
-    ApiProvider().SetLastActiveViewId( Id() );
-    iLastViewId = aPrevViewId;
-    if (!iContainer)
-        {
-        iContainer = new (ELeave) CBrowserWindowSelectionContainer( this );
-        iContainer->SetMopParent(this);
-        iContainer->ConstructL( ClientRect() );
-        AppUi()->AddToStackL( *this, iContainer );
-        UpdateTabsL();
-        }
-    ApiProvider().WindowMgr().AddObserverL( this );        
-    }
-
-// ---------------------------------------------------------
-// CBrowserWindowSelectionView::DoDeactivate()
-// ---------------------------------------------------------
-//
-void CBrowserWindowSelectionView::DoDeactivate()
-    {
-    if ( iContainer )
-        {
-        AppUi()->RemoveFromViewStack( *this, iContainer );
-        }
-    
-    delete iContainer;
-    iContainer = NULL;
-    ApiProvider().WindowMgr().RemoveObserver( this );    
-    }
-
-// ---------------------------------------------------------
-// CBrowserWindowSelectionView::CreateWindowInfoLC()
-// ---------------------------------------------------------
-//    
-HBufC* CBrowserWindowSelectionView::CreateWindowInfoLC( const CBrowserWindow& aWindow )
-    {
-    HBufC* buf = aWindow.BrCtlInterface().PageInfoLC( TBrCtlDefs::EPageInfoTitle );
-    if( !buf || !buf->Length() )
-        {
-        CleanupStack::PopAndDestroy( buf );
-        buf = aWindow.BrCtlInterface().PageInfoLC( TBrCtlDefs::EPageInfoUrl );
-        }
-    return buf;
-    }
-
-// ---------------------------------------------------------
-// CBrowserWindowSelectionView::UpdateTabs()
-// ---------------------------------------------------------
-//        
-void CBrowserWindowSelectionView::UpdateTabsL()
-    {
-    delete iWindowInfo;
-    iWindowInfo = NULL;
-    iWindowInfo = ApiProvider().WindowMgr().GetWindowInfoL( this );
-
-    iTitles->Reset();
-    iWindowIds->Reset();
-    TInt activeTab = 0;
-    for ( TInt i = 0; i < iWindowInfo->Count(); i++ )
-        {
-        iTitles->AppendL( CONST_CAST( HBufC*, (*iWindowInfo)[i]->iWindowText ) );
-        iWindowIds->AppendL( (*iWindowInfo)[i]->iWindowId );
-        if ( (*iWindowInfo)[i]->iCurrent )
-            {
-            activeTab = i;
-            HBufC* title = CONST_CAST( HBufC*, (*iWindowInfo)[i]->iWindowText );
-            if ( title )
-                {
-                ApiProvider().Display().SetTitleL( title->Des() );
-                }                
-            }
-        }
-    iContainer->ChangeTabL( iTitles, activeTab );
-    }
-    
-    
-// ---------------------------------------------------------
-// CBrowserWindowSelectionView::UpdateTabs()
-// ---------------------------------------------------------
-//        
-void CBrowserWindowSelectionView::UpdateTumbnailL()
-    {
-    TInt windowId = GetWindowIdFromTabIndex( iContainer->GetTabGroup()->ActiveTabIndex() );
-    iContainer->GetWindowThumbnailL( windowId );
-    iContainer->DrawNow();
-    }
-    
-// ---------------------------------------------------------
-// CBrowserWindowSelectionView::UpdateTitleL()
-// ---------------------------------------------------------
-//        
-void CBrowserWindowSelectionView::UpdateTitleL( )
-    {    
-    HBufC* title = GetWindowTitleFromTabIndex( iContainer->GetTabGroup()->ActiveTabIndex() );
-    ApiProvider().Display().SetTitleL( (*title).Des( ) );
-    }
-    
-// -----------------------------------------------------------------------------
-// CBrowserWindowSelectionView::GetWindowIdFromTabIndex
-// -----------------------------------------------------------------------------
-//
-TInt CBrowserWindowSelectionView::GetWindowIdFromTabIndex( TInt aActiveTabIndex )
-    {
-    TInt windowId = 0;
-    for ( TInt i = 0; i < iWindowIds->Count(); i++ )
-        {
-        if ( i ==  aActiveTabIndex ) 
-            {
-            windowId = (*iWindowInfo)[i]->iWindowId;
-            }
-        }
-    return windowId;
-    }
-
-// -----------------------------------------------------------------------------
-// CBrowserWindowSelectionView::GetWindowIdFromTabIndex
-// -----------------------------------------------------------------------------
-//
-HBufC* CBrowserWindowSelectionView::GetWindowTitleFromTabIndex( TInt aActiveTabIndex )
-    {
-    HBufC*  windowText = NULL;
-    for ( TInt i = 0; i < iWindowInfo->Count(); i++ )
-        {        
-        if ( i ==  aActiveTabIndex ) 
-            {
-            windowText = CONST_CAST( HBufC*, (*iWindowInfo)[i]->iWindowText );
-            }
-        }
-    return windowText;
-    }
-
-// ---------------------------------------------------------
-// CBrowserWindowSelectionView::WindowEventHandlerL
-// ---------------------------------------------------------
-//
-void CBrowserWindowSelectionView::WindowEventHandlerL( TWindowEvent aEvent, TInt /*aWindowId*/ )
-    {
-    if ( !iWindowEventsDisabled )
-        {            
-        if ( aEvent == EWindowClose || aEvent == EWindowOpen )
-            {
-            delete iWindowInfo;
-            iWindowInfo = NULL;
-            iWindowInfo = ApiProvider().WindowMgr().GetWindowInfoL( this );
-            // Update tabs when there are more than one windows open.
-            if ( iWindowInfo->Count() > 1 )
-                {        
-                UpdateTabsL();
-                }            
-            }            
-        if ( aEvent == EWindowLoadStart )
-            {
-            iEikonEnv->InfoMsg( _L("load start") );
-            }            
-        if ( aEvent == EWindowLoadStop )
-            {
-            iEikonEnv->InfoMsg( _L("load stop") );
-            }            
-        }
-    }
-        
-// End of File