ui/cocoa/menu.h

changeset 14
e2fd132ab781
parent 10
6f263196f916
child 20
2dda1ad6dc7a
equal deleted inserted replaced
13:2dbc56c2323b 14:e2fd132ab781
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" 31 #import "../../ucx/list.h"
32 32
33 typedef struct UiAbstractMenuItem {
34 int (*update)(id window, void *item);
35 void *item_data;
36 } UiAbstractMenuItem;
37
33 typedef struct UiMenuItem { 38 typedef struct UiMenuItem {
34 NSMenuItem *item; 39 NSMenuItem *item;
35 int state; 40 int state;
36 } UiMenuItem; 41 } UiMenuItem;
37 42
38 typedef struct UiStateItem { 43 typedef struct UiStateItem {
39 NSMenuItem *item; 44 NSMenuItem *item;
40 char *var; 45 char *var;
41 } UiStateItem; 46 } UiStateItem;
42 47
48 typedef struct UiMenuItemList {
49 NSMenu *menu;
50 NSMenuItem *first;
51 UiList *list;
52 int index;
53 int oldcount;
54 ui_callback callback;
55 void *data;
56 } UiMenuItemList;
57
43 @interface UiMenuDelegate : NSObject <NSMenuDelegate> { 58 @interface UiMenuDelegate : NSObject <NSMenuDelegate> {
44 UcxList *items; 59 UcxList *items; // UiStateItem*
60 UcxList *itemlists; // UiMenuItemList*
45 } 61 }
46 62
47 - (void)menuNeedsUpdate:(NSMenu*) menu; 63 - (void) menuNeedsUpdate:(NSMenu*) menu;
48 64
49 - (void) addItem:(NSMenuItem*) item var: (char*)name; 65 - (void) addItem:(NSMenuItem*) item var: (char*)name;
50 66
67 - (void) addList:(UiList*) list menu:(NSMenu*)menu index: (int)i callback: (ui_callback)f data:(void*) data;
68
51 - (UcxList*) items; 69 - (UcxList*) items;
70
71 - (UcxList*) lists;
52 72
53 @end 73 @end
54 74
55 75
56 void ui_menu_init(); 76 void ui_menu_init();
57 UiMenuDelegate* ui_menu_delegate(); 77 UiMenuDelegate* ui_menu_delegate();
58 78
59 int ui_menuitem_get(UiInteger *i); 79 int ui_menuitem_get(UiInteger *i);
60 void ui_menuitem_set(UiInteger *i, int value); 80 void ui_menuitem_set(UiInteger *i, int value);
81
82 int ui_update_item(id window, void *data);
83 int ui_update_item_list(id window, void *data);

mercurial