SF.net SVN: geany: [807] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Sat Sep 9 14:36:24 UTC 2006


Revision: 807
          http://svn.sourceforge.net/geany/?rev=807&view=rev
Author:   ntrel
Date:     2006-09-09 07:36:15 -0700 (Sat, 09 Sep 2006)

Log Message:
-----------
Move on_recent_file_activate, dialogs_create_recent_menu,
dialogs_create_build_menu_gen, dialogs_create_build_menu_tex to
ui_utils.c. Also make some functions static.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/callbacks.c
    trunk/src/callbacks.h
    trunk/src/dialogs.c
    trunk/src/dialogs.h
    trunk/src/main.c
    trunk/src/ui_utils.c
    trunk/src/ui_utils.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-09-09 14:26:54 UTC (rev 806)
+++ trunk/ChangeLog	2006-09-09 14:36:15 UTC (rev 807)
@@ -3,6 +3,12 @@
  * src/document.c, src/ui_utils.c:
    Reorder the recent files list if necessary when a file is
    (re)opened - closes #1552178.
+ * src/msgwindow.c: Check msgwin visible before scrolling.
+ * src/ui_utils.h, src/ui_utils.c, src/callbacks.c,
+   src/callbacks.h, src/dialogs.c, src/dialogs.h, src/main.c:
+   Move on_recent_file_activate, dialogs_create_recent_menu,
+   dialogs_create_build_menu_gen, dialogs_create_build_menu_tex to
+   ui_utils.c. Also make some functions static.
 
 
 2006-09-08  Nick Treleaven  <nick.treleaven at btinternet.com>

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2006-09-09 14:26:54 UTC (rev 806)
+++ trunk/src/callbacks.c	2006-09-09 14:36:15 UTC (rev 807)
@@ -2310,19 +2310,6 @@
 
 
 void
-on_recent_file_activate                (GtkMenuItem     *menuitem,
-                                        gpointer         user_data)
-{
-	gchar *locale_filename = utils_get_locale_from_utf8((gchar*) user_data);
-
-	document_open_file(-1, locale_filename, 0, FALSE, NULL, NULL);
-	ui_recent_file_loaded((gchar*) user_data);
-
-	g_free(locale_filename);
-}
-
-
-void
 on_file_open_check_hidden_toggled      (GtkToggleButton *togglebutton,
                                         gpointer         user_data)
 {

Modified: trunk/src/callbacks.h
===================================================================
--- trunk/src/callbacks.h	2006-09-09 14:26:54 UTC (rev 806)
+++ trunk/src/callbacks.h	2006-09-09 14:36:15 UTC (rev 807)
@@ -467,10 +467,6 @@
                                         gpointer         user_data);
 
 void
-on_recent_file_activate                (GtkMenuItem     *menuitem,
-                                        gpointer         user_data);
-
-void
 on_file_open_selection_changed         (GtkFileChooser  *filechooser,
                                         gpointer         user_data);
 

Modified: trunk/src/dialogs.c
===================================================================
--- trunk/src/dialogs.c	2006-09-09 14:26:54 UTC (rev 806)
+++ trunk/src/dialogs.c	2006-09-09 14:36:15 UTC (rev 807)
@@ -46,6 +46,9 @@
 #include "keybindings.h"
 
 
+static GtkWidget *add_file_open_extra_widget();
+
+
 /* This shows the file selection dialog to open a file. */
 void dialogs_show_open_file ()
 {
@@ -90,7 +93,7 @@
 
 			// add checkboxes and filename entry
 			gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(app->open_filesel),
-						dialogs_add_file_open_extra_widget());
+				add_file_open_extra_widget());
 			combo = lookup_widget(app->open_filesel, "filetype_combo");
 
 			// add FileFilters(start with "All Files")
@@ -149,6 +152,71 @@
 }
 
 
