diff -r 2dbc56c2323b -r e2fd132ab781 ui/cocoa/menu.h --- a/ui/cocoa/menu.h Sat Mar 29 19:12:07 2014 +0100 +++ b/ui/cocoa/menu.h Mon Mar 31 20:22:16 2014 +0200 @@ -30,26 +30,46 @@ #import "toolkit.h" #import "../../ucx/list.h" +typedef struct UiAbstractMenuItem { + int (*update)(id window, void *item); + void *item_data; +} UiAbstractMenuItem; + typedef struct UiMenuItem { - NSMenuItem *item; - int state; + NSMenuItem *item; + int state; } UiMenuItem; typedef struct UiStateItem { - NSMenuItem *item; - char *var; + NSMenuItem *item; + char *var; } UiStateItem; +typedef struct UiMenuItemList { + NSMenu *menu; + NSMenuItem *first; + UiList *list; + int index; + int oldcount; + ui_callback callback; + void *data; +} UiMenuItemList; + @interface UiMenuDelegate : NSObject { - UcxList *items; + UcxList *items; // UiStateItem* + UcxList *itemlists; // UiMenuItemList* } -- (void)menuNeedsUpdate:(NSMenu*) menu; +- (void) menuNeedsUpdate:(NSMenu*) menu; - (void) addItem:(NSMenuItem*) item var: (char*)name; +- (void) addList:(UiList*) list menu:(NSMenu*)menu index: (int)i callback: (ui_callback)f data:(void*) data; + - (UcxList*) items; +- (UcxList*) lists; + @end @@ -58,3 +78,6 @@ int ui_menuitem_get(UiInteger *i); void ui_menuitem_set(UiInteger *i, int value); + +int ui_update_item(id window, void *data); +int ui_update_item_list(id window, void *data);