summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/menu_controller.h
diff options
context:
space:
mode:
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_