void mcaststream_launch(GtkAction *action, gpointer user_data);
void wlanstat_launch(GtkAction *action, gpointer user_data);
+/** Adds a callback to be executed when the menubar is ready to have menus and items added to it */
+void ws_add_build_menubar_items_callback(gpointer callback);
+
#else
extern void register_stat_menu_item_stock(
const char *name,
static GtkAccelGroup *grp;
static GList *merge_lua_menu_items_list = NULL;
+static GList *build_menubar_items_callback_list = NULL;
GtkWidget *popup_menu_object;
static void menus_init(void);
static void merge_lua_menu_items(GList *node);
+static void ws_menubar_build_external_menus(void);
static void set_menu_sensitivity (GtkUIManager *ui_manager, const gchar *, gint);
static void set_menu_visible(GtkUIManager *ui_manager, const gchar *path, gint val);
static void show_hide_cb(GtkWidget *w, gpointer data, gint action);
menu_dissector_filter(&cfile);
/* Only LUA uses this currently. NOTE that "placeholders" must exist in the GUI description */
merge_lua_menu_items(merge_lua_menu_items_list);
+
+ /* Add external menus and items */
+ ws_menubar_build_external_menus();
+
/* Initialize enabled/disabled state of menu items */
set_menus_for_capture_file(NULL);
#if 0
}
}
+/* Get a merge id for the menubar */
+void
+ws_add_build_menubar_items_callback(gpointer callback)
+{
+ build_menubar_items_callback_list = g_list_append(build_menubar_items_callback_list, callback);
+
+}
+
+static void
+ws_menubar_build_external_menus(void)
+{
+ void (*callback)(gpointer);
+
+ while(build_menubar_items_callback_list != NULL) {
+ callback = build_menubar_items_callback_list->data;
+ callback(ui_manager_main_menubar);
+ build_menubar_items_callback_list = g_list_next(build_menubar_items_callback_list);
+ }
+
+
+}
+
typedef struct _menu_item {
const char *gui_path;
const char *name;