diff options
author | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-15 15:44:20 +0000 |
---|---|---|
committer | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-15 15:44:20 +0000 |
commit | 0dad8074499c8a2784505f826505bd8862d618a1 (patch) | |
tree | 810223f3f6cdb45f9faaad7d1e713b89d2f345cc /chrome/browser/cocoa/menu_controller.h | |
parent | 3eaf0ecd7a4882482d6234f7a115d1b019c13339 (diff) | |
download | chromium_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.h | 26 |
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_ |