ui/cocoa/menu.h

changeset 14
e2fd132ab781
parent 10
6f263196f916
child 20
2dda1ad6dc7a
--- 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 <NSMenuDelegate> {
-    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);

mercurial