browserui/browser/BrowserAppSrc/BrowserContentViewToolbar.cpp
branchRCL_3
changeset 48 8e6fa1719340
equal deleted inserted replaced
47:6385c4c93049 48:8e6fa1719340
       
     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     
       
    71     if ( iBrowserContentView->ApiProvider().Preferences().SearchFeature() )
       
    72         {
       
    73         iBrowserContentView->Toolbar()->HideItem( EWmlCmdGoToAddress, ETrue, EFalse );
       
    74         }
       
    75     else
       
    76         {
       
    77         iBrowserContentView->Toolbar()->HideItem( EWmlCmdGoToAddressAndSearch, ETrue, EFalse );
       
    78         }
       
    79     
       
    80 #endif
       
    81     }
       
    82 
       
    83 // ----------------------------------------------------------------------------
       
    84 // CBrowserContentViewToolbar::NewL
       
    85 // ----------------------------------------------------------------------------
       
    86 //
       
    87 CBrowserContentViewToolbar* CBrowserContentViewToolbar::NewL(CBrowserContentView* aBrowserContentView)
       
    88     {
       
    89     CBrowserContentViewToolbar *self = new CBrowserContentViewToolbar(aBrowserContentView);
       
    90     CleanupStack::PushL(self);
       
    91     self->ConstructL();
       
    92     CleanupStack::Pop();
       
    93     return self;
       
    94     }
       
    95 
       
    96 // ----------------------------------------------------------------------------
       
    97 // CBrowserContentViewToolbar::~CBrowserContentViewToolbar
       
    98 // ----------------------------------------------------------------------------
       
    99 //
       
   100 CBrowserContentViewToolbar::~CBrowserContentViewToolbar()
       
   101     {
       
   102     }
       
   103 
       
   104 // ----------------------------------------------------------------------------
       
   105 // CBrowserContentViewToolbar::UpdateButtonsStateBasicL
       
   106 // ----------------------------------------------------------------------------
       
   107 //
       
   108 void CBrowserContentViewToolbar::UpdateButtonsStateL()
       
   109     {
       
   110     TBool historyView = iBrowserContentView->IsHistoryViewUp();
       
   111     TBool findKeywordPane = iBrowserContentView->Container()->FindKeywordPane()->IsVisible();
       
   112     TBool pageOverview = iBrowserContentView->IsMiniatureViewUp();
       
   113     TBool zoomSlider = iBrowserContentView->ZoomSliderVisible();
       
   114     TBool contentDisplayed = iBrowserContentView->ApiProvider().ContentDisplayed();
       
   115     TBool wmlMode = iBrowserContentView->ApiProvider().WindowMgr().CurrentWindow()->WMLMode();
       
   116     TBool DimHomePage = iBrowserContentView->ApiProvider().IsLaunchHomePageDimmedL();
       
   117     TBool searchMode = iBrowserContentView->ApiProvider().Preferences().SearchFeature();
       
   118     TBool embeddedMode = iBrowserContentView->ApiProvider().IsEmbeddedModeOn();
       
   119     TBool embeddedOperatorMenu = CBrowserAppUi::Static()->IsEmbeddedInOperatorMenu();
       
   120     iBrowserContentView->Toolbar()->SetItemDimmed(EWmlCmdFavourites, (embeddedMode || embeddedOperatorMenu), ETrue);
       
   121     // Extended Toolbar
       
   122     iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdToolbarExtensionContentView, 
       
   123             (pageOverview), ETrue );
       
   124     iBrowserContentView->Toolbar()->HideItem( EWmlCmdToolbarExtensionContentView, 
       
   125             (historyView || findKeywordPane), ETrue );
       
   126     
       
   127     // Goto Url & search
       
   128     if ( searchMode )
       
   129         {
       
   130         iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdGoToAddressAndSearch, 
       
   131                  (pageOverview), ETrue );
       
   132         iBrowserContentView->Toolbar()->HideItem( EWmlCmdGoToAddressAndSearch, 
       
   133                 (historyView || findKeywordPane), ETrue );
       
   134         }
       
   135     // Goto Url
       
   136     else
       
   137         {
       
   138         iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdGoToAddress, 
       
   139                     (pageOverview), ETrue );
       
   140         iBrowserContentView->Toolbar()->HideItem( EWmlCmdGoToAddress, 
       
   141                 (historyView || findKeywordPane), ETrue );
       
   142         }
       
   143     
       
   144 
       
   145     // Zoom Slider button
       
   146     iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdZoomSliderShow, 
       
   147                 ( !contentDisplayed || pageOverview || wmlMode ), ETrue );
       
   148 
       
   149     // History buttons
       
   150     iBrowserContentView->Toolbar()->HideItem( EWmlCmdHistoryBack, (!historyView), ETrue );
       
   151     iBrowserContentView->Toolbar()->HideItem( EWmlCmdHistoryForward, (!historyView), ETrue );
       
   152     
       
   153     if ( historyView )
       
   154         {
       
   155            iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdHistoryForward, EFalse, ETrue );                        
       
   156            iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdHistoryBack, EFalse, ETrue );                            
       
   157         if(iBrowserContentView->IsHistoryAtEnd())
       
   158             {
       
   159             iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdHistoryForward, ETrue, ETrue );            
       
   160             }
       
   161         if (iBrowserContentView->IsHistoryAtBeginning())
       
   162             {
       
   163             iBrowserContentView->Toolbar()->SetItemDimmed( EWmlCmdHistoryBack, ETrue, ETrue );        
       
   164             }        
       
   165         }
       
   166     
       
   167     // Find keyword buttons     
       
   168     iBrowserContentView->Toolbar()->HideItem( EWmlCmdFindNext, (!findKeywordPane), ETrue ); 
       
   169     iBrowserContentView->Toolbar()->HideItem( EWmlCmdFindPrevious, (!findKeywordPane), ETrue );   
       
   170 
       
   171     iBrowserContentView->Toolbar()->SetItemDimmed( EWmlNoCmd, ETrue, ETrue );
       
   172     iBrowserContentView->Toolbar()->HideItem( EWmlNoCmd, (!(historyView || findKeywordPane)), ETrue );
       
   173 
       
   174     // Extended Toolbar
       
   175 #ifdef RD_SCALABLE_UI_V2
       
   176     CBrCtlInterface& brctl = iBrowserContentView->ApiProvider().BrCtlInterface();
       
   177     TBool subscribeToItems(EFalse);
       
   178     TRAPD(err, const RPointerArray<TBrCtlSubscribeTo>& items = brctl.SubscribeToMenuItemsL();
       
   179                 subscribeToItems = (err == KErrNone && items.Count() > 0));
       
   180     TBool noMultiWin = ( !iBrowserContentView->ApiProvider().Preferences().UiLocalFeatureSupported( KBrowserMultipleWindows ) || 
       
   181     	    iBrowserContentView->ApiProvider().IsEmbeddedModeOn() || 
       
   182     	    iBrowserContentView->ApiProvider().WindowMgr().WindowCount() < 2);
       
   183               
       
   184     iBrowserContentView->Toolbar()->ToolbarExtension()->SetItemDimmed( EWmlCmdFindKeyword, wmlMode );
       
   185 
       
   186 //Disable page overview for TB9.2 
       
   187 #ifdef BRDO_MULTITOUCH_ENABLED_FF
       
   188     TBool dimDownloads = iBrowserContentView->ApiProvider().BrCtlInterface().BrowserSettingL(TBrCtlDefs::ESettingsNumOfDownloads) ? EFalse : ETrue;
       
   189     iBrowserContentView->Toolbar()->ToolbarExtension()->SetItemDimmed( EWmlCmdDownloads, dimDownloads );
       
   190 #else
       
   191     iBrowserContentView->Toolbar()->ToolbarExtension()->SetItemDimmed( EWmlCmdShowMiniature, wmlMode );
       
   192 #endif    
       
   193     iBrowserContentView->Toolbar()->ToolbarExtension()->SetItemDimmed( EWmlCmdShowSubscribeList, 
       
   194         (!subscribeToItems || wmlMode) );
       
   195     iBrowserContentView->Toolbar()->ToolbarExtension()->SetItemDimmed( EWmlCmdSwitchWindow, noMultiWin );
       
   196     iBrowserContentView->Toolbar()->ToolbarExtension()->SetItemDimmed( EWmlCmdLaunchHomePage, DimHomePage );
       
   197 #endif
       
   198     }
       
   199   
       
   200 //  End of File