OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/toolbar/wrench_menu_model.h" | 5 #include "chrome/browser/ui/toolbar/wrench_menu_model.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 #include "chrome/browser/sync/sync_ui_util.h" | 26 #include "chrome/browser/sync/sync_ui_util.h" |
27 #include "chrome/browser/task_manager/task_manager.h" | 27 #include "chrome/browser/task_manager/task_manager.h" |
28 #include "chrome/browser/ui/browser.h" | 28 #include "chrome/browser/ui/browser.h" |
29 #include "chrome/browser/ui/browser_commands.h" | 29 #include "chrome/browser/ui/browser_commands.h" |
30 #include "chrome/browser/ui/browser_finder.h" | 30 #include "chrome/browser/ui/browser_finder.h" |
31 #include "chrome/browser/ui/browser_tabstrip.h" | 31 #include "chrome/browser/ui/browser_tabstrip.h" |
32 #include "chrome/browser/ui/browser_window.h" | 32 #include "chrome/browser/ui/browser_window.h" |
33 #include "chrome/browser/ui/global_error/global_error.h" | 33 #include "chrome/browser/ui/global_error/global_error.h" |
34 #include "chrome/browser/ui/global_error/global_error_service.h" | 34 #include "chrome/browser/ui/global_error/global_error_service.h" |
35 #include "chrome/browser/ui/global_error/global_error_service_factory.h" | 35 #include "chrome/browser/ui/global_error/global_error_service_factory.h" |
36 #include "chrome/browser/ui/metro_pin_tab_helper.h" | |
37 #include "chrome/browser/ui/tab_contents/tab_contents.h" | 36 #include "chrome/browser/ui/tab_contents/tab_contents.h" |
38 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 37 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
39 #include "chrome/browser/ui/toolbar/encoding_menu_controller.h" | 38 #include "chrome/browser/ui/toolbar/encoding_menu_controller.h" |
40 #include "chrome/browser/upgrade_detector.h" | 39 #include "chrome/browser/upgrade_detector.h" |
41 #include "chrome/common/chrome_paths.h" | 40 #include "chrome/common/chrome_paths.h" |
42 #include "chrome/common/chrome_switches.h" | 41 #include "chrome/common/chrome_switches.h" |
43 #include "chrome/common/pref_names.h" | 42 #include "chrome/common/pref_names.h" |
44 #include "chrome/common/profiling.h" | 43 #include "chrome/common/profiling.h" |
45 #include "content/public/browser/host_zoom_map.h" | 44 #include "content/public/browser/host_zoom_map.h" |
46 #include "content/public/browser/navigation_entry.h" | 45 #include "content/public/browser/navigation_entry.h" |
(...skipping 14 matching lines...) Expand all Loading... |
61 | 60 |
62 #if defined(TOOLKIT_GTK) | 61 #if defined(TOOLKIT_GTK) |
63 #include <gtk/gtk.h> | 62 #include <gtk/gtk.h> |
64 #include "chrome/browser/ui/gtk/gtk_util.h" | 63 #include "chrome/browser/ui/gtk/gtk_util.h" |
65 #endif | 64 #endif |
66 | 65 |
67 #if defined(OS_WIN) | 66 #if defined(OS_WIN) |
68 #include "base/win/metro.h" | 67 #include "base/win/metro.h" |
69 #include "base/win/windows_version.h" | 68 #include "base/win/windows_version.h" |
70 #include "chrome/browser/enumerate_modules_model_win.h" | 69 #include "chrome/browser/enumerate_modules_model_win.h" |
| 70 #include "chrome/browser/ui/metro_pin_tab_helper_win.h" |
71 #endif | 71 #endif |
72 | 72 |
73 #if defined(USE_ASH) | 73 #if defined(USE_ASH) |
74 #include "ash/shell.h" | 74 #include "ash/shell.h" |
75 #endif | 75 #endif |
76 | 76 |
77 using content::HostZoomMap; | 77 using content::HostZoomMap; |
78 using content::UserMetricsAction; | 78 using content::UserMetricsAction; |
79 using content::WebContents; | 79 using content::WebContents; |
80 | 80 |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 } | 237 } |
238 | 238 |
239 bool WrenchMenuModel::DoesCommandIdDismissMenu(int command_id) const { | 239 bool WrenchMenuModel::DoesCommandIdDismissMenu(int command_id) const { |
240 return command_id != IDC_ZOOM_MINUS && command_id != IDC_ZOOM_PLUS; | 240 return command_id != IDC_ZOOM_MINUS && command_id != IDC_ZOOM_PLUS; |
241 } | 241 } |
242 | 242 |
243 bool WrenchMenuModel::IsItemForCommandIdDynamic(int command_id) const { | 243 bool WrenchMenuModel::IsItemForCommandIdDynamic(int command_id) const { |
244 return command_id == IDC_ZOOM_PERCENT_DISPLAY || | 244 return command_id == IDC_ZOOM_PERCENT_DISPLAY || |
245 #if defined(OS_MACOSX) | 245 #if defined(OS_MACOSX) |
246 command_id == IDC_FULLSCREEN || | 246 command_id == IDC_FULLSCREEN || |
| 247 #elif defined(OS_WIN) |
| 248 command_id == IDC_PIN_TO_START_SCREEN || |
247 #endif | 249 #endif |
248 command_id == IDC_VIEW_BACKGROUND_PAGES || | 250 command_id == IDC_VIEW_BACKGROUND_PAGES || |
249 command_id == IDC_UPGRADE_DIALOG || | 251 command_id == IDC_UPGRADE_DIALOG || |
250 command_id == IDC_SHOW_SYNC_SETUP || | 252 command_id == IDC_SHOW_SYNC_SETUP; |
251 command_id == IDC_PIN_TO_START_SCREEN; | |
252 } | 253 } |
253 | 254 |
254 string16 WrenchMenuModel::GetLabelForCommandId(int command_id) const { | 255 string16 WrenchMenuModel::GetLabelForCommandId(int command_id) const { |
255 switch (command_id) { | 256 switch (command_id) { |
256 case IDC_ZOOM_PERCENT_DISPLAY: | 257 case IDC_ZOOM_PERCENT_DISPLAY: |
257 return zoom_label_; | 258 return zoom_label_; |
258 #if defined(OS_MACOSX) | 259 #if defined(OS_MACOSX) |
259 case IDC_FULLSCREEN: { | 260 case IDC_FULLSCREEN: { |
260 int string_id = IDS_ENTER_FULLSCREEN_MAC; // Default to Enter. | 261 int string_id = IDS_ENTER_FULLSCREEN_MAC; // Default to Enter. |
261 // Note: On startup, |window()| may be NULL. | 262 // Note: On startup, |window()| may be NULL. |
262 if (browser_->window() && browser_->window()->IsFullscreen()) | 263 if (browser_->window() && browser_->window()->IsFullscreen()) |
263 string_id = IDS_EXIT_FULLSCREEN_MAC; | 264 string_id = IDS_EXIT_FULLSCREEN_MAC; |
264 return l10n_util::GetStringUTF16(string_id); | 265 return l10n_util::GetStringUTF16(string_id); |
265 } | 266 } |
| 267 #elif defined(OS_WIN) |
| 268 case IDC_PIN_TO_START_SCREEN: { |
| 269 int string_id = IDS_PIN_TO_START_SCREEN; |
| 270 WebContents* web_contents = chrome::GetActiveWebContents(browser_); |
| 271 MetroPinTabHelper* tab_helper = |
| 272 web_contents ? MetroPinTabHelper::FromWebContents(web_contents) |
| 273 : NULL; |
| 274 if (tab_helper && tab_helper->is_pinned()) |
| 275 string_id = IDS_UNPIN_FROM_START_SCREEN; |
| 276 return l10n_util::GetStringUTF16(string_id); |
| 277 } |
266 #endif | 278 #endif |
267 case IDC_VIEW_BACKGROUND_PAGES: { | 279 case IDC_VIEW_BACKGROUND_PAGES: { |
268 string16 num_background_pages = base::FormatNumber( | 280 string16 num_background_pages = base::FormatNumber( |
269 TaskManager::GetBackgroundPageCount()); | 281 TaskManager::GetBackgroundPageCount()); |
270 return l10n_util::GetStringFUTF16(IDS_VIEW_BACKGROUND_PAGES, | 282 return l10n_util::GetStringFUTF16(IDS_VIEW_BACKGROUND_PAGES, |
271 num_background_pages); | 283 num_background_pages); |
272 } | 284 } |
273 case IDC_UPGRADE_DIALOG: | 285 case IDC_UPGRADE_DIALOG: |
274 return l10n_util::GetStringUTF16(IDS_UPDATE_NOW); | 286 return l10n_util::GetStringUTF16(IDS_UPDATE_NOW); |
275 case IDC_SHOW_SYNC_SETUP: { | 287 case IDC_SHOW_SYNC_SETUP: { |
276 ProfileSyncService* service = | 288 ProfileSyncService* service = |
277 ProfileSyncServiceFactory::GetInstance()->GetForProfile( | 289 ProfileSyncServiceFactory::GetInstance()->GetForProfile( |
278 browser_->profile()->GetOriginalProfile()); | 290 browser_->profile()->GetOriginalProfile()); |
279 SyncGlobalError* error = service->sync_global_error(); | 291 SyncGlobalError* error = service->sync_global_error(); |
280 if (error && error->HasCustomizedSyncMenuItem()) | 292 if (error && error->HasCustomizedSyncMenuItem()) |
281 return error->MenuItemLabel(); | 293 return error->MenuItemLabel(); |
282 if (service->HasSyncSetupCompleted()) { | 294 if (service->HasSyncSetupCompleted()) { |
283 std::string username = browser_->profile()->GetPrefs()->GetString( | 295 std::string username = browser_->profile()->GetPrefs()->GetString( |
284 prefs::kGoogleServicesUsername); | 296 prefs::kGoogleServicesUsername); |
285 if (!username.empty()) { | 297 if (!username.empty()) { |
286 return l10n_util::GetStringFUTF16(IDS_SYNC_MENU_SYNCED_LABEL, | 298 return l10n_util::GetStringFUTF16(IDS_SYNC_MENU_SYNCED_LABEL, |
287 UTF8ToUTF16(username)); | 299 UTF8ToUTF16(username)); |
288 } | 300 } |
289 } | 301 } |
290 return l10n_util::GetStringFUTF16(IDS_SYNC_MENU_PRE_SYNCED_LABEL, | 302 return l10n_util::GetStringFUTF16(IDS_SYNC_MENU_PRE_SYNCED_LABEL, |
291 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME)); | 303 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME)); |
292 } | 304 } |
293 case IDC_PIN_TO_START_SCREEN: { | |
294 int string_id = IDS_PIN_TO_START_SCREEN; | |
295 WebContents* web_contents = chrome::GetActiveWebContents(browser_); | |
296 MetroPinTabHelper* tab_helper = | |
297 web_contents ? MetroPinTabHelper::FromWebContents(web_contents) | |
298 : NULL; | |
299 if (tab_helper && tab_helper->is_pinned()) | |
300 string_id = IDS_UNPIN_FROM_START_SCREEN; | |
301 return l10n_util::GetStringUTF16(string_id); | |
302 } | |
303 default: | 305 default: |
304 NOTREACHED(); | 306 NOTREACHED(); |
305 return string16(); | 307 return string16(); |
306 } | 308 } |
307 } | 309 } |
308 | 310 |
309 bool WrenchMenuModel::GetIconForCommandId(int command_id, | 311 bool WrenchMenuModel::GetIconForCommandId(int command_id, |
310 gfx::Image* icon) const { | 312 gfx::Image* icon) const { |
311 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 313 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
312 switch (command_id) { | 314 switch (command_id) { |
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
715 zoom_label_ = l10n_util::GetStringFUTF16( | 717 zoom_label_ = l10n_util::GetStringFUTF16( |
716 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); | 718 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); |
717 } | 719 } |
718 | 720 |
719 string16 WrenchMenuModel::GetSyncMenuLabel() const { | 721 string16 WrenchMenuModel::GetSyncMenuLabel() const { |
720 Profile* profile = browser_->profile()->GetOriginalProfile(); | 722 Profile* profile = browser_->profile()->GetOriginalProfile(); |
721 return sync_ui_util::GetSyncMenuLabel( | 723 return sync_ui_util::GetSyncMenuLabel( |
722 ProfileSyncServiceFactory::GetForProfile(profile), | 724 ProfileSyncServiceFactory::GetForProfile(profile), |
723 *SigninManagerFactory::GetForProfile(profile)); | 725 *SigninManagerFactory::GetForProfile(profile)); |
724 } | 726 } |
OLD | NEW |