ui/gtk/menu.h

changeset 16
a499c8a72c15
parent 0
1f419bd32da1
child 21
012418e7dc90
--- a/ui/gtk/menu.h	Tue Apr 01 11:50:32 2014 +0200
+++ b/ui/gtk/menu.h	Tue Apr 01 11:53:10 2014 +0200
@@ -43,8 +43,11 @@
 typedef struct UiStMenuItem     UiStMenuItem;
 typedef struct UiCheckItem      UiCheckItem;
 typedef struct UiCheckItemNV    UiCheckItemNV;
+typedef struct UiMenuItemList   UiMenuItemList;
 
-typedef GtkWidget*(*ui_menu_add_f)(GtkWidget *, UiMenuItemI*, UiObject*);
+typedef struct UiActiveMenuItemList UiActiveMenuItemList;
+
+typedef GtkWidget*(*ui_menu_add_f)(GtkWidget *, int, UiMenuItemI*, UiObject*);
     
 struct UiMenuItemI {
     ui_menu_add_f  add_to;
@@ -84,15 +87,34 @@
     char           *varname;
 };
 
+struct UiMenuItemList {
+    UiMenuItemI    item;
+    ui_callback    callback;
+    void           *userdata;
+    UiList         *list;
+};
+
+struct UiActiveMenuItemList {
+    UiObject     *object;
+    GtkMenuShell *menu;
+    int          index;
+    int          oldcount;
+    UiList       *list;
+    ui_callback  callback;
+    void         *userdata;
+};
+
 GtkWidget *ui_create_menubar(UiObject *obj);
 
-void add_menu_widget(GtkWidget *parent, UiMenuItemI *item, UiObject *obj);
-void add_menuitem_widget(GtkWidget *parent, UiMenuItemI *item, UiObject *obj);
-void add_menuitem_st_widget(GtkWidget *p, UiMenuItemI *item, UiObject *obj);
-void add_menuseparator_widget(GtkWidget *p, UiMenuItemI *item, UiObject *obj);
-void add_checkitem_widget(GtkWidget *p, UiMenuItemI *item, UiObject *obj);
-void add_checkitemnv_widget(GtkWidget *p, UiMenuItemI *item, UiObject *obj);
+void add_menu_widget(GtkWidget *parent, int i, UiMenuItemI *item, UiObject *obj);
+void add_menuitem_widget(GtkWidget *parent, int i, UiMenuItemI *item, UiObject *obj);
+void add_menuitem_st_widget(GtkWidget *p, int i, UiMenuItemI *item, UiObject *obj);
+void add_menuseparator_widget(GtkWidget *p, int i, UiMenuItemI *item, UiObject *obj);
+void add_checkitem_widget(GtkWidget *p, int i, UiMenuItemI *item, UiObject *obj);
+void add_checkitemnv_widget(GtkWidget *p, int i, UiMenuItemI *item, UiObject *obj);
+void add_menuitem_list_widget(GtkWidget *p, int i, UiMenuItemI *item, UiObject *obj);
 
+void ui_update_menuitem_list(UiEvent *event, UiActiveMenuItemList *list);
 void ui_menu_event_wrapper(GtkMenuItem *item, UiEventData *event);
 void ui_menu_event_toggled(GtkCheckMenuItem *ci, UiEventData *event);
 int ui_checkitem_get(UiInteger *i);

mercurial