ui/cocoa/menu.h

changeset 103
6606616eca9f
parent 0
2483f517c562
child 108
77254bd6dccb
--- 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 <ucx/list.h>
 
-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 <NSMenuDelegate> {
-    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);

mercurial