diff options
author | paul@chromium.org <paul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-28 23:34:37 +0000 |
---|---|---|
committer | paul@chromium.org <paul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-28 23:34:37 +0000 |
commit | cf9995bcc40e8fd67551f660b7fe37cfd00b2c79 (patch) | |
tree | f60576273e0a6b61b89b9fb678ea6491dea0d7cd /webkit/glue | |
parent | 3544b434280f752c4934346ce58adb5d2ea5e24b (diff) | |
download | chromium_src-cf9995bcc40e8fd67551f660b7fe37cfd00b2c79.zip chromium_src-cf9995bcc40e8fd67551f660b7fe37cfd00b2c79.tar.gz chromium_src-cf9995bcc40e8fd67551f660b7fe37cfd00b2c79.tar.bz2 |
Style fixes for previous review:
http://codereview.chromium.org/92062
I didn't make WebMenuRunner's menu_ a scoped_nsobject, because I'm not
sure how that will ever be released (~scoped_nsobject won't get called
from a Cocoa object's dealloc?).
Review URL: http://codereview.chromium.org/99088
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14798 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue')
-rw-r--r-- | webkit/glue/webmenurunner_mac.h | 34 | ||||
-rw-r--r-- | webkit/glue/webmenurunner_mac.mm | 40 |
2 files changed, 39 insertions, 35 deletions
diff --git a/webkit/glue/webmenurunner_mac.h b/webkit/glue/webmenurunner_mac.h index eceaa3f..8d822a4 100644 --- a/webkit/glue/webmenurunner_mac.h +++ b/webkit/glue/webmenurunner_mac.h @@ -9,6 +9,7 @@ #include <vector> +#include "base/scoped_nsobject.h" #include "webkit/glue/webwidget_delegate.h" @@ -20,8 +21,8 @@ @interface WebMenuRunner : NSObject { @private - // The actual menu object, which we own. - NSMenu* menu_; + // The native menu control. + scoped_nsobject<NSMenu> menu_; // A flag set to YES if a menu item was chosen, or NO if the menu was // dismissed without selecting an item. @@ -33,20 +34,11 @@ // Initializes the MenuDelegate with a list of items sent from WebKit. - (id)initWithItems:(const std::vector<WebMenuItem>&)items; -- (void)dealloc; - -// Worker function used during initialization. -- (void)addItem:(const WebMenuItem&)item; // Returns YES if an item was selected from the menu, NO if the menu was // dismissed. - (BOOL)menuItemWasChosen; -// A callback for the menu controller object to call when an item is selected -// from the menu. This is not called if the menu is dismissed without a -// selection. -- (void)menuItemSelected:(id)sender; - // Displays and runs a native popup menu. - (void)runMenuInView:(NSView*)view withBounds:(NSRect)bounds @@ -58,14 +50,16 @@ @end // @interface WebMenuRunner -// Helper function for manufacturing input events to send to WebKit. If -// |item_chosen| is YES, we manufacture a mouse click event that corresponds to -// the menu item that was selected, |selected_index|, based on the position of -// the mouse click. Of |item_chosen| is NO, we create a keyboard event that -// simulates an ESC (menu dismissal) action. The event is designed to be sent to -// WebKit for processing by the PopupMenu class. -NSEvent* CreateEventForMenuAction(BOOL item_chosen, int window_num, - int item_height, int selected_index, - NSRect menu_bounds, NSRect view_bounds); +namespace webkit_glue { +// Helper function for users of WebMenuRunner, for manufacturing input events to +// send to WebKit. If |item_chosen| is YES, we manufacture a mouse click event +// that corresponds to the menu item that was selected, |selected_index|, based +// on the position of the mouse click. Of |item_chosen| is NO, we create a +// keyboard event that simulates an ESC (menu dismissal) action. The event is +// designed to be sent to WebKit for processing by the PopupMenu class. +NSEvent* EventWithMenuAction(BOOL item_chosen, int window_num, + int item_height, int selected_index, + NSRect menu_bounds, NSRect view_bounds); +} // namespace webkit_glue #endif // WEBKIT_GLUE_WEBMENURUNNER_MAC_H_ diff --git a/webkit/glue/webmenurunner_mac.mm b/webkit/glue/webmenurunner_mac.mm index 32bedf3..c6b2b243 100644 --- a/webkit/glue/webmenurunner_mac.mm +++ b/webkit/glue/webmenurunner_mac.mm @@ -6,13 +6,24 @@ #include "base/sys_string_conversions.h" +@interface WebMenuRunner (PrivateAPI) + +// Worker function used during initialization. +- (void)addItem:(const WebMenuItem&)item; + +// A callback for the menu controller object to call when an item is selected +// from the menu. This is not called if the menu is dismissed without a +// selection. +- (void)menuItemSelected:(id)sender; + +@end // WebMenuRunner (PrivateAPI) + @implementation WebMenuRunner - (id)initWithItems:(const std::vector<WebMenuItem>&)items { if ((self = [super init])) { - menu_ = [[NSMenu alloc] initWithTitle:@""]; + menu_.reset([[NSMenu alloc] initWithTitle:@""]); [menu_ setAutoenablesItems:NO]; - menuItemWasChosen_ = NO; index_ = -1; for (int i = 0; i < static_cast<int>(items.size()); ++i) [self addItem:items[i]]; @@ -20,11 +31,6 @@ return self; } -- (void)dealloc { - [menu_ release]; - [super dealloc]; -} - - (void)addItem:(const WebMenuItem&)item { if (item.type == WebMenuItem::SEPARATOR) { [menu_ addItem:[NSMenuItem separatorItem]]; @@ -32,11 +38,11 @@ } NSString* title = base::SysUTF16ToNSString(item.label); - NSMenuItem* menu_item = [menu_ addItemWithTitle:title - action:@selector(menuItemSelected:) - keyEquivalent:@""]; - [menu_item setEnabled:(item.enabled && item.type != WebMenuItem::GROUP)]; - [menu_item setTarget:self]; + NSMenuItem* menuItem = [menu_ addItemWithTitle:title + action:@selector(menuItemSelected:) + keyEquivalent:@""]; + [menuItem setEnabled:(item.enabled && item.type != WebMenuItem::GROUP)]; + [menuItem setTarget:self]; } // Reflects the result of the user's interaction with the popup menu. If NO, the @@ -76,10 +82,12 @@ @end // WebMenuRunner +namespace webkit_glue { + // Helper function for manufacturing input events to send to WebKit. -NSEvent* CreateEventForMenuAction(BOOL item_chosen, int window_num, - int item_height, int selected_index, - NSRect menu_bounds, NSRect view_bounds) { +NSEvent* EventWithMenuAction(BOOL item_chosen, int window_num, + int item_height, int selected_index, + NSRect menu_bounds, NSRect view_bounds) { NSEvent* event = nil; double event_time = (double)(AbsoluteToDuration(UpTime())) / 1000.0; @@ -128,3 +136,5 @@ NSEvent* CreateEventForMenuAction(BOOL item_chosen, int window_num, return event; } + +} // namespace webkit_glue |