| 26 * POSSIBILITY OF SUCH DAMAGE. |
26 * POSSIBILITY OF SUCH DAMAGE. |
| 27 */ |
27 */ |
| 28 |
28 |
| 29 #import "../ui/menu.h" |
29 #import "../ui/menu.h" |
| 30 #import "toolkit.h" |
30 #import "toolkit.h" |
| 31 #import <ucx/list.h> |
|
| 32 |
31 |
| 33 typedef struct UiAbstractMenuItem { |
32 #import "../common/menu.h" |
| 34 int (*update)(id window, void *item); |
|
| 35 void *item_data; |
|
| 36 } UiAbstractMenuItem; |
|
| 37 |
33 |
| 38 typedef struct UiMenuItem { |
34 void ui_menu_init(void); |
| 39 NSMenuItem *item; |
|
| 40 int state; |
|
| 41 } UiMenuItem; |
|
| 42 |
35 |
| 43 typedef struct UiStateItem { |
36 typedef void(*ui_menu_add_f)(NSMenu*, int, UiMenuItemI*); |
| 44 NSMenuItem *item; |
|
| 45 char *var; |
|
| 46 } UiStateItem; |
|
| 47 |
37 |
| 48 typedef struct UiMenuItemList { |
38 void add_menu_widget(NSMenu *parent, int i, UiMenuItemI *item); |
| 49 NSMenu *menu; |
39 void add_menuitem_widget(NSMenu *parent, int i, UiMenuItemI *item); |
| 50 NSMenuItem *first; |
40 void add_menuseparator_widget(NSMenu *parent, int i, UiMenuItemI *item); |
| 51 UiList *list; |
41 void add_checkitem_widget(NSMenu *parent, int i, UiMenuItemI *item); |
| 52 int index; |
42 void add_radioitem_widget(NSMenu *parent, int index, UiMenuItemI *item); |
| 53 int oldcount; |
43 void add_checkitemnv_widget(NSMenu *parent, int i, UiMenuItemI *item); |
| 54 ui_callback callback; |
44 void add_menuitem_list_widget(NSMenu *parent, int i, UiMenuItemI *item); |
| 55 void *data; |
|
| 56 } UiMenuItemList; |
|
| 57 |
|
| 58 @interface UiMenuDelegate : NSObject <NSMenuDelegate> { |
|
| 59 UcxList *items; // UiStateItem* |
|
| 60 UcxList *itemlists; // UiMenuItemList* |
|
| 61 } |
|
| 62 |
|
| 63 - (void) menuNeedsUpdate:(NSMenu*) menu; |
|
| 64 |
|
| 65 - (void) addItem:(NSMenuItem*) item var: (char*)name; |
|
| 66 |
|
| 67 - (void) addList:(UiList*) list menu:(NSMenu*)menu index: (int)i callback: (ui_callback)f data:(void*) data; |
|
| 68 |
|
| 69 - (UcxList*) items; |
|
| 70 |
|
| 71 - (UcxList*) lists; |
|
| 72 |
|
| 73 @end |
|
| 74 |
|
| 75 @interface UiGroupMenuItem : NSMenuItem { |
|
| 76 NSMutableArray *groups; |
|
| 77 } |
|
| 78 |
|
| 79 - (id)initWithTitle:(NSString*)title action:(SEL)action keyEquivalent:(NSString*)s; |
|
| 80 |
|
| 81 - (void) addGroup:(int)group; |
|
| 82 |
|
| 83 - (void) checkGroups:(int*)g count:(int)n; |
|
| 84 |
|
| 85 @end |
|
| 86 |
|
| 87 void ui_menu_init(); |
|
| 88 UiMenuDelegate* ui_menu_delegate(); |
|
| 89 |
|
| 90 int ui_menuitem_get(UiInteger *i); |
|
| 91 void ui_menuitem_set(UiInteger *i, int value); |
|
| 92 |
|
| 93 int ui_update_item(id window, void *data); |
|
| 94 int ui_update_item_list(id window, void *data); |
|