ui/cocoa/menu.h

changeset 103
6606616eca9f
parent 0
2483f517c562
child 108
77254bd6dccb
equal deleted inserted replaced
102:64ded9f6a6c6 103:6606616eca9f
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);

mercurial