Chromium Code Reviews| Index: webkit/glue/webmenurunner_mac.h |
| =================================================================== |
| --- webkit/glue/webmenurunner_mac.h (revision 0) |
| +++ webkit/glue/webmenurunner_mac.h (revision 0) |
| @@ -0,0 +1,71 @@ |
| +// Copyright (c) 2009 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 WEBKIT_GLUE_WEBMENURUNNER_MAC_H_ |
| +#define WEBKIT_GLUE_WEBMENURUNNER_MAC_H_ |
| + |
| +#import <Cocoa/Cocoa.h> |
| + |
| +#include <vector> |
| + |
| +#include "webkit/glue/webwidget_delegate.h" |
| + |
| + |
| +// WebMenuRunner --------------------------------------------------------------- |
| +// A class for determining whether an item was selected from an HTML select |
| +// control, or if the menu was dismissed without making a selection. If a menu |
| +// item is selected, MenuDelegate is informed and sets a flag which can be |
| +// queried after the menu has finished running. |
| + |
| +@interface WebMenuRunner : NSObject { |
| + @private |
| + // The actual menu object, which we own. |
| + NSMenu* menu_; |
|
pink (ping after 24hrs)
2009/04/27 14:14:59
if owned, you should probably use a scoped_nsobjec
|
| + |
| + // A flag set to YES if a menu item was chosen, or NO if the menu was |
| + // dismissed without selecting an item. |
| + BOOL menuItemWasChosen_; |
| + |
| + // The index of the selected menu item. |
| + int index_; |
| +} |
| + |
| +// Initializes the MenuDelegate with a list of items sent from WebKit. |
| +- (id)initWithItems:(const std::vector<WebMenuItem>&)items; |
| +- (void)dealloc; |
|
pink (ping after 24hrs)
2009/04/27 14:14:59
no need to declare methods that are simply overrid
|
| + |
| +// Worker function used during initialization. |
| +- (void)addItem:(const WebMenuItem&)item; |
|
pink (ping after 24hrs)
2009/04/27 14:14:59
if it's internal, don't make it part of the public
|
| + |
| +// 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; |
|
pink (ping after 24hrs)
2009/04/27 14:14:59
again, this sounds like an implementation-specific
|
| + |
| +// Displays and runs a native popup menu. |
| +- (void)runMenuInView:(NSView*)view |
| + withBounds:(NSRect)bounds |
| + initialIndex:(int)index; |
| + |
| +// Returns the index of selected menu item, or its initial value (-1) if no item |
| +// was selected. |
| +- (int)indexOfSelectedItem; |
| + |
| +@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, |
|
pink (ping after 24hrs)
2009/04/27 14:14:59
should this go into any particular namespace? Also
|
| + int item_height, int selected_index, |
| + NSRect menu_bounds, NSRect view_bounds); |
| + |
| +#endif // WEBKIT_GLUE_WEBMENURUNNER_MAC_H_ |