diff -r 64ded9f6a6c6 -r 6606616eca9f ui/cocoa/menu.h --- a/ui/cocoa/menu.h Tue Feb 25 21:11:00 2025 +0100 +++ b/ui/cocoa/menu.h Sat Apr 05 16:46:11 2025 +0200 @@ -28,67 +28,17 @@ #import "../ui/menu.h" #import "toolkit.h" -#import -typedef struct UiAbstractMenuItem { - int (*update)(id window, void *item); - void *item_data; -} UiAbstractMenuItem; - -typedef struct UiMenuItem { - NSMenuItem *item; - int state; -} UiMenuItem; +#import "../common/menu.h" -typedef struct UiStateItem { - NSMenuItem *item; - char *var; -} UiStateItem; +void ui_menu_init(void); -typedef struct UiMenuItemList { - NSMenu *menu; - NSMenuItem *first; - UiList *list; - int index; - int oldcount; - ui_callback callback; - void *data; -} UiMenuItemList; - -@interface UiMenuDelegate : NSObject { - UcxList *items; // UiStateItem* - UcxList *itemlists; // UiMenuItemList* -} +typedef void(*ui_menu_add_f)(NSMenu*, int, UiMenuItemI*); -- (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 - -@interface UiGroupMenuItem : NSMenuItem { - NSMutableArray *groups; -} - -- (id)initWithTitle:(NSString*)title action:(SEL)action keyEquivalent:(NSString*)s; - -- (void) addGroup:(int)group; - -- (void) checkGroups:(int*)g count:(int)n; - -@end - -void ui_menu_init(); -UiMenuDelegate* ui_menu_delegate(); - -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); +void add_menu_widget(NSMenu *parent, int i, UiMenuItemI *item); +void add_menuitem_widget(NSMenu *parent, int i, UiMenuItemI *item); +void add_menuseparator_widget(NSMenu *parent, int i, UiMenuItemI *item); +void add_checkitem_widget(NSMenu *parent, int i, UiMenuItemI *item); +void add_radioitem_widget(NSMenu *parent, int index, UiMenuItemI *item); +void add_checkitemnv_widget(NSMenu *parent, int i, UiMenuItemI *item); +void add_menuitem_list_widget(NSMenu *parent, int i, UiMenuItemI *item);