Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef WEBKIT_GLUE_WEBMENURUNNER_MAC_H_ | |
| 6 #define WEBKIT_GLUE_WEBMENURUNNER_MAC_H_ | |
| 7 | |
| 8 #import <Cocoa/Cocoa.h> | |
| 9 | |
| 10 #include <vector> | |
| 11 | |
| 12 #include "webkit/glue/webwidget_delegate.h" | |
| 13 | |
| 14 | |
| 15 // WebMenuRunner --------------------------------------------------------------- | |
| 16 // A class for determining whether an item was selected from an HTML select | |
| 17 // control, or if the menu was dismissed without making a selection. If a menu | |
| 18 // item is selected, MenuDelegate is informed and sets a flag which can be | |
| 19 // queried after the menu has finished running. | |
| 20 | |
| 21 @interface WebMenuRunner : NSObject { | |
| 22 @private | |
| 23 // The actual menu object, which we own. | |
| 24 NSMenu* menu_; | |
|
pink (ping after 24hrs)
2009/04/27 14:14:59
if owned, you should probably use a scoped_nsobjec
| |
| 25 | |
| 26 // A flag set to YES if a menu item was chosen, or NO if the menu was | |
| 27 // dismissed without selecting an item. | |
| 28 BOOL menuItemWasChosen_; | |
| 29 | |
| 30 // The index of the selected menu item. | |
| 31 int index_; | |
| 32 } | |
| 33 | |
| 34 // Initializes the MenuDelegate with a list of items sent from WebKit. | |
| 35 - (id)initWithItems:(const std::vector<WebMenuItem>&)items; | |
| 36 - (void)dealloc; | |
|
pink (ping after 24hrs)
2009/04/27 14:14:59
no need to declare methods that are simply overrid
| |
| 37 | |
| 38 // Worker function used during initialization. | |
| 39 - (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
| |
| 40 | |
| 41 // Returns YES if an item was selected from the menu, NO if the menu was | |
| 42 // dismissed. | |
| 43 - (BOOL)menuItemWasChosen; | |
| 44 | |
| 45 // A callback for the menu controller object to call when an item is selected | |
| 46 // from the menu. This is not called if the menu is dismissed without a | |
| 47 // selection. | |
| 48 - (void)menuItemSelected:(id)sender; | |
|
pink (ping after 24hrs)
2009/04/27 14:14:59
again, this sounds like an implementation-specific
| |
| 49 | |
| 50 // Displays and runs a native popup menu. | |
| 51 - (void)runMenuInView:(NSView*)view | |
| 52 withBounds:(NSRect)bounds | |
| 53 initialIndex:(int)index; | |
| 54 | |
| 55 // Returns the index of selected menu item, or its initial value (-1) if no item | |
| 56 // was selected. | |
| 57 - (int)indexOfSelectedItem; | |
| 58 | |
| 59 @end // @interface WebMenuRunner | |
| 60 | |
| 61 // Helper function for manufacturing input events to send to WebKit. If | |
| 62 // |item_chosen| is YES, we manufacture a mouse click event that corresponds to | |
| 63 // the menu item that was selected, |selected_index|, based on the position of | |
| 64 // the mouse click. Of |item_chosen| is NO, we create a keyboard event that | |
| 65 // simulates an ESC (menu dismissal) action. The event is designed to be sent to | |
| 66 // WebKit for processing by the PopupMenu class. | |
| 67 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
| |
| 68 int item_height, int selected_index, | |
| 69 NSRect menu_bounds, NSRect view_bounds); | |
| 70 | |
| 71 #endif // WEBKIT_GLUE_WEBMENURUNNER_MAC_H_ | |
| OLD | NEW |