Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(259)

Side by Side Diff: chrome/browser/ui/toolbar/wrench_menu_model.cc

Issue 274973002: Add Help wrench submenu (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/toolbar/wrench_menu_model.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/toolbar/wrench_menu_model.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698