+static GtkWidget *add_file_open_extra_widget()
+{
+	GtkWidget *vbox;
+	GtkWidget *lbox;
+	GtkWidget *ebox;
+	GtkWidget *hbox;
+	GtkWidget *file_entry;
+	GtkSizeGroup *size_group;
+	GtkWidget *align;
+	GtkWidget *check_hidden;
+	GtkWidget *filetype_label;
+	GtkWidget *filetype_combo;
+	GtkTooltips *tooltips = GTK_TOOLTIPS(lookup_widget(app->window, "tooltips"));
+
+	vbox = gtk_vbox_new(FALSE, 6);
+
+	align = gtk_alignment_new(1.0, 0.0, 0.0, 0.0);
+	check_hidden = gtk_check_button_new_with_mnemonic(_("Show _hidden files"));
+	gtk_widget_show(check_hidden);
+	gtk_container_add(GTK_CONTAINER(align), check_hidden);
+	gtk_box_pack_start(GTK_BOX(vbox), align, FALSE, FALSE, 0);
+	gtk_button_set_focus_on_click(GTK_BUTTON(check_hidden), FALSE);
+
+	lbox = gtk_hbox_new(FALSE, 12);
+	file_entry = gtk_entry_new();
+	gtk_widget_show(file_entry);
+	gtk_box_pack_start(GTK_BOX(lbox), file_entry, TRUE, TRUE, 0);
+	//gtk_editable_set_editable(GTK_EDITABLE(file_entry), FALSE);
+	gtk_entry_set_activates_default(GTK_ENTRY(file_entry), TRUE);
+
+	// the ebox is for the tooltip, because gtk_combo_box doesn't show a tooltip for unknown reason
+	ebox = gtk_event_box_new();
+	hbox = gtk_hbox_new(FALSE, 6);
+	filetype_label = gtk_label_new(_("Set filetype:"));
+	filetype_combo = gtk_combo_box_new_text();
+	gtk_tooltips_set_tip(tooltips, ebox,
+		_("Explicitly defines a filetype for the file, if it would not be detected by filename extension.\nNote if you choose multiple files, they will all be opened with the chosen filetype."), NULL);
+	gtk_box_pack_start(GTK_BOX(hbox), filetype_label, FALSE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(hbox), filetype_combo, FALSE, FALSE, 0);
+	gtk_container_add(GTK_CONTAINER(ebox), hbox);
+	gtk_box_pack_start(GTK_BOX(lbox), ebox, FALSE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(vbox), lbox, FALSE, FALSE, 0);
+	gtk_widget_show_all(vbox);
+
+	size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+	gtk_size_group_add_widget(GTK_SIZE_GROUP(size_group), check_hidden);
+	gtk_size_group_add_widget(GTK_SIZE_GROUP(size_group), filetype_combo);
+	g_object_unref(G_OBJECT(size_group));	// auto destroy the size group
+
+	g_signal_connect((gpointer) file_entry, "activate",
+				G_CALLBACK(on_file_open_entry_activate), NULL);
+	g_signal_connect((gpointer) check_hidden, "toggled",
+				G_CALLBACK(on_file_open_check_hidden_toggled), NULL);
+
+	g_object_set_data_full(G_OBJECT(app->open_filesel), "file_entry",
+				gtk_widget_ref(file_entry), (GDestroyNotify)gtk_widget_unref);
+	g_object_set_data_full(G_OBJECT(app->open_filesel), "check_hidden",
+				gtk_widget_ref(check_hidden), (GDestroyNotify)gtk_widget_unref);
+	g_object_set_data_full(G_OBJECT(app->open_filesel), "filetype_combo",
+				gtk_widget_ref(filetype_combo), (GDestroyNotify)gtk_widget_unref);
+
+	return vbox;
+}
+
+
 /* This shows the file selection dialog to save a file. */
 void dialogs_show_save_as()
 {
@@ -332,7 +400,7 @@
 
 
 /* This shows the font selection dialog to choose a font. */
-void dialogs_show_open_font(void)
+void dialogs_show_open_font()
 {
 #ifdef G_OS_WIN32
 	win32_show_font_dialog();
@@ -367,7 +435,7 @@
 }
 
 
-void dialogs_show_word_count(void)
+void dialogs_show_word_count()
 {
 	GtkWidget *dialog, *label;
 	gint idx;
@@ -454,256 +522,6 @@
 }
 
 
-#define GEANY_ADD_WIDGET_ACCEL(gkey, menuitem) \
-	if (keys[(gkey)]->key != 0) \
-		gtk_widget_add_accelerator(menuitem, "activate", accel_group, \
-			keys[(gkey)]->key, keys[(gkey)]->mods, GTK_ACCEL_VISIBLE)
-
-GtkWidget *dialogs_create_build_menu_gen(gint idx)
-{
-	GtkWidget *menu, *item = NULL, *image, *separator;
-	GtkAccelGroup *accel_group = gtk_accel_group_new();
-	GtkTooltips *tooltips = GTK_TOOLTIPS(lookup_widget(app->window, "tooltips"));
-	filetype *ft = doc_list[idx].file_type;
-
-	menu = gtk_menu_new();
-
-	if (ft->menu_items->can_compile)
-	{
-		// compile the code
-		item = gtk_image_menu_item_new_with_mnemonic(_("_Compile"));
-		gtk_widget_show(item);
-		gtk_container_add(GTK_CONTAINER(menu), item);
-		gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file"), NULL);
-		GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_COMPILE, item);
-		image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
-		gtk_widget_show(image);
-		gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
-		g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_compile_activate), NULL);
-		ft->menu_items->item_compile = item;
-	}
-
-	if (ft->menu_items->can_link)
-	{	// build the code
-		item = gtk_image_menu_item_new_with_mnemonic(_("_Build"));
-		gtk_widget_show(item);
-		gtk_container_add(GTK_CONTAINER(menu), item);
-		gtk_tooltips_set_tip(tooltips, item,
-					_("Builds the current file (generate an executable file)"), NULL);
-		GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_LINK, item);
-		g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_build_activate), NULL);
-		ft->menu_items->item_link = item;
-	}
-
-	if (item != NULL)
-	{
-		item = gtk_separator_menu_item_new();
-		gtk_widget_show(item);
-		gtk_container_add(GTK_CONTAINER(menu), item);
-	}
-
-	// build the code with make all
-	item = gtk_image_menu_item_new_with_mnemonic(_("_Make all"));
-	gtk_widget_show(item);
-	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
-										   "make tool and the default target"), NULL);
-	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_MAKE, item);
-	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(0));
-
-	// build the code with make
-	item = gtk_image_menu_item_new_with_mnemonic(_("Make custom _target"));
-	gtk_widget_show(item);
-	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_MAKEOWNTARGET, item);
-	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
-										   "make tool and the specified target"), NULL);
-	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(1));
-
-	// build the code with make object
-	item = gtk_image_menu_item_new_with_mnemonic(_("Make _object"));
-	gtk_widget_show(item);
-	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_MAKEOBJECT, item);
-	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file using the "
-										   "make tool"), NULL);
-	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(2));
-
-	if (ft->menu_items->can_exec)
-	{	// execute the code
-		item = gtk_separator_menu_item_new();
-		gtk_widget_show(item);
-		gtk_container_add(GTK_CONTAINER(menu), item);
-
-		item = gtk_image_menu_item_new_from_stock("gtk-execute", accel_group);
-		gtk_widget_show(item);
-		gtk_container_add(GTK_CONTAINER(menu), item);
-		gtk_tooltips_set_tip(tooltips, item, _("Run or view the current file"), NULL);
-		GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_RUN, item);
-		g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_execute_activate), NULL);
-		ft->menu_items->item_exec = item;
-	}
-
-	// arguments
-	if (ft->menu_items->can_compile || ft->menu_items->can_link || ft->menu_items->can_exec)
-	{
-		// separator
-		separator = gtk_separator_menu_item_new();
-		gtk_widget_show(separator);
-		gtk_container_add(GTK_CONTAINER(menu), separator);
-		gtk_widget_set_sensitive(separator, FALSE);
-
-		item = gtk_image_menu_item_new_with_mnemonic(_("_Set Includes and Arguments"));
-		gtk_widget_show(item);
-		GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_OPTIONS, item);
-		gtk_container_add(GTK_CONTAINER(menu), item);
-		gtk_tooltips_set_tip(tooltips, item,
-					_("Sets the includes and library paths for the compiler and "
-					  "the program arguments for execution"), NULL);
-		image = gtk_image_new_from_stock("gtk-preferences", GTK_ICON_SIZE_MENU);
-		gtk_widget_show(image);
-		gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
-		g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_arguments_activate), NULL);
-	}
-
-	return menu;
-}
-
-
-GtkWidget *dialogs_create_build_menu_tex(gint idx)
-{
-	GtkWidget *menu, *item, *image, *separator;
-	GtkAccelGroup *accel_group = gtk_accel_group_new();
-	GtkTooltips *tooltips = GTK_TOOLTIPS(lookup_widget(app->window, "tooltips"));
-
-	menu = gtk_menu_new();
-
-	// DVI
-	item = gtk_image_menu_item_new_with_mnemonic(_("LaTeX -> DVI"));
-	gtk_widget_show(item);
-	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file into a DVI file"), NULL);
-	if (keys[GEANY_KEYS_BUILD_COMPILE]->key)
-		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_COMPILE]->key,
-			keys[GEANY_KEYS_BUILD_COMPILE]->mods, GTK_ACCEL_VISIBLE);
-	image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
-	gtk_widget_show(image);
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
-	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(0));
-
-	// PDF
-	item = gtk_image_menu_item_new_with_mnemonic(_("LaTeX -> PDF"));
-	gtk_widget_show(item);
-	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file into a PDF file"), NULL);
-	if (keys[GEANY_KEYS_BUILD_LINK]->key)
-		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_LINK]->key,
-			keys[GEANY_KEYS_BUILD_LINK]->mods, GTK_ACCEL_VISIBLE);
-	image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
-	gtk_widget_show(image);
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
-	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(1));
-
-	// build the code with make all
-	item = gtk_image_menu_item_new_with_mnemonic(_("Build with \"make\""));
-	gtk_widget_show(item);
-	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
-										   "make tool and the default target"), NULL);
-	if (keys[GEANY_KEYS_BUILD_MAKE]->key)
-		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_MAKE]->key,
-			keys[GEANY_KEYS_BUILD_MAKE]->mods, GTK_ACCEL_VISIBLE);
-	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(0));
-
-	// build the code with make
-	item = gtk_image_menu_item_new_with_mnemonic(_("Build with make (custom target)"));
-	gtk_widget_show(item);
-	if (keys[GEANY_KEYS_BUILD_MAKEOWNTARGET]->key)
-		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_MAKEOWNTARGET]->key,
-			keys[GEANY_KEYS_BUILD_MAKEOWNTARGET]->mods, GTK_ACCEL_VISIBLE);
-	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
-										   "make tool and the specified target"), NULL);
-	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(1));
-
-	// DVI view
-	item = gtk_image_menu_item_new_with_mnemonic(_("View DVI file"));
-	gtk_widget_show(item);
-	gtk_container_add(GTK_CONTAINER(menu), item);
-	if (keys[GEANY_KEYS_BUILD_RUN]->key)
-		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_RUN]->key,
-			keys[GEANY_KEYS_BUILD_RUN]->mods, GTK_ACCEL_VISIBLE);
-	gtk_tooltips_set_tip(tooltips, item, _("Compiles and view the current file"), NULL);
-	image = gtk_image_new_from_stock("gtk-find", GTK_ICON_SIZE_MENU);
-	gtk_widget_show(image);
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
-	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(2));
-
-	// PDF view
-	item = gtk_image_menu_item_new_with_mnemonic(_("View PDF file"));
-	gtk_widget_show(item);
-	gtk_container_add(GTK_CONTAINER(menu), item);
-	if (keys[GEANY_KEYS_BUILD_RUN2]->key)
-		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_RUN2]->key,
-			keys[GEANY_KEYS_BUILD_RUN2]->mods, GTK_ACCEL_VISIBLE);
-	gtk_tooltips_set_tip(tooltips, item, _("Compiles and view the current file"), NULL);
-	image = gtk_image_new_from_stock("gtk-find", GTK_ICON_SIZE_MENU);
-	gtk_widget_show(image);
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
-	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(3));
-
-	// separator
-	separator = gtk_separator_menu_item_new();
-	gtk_widget_show(separator);
-	gtk_container_add(GTK_CONTAINER(menu), separator);
-	gtk_widget_set_sensitive(separator, FALSE);
-
-	// arguments
-	item = gtk_image_menu_item_new_with_mnemonic(_("Set Arguments"));
-	gtk_widget_show(item);
-	if (keys[GEANY_KEYS_BUILD_OPTIONS]->key)
-		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_OPTIONS]->key,
-			keys[GEANY_KEYS_BUILD_OPTIONS]->mods, GTK_ACCEL_VISIBLE);
-	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item,
-				_("Sets the program paths and arguments"), NULL);
-	image = gtk_image_new_from_stock("gtk-preferences", GTK_ICON_SIZE_MENU);
-	gtk_widget_show(image);
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
-	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_arguments_activate), NULL);
-
-	gtk_window_add_accel_group(GTK_WINDOW(app->window), accel_group);
-
-	return menu;
-}
-
-
-void dialogs_create_recent_menu(void)
-{
-	GtkWidget *recent_menu = lookup_widget(app->window, "recent_files1_menu");
-	GtkWidget *tmp;
-	guint i;
-	gchar *filename;
-
-	if (g_queue_get_length(app->recent_queue) == 0)
-	{
-		gtk_widget_set_sensitive(lookup_widget(app->window, "recent_files1"), FALSE);
-		return;
-	}
-
-	for (i = 0; i < MIN(app->mru_length, g_queue_get_length(app->recent_queue));
-		i++)
-	{
-		filename = g_queue_peek_nth(app->recent_queue, i);
-		tmp = gtk_menu_item_new_with_label(filename);
-		gtk_widget_show(tmp);
-		gtk_menu_shell_append(GTK_MENU_SHELL(recent_menu), tmp);
-		g_signal_connect((gpointer) tmp, "activate",
-					G_CALLBACK(on_recent_file_activate), (gpointer) filename);
-	}
-}
-
-
 void dialogs_show_input(const gchar *title, const gchar *label_text, const gchar *default_text,
 						GCallback cb_dialog, GCallback cb_entry)
 {
@@ -735,7 +553,7 @@
 }
 
 
