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" |
11 #include "base/i18n/number_formatting.h" | |
12 #include "base/prefs/pref_service.h" | 11 #include "base/prefs/pref_service.h" |
13 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
14 #include "base/strings/string_util.h" | 13 #include "base/strings/string_util.h" |
15 #include "base/strings/utf_string_conversions.h" | 14 #include "base/strings/utf_string_conversions.h" |
16 #include "chrome/app/chrome_command_ids.h" | 15 #include "chrome/app/chrome_command_ids.h" |
17 #include "chrome/browser/browser_process.h" | 16 #include "chrome/browser/browser_process.h" |
18 #include "chrome/browser/defaults.h" | 17 #include "chrome/browser/defaults.h" |
19 #include "chrome/browser/profiles/profile.h" | 18 #include "chrome/browser/profiles/profile.h" |
20 #include "chrome/browser/profiles/profile_manager.h" | 19 #include "chrome/browser/profiles/profile_manager.h" |
21 #include "chrome/browser/search/search.h" | 20 #include "chrome/browser/search/search.h" |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 return command_id != IDC_ZOOM_MINUS && command_id != IDC_ZOOM_PLUS; | 270 return command_id != IDC_ZOOM_MINUS && command_id != IDC_ZOOM_PLUS; |
272 } | 271 } |
273 | 272 |
274 bool WrenchMenuModel::IsItemForCommandIdDynamic(int command_id) const { | 273 bool WrenchMenuModel::IsItemForCommandIdDynamic(int command_id) const { |
275 return command_id == IDC_ZOOM_PERCENT_DISPLAY || | 274 return command_id == IDC_ZOOM_PERCENT_DISPLAY || |
276 #if defined(OS_MACOSX) | 275 #if defined(OS_MACOSX) |
277 command_id == IDC_FULLSCREEN || | 276 command_id == IDC_FULLSCREEN || |
278 #elif defined(OS_WIN) | 277 #elif defined(OS_WIN) |
279 command_id == IDC_PIN_TO_START_SCREEN || | 278 command_id == IDC_PIN_TO_START_SCREEN || |
280 #endif | 279 #endif |
281 command_id == IDC_VIEW_BACKGROUND_PAGES || | |
282 command_id == IDC_UPGRADE_DIALOG || | 280 command_id == IDC_UPGRADE_DIALOG || |
283 command_id == IDC_SHOW_SIGNIN; | 281 command_id == IDC_SHOW_SIGNIN; |
284 } | 282 } |
285 | 283 |
286 string16 WrenchMenuModel::GetLabelForCommandId(int command_id) const { | 284 string16 WrenchMenuModel::GetLabelForCommandId(int command_id) const { |
287 switch (command_id) { | 285 switch (command_id) { |
288 case IDC_ZOOM_PERCENT_DISPLAY: | 286 case IDC_ZOOM_PERCENT_DISPLAY: |
289 return zoom_label_; | 287 return zoom_label_; |
290 #if defined(OS_MACOSX) | 288 #if defined(OS_MACOSX) |
291 case IDC_FULLSCREEN: { | 289 case IDC_FULLSCREEN: { |
292 int string_id = IDS_ENTER_FULLSCREEN_MAC; // Default to Enter. | 290 int string_id = IDS_ENTER_FULLSCREEN_MAC; // Default to Enter. |
293 // Note: On startup, |window()| may be NULL. | 291 // Note: On startup, |window()| may be NULL. |
294 if (browser_->window() && browser_->window()->IsFullscreen()) | 292 if (browser_->window() && browser_->window()->IsFullscreen()) |
295 string_id = IDS_EXIT_FULLSCREEN_MAC; | 293 string_id = IDS_EXIT_FULLSCREEN_MAC; |
296 return l10n_util::GetStringUTF16(string_id); | 294 return l10n_util::GetStringUTF16(string_id); |
297 } | 295 } |
298 #elif defined(OS_WIN) | 296 #elif defined(OS_WIN) |
299 case IDC_PIN_TO_START_SCREEN: { | 297 case IDC_PIN_TO_START_SCREEN: { |
300 int string_id = IDS_PIN_TO_START_SCREEN; | 298 int string_id = IDS_PIN_TO_START_SCREEN; |
301 WebContents* web_contents = | 299 WebContents* web_contents = |
302 browser_->tab_strip_model()->GetActiveWebContents(); | 300 browser_->tab_strip_model()->GetActiveWebContents(); |
303 MetroPinTabHelper* tab_helper = | 301 MetroPinTabHelper* tab_helper = |
304 web_contents ? MetroPinTabHelper::FromWebContents(web_contents) | 302 web_contents ? MetroPinTabHelper::FromWebContents(web_contents) |
305 : NULL; | 303 : NULL; |
306 if (tab_helper && tab_helper->IsPinned()) | 304 if (tab_helper && tab_helper->IsPinned()) |
307 string_id = IDS_UNPIN_FROM_START_SCREEN; | 305 string_id = IDS_UNPIN_FROM_START_SCREEN; |
308 return l10n_util::GetStringUTF16(string_id); | 306 return l10n_util::GetStringUTF16(string_id); |
309 } | 307 } |
310 #endif | 308 #endif |
311 case IDC_VIEW_BACKGROUND_PAGES: { | |
312 string16 num_background_pages = base::FormatNumber( | |
313 TaskManager::GetBackgroundPageCount()); | |
314 return l10n_util::GetStringFUTF16(IDS_VIEW_BACKGROUND_PAGES, | |
315 num_background_pages); | |
316 } | |
317 case IDC_UPGRADE_DIALOG: | 309 case IDC_UPGRADE_DIALOG: |
318 return GetUpgradeDialogMenuItemName(); | 310 return GetUpgradeDialogMenuItemName(); |
319 case IDC_SHOW_SIGNIN: | 311 case IDC_SHOW_SIGNIN: |
320 return signin_ui_util::GetSigninMenuLabel( | 312 return signin_ui_util::GetSigninMenuLabel( |
321 browser_->profile()->GetOriginalProfile()); | 313 browser_->profile()->GetOriginalProfile()); |
322 default: | 314 default: |
323 NOTREACHED(); | 315 NOTREACHED(); |
324 return string16(); | 316 return string16(); |
325 } | 317 } |
326 } | 318 } |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
421 return true; | 413 return true; |
422 } else if (command_id == IDC_PIN_TO_START_SCREEN) { | 414 } else if (command_id == IDC_PIN_TO_START_SCREEN) { |
423 return base::win::IsMetroProcess(); | 415 return base::win::IsMetroProcess(); |
424 #else | 416 #else |
425 if (command_id == IDC_VIEW_INCOMPATIBILITIES || | 417 if (command_id == IDC_VIEW_INCOMPATIBILITIES || |
426 command_id == IDC_PIN_TO_START_SCREEN) { | 418 command_id == IDC_PIN_TO_START_SCREEN) { |
427 return false; | 419 return false; |
428 #endif | 420 #endif |
429 } else if (command_id == IDC_UPGRADE_DIALOG) { | 421 } else if (command_id == IDC_UPGRADE_DIALOG) { |
430 return UpgradeDetector::GetInstance()->notify_upgrade(); | 422 return UpgradeDetector::GetInstance()->notify_upgrade(); |
431 } else if (command_id == IDC_VIEW_BACKGROUND_PAGES) { | |
432 return TaskManager::GetBackgroundPageCount() > 0; | |
433 } | 423 } |
434 return true; | 424 return true; |
435 } | 425 } |
436 | 426 |
437 bool WrenchMenuModel::GetAcceleratorForCommandId( | 427 bool WrenchMenuModel::GetAcceleratorForCommandId( |
438 int command_id, | 428 int command_id, |
439 ui::Accelerator* accelerator) { | 429 ui::Accelerator* accelerator) { |
440 return provider_->GetAcceleratorForCommandId(command_id, accelerator); | 430 return provider_->GetAcceleratorForCommandId(command_id, accelerator); |
441 } | 431 } |
442 | 432 |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
594 | 584 |
595 AddItemWithStringId(IDC_OPTIONS, IDS_SETTINGS); | 585 AddItemWithStringId(IDC_OPTIONS, IDS_SETTINGS); |
596 | 586 |
597 #if defined(OS_CHROMEOS) | 587 #if defined(OS_CHROMEOS) |
598 if (CommandLine::ForCurrentProcess()->HasSwitch( | 588 if (CommandLine::ForCurrentProcess()->HasSwitch( |
599 chromeos::switches::kEnableRequestTabletSite)) | 589 chromeos::switches::kEnableRequestTabletSite)) |
600 AddCheckItemWithStringId(IDC_TOGGLE_REQUEST_TABLET_SITE, | 590 AddCheckItemWithStringId(IDC_TOGGLE_REQUEST_TABLET_SITE, |
601 IDS_TOGGLE_REQUEST_TABLET_SITE); | 591 IDS_TOGGLE_REQUEST_TABLET_SITE); |
602 #endif | 592 #endif |
603 | 593 |
604 // On ChromeOS-Touch, we don't want the about/background pages menu options. | 594 // On ChromeOS-Touch, we don't want the about menu option. |
605 #if defined(OS_CHROMEOS) | 595 #if defined(OS_CHROMEOS) |
606 if (!is_new_menu) | 596 if (!is_new_menu) |
607 #endif | 597 #endif |
608 { | 598 { |
609 AddItem(IDC_ABOUT, l10n_util::GetStringUTF16(IDS_ABOUT)); | 599 AddItem(IDC_ABOUT, l10n_util::GetStringUTF16(IDS_ABOUT)); |
610 // We use the task manager to show background pages. | |
611 if (chrome::CanOpenTaskManager()) { | |
612 string16 num_background_pages = base::FormatNumber( | |
613 TaskManager::GetBackgroundPageCount()); | |
614 AddItem(IDC_VIEW_BACKGROUND_PAGES, l10n_util::GetStringFUTF16( | |
615 IDS_VIEW_BACKGROUND_PAGES, num_background_pages)); | |
616 } | |
617 } | 600 } |
618 | 601 |
619 if (browser_defaults::kShowUpgradeMenuItem) | 602 if (browser_defaults::kShowUpgradeMenuItem) |
620 AddItem(IDC_UPGRADE_DIALOG, GetUpgradeDialogMenuItemName()); | 603 AddItem(IDC_UPGRADE_DIALOG, GetUpgradeDialogMenuItemName()); |
621 | 604 |
622 #if defined(OS_WIN) | 605 #if defined(OS_WIN) |
623 SetIcon(GetIndexOfCommandId(IDC_VIEW_INCOMPATIBILITIES), | 606 SetIcon(GetIndexOfCommandId(IDC_VIEW_INCOMPATIBILITIES), |
624 ui::ResourceBundle::GetSharedInstance(). | 607 ui::ResourceBundle::GetSharedInstance(). |
625 GetNativeImageNamed(IDR_INPUT_ALERT_MENU)); | 608 GetNativeImageNamed(IDR_INPUT_ALERT_MENU)); |
626 #endif | 609 #endif |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
768 &enable_increment, &enable_decrement); | 751 &enable_increment, &enable_decrement); |
769 } | 752 } |
770 zoom_label_ = l10n_util::GetStringFUTF16( | 753 zoom_label_ = l10n_util::GetStringFUTF16( |
771 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); | 754 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); |
772 } | 755 } |
773 | 756 |
774 void WrenchMenuModel::OnZoomLevelChanged( | 757 void WrenchMenuModel::OnZoomLevelChanged( |
775 const content::HostZoomMap::ZoomLevelChange& change) { | 758 const content::HostZoomMap::ZoomLevelChange& change) { |
776 UpdateZoomControls(); | 759 UpdateZoomControls(); |
777 } | 760 } |
OLD | NEW |