65
|
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
|