-void dialogs_show_goto_line(void)
+void dialogs_show_goto_line()
 {
 	GtkWidget *dialog, *label, *entry;
 
@@ -760,7 +578,7 @@
 }
 
 
-void dialogs_show_includes_arguments_tex(void)
+void dialogs_show_includes_arguments_tex()
 {
 	GtkWidget *dialog, *label, *entries[4];
 	gint idx = document_get_cur_idx();
@@ -867,7 +685,7 @@
 }
 
 
-void dialogs_show_includes_arguments_gen(void)
+void dialogs_show_includes_arguments_gen()
 {
 	GtkWidget *dialog, *label, *entries[3];
 	gint idx = document_get_cur_idx();
@@ -961,71 +779,6 @@
 }
 
 
-GtkWidget *dialogs_add_file_open_extra_widget(void)
-{
-	GtkWidget *vbox;
-	GtkWidget *lbox;
-	GtkWidget *ebox;
-	GtkWidget *hbox;
-	GtkWidget *file_entry;
-	GtkSizeGroup *size_group;
-	GtkWidget *align;
-	GtkWidget *check_hidden;
-	GtkWidget *filetype_label;
-	GtkWidget *filetype_combo;
-	GtkTooltips *tooltips = GTK_TOOLTIPS(lookup_widget(app->window, "tooltips"));
-
-	vbox = gtk_vbox_new(FALSE, 6);
-
-	align = gtk_alignment_new(1.0, 0.0, 0.0, 0.0);
-	check_hidden = gtk_check_button_new_with_mnemonic(_("Show _hidden files"));
-	gtk_widget_show(check_hidden);
-	gtk_container_add(GTK_CONTAINER(align), check_hidden);
-	gtk_box_pack_start(GTK_BOX(vbox), align, FALSE, FALSE, 0);
-	gtk_button_set_focus_on_click(GTK_BUTTON(check_hidden), FALSE);
-
-	lbox = gtk_hbox_new(FALSE, 12);
-	file_entry = gtk_entry_new();
-	gtk_widget_show(file_entry);
-	gtk_box_pack_start(GTK_BOX(lbox), file_entry, TRUE, TRUE, 0);
-	//gtk_editable_set_editable(GTK_EDITABLE(file_entry), FALSE);
-	gtk_entry_set_activates_default(GTK_ENTRY(file_entry), TRUE);
-
-	// the ebox is for the tooltip, because gtk_combo_box doesn't show a tooltip for unknown reason
-	ebox = gtk_event_box_new();
-	hbox = gtk_hbox_new(FALSE, 6);
-	filetype_label = gtk_label_new(_("Set filetype:"));
-	filetype_combo = gtk_combo_box_new_text();
-	gtk_tooltips_set_tip(tooltips, ebox,
-		_("Explicitly defines a filetype for the file, if it would not be detected by filename extension.\nNote if you choose multiple files, they will all be opened with the chosen filetype."), NULL);
-	gtk_box_pack_start(GTK_BOX(hbox), filetype_label, FALSE, FALSE, 0);
-	gtk_box_pack_start(GTK_BOX(hbox), filetype_combo, FALSE, FALSE, 0);
-	gtk_container_add(GTK_CONTAINER(ebox), hbox);
-	gtk_box_pack_start(GTK_BOX(lbox), ebox, FALSE, FALSE, 0);
-	gtk_box_pack_start(GTK_BOX(vbox), lbox, FALSE, FALSE, 0);
-	gtk_widget_show_all(vbox);
-
-	size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
-	gtk_size_group_add_widget(GTK_SIZE_GROUP(size_group), check_hidden);
-	gtk_size_group_add_widget(GTK_SIZE_GROUP(size_group), filetype_combo);
-	g_object_unref(G_OBJECT(size_group));	// auto destroy the size group
-
-	g_signal_connect((gpointer) file_entry, "activate",
-				G_CALLBACK(on_file_open_entry_activate), NULL);
-	g_signal_connect((gpointer) check_hidden, "toggled",
-				G_CALLBACK(on_file_open_check_hidden_toggled), NULL);
-
-	g_object_set_data_full(G_OBJECT(app->open_filesel), "file_entry",
-				gtk_widget_ref(file_entry), (GDestroyNotify)gtk_widget_unref);
-	g_object_set_data_full(G_OBJECT(app->open_filesel), "check_hidden",
-				gtk_widget_ref(check_hidden), (GDestroyNotify)gtk_widget_unref);
-	g_object_set_data_full(G_OBJECT(app->open_filesel), "filetype_combo",
-				gtk_widget_ref(filetype_combo), (GDestroyNotify)gtk_widget_unref);
-
-	return vbox;
-}
-
-
 void dialogs_show_file_properties(gint idx)
 {
 	GtkWidget *dialog, *label, *table, *hbox, *image, *perm_table, *check;
@@ -1456,7 +1209,7 @@
 }
 
 
