ui/motif/menu.h

changeset 431
bb7da585debc
parent 420
28a5920bebe0
--- a/ui/motif/menu.h	Sun May 23 09:44:43 2021 +0200
+++ b/ui/motif/menu.h	Sat Jan 04 16:38:48 2025 +0100
@@ -30,94 +30,41 @@
 #define	MENU_H
 
 #include "../ui/menu.h"
-#include <ucx/list.h>
+#include "../common/menu.h"
+#include "../common/context.h"
 
 #ifdef	__cplusplus
 extern "C" {
 #endif
 
-typedef struct UiMenuItemI      UiMenuItemI;
-typedef struct UiMenu           UiMenu;
-typedef struct UiMenuItem       UiMenuItem;
-typedef struct UiStMenuItem     UiStMenuItem;
-typedef struct UiCheckItem      UiCheckItem;
-typedef struct UiCheckItemNV    UiCheckItemNV;
-typedef struct UiMenuItemList   UiMenuItemList;
-
 typedef struct UiActiveMenuItemList UiActiveMenuItemList;
-
-typedef int(*ui_menu_add_f)(Widget, int, UiMenuItemI*, UiObject*);
-    
-struct UiMenuItemI {
-    ui_menu_add_f  add_to;
+struct UiActiveMenuItemList {
+    UiObject         *object;
+    Widget           menu;
+    int              index;
+    int              oldcount;
+    UiVar            *var;
+    ui_getvaluefunc  getvalue;
+    ui_callback      callback;
+    void             *userdata;
+    bool             addseparator;
 };
-
-struct UiMenu {
-    UiMenuItemI    item;
-    char           *label;
-    UcxList        *items;
-    UiMenu         *parent;
-};
-
-struct UiMenuItem {
-    UiMenuItemI    item;
-    ui_callback    callback;
-    char           *label;
-    void           *userdata;
-    UcxList        *groups;
-};
-
-struct UiStMenuItem {
-    UiMenuItemI    item;
-    ui_callback    callback;
-    char           *stockid;
-    void           *userdata;
-    UcxList        *groups;
-};
+    
+typedef void(*ui_menu_add_f)(Widget, int, UiMenuItemI*, UiObject*);
+    
+void ui_create_menubar(UiObject *obj, Widget window);
+void ui_add_menu_widget(Widget parent, int i, UiMenuItemI *item, UiObject *obj);
 
-struct UiCheckItem {
-    UiMenuItemI    item;
-    char           *label;
-    ui_callback    callback;
-    void           *userdata;
-};
-
-struct UiCheckItemNV {
-    UiMenuItemI    item;
-    char           *label;
-    char           *varname;
-};
-
-struct UiMenuItemList {
-    UiMenuItemI    item;
-    ui_callback    callback;
-    void           *userdata;
-    UiList         *list;
-};
-
-struct UiActiveMenuItemList {
-    UiObject     *object;
-    Widget       menu;
-    int          index;
-    int          oldcount;
-    UiList       *list;
-    ui_callback  callback;
-    void         *userdata;
-};
-
-void ui_create_menubar(UiObject *obj);
-
-int add_menu_widget(Widget parent, int i, UiMenuItemI *item, UiObject *obj);
-int add_menuitem_widget(Widget parent, int i, UiMenuItemI *item, UiObject *obj);
-int add_menuitem_st_widget(Widget parent, int i, UiMenuItemI *item, UiObject *obj);
-int add_menuseparator_widget(Widget parent, int i, UiMenuItemI *item, UiObject *obj);
-int add_checkitem_widget(Widget parent, int i, UiMenuItemI *item, UiObject *obj);
-int add_checkitemnv_widget(Widget parent, int i, UiMenuItemI *item, UiObject *obj);
-int add_menuitem_list_widget(Widget parent, int i, UiMenuItemI *item, UiObject *obj);
+void add_menu_widget(Widget parent, int i, UiMenuItemI *item, UiObject *obj);
+void add_menuitem_widget(Widget parent, int i, UiMenuItemI *item, UiObject *obj);
+void add_menuitem_st_widget(Widget p, int i, UiMenuItemI *item, UiObject *obj);
+void add_menuseparator_widget(Widget p, int i, UiMenuItemI *item, UiObject *obj);
+void add_checkitem_widget(Widget p, int i, UiMenuItemI *item, UiObject *obj);
+void add_radioitem_widget(Widget p, int index, UiMenuItemI *item, UiObject *obj);
+void add_checkitemnv_widget(Widget p, int i, UiMenuItemI *item, UiObject *obj);
+void add_menuitem_list_widget(Widget p, int i, UiMenuItemI *item, UiObject *obj);
 
 void ui_update_menuitem_list(UiEvent *event, UiActiveMenuItemList *list);
-void ui_menu_event_wrapper(Widget widget, XtPointer udata, XtPointer cdata);
-
 
 #ifdef	__cplusplus
 }

mercurial