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