summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/toolbar_controller.mm
diff options
context:
space:
mode:
authorerg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-25 21:01:34 +0000
committererg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-25 21:01:34 +0000
commitfa9ed6a0cd30041c269398e99f3f34ef070d8666 (patch)
tree803e593f722de0fe0589f605008e2b83b9651c25 /chrome/browser/cocoa/toolbar_controller.mm
parentdf970ecba180164e86be3dc3a3b802e203295984 (diff)
downloadchromium_src-fa9ed6a0cd30041c269398e99f3f34ef070d8666.zip
chromium_src-fa9ed6a0cd30041c269398e99f3f34ef070d8666.tar.gz
chromium_src-fa9ed6a0cd30041c269398e99f3f34ef070d8666.tar.bz2
Reapply menu model cleanups, with WrenchMenuModel being a SimpleMenuModel.
BUG=47320 TEST=compiles Review URL: http://codereview.chromium.org/3184021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57384 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/toolbar_controller.mm')
-rw-r--r--chrome/browser/cocoa/toolbar_controller.mm45
1 files changed, 6 insertions, 39 deletions
diff --git a/chrome/browser/cocoa/toolbar_controller.mm b/chrome/browser/cocoa/toolbar_controller.mm
index edbdcbd..eb64950 100644
--- a/chrome/browser/cocoa/toolbar_controller.mm
+++ b/chrome/browser/cocoa/toolbar_controller.mm
@@ -95,24 +95,9 @@ const CGFloat kWrenchMenuLeftPadding = 3.0;
namespace ToolbarControllerInternal {
-// A C++ delegate that handles enabling/disabling menu items and handling when
-// a menu command is chosen.
-class MenuDelegate : public menus::SimpleMenuModel::Delegate {
+// A C++ delegate that handles the accelerators in the wrench menu.
+class WrenchAcceleratorDelegate : public menus::AcceleratorProvider {
public:
- explicit MenuDelegate(Browser* browser)
- : browser_(browser) { }
-
- // Overridden from menus::SimpleMenuModel::Delegate
- virtual bool IsCommandIdChecked(int command_id) const {
- if (command_id == IDC_SHOW_BOOKMARK_BAR) {
- return browser_->profile()->GetPrefs()->GetBoolean(
- prefs::kShowBookmarkBar);
- }
- return false;
- }
- virtual bool IsCommandIdEnabled(int command_id) const {
- return browser_->command_updater()->IsCommandEnabled(command_id);
- }
virtual bool GetAcceleratorForCommandId(int command_id,
menus::Accelerator* accelerator_generic) {
// Downcast so that when the copy constructor is invoked below, the key
@@ -128,26 +113,6 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
}
return false;
}
- virtual void ExecuteCommand(int command_id) {
- browser_->ExecuteCommand(command_id);
- }
- virtual bool IsLabelForCommandIdDynamic(int command_id) const {
- // On Mac, switch between "Enter Full Screen" and "Exit Full Screen".
- return (command_id == IDC_FULLSCREEN);
- }
- virtual string16 GetLabelForCommandId(int command_id) const {
- if (command_id == IDC_FULLSCREEN) {
- int string_id = IDS_ENTER_FULLSCREEN_MAC; // Default to Enter.
- // Note: On startup, |window()| may be NULL.
- if (browser_->window() && browser_->window()->IsFullscreen())
- string_id = IDS_EXIT_FULLSCREEN_MAC;
- return l10n_util::GetStringUTF16(string_id);
- }
- return menus::SimpleMenuModel::Delegate::GetLabelForCommandId(command_id);
- }
-
- private:
- Browser* browser_;
};
// A class registered for C++ notifications. This is used to detect changes in
@@ -547,9 +512,11 @@ class NotificationBridge : public NotificationObserver {
- (void)installWrenchMenu {
if (wrenchMenuModel_.get())
return;
- menuDelegate_.reset(new ToolbarControllerInternal::MenuDelegate(browser_));
+ acceleratorDelegate_.reset(
+ new ToolbarControllerInternal::WrenchAcceleratorDelegate());
- wrenchMenuModel_.reset(new WrenchMenuModel(menuDelegate_.get(), browser_));
+ wrenchMenuModel_.reset(new WrenchMenuModel(
+ acceleratorDelegate_.get(), browser_));
[wrenchMenuController_ setModel:wrenchMenuModel_.get()];
[wrenchMenuController_ setUseWithPopUpButtonCell:YES];
[wrenchButton_ setAttachedMenu:[wrenchMenuController_ menu]];