diff -r a499c8a72c15 -r db95c0104937 ui/motif/menu.h --- a/ui/motif/menu.h Tue Apr 01 11:53:10 2014 +0200 +++ b/ui/motif/menu.h Tue Apr 01 13:47:29 2014 +0200 @@ -42,6 +42,9 @@ 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*); @@ -83,6 +86,23 @@ 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); @@ -91,8 +111,9 @@ 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 ui_update_menuitem_list(UiEvent *event, UiActiveMenuItemList *list); void ui_menu_event_wrapper(Widget widget, XtPointer udata, XtPointer cdata);