| 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 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 ZoomMenuModel::~ZoomMenuModel() { | 172 ZoomMenuModel::~ZoomMenuModel() { |
| 173 } | 173 } |
| 174 | 174 |
| 175 void ZoomMenuModel::Build() { | 175 void ZoomMenuModel::Build() { |
| 176 AddItemWithStringId(IDC_ZOOM_PLUS, IDS_ZOOM_PLUS); | 176 AddItemWithStringId(IDC_ZOOM_PLUS, IDS_ZOOM_PLUS); |
| 177 AddItemWithStringId(IDC_ZOOM_NORMAL, IDS_ZOOM_NORMAL); | 177 AddItemWithStringId(IDC_ZOOM_NORMAL, IDS_ZOOM_NORMAL); |
| 178 AddItemWithStringId(IDC_ZOOM_MINUS, IDS_ZOOM_MINUS); | 178 AddItemWithStringId(IDC_ZOOM_MINUS, IDS_ZOOM_MINUS); |
| 179 } | 179 } |
| 180 | 180 |
| 181 //////////////////////////////////////////////////////////////////////////////// | 181 //////////////////////////////////////////////////////////////////////////////// |
| 182 // HelpMenuModel |
| 183 |
| 184 #if defined(GOOGLE_CHROME_BUILD) |
| 185 |
| 186 class WrenchMenuModel::HelpMenuModel : public ui::SimpleMenuModel { |
| 187 public: |
| 188 HelpMenuModel(ui::SimpleMenuModel::Delegate* delegate, |
| 189 Browser* browser) |
| 190 : SimpleMenuModel(delegate) { |
| 191 Build(browser); |
| 192 } |
| 193 virtual ~HelpMenuModel() { |
| 194 } |
| 195 |
| 196 private: |
| 197 void Build(Browser* browser) { |
| 198 int help_string_id = IDS_HELP_PAGE; |
| 199 #if defined(OS_CHROMEOS) |
| 200 if (!CommandLine::ForCurrentProcess()->HasSwitch( |
| 201 chromeos::switches::kDisableGeniusApp)) { |
| 202 help_string_id = IDS_GENIUS_APP_NAME; |
| 203 } |
| 204 #endif |
| 205 AddItemWithStringId(IDC_HELP_PAGE_VIA_MENU, help_string_id); |
| 206 if (browser_defaults::kShowHelpMenuItemIcon) { |
| 207 ui::ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 208 SetIcon(GetIndexOfCommandId(IDC_HELP_PAGE_VIA_MENU), |
| 209 rb.GetNativeImageNamed(IDR_HELP_MENU)); |
| 210 } |
| 211 |
| 212 AddItemWithStringId(IDC_FEEDBACK, IDS_FEEDBACK); |
| 213 } |
| 214 |
| 215 DISALLOW_COPY_AND_ASSIGN(HelpMenuModel); |
| 216 }; |
| 217 |
| 218 #endif // defined(GOOGLE_CHROME_BUILD) |
| 219 |
| 220 //////////////////////////////////////////////////////////////////////////////// |
| 182 // ToolsMenuModel | 221 // ToolsMenuModel |
| 183 | 222 |
| 184 ToolsMenuModel::ToolsMenuModel(ui::SimpleMenuModel::Delegate* delegate, | 223 ToolsMenuModel::ToolsMenuModel(ui::SimpleMenuModel::Delegate* delegate, |
| 185 Browser* browser) | 224 Browser* browser) |
| 186 : SimpleMenuModel(delegate) { | 225 : SimpleMenuModel(delegate) { |
| 187 Build(browser); | 226 Build(browser); |
| 188 } | 227 } |
| 189 | 228 |
| 190 ToolsMenuModel::~ToolsMenuModel() {} | 229 ToolsMenuModel::~ToolsMenuModel() {} |
| 191 | 230 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 209 | 248 |
| 210 AddItemWithStringId(IDC_MANAGE_EXTENSIONS, IDS_SHOW_EXTENSIONS); | 249 AddItemWithStringId(IDC_MANAGE_EXTENSIONS, IDS_SHOW_EXTENSIONS); |
| 211 | 250 |
| 212 if (chrome::CanOpenTaskManager()) | 251 if (chrome::CanOpenTaskManager()) |
| 213 AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER); | 252 AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER); |
| 214 | 253 |
| 215 AddItemWithStringId(IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA); | 254 AddItemWithStringId(IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA); |
| 216 | 255 |
| 217 AddSeparator(ui::NORMAL_SEPARATOR); | 256 AddSeparator(ui::NORMAL_SEPARATOR); |
| 218 | 257 |
| 219 #if defined(GOOGLE_CHROME_BUILD) | |
| 220 #if !defined(OS_CHROMEOS) | |
| 221 // Show IDC_FEEDBACK in "Tools" menu for non-ChromeOS platforms. | |
| 222 AddItemWithStringId(IDC_FEEDBACK, IDS_FEEDBACK); | |
| 223 AddSeparator(ui::NORMAL_SEPARATOR); | |
| 224 #endif | |
| 225 #endif // GOOGLE_CHROME_BUILD | |
| 226 | |
| 227 encoding_menu_model_.reset(new EncodingMenuModel(browser)); | 258 encoding_menu_model_.reset(new EncodingMenuModel(browser)); |
| 228 AddSubMenuWithStringId(IDC_ENCODING_MENU, IDS_ENCODING_MENU, | 259 AddSubMenuWithStringId(IDC_ENCODING_MENU, IDS_ENCODING_MENU, |
| 229 encoding_menu_model_.get()); | 260 encoding_menu_model_.get()); |
| 230 AddItemWithStringId(IDC_VIEW_SOURCE, IDS_VIEW_SOURCE); | 261 AddItemWithStringId(IDC_VIEW_SOURCE, IDS_VIEW_SOURCE); |
| 231 AddItemWithStringId(IDC_DEV_TOOLS, IDS_DEV_TOOLS); | 262 AddItemWithStringId(IDC_DEV_TOOLS, IDS_DEV_TOOLS); |
| 232 AddItemWithStringId(IDC_DEV_TOOLS_CONSOLE, IDS_DEV_TOOLS_CONSOLE); | 263 AddItemWithStringId(IDC_DEV_TOOLS_CONSOLE, IDS_DEV_TOOLS_CONSOLE); |
| 233 AddItemWithStringId(IDC_DEV_TOOLS_DEVICES, IDS_DEV_TOOLS_DEVICES); | 264 AddItemWithStringId(IDC_DEV_TOOLS_DEVICES, IDS_DEV_TOOLS_DEVICES); |
| 234 | 265 |
| 235 #if defined(ENABLE_PROFILING) && !defined(NO_TCMALLOC) | 266 #if defined(ENABLE_PROFILING) && !defined(NO_TCMALLOC) |
| 236 AddSeparator(ui::NORMAL_SEPARATOR); | 267 AddSeparator(ui::NORMAL_SEPARATOR); |
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 596 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME); | 627 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME); |
| 597 AddItem(IDC_SHOW_SYNC_SETUP, l10n_util::GetStringFUTF16( | 628 AddItem(IDC_SHOW_SYNC_SETUP, l10n_util::GetStringFUTF16( |
| 598 IDS_SYNC_MENU_PRE_SYNCED_LABEL, short_product_name)); | 629 IDS_SYNC_MENU_PRE_SYNCED_LABEL, short_product_name)); |
| 599 AddSeparator(ui::NORMAL_SEPARATOR); | 630 AddSeparator(ui::NORMAL_SEPARATOR); |
| 600 } | 631 } |
| 601 } | 632 } |
| 602 #endif | 633 #endif |
| 603 | 634 |
| 604 AddItemWithStringId(IDC_OPTIONS, IDS_SETTINGS); | 635 AddItemWithStringId(IDC_OPTIONS, IDS_SETTINGS); |
| 605 | 636 |
| 637 #if defined(GOOGLE_CHROME_BUILD) |
| 638 help_menu_model_.reset(new HelpMenuModel(this, browser_)); |
| 639 AddSubMenuWithStringId(IDC_HELP_MENU, IDS_HELP_MENU, |
| 640 help_menu_model_.get()); |
| 641 AddSeparator(ui::NORMAL_SEPARATOR); |
| 642 #endif |
| 643 |
| 606 #if defined(OS_CHROMEOS) | 644 #if defined(OS_CHROMEOS) |
| 607 if (CommandLine::ForCurrentProcess()->HasSwitch( | 645 if (CommandLine::ForCurrentProcess()->HasSwitch( |
| 608 chromeos::switches::kEnableRequestTabletSite)) | 646 chromeos::switches::kEnableRequestTabletSite)) |
| 609 AddCheckItemWithStringId(IDC_TOGGLE_REQUEST_TABLET_SITE, | 647 AddCheckItemWithStringId(IDC_TOGGLE_REQUEST_TABLET_SITE, |
| 610 IDS_TOGGLE_REQUEST_TABLET_SITE); | 648 IDS_TOGGLE_REQUEST_TABLET_SITE); |
| 611 #endif | 649 #endif |
| 612 | 650 |
| 613 // On ChromeOS-Touch, we don't want the about menu option. | |
| 614 #if defined(OS_CHROMEOS) | |
| 615 if (!is_new_menu) | |
| 616 #endif | |
| 617 { | |
| 618 AddItem(IDC_ABOUT, l10n_util::GetStringUTF16(IDS_ABOUT)); | |
| 619 } | |
| 620 | |
| 621 if (browser_defaults::kShowUpgradeMenuItem) | 651 if (browser_defaults::kShowUpgradeMenuItem) |
| 622 AddItem(IDC_UPGRADE_DIALOG, GetUpgradeDialogMenuItemName()); | 652 AddItem(IDC_UPGRADE_DIALOG, GetUpgradeDialogMenuItemName()); |
| 623 | 653 |
| 624 #if defined(OS_WIN) | 654 #if defined(OS_WIN) |
| 625 SetIcon(GetIndexOfCommandId(IDC_VIEW_INCOMPATIBILITIES), | 655 SetIcon(GetIndexOfCommandId(IDC_VIEW_INCOMPATIBILITIES), |
| 626 ui::ResourceBundle::GetSharedInstance(). | 656 ui::ResourceBundle::GetSharedInstance(). |
| 627 GetNativeImageNamed(IDR_INPUT_ALERT_MENU)); | 657 GetNativeImageNamed(IDR_INPUT_ALERT_MENU)); |
| 628 #endif | 658 #endif |
| 629 | 659 |
| 630 if (!is_new_menu) { | |
| 631 AddItemWithStringId(IDC_HELP_PAGE_VIA_MENU, IDS_HELP_PAGE); | |
| 632 | |
| 633 if (browser_defaults::kShowHelpMenuItemIcon) { | |
| 634 ui::ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | |
| 635 SetIcon(GetIndexOfCommandId(IDC_HELP_PAGE_VIA_MENU), | |
| 636 rb.GetNativeImageNamed(IDR_HELP_MENU)); | |
| 637 } | |
| 638 } | |
| 639 | |
| 640 #if defined(GOOGLE_CHROME_BUILD) | |
| 641 #if defined(OS_CHROMEOS) | |
| 642 AddItemWithStringId(IDC_FEEDBACK, IDS_FEEDBACK); | |
| 643 #endif | |
| 644 #endif | |
| 645 | |
| 646 AddGlobalErrorMenuItems(); | 660 AddGlobalErrorMenuItems(); |
| 647 | 661 |
| 648 if (is_new_menu) { | 662 if (is_new_menu) { |
| 649 AddSubMenuWithStringId(IDC_ZOOM_MENU, IDS_MORE_TOOLS_MENU, | 663 AddSubMenuWithStringId(IDC_ZOOM_MENU, IDS_MORE_TOOLS_MENU, |
| 650 tools_menu_model_.get()); | 664 tools_menu_model_.get()); |
| 651 } | 665 } |
| 652 | 666 |
| 653 bool show_exit_menu = browser_defaults::kShowExitMenuItem; | 667 bool show_exit_menu = browser_defaults::kShowExitMenuItem; |
| 654 #if defined(OS_WIN) | 668 #if defined(OS_WIN) |
| 655 if (browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH) | 669 if (browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH) |
| 656 show_exit_menu = false; | 670 show_exit_menu = false; |
| 657 #endif | 671 #endif |
| 658 | 672 |
| 659 if (show_exit_menu) { | 673 if (show_exit_menu) { |
| 660 AddSeparator(ui::NORMAL_SEPARATOR); | 674 AddSeparator(ui::NORMAL_SEPARATOR); |
| 661 AddItemWithStringId(IDC_EXIT, IDS_EXIT); | 675 AddItemWithStringId(IDC_EXIT, IDS_EXIT); |
| 662 } | 676 } |
| 677 |
| 678 RemoveTrailingSeparators(); |
| 663 } | 679 } |
| 664 | 680 |
| 665 void WrenchMenuModel::AddGlobalErrorMenuItems() { | 681 void WrenchMenuModel::AddGlobalErrorMenuItems() { |
| 666 // TODO(sail): Currently we only build the wrench menu once per browser | 682 // TODO(sail): Currently we only build the wrench menu once per browser |
| 667 // window. This means that if a new error is added after the menu is built | 683 // window. This means that if a new error is added after the menu is built |
| 668 // it won't show in the existing wrench menu. To fix this we need to some | 684 // it won't show in the existing wrench menu. To fix this we need to some |
| 669 // how update the menu if new errors are added. | 685 // how update the menu if new errors are added. |
| 670 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 686 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
| 671 // GetSignedInServiceErrors() can modify the global error list, so call it | 687 // GetSignedInServiceErrors() can modify the global error list, so call it |
| 672 // before iterating through that list below. | 688 // before iterating through that list below. |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 771 &enable_increment, &enable_decrement); | 787 &enable_increment, &enable_decrement); |
| 772 } | 788 } |
| 773 zoom_label_ = l10n_util::GetStringFUTF16( | 789 zoom_label_ = l10n_util::GetStringFUTF16( |
| 774 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); | 790 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); |
| 775 } | 791 } |
| 776 | 792 |
| 777 void WrenchMenuModel::OnZoomLevelChanged( | 793 void WrenchMenuModel::OnZoomLevelChanged( |
| 778 const content::HostZoomMap::ZoomLevelChange& change) { | 794 const content::HostZoomMap::ZoomLevelChange& change) { |
| 779 UpdateZoomControls(); | 795 UpdateZoomControls(); |
| 780 } | 796 } |
| OLD | NEW |