void menu_init (void) { static const struct { const AudguiMenuItem * items; int n_items; } table[] = { {main_items, ARRAY_LEN (main_items)}, {playback_items, ARRAY_LEN (playback_items)}, {playlist_items, ARRAY_LEN (playlist_items)}, {view_items, ARRAY_LEN (view_items)}, {playlist_add_items, ARRAY_LEN (playlist_add_items)}, {playlist_remove_items, ARRAY_LEN (playlist_remove_items)}, {playlist_select_items, ARRAY_LEN (playlist_select_items)}, {playlist_sort_items, ARRAY_LEN (playlist_sort_items)}, {playlist_context_items, ARRAY_LEN (playlist_context_items)}, {eq_preset_items, ARRAY_LEN (eq_preset_items)} }; accel = gtk_accel_group_new (); for (int i = UI_MENUS; i --; ) { menus[i] = gtk_menu_new (); audgui_menu_init (menus[i], table[i].items, table[i].n_items, accel); g_signal_connect (menus[i], "destroy", (GCallback) gtk_widget_destroyed, & menus[i]); } }
GtkWidget * make_menu_tab (GtkAccelGroup * accel) { GtkWidget * shell = gtk_menu_new (); audgui_menu_init (shell, tab_items, ARRAY_LEN (tab_items), accel); return shell; }
GtkWidget * make_menu_bar (GtkAccelGroup * accel) { GtkWidget * bar = gtk_menu_bar_new (); audgui_menu_init (bar, main_items, ARRAY_LEN (main_items), accel); return bar; }