-void dialogs_show_keyboard_shortcuts(void)
+void dialogs_show_keyboard_shortcuts()
 {
 	GtkWidget *dialog, *hbox, *label1, *label2, *label3, *swin;
 	GString *text_names = g_string_sized_new(600);

Modified: trunk/src/dialogs.h
===================================================================
--- trunk/src/dialogs.h	2006-09-09 14:26:54 UTC (rev 806)
+++ trunk/src/dialogs.h	2006-09-09 14:36:15 UTC (rev 807)
@@ -25,7 +25,7 @@
 #define GEANY_DIALOGS_H 1
 
 /* This shows the file selection dialog to open a file. */
-void dialogs_show_open_file(void);
+void dialogs_show_open_file();
 
 /* This shows the file selection dialog to save a file. */
 void dialogs_show_save_as();
@@ -37,29 +37,21 @@
 gboolean dialogs_show_unsaved_file(gint idx);
 
 /* This shows the font selection dialog to choose a font. */
-void dialogs_show_open_font(void);
+void dialogs_show_open_font();
 
-void dialogs_show_word_count(void);
+void dialogs_show_word_count();
 
 void dialogs_show_color(gchar *colour);
 
-GtkWidget *dialogs_create_build_menu_gen(gint idx);
-
-GtkWidget *dialogs_create_build_menu_tex(gint idx);
-
 void dialogs_show_input(const gchar *title, const gchar *label_text, const gchar *default_text,
 						GCallback cb_dialog, GCallback cb_entry);
 
-void dialogs_show_goto_line(void);
+void dialogs_show_goto_line();
 
-void dialogs_show_includes_arguments_gen(void);
+void dialogs_show_includes_arguments_gen();
 
-void dialogs_show_includes_arguments_tex(void);
+void dialogs_show_includes_arguments_tex();
 
-void dialogs_create_recent_menu(void);
-
-GtkWidget *dialogs_add_file_open_extra_widget(void);
-
 void dialogs_show_file_properties(gint idx);
 
 gboolean dialogs_show_question(const gchar *text, ...);
@@ -68,6 +60,6 @@
 gboolean dialogs_show_question_full(const gchar *yes_btn, const gchar *no_btn,
 	const gchar *extra_text, const gchar *main_text, ...);
 
-void dialogs_show_keyboard_shortcuts(void);
+void dialogs_show_keyboard_shortcuts();
 
 #endif

Modified: trunk/src/main.c
===================================================================
--- trunk/src/main.c	2006-09-09 14:26:54 UTC (rev 806)
+++ trunk/src/main.c	2006-09-09 14:36:15 UTC (rev 807)
@@ -550,7 +550,7 @@
 #ifdef HAVE_VTE
 	vte_init();
 #endif
-	dialogs_create_recent_menu();
+	ui_create_recent_menu();
 
 	msgwin_status_add(_("This is Geany %s."), VERSION);
 	if (config_dir_result != 0)

Modified: trunk/src/ui_utils.c
===================================================================
--- trunk/src/ui_utils.c	2006-09-09 14:26:54 UTC (rev 806)
+++ trunk/src/ui_utils.c	2006-09-09 14:36:15 UTC (rev 807)
@@ -34,14 +34,20 @@
 #include "utils.h"
 #include "callbacks.h"
 #include "encodings.h"
-#include "dialogs.h"
 #include "images.c"
 #include "treeviews.h"
+#include "keybindings.h"
 
 
-static void ui_update_recent_menu();
+static void update_recent_menu();
+static void recreate_recent_menu();
+static void recent_file_loaded(const gchar *utf8_filename);
+static void
+recent_file_activate_cb                (GtkMenuItem     *menuitem,
+                                        gpointer         user_data);
 
-static void ui_recreate_recent_menu();
+static GtkWidget *create_build_menu_tex(gint idx);
+static GtkWidget *create_build_menu_gen(gint idx);
 
 
 /* allow_override is TRUE if text can be ignored when another message has been set
@@ -651,7 +657,7 @@
 		{
 			if (ft->menu_items->menu == NULL)
 			{
-				ft->menu_items->menu = dialogs_create_build_menu_gen(idx);
+				ft->menu_items->menu = create_build_menu_gen(idx);
 				g_object_ref((gpointer)ft->menu_items->menu);	// to hold it after removing
 
 			}
@@ -687,7 +693,7 @@
 		{
 			if (ft->menu_items->menu == NULL)
 			{
-				ft->menu_items->menu = dialogs_create_build_menu_tex(idx);
+				ft->menu_items->menu = create_build_menu_tex(idx);
 				g_object_ref((gpointer)ft->menu_items->menu);	// to hold it after removing
 			}
 			if (doc_list[idx].file_name == NULL)
@@ -711,7 +717,7 @@
 		{
 			if (ft->menu_items->menu == NULL)
 			{
-				ft->menu_items->menu = dialogs_create_build_menu_gen(idx);
+				ft->menu_items->menu = create_build_menu_gen(idx);
 				g_object_ref((gpointer)ft->menu_items->menu);	// to hold it after removing
 			}
 			if (doc_list[idx].file_name == NULL)
@@ -745,6 +751,230 @@
 }
 
 
+#define GEANY_ADD_WIDGET_ACCEL(gkey, menuitem) \
+	if (keys[(gkey)]->key != 0) \
+		gtk_widget_add_accelerator(menuitem, "activate", accel_group, \
+			keys[(gkey)]->key, keys[(gkey)]->mods, GTK_ACCEL_VISIBLE)
+
+static GtkWidget *create_build_menu_gen(gint idx)
+{
+	GtkWidget *menu, *item = NULL, *image, *separator;
+	GtkAccelGroup *accel_group = gtk_accel_group_new();
+	GtkTooltips *tooltips = GTK_TOOLTIPS(lookup_widget(app->window, "tooltips"));
+	filetype *ft = doc_list[idx].file_type;
+
+	menu = gtk_menu_new();
+
+	if (ft->menu_items->can_compile)
+	{
+		// compile the code
+		item = gtk_image_menu_item_new_with_mnemonic(_("_Compile"));
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(menu), item);
+		gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file"), NULL);
+		GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_COMPILE, item);
+		image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
+		gtk_widget_show(image);
+		gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
+		g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_compile_activate), NULL);
+		ft->menu_items->item_compile = item;
+	}
+
+	if (ft->menu_items->can_link)
+	{	// build the code
+		item = gtk_image_menu_item_new_with_mnemonic(_("_Build"));
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(menu), item);
+		gtk_tooltips_set_tip(tooltips, item,
+					_("Builds the current file (generate an executable file)"), NULL);
+		GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_LINK, item);
+		g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_build_activate), NULL);
+		ft->menu_items->item_link = item;
+	}
+
+	if (item != NULL)
+	{
+		item = gtk_separator_menu_item_new();
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(menu), item);
+	}
+
+	// build the code with make all
+	item = gtk_image_menu_item_new_with_mnemonic(_("_Make all"));
+	gtk_widget_show(item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
+										   "make tool and the default target"), NULL);
+	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_MAKE, item);
+	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(0));
+
+	// build the code with make
+	item = gtk_image_menu_item_new_with_mnemonic(_("Make custom _target"));
+	gtk_widget_show(item);
+	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_MAKEOWNTARGET, item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
+										   "make tool and the specified target"), NULL);
+	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(1));
+
+	// build the code with make object
+	item = gtk_image_menu_item_new_with_mnemonic(_("Make _object"));
+	gtk_widget_show(item);
+	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_MAKEOBJECT, item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file using the "
+										   "make tool"), NULL);
+	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(2));
+
+	if (ft->menu_items->can_exec)
+	{	// execute the code
+		item = gtk_separator_menu_item_new();
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(menu), item);
+
+		item = gtk_image_menu_item_new_from_stock("gtk-execute", accel_group);
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(menu), item);
+		gtk_tooltips_set_tip(tooltips, item, _("Run or view the current file"), NULL);
+		GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_RUN, item);
+		g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_execute_activate), NULL);
+		ft->menu_items->item_exec = item;
+	}
+
+	// arguments
+	if (ft->menu_items->can_compile || ft->menu_items->can_link || ft->menu_items->can_exec)
+	{
+		// separator
+		separator = gtk_separator_menu_item_new();
+		gtk_widget_show(separator);
+		gtk_container_add(GTK_CONTAINER(menu), separator);
+		gtk_widget_set_sensitive(separator, FALSE);
+
+		item = gtk_image_menu_item_new_with_mnemonic(_("_Set Includes and Arguments"));
+		gtk_widget_show(item);
+		GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_OPTIONS, item);
+		gtk_container_add(GTK_CONTAINER(menu), item);
+		gtk_tooltips_set_tip(tooltips, item,
+					_("Sets the includes and library paths for the compiler and "
+					  "the program arguments for execution"), NULL);
+		image = gtk_image_new_from_stock("gtk-preferences", GTK_ICON_SIZE_MENU);
+		gtk_widget_show(image);
+		gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
+		g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_arguments_activate), NULL);
+	}
+
+	return menu;
+}
+
+
+static GtkWidget *create_build_menu_tex(gint idx)
+{
+	GtkWidget *menu, *item, *image, *separator;
+	GtkAccelGroup *accel_group = gtk_accel_group_new();
+	GtkTooltips *tooltips = GTK_TOOLTIPS(lookup_widget(app->window, "tooltips"));
+
+	menu = gtk_menu_new();
+
+	// DVI
+	item = gtk_image_menu_item_new_with_mnemonic(_("LaTeX -> DVI"));
+	gtk_widget_show(item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file into a DVI file"), NULL);
+	if (keys[GEANY_KEYS_BUILD_COMPILE]->key)
+		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_COMPILE]->key,
+			keys[GEANY_KEYS_BUILD_COMPILE]->mods, GTK_ACCEL_VISIBLE);
+	image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
+	gtk_widget_show(image);
+	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
+	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(0));
+
+	// PDF
+	item = gtk_image_menu_item_new_with_mnemonic(_("LaTeX -> PDF"));
+	gtk_widget_show(item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file into a PDF file"), NULL);
+	if (keys[GEANY_KEYS_BUILD_LINK]->key)
+		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_LINK]->key,
+			keys[GEANY_KEYS_BUILD_LINK]->mods, GTK_ACCEL_VISIBLE);
+	image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
+	gtk_widget_show(image);
+	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
+	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(1));
+
+	// build the code with make all
+	item = gtk_image_menu_item_new_with_mnemonic(_("Build with \"make\""));
+	gtk_widget_show(item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
+										   "make tool and the default target"), NULL);
+	if (keys[GEANY_KEYS_BUILD_MAKE]->key)
+		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_MAKE]->key,
+			keys[GEANY_KEYS_BUILD_MAKE]->mods, GTK_ACCEL_VISIBLE);
+	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(0));
+
+	// build the code with make
+	item = gtk_image_menu_item_new_with_mnemonic(_("Build with make (custom target)"));
+	gtk_widget_show(item);
+	if (keys[GEANY_KEYS_BUILD_MAKEOWNTARGET]->key)
+		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_MAKEOWNTARGET]->key,
+			keys[GEANY_KEYS_BUILD_MAKEOWNTARGET]->mods, GTK_ACCEL_VISIBLE);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
+										   "make tool and the specified target"), NULL);
+	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(1));
+
+	// DVI view
+	item = gtk_image_menu_item_new_with_mnemonic(_("View DVI file"));
+	gtk_widget_show(item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	if (keys[GEANY_KEYS_BUILD_RUN]->key)
+		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_RUN]->key,
+			keys[GEANY_KEYS_BUILD_RUN]->mods, GTK_ACCEL_VISIBLE);
+	gtk_tooltips_set_tip(tooltips, item, _("Compiles and view the current file"), NULL);
+	image = gtk_image_new_from_stock("gtk-find", GTK_ICON_SIZE_MENU);
+	gtk_widget_show(image);
+	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
+	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(2));
+
+	// PDF view
+	item = gtk_image_menu_item_new_with_mnemonic(_("View PDF file"));
+	gtk_widget_show(item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	if (keys[GEANY_KEYS_BUILD_RUN2]->key)
+		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_RUN2]->key,
+			keys[GEANY_KEYS_BUILD_RUN2]->mods, GTK_ACCEL_VISIBLE);
+	gtk_tooltips_set_tip(tooltips, item, _("Compiles and view the current file"), NULL);
+	image = gtk_image_new_from_stock("gtk-find", GTK_ICON_SIZE_MENU);
+	gtk_widget_show(image);
+	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
+	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(3));
+
+	// separator
+	separator = gtk_separator_menu_item_new();
+	gtk_widget_show(separator);
+	gtk_container_add(GTK_CONTAINER(menu), separator);
+	gtk_widget_set_sensitive(separator, FALSE);
+
+	// arguments
+	item = gtk_image_menu_item_new_with_mnemonic(_("Set Arguments"));
+	gtk_widget_show(item);
+	if (keys[GEANY_KEYS_BUILD_OPTIONS]->key)
+		gtk_widget_add_accelerator(item, "activate", accel_group, keys[GEANY_KEYS_BUILD_OPTIONS]->key,
+			keys[GEANY_KEYS_BUILD_OPTIONS]->mods, GTK_ACCEL_VISIBLE);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	gtk_tooltips_set_tip(tooltips, item,
+				_("Sets the program paths and arguments"), NULL);
+	image = gtk_image_new_from_stock("gtk-preferences", GTK_ICON_SIZE_MENU);
+	gtk_widget_show(image);
+	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
+	g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_arguments_activate), NULL);
+
+	gtk_window_add_accel_group(GTK_WINDOW(app->window), accel_group);
+
+	return menu;
+}
+
+
 void ui_treeviews_show_hide(gboolean force)
 {
 	GtkWidget *widget;
@@ -934,23 +1164,79 @@
 }
 
 
-void ui_add_recent_file(const gchar *filename)
+void ui_create_recent_menu()
 {
-	if (g_queue_find_custom(app->recent_queue, filename, (GCompareFunc) strcmp) == NULL)
+	GtkWidget *recent_menu = lookup_widget(app->window, "recent_files1_menu");
+	GtkWidget *tmp;
+	guint i;
+	gchar *filename;
+
+	if (g_queue_get_length(app->recent_queue) == 0)
 	{
-		g_queue_push_head(app->recent_queue, g_strdup(filename));
+		gtk_widget_set_sensitive(lookup_widget(app->window, "recent_files1"), FALSE);
+		return;
+	}
+
+	for (i = 0; i < MIN(app->mru_length, g_queue_get_length(app->recent_queue));
+		i++)
+	{
+		filename = g_queue_peek_nth(app->recent_queue, i);
+		tmp = gtk_menu_item_new_with_label(filename);
+		gtk_widget_show(tmp);
+		gtk_menu_shell_append(GTK_MENU_SHELL(recent_menu), tmp);
+		g_signal_connect((gpointer) tmp, "activate",
+					G_CALLBACK(recent_file_activate_cb), (gpointer) filename);
+	}
+}
+
+
+static void
+recent_file_activate_cb                (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+	gchar *locale_filename = utils_get_locale_from_utf8((gchar*) user_data);
+
+	document_open_file(-1, locale_filename, 0, FALSE, NULL, NULL);
+	recent_file_loaded((gchar*) user_data);
+
+	g_free(locale_filename);
+}
+
+
+void ui_add_recent_file(const gchar *utf8_filename)
+{
+	if (g_queue_find_custom(app->recent_queue, utf8_filename, (GCompareFunc) strcmp) == NULL)
+	{
+		g_queue_push_head(app->recent_queue, g_strdup(utf8_filename));
 		if (g_queue_get_length(app->recent_queue) > app->mru_length)
 		{
 			g_free(g_queue_pop_tail(app->recent_queue));
 		}
-		ui_update_recent_menu();
+		update_recent_menu();
 	}
-	else ui_recent_file_loaded(filename);	// filename already in recent list
+	else recent_file_loaded(utf8_filename);	// filename already in recent list
 }
 
 
-static void ui_update_recent_menu()
+static void recent_file_loaded(const gchar *utf8_filename)
 {
+	GList *item =
+		g_queue_find_custom(app->recent_queue, utf8_filename, (GCompareFunc) strcmp);
+	gchar *data;
+
+	g_return_if_fail(item != NULL);
+	// first reorder the queue
+	data = item->data;
+	g_queue_remove(app->recent_queue, data);
+	g_queue_push_head(app->recent_queue, data);
+
+	// now recreate the recent files menu
+	recreate_recent_menu();
+}
+
+
+static void update_recent_menu()
+{
 	GtkWidget *recent_menu = lookup_widget(app->window, "recent_files1_menu");
 	GtkWidget *recent_files_item = lookup_widget(app->window, "recent_files1");
 	GtkWidget *tmp;
@@ -984,11 +1270,11 @@
 	gtk_widget_show(tmp);
 	gtk_menu_shell_prepend(GTK_MENU_SHELL(recent_menu), tmp);
 	g_signal_connect((gpointer) tmp, "activate",
-				G_CALLBACK(on_recent_file_activate), (gpointer) filename);
+				G_CALLBACK(recent_file_activate_cb), (gpointer) filename);
 }
 
 
-static void ui_recreate_recent_menu()
+static void recreate_recent_menu()
 {
 	GList *item, *children;
 	void *data;
@@ -1003,27 +1289,10 @@
 		if (! GTK_IS_MENU_ITEM(data)) continue;
 		gtk_widget_destroy(GTK_WIDGET(data));
 	}
-	dialogs_create_recent_menu();
+	ui_create_recent_menu();
 }
 
 
-void ui_recent_file_loaded(const gchar *filename)
-{
-	GList *item =
-		g_queue_find_custom(app->recent_queue, filename, (GCompareFunc) strcmp);
-	gchar *data;
-
-	g_return_if_fail(item != NULL);
-	// first reorder the queue
-	data = item->data;
-	g_queue_remove(app->recent_queue, data);
-	g_queue_push_head(app->recent_queue, data);
-
-	// now recreate the recent files menu
-	ui_recreate_recent_menu();
-}
-
-
 void ui_show_markers_margin()
 {
 	gint i, idx, max = gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->notebook));

Modified: trunk/src/ui_utils.h
===================================================================
--- trunk/src/ui_utils.h	2006-09-09 14:26:54 UTC (rev 806)
+++ trunk/src/ui_utils.h	2006-09-09 14:36:15 UTC (rev 807)
@@ -85,9 +85,9 @@
 GtkWidget *ui_new_image_from_inline(gint img, gboolean small_img);
 
 
-void ui_add_recent_file(const gchar *filename);
+void ui_create_recent_menu();
 
-void ui_recent_file_loaded(const gchar *filename);
+void ui_add_recent_file(const gchar *utf8_filename);
 
 
 void ui_show_markers_margin();


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list