Mercurial > geeqie.yaz
diff src/menu.c @ 1272:e0e12512cde2
read external editors from .desktop files
author | nadvornik |
---|---|
date | Sun, 01 Feb 2009 12:48:14 +0000 |
parents | 1646720364cf |
children | 8b89e3ff286b |
line wrap: on
line diff
--- a/src/menu.c Thu Jan 29 19:43:34 2009 +0000 +++ b/src/menu.c Sun Feb 01 12:48:14 2009 +0000 @@ -64,26 +64,22 @@ *----------------------------------------------------------------------------- */ -static void add_edit_items(GtkWidget *menu, GCallback func, GtkAccelGroup *accel_grp) +static void add_edit_items(GtkWidget *menu, GCallback func) { - gint i; - - for (i = 0; i < GQ_EDITOR_GENERIC_SLOTS; i++) - { - gchar *text; - const gchar *name = editor_get_name(i); + GList *editors_list = editor_list_get(); + GList *work = editors_list; - if (!name) continue; + while (work) + { + const EditorDescription *editor = work->data; + work = work->next; + + menu_item_add(menu, editor->name, func, editor->key); + } + + g_list_free(editors_list); +} - text = g_strdup_printf(_("_%d %s..."), i, name); - if (accel_grp) - add_menu_item(menu, text, accel_grp, i + 49, GDK_CONTROL_MASK, func, GINT_TO_POINTER(i)); - else - menu_item_add(menu, text, func, GINT_TO_POINTER(i)); - g_free(text); - - } -} GtkWidget *submenu_add_edit(GtkWidget *menu, GtkWidget **menu_item, GCallback func, gpointer data) { @@ -94,7 +90,7 @@ submenu = gtk_menu_new(); g_object_set_data(G_OBJECT(submenu), "submenu_data", data); - add_edit_items(submenu, func, NULL); + add_edit_items(submenu, func); gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);