summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/menu_controller.h
diff options
context:
space:
mode:
authorrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-15 15:44:20 +0000
committerrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-15 15:44:20 +0000
commit0dad8074499c8a2784505f826505bd8862d618a1 (patch)
tree810223f3f6cdb45f9faaad7d1e713b89d2f345cc /chrome/browser/cocoa/menu_controller.h
parent3eaf0ecd7a4882482d6234f7a115d1b019c13339 (diff)
downloadchromium_src-0dad8074499c8a2784505f826505bd8862d618a1.zip
chromium_src-0dad8074499c8a2784505f826505bd8862d618a1.tar.gz
chromium_src-0dad8074499c8a2784505f826505bd8862d618a1.tar.bz2
[Mac] Put buttons into the new unified Wrench menu.
This also makes changes to MenuController to support NIB-based initialization. Screen shots: http://cl.ly/1cyU (en) and http://cl.ly/1cyE (ru). BUG=47848 TEST=Click on Wrench menu and see buttons. Buttons perform their function. Review URL: http://codereview.chromium.org/2923009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52485 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/menu_controller.h')
-rw-r--r--chrome/browser/cocoa/menu_controller.h26
1 files changed, 23 insertions, 3 deletions
diff --git a/chrome/browser/cocoa/menu_controller.h b/chrome/browser/cocoa/menu_controller.h
index 9c3282c..d14d62b 100644
--- a/chrome/browser/cocoa/menu_controller.h
+++ b/chrome/browser/cocoa/menu_controller.h
@@ -21,11 +21,22 @@ class MenuModel;
// that particular item. It is important that the model outlives this object
// as it only maintains weak references.
@interface MenuController : NSObject {
- @private
+ @protected
+ menus::MenuModel* model_; // weak
scoped_nsobject<NSMenu> menu_;
BOOL useWithPopUpButtonCell_; // If YES, 0th item is blank
}
+@property (nonatomic, assign) menus::MenuModel* model;
+// Note that changing this will have no effect if you use
+// |-initWithModel:useWithPopUpButtonCell:| or after the first call to |-menu|.
+@property (nonatomic) BOOL useWithPopUpButtonCell;
+
+// NIB-based initializer. This does not create a menu. Clients can set the
+// properties of the object and the menu will be created upon the first call to
+// |-menu|. Note that the menu will be immutable after creation.
+- (id)init;
+
// Builds a NSMenu from the pre-built model (must not be nil). Changes made
// to the contents of the model after calling this will not be noticed. If
// the menu will be displayed by a NSPopUpButtonCell, it needs to be of a
@@ -34,14 +45,23 @@ class MenuModel;
- (id)initWithModel:(menus::MenuModel*)model
useWithPopUpButtonCell:(BOOL)useWithCell;
-// Access to the constructed menu.
+// Access to the constructed menu if the complex initializer was used. If the
+// default initializer was used, then this will create the menu on first call.
- (NSMenu*)menu;
@end
// Exposed only for unit testing, do not call directly.
-@interface MenuController(PrivateExposedForTesting)
+@interface MenuController (PrivateExposedForTesting)
- (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item;
@end
+// Protected methods that subclassers can override.
+@interface MenuController (Protected)
+- (void)addItemToMenu:(NSMenu*)menu
+ atIndex:(NSInteger)index
+ fromModel:(menus::MenuModel*)model
+ modelIndex:(int)modelIndex;
+@end
+
#endif // CHROME_BROWSER_COCOA_MENU_CONTROLLER_H_