+static void video_menu_cb(GtkWidget *combo, gpointer data)
+{
+ gchar **option = data;
+
+ EditorDescription *ed = g_list_nth_data(editor_list_get(), gtk_combo_box_get_active(GTK_COMBO_BOX(combo)));
+ *option = ed->key;
+}
+
+static void video_menu_populate(gpointer data, gpointer user_data)
+{
+ GtkWidget *combo = user_data;
+ EditorDescription *ed = data;
+
+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo), ed->name);
+}
+
+static void add_video_menu(GtkWidget *table, gint column, gint row, const gchar *text,
+ gchar *option, gchar **option_c)
+{
+ GtkWidget *combo;
+ gint current;
+/* use lists since they are sorted */
+ GList *eds = editor_list_get();
+
+ *option_c = option;
+
+ pref_table_label(table, column, row, text, 0.0);
+
+ combo = gtk_combo_box_text_new();
+ g_list_foreach(eds,video_menu_populate,(gpointer)combo);
+ current = option ? g_list_index(eds,g_hash_table_lookup(editors,option)): -1;
+
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo), current);
+
+ g_signal_connect(G_OBJECT(combo), "changed",
+ G_CALLBACK(video_menu_cb), option_c);
+
+ gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1,
+ GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_widget_show(combo);
+}
+