summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/wrench_menu_controller.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/cocoa/wrench_menu_controller.h')
-rw-r--r--chrome/browser/cocoa/wrench_menu_controller.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/wrench_menu_controller.h b/chrome/browser/cocoa/wrench_menu_controller.h
new file mode 100644
index 0000000..6ec1f55
--- /dev/null
+++ b/chrome/browser/cocoa/wrench_menu_controller.h
@@ -0,0 +1,46 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_COCOA_WRENCH_MENU_CONTROLLER_H_
+#define CHROME_BROWSER_COCOA_WRENCH_MENU_CONTROLLER_H_
+
+#import <Cocoa/Cocoa.h>
+
+#import "base/cocoa_protocols_mac.h"
+#import "chrome/browser/cocoa/menu_controller.h"
+
+@class ToolbarController;
+class WrenchMenuModel;
+
+// The Wrench menu has a creative layout, with buttons in menu items. There is
+// a cross-platform model for this special menu, but on the Mac it's easier to
+// get spacing and alignment precisely right using a NIB. To do that, we
+// subclass the generic MenuController implementation and special-case the two
+// items that require specific layout and load them from the NIB.
+//
+// This object is instantiated in Toolbar.xib and is configured by the
+// ToolbarController.
+@interface WrenchMenuController : MenuController <NSMenuDelegate> {
+ IBOutlet NSView* editItem_;
+ IBOutlet NSSegmentedControl* editControl_;
+
+ IBOutlet NSView* zoomItem_;
+ IBOutlet NSButton* zoomPlus_;
+ IBOutlet NSButton* zoomDisplay_;
+ IBOutlet NSButton* zoomMinus_;
+ IBOutlet NSButton* zoomFullScreen_;
+}
+
+// Designated initializer; called within the NIB.
+- (id)init;
+
+// Used to dispatch commands from the Wrench menu. The custom items within the
+// menu cannot be hooked up directly to First Responder because the window in
+// which the controls reside is not the BrowserWindowController, but a
+// NSCarbonMenuWindow; this screws up the typical |-commandDispatch:| system.
+- (IBAction)dispatchWrenchMenuCommand:(id)sender;
+
+@end
+
+#endif // CHROME_BROWSER_COCOA_WRENCH_MENU_CONTROLLER_H_