browserui/browser/BrowserAppSrc/BrowserContentViewToolbar.cpp
changeset 0 84ad3b177aa3
child 1 57d5b8e231c4
equal deleted inserted replaced
-1:000000000000 0:84ad3b177aa3
       
     1 /*
       
     2 * Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *      Helper class that handles the toolbar
       
    16 *      
       
    17 *
       
    18 */
       
    19 
       
    20 
       
    21 // INCLUDE FILES
       
    22 
       
    23 #include "BrowserContentView.h"
       
    24 #include "BrowserContentViewToolbar.h"
       
    25 #include "BrowserContentViewContainer.h"
       
    26 #include "BrowserWindowManager.h"
       
    27 #include "BrowserWindow.h"
       
    28 #include "ApiProvider.h"
       
    29 #include "Preferences.h"
       
    30 #include <AknToolbar.h>
       
    31 #ifdef RD_SCALABLE_UI_V2 
       
    32 #include <AknToolbarExtension.h>
       
    33 #include "BrowserUiVariant.hrh"
       
    34 #endif
       
    35 #include <aknutils.h>
       
    36 #include <BrctlInterface.h>
       
    37 #include "BrowserAppUi.h"
       
    38 #include <gulicon.h>
       
    39 #include <browser.mbg>
       
    40 #include <data_caging_path_literals.hrh> 
       
    41 #include <aknsutils.h> 
       
    42 
       
    43 // ================= MEMBER FUNCTIONS =========================================
       
    44 
       
    45 // ----------------------------------------------------------------------------
       
    46 // CBrowserContentViewToolbar::CBrowserContentViewToolbar
       
    47 // ----------------------------------------------------------------------------
       
    48 //
       
    49 CBrowserContentViewToolbar::CBrowserContentViewToolbar(CBrowserContentView* aBrowserContentView)
       
    50     {
       
    51     iBrowserContentView = aBrowserContentView;
       
    52     }
       
    53 
       
    54 // ----------------------------------------------------------------------------
       
    55 // CBrowserContentViewToolbar::ConstructL
       
    56 // ----------------------------------------------------------------------------
       
    57 //
       
    58 void CBrowserContentViewToolbar::ConstructL()
       
    59     {
       
    60 #ifdef RD_SCALABLE_UI_V2
       
    61     // Do not move this code back to UpdateButtonsStateL.
       
    62     // Avkon does not allow hiding buttons when the extended toolbar is visible.
       
    63     TBool embeddedMode = iBrowserContentView->ApiProvider().IsEmbeddedModeOn();
       
    64     TBool embeddedOperatorMenu = CBrowserAppUi::Static()->IsEmbeddedInOperatorMenu();
       
    65     iBrowserContentView->Toolbar()->ToolbarExtension()->HideItemL( EWmlCmdShowSubscribeList, embeddedMode );
       
    66     iBrowserContentView->Toolbar()->ToolbarExtension()->HideItemL( EWmlCmdOpenFeedsFolder, embeddedMode );
       
    67     iBrowserContentView->Toolbar()->ToolbarExtension()->HideItemL( EWmlCmdFavourites, (embeddedMode || embeddedOperatorMenu) );
       
    68     iBrowserContentView->Toolbar()->ToolbarExtension()->HideItemL( EWmlCmdSaveAsBookmark, embeddedOperatorMenu );
       
    69     iBrowserContentView->Toolbar()->ToolbarExtension()->HideItemL( EWmlCmdLaunchHomePage, (embeddedMode || embeddedOperatorMenu) );
       
    70 #endif
       
    71     }
       
    72 
       
    73 // ----------------------------------------------------------------------------
       
    74 // CBrowserContentViewToolbar::NewL
       
    75 // ----------------------------------------------------------------------------
       
    76 //
       
    77 CBrowserContentViewToolbar* CBrowserContentViewToolbar::NewL(CBrowserContentView* aBrowserContentView)
       
    78     {
       
    79     CBrowserContentViewToolbar *self = new CBrowserContentViewToolbar(aBrowserContentView);
       
    80     CleanupStack::PushL(self);
       
    81     self->ConstructL();
       
    82     CleanupStack::Pop();
       
    83     return self;
       
    84     }
       
    85 
       
    86 // ----------------------------------------------------------------------------
       
    87 // CBrowserContentViewToolbar::~CBrowserContentViewToolbar
       
    88 // ----------------------------------------------------------------------------
       
    89 //
       
    90 CBrowserContentViewToolbar::~CBrowserContentViewToolbar()
       
    91     {
       
    92     }
       
    93 
       
    94 // ----------------------------------------------------------------------------
       
    95 // CBrowserContentViewToolbar::UpdateButtonsStateBasicL
       
    96 // ----------------------------------------------------------------------------
       
    97 //
       
    98 void CBrowserContentViewToolbar::UpdateButtonsStateL()
       
    99     {
       
   100     TBool historyView = iBrowserContentView->IsHistoryViewUp();
       
   101     TBool findKeywordPane = iBrowserContentView->Container()->FindKeywordPane()->IsVisible();
       
   102     TBool pageOverview = iBrowserContentView->IsMiniatureViewUp();
       
   103     TBool zoomSlider = iBrowserContentView->ZoomSliderVisible();
       
   104     TBool contentDisplayed = iBrowserContentView->ApiProvider().ContentDisplayed();
       
   105     TBool wmlMode = iBrowserContentView->ApiProvider().WindowMgr().CurrentWindow()->WMLMode();
       
   106     TBool DimHomePage = iBrowserContentView->ApiProvider().IsLaunchHomePageDimmedL();
       
   107 
       
   108     
       
   109     // Extended Toolbar
       
   110     iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdToolbarExtensionContentView, 
       
   111             (pageOverview), ETrue );
       
   112     iBrowserContentView->Toolbar()->HideItem( EWmlCmdToolbarExtensionContentView, 
       
   113             (historyView || findKeywordPane), ETrue );
       
   114     // Goto Url
       
   115     iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdGoToAddress, 
       
   116             (pageOverview), ETrue );
       
   117     iBrowserContentView->Toolbar()->HideItem( EWmlCmdGoToAddress, 
       
   118             (historyView || findKeywordPane), ETrue );
       
   119 
       
   120     // Zoom Slider button
       
   121     iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdZoomSliderShow, 
       
   122                 ( !contentDisplayed || pageOverview || wmlMode ), ETrue );
       
   123 
       
   124     // History buttons
       
   125     iBrowserContentView->Toolbar()->HideItem( EWmlCmdHistoryBack, (!historyView), ETrue );
       
   126     iBrowserContentView->Toolbar()->HideItem( EWmlCmdHistoryForward, (!historyView), ETrue );
       
   127     
       
   128     if ( historyView )
       
   129         {
       
   130            iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdHistoryForward, EFalse, ETrue );                        
       
   131            iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdHistoryBack, EFalse, ETrue );                            
       
   132         if(iBrowserContentView->IsHistoryAtEnd())
       
   133             {
       
   134             iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdHistoryForward, ETrue, ETrue );            
       
   135             }
       
   136         if (iBrowserContentView->IsHistoryAtBeginning())
       
   137             {
       
   138             iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdHistoryBack, ETrue, ETrue );        
       
   139             }        
       
   140         }
       
   141     
       
   142     // Find keyword buttons     
       
   143     iBrowserContentView->Toolbar()->HideItem( EWmlCmdFindNext, (!findKeywordPane), ETrue ); 
       
   144     iBrowserContentView->Toolbar()->HideItem( EWmlCmdFindPrevious, (!findKeywordPane), ETrue );   
       
   145 
       
   146     iBrowserContentView->Toolbar()->SetItemDimmed( EWmlNoCmd, ETrue, ETrue );
       
   147     iBrowserContentView->Toolbar()->HideItem( EWmlNoCmd, (!(historyView || findKeywordPane)), ETrue );
       
   148 
       
   149     // Extended Toolbar
       
   150 #ifdef RD_SCALABLE_UI_V2
       
   151     CBrCtlInterface& brctl = iBrowserContentView->ApiProvider().BrCtlInterface();
       
   152     TBool subscribeToItems(EFalse);
       
   153     TRAPD(err, const RPointerArray<TBrCtlSubscribeTo>& items = brctl.SubscribeToMenuItemsL();
       
   154                 subscribeToItems = (err == KErrNone && items.Count() > 0));
       
   155     TBool noMultiWin = ( !iBrowserContentView->ApiProvider().Preferences().UiLocalFeatureSupported( KBrowserMultipleWindows ) || 
       
   156     	    iBrowserContentView->ApiProvider().IsEmbeddedModeOn() || 
       
   157     	    iBrowserContentView->ApiProvider().WindowMgr().WindowCount() < 2);
       
   158               
       
   159     iBrowserContentView->Toolbar()->ToolbarExtension()->SetItemDimmed( EWmlCmdFindKeyword, wmlMode );
       
   160     iBrowserContentView->Toolbar()->ToolbarExtension()->SetItemDimmed( EWmlCmdShowMiniature, wmlMode );
       
   161     iBrowserContentView->Toolbar()->ToolbarExtension()->SetItemDimmed( EWmlCmdShowSubscribeList, 
       
   162         (!subscribeToItems || wmlMode) );
       
   163     iBrowserContentView->Toolbar()->ToolbarExtension()->SetItemDimmed( EWmlCmdSwitchWindow, noMultiWin );
       
   164     iBrowserContentView->Toolbar()->ToolbarExtension()->SetItemDimmed( EWmlCmdLaunchHomePage, DimHomePage );
       
   165 #endif
       
   166     }
       
   167   
       
   168 //  End of File