SF.net SVN: geany:[4429] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Tue Nov 17 21:49:43 UTC 2009


Revision: 4429
          http://geany.svn.sourceforge.net/geany/?rev=4429&view=rev
Author:   eht16
Date:     2009-11-17 21:49:43 +0000 (Tue, 17 Nov 2009)

Log Message:
-----------
Refactor color and font button callback functions in the preferences dialog. Move the VTE related callback functions into vte.c.
Make use of ui_setup_open_button_callback().

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/prefs.c
    trunk/src/prefs.h
    trunk/src/vte.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2009-11-17 21:47:06 UTC (rev 4428)
+++ trunk/ChangeLog	2009-11-17 21:49:43 UTC (rev 4429)
@@ -5,6 +5,11 @@
  * src/ui_utils.c:
    Implement GTK_FILE_CHOOSER_ACTION_OPEN mode in
    ui_setup_open_button_callback().
+ * src/prefs.c, src/prefs.c, src/vte.c:
+   Refactor color and font button callback functions in the
+   preferences dialog. Move the VTE related callback functions
+   into vte.c.
+   Make use of ui_setup_open_button_callback().
 
 
 2009-11-16  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>

Modified: trunk/src/prefs.c
===================================================================
--- trunk/src/prefs.c	2009-11-17 21:47:06 UTC (rev 4428)
+++ trunk/src/prefs.c	2009-11-17 21:49:43 UTC (rev 4429)
@@ -1149,39 +1149,16 @@
 }
 
 
-void on_prefs_color_choosed(GtkColorButton *widget, gpointer user_data)
+static void on_color_button_choose_cb(GtkColorButton *widget, gpointer user_data)
 {
 	GdkColor color;
 
-	switch (GPOINTER_TO_INT(user_data))
-	{
-		case 1:
-		{
-			gtk_color_button_get_color(widget, &color);
-			setptr(editor_prefs.long_line_color, utils_get_hex_from_color(&color));
-			break;
-		}
-#ifdef HAVE_VTE
-		case 2:
-		{
-			g_free(vc->colour_fore);
-			vc->colour_fore = g_new0(GdkColor, 1);
-			gtk_color_button_get_color(widget, vc->colour_fore);
-			break;
-		}
-		case 3:
-		{
-			g_free(vc->colour_back);
-			vc->colour_back = g_new0(GdkColor, 1);
-			gtk_color_button_get_color(widget, vc->colour_back);
-			break;
-		}
-#endif
-	}
+	gtk_color_button_get_color(widget, &color);
+	setptr(editor_prefs.long_line_color, utils_get_hex_from_color(&color));
 }
 
 
-void on_prefs_font_choosed(GtkFontButton *widget, gpointer user_data)
+static void on_prefs_font_choosed(GtkFontButton *widget, gpointer user_data)
 {
 	const gchar *fontbtn = gtk_font_button_get_font_name(widget);
 	guint i;
@@ -1225,17 +1202,6 @@
 			ui_set_editor_font(fontbtn);
 			break;
 		}
-#ifdef HAVE_VTE
-		case 4:
-		{
-			/* VTE settings */
-			if (strcmp(fontbtn, vc->font) == 0)
-				break;
-			setptr(vc->font, g_strdup(gtk_font_button_get_font_name(widget)));
-			vte_apply_user_settings();
-			break;
-		}
-#endif
 	}
 }
 
@@ -1606,24 +1572,33 @@
 		g_signal_connect(ui_lookup_widget(ui_widgets.prefs_dialog, "editor_font"),
 				"font-set", G_CALLBACK(on_prefs_font_choosed), GINT_TO_POINTER(3));
 		g_signal_connect(ui_lookup_widget(ui_widgets.prefs_dialog, "long_line_color"),
-				"color-set", G_CALLBACK(on_prefs_color_choosed), GINT_TO_POINTER(1));
-		/* file chooser buttons in the tools tab
-		g_signal_connect(ui_lookup_widget(ui_widgets.prefs_dialog, "button_make"),
-				"clicked", G_CALLBACK(on_prefs_tools_button_clicked), ui_lookup_widget(ui_widgets.prefs_dialog, "entry_com_make")); */
-		g_signal_connect(ui_lookup_widget(ui_widgets.prefs_dialog, "button_term"),
-				"clicked", G_CALLBACK(on_prefs_tools_button_clicked), ui_lookup_widget(ui_widgets.prefs_dialog, "entry_com_term"));
-		g_signal_connect(ui_lookup_widget(ui_widgets.prefs_dialog, "button_browser"),
-				"clicked", G_CALLBACK(on_prefs_tools_button_clicked), ui_lookup_widget(ui_widgets.prefs_dialog, "entry_browser"));
-		g_signal_connect(ui_lookup_widget(ui_widgets.prefs_dialog, "button_grep"),
-				"clicked", G_CALLBACK(on_prefs_tools_button_clicked), ui_lookup_widget(ui_widgets.prefs_dialog, "entry_grep"));
+				"color-set", G_CALLBACK(on_color_button_choose_cb), NULL);
+		/* file chooser buttons in the tools tab */
+		ui_setup_open_button_callback(ui_lookup_widget(ui_widgets.prefs_dialog, "button_term"),
+			_("Open File"),
+			GTK_FILE_CHOOSER_ACTION_OPEN,
+			GTK_ENTRY(ui_lookup_widget(ui_widgets.prefs_dialog, "entry_com_term")));
+		ui_setup_open_button_callback(ui_lookup_widget(ui_widgets.prefs_dialog, "button_browser"),
+			_("Open File"),
+			GTK_FILE_CHOOSER_ACTION_OPEN,
+			GTK_ENTRY(ui_lookup_widget(ui_widgets.prefs_dialog, "entry_browser")));
+		ui_setup_open_button_callback(ui_lookup_widget(ui_widgets.prefs_dialog, "button_grep"),
+			_("Open File"),
+			GTK_FILE_CHOOSER_ACTION_OPEN,
+			GTK_ENTRY(ui_lookup_widget(ui_widgets.prefs_dialog, "entry_grep")));
 
 		/* tools commands */
-		g_signal_connect(ui_lookup_widget(ui_widgets.prefs_dialog, "button_contextaction"),
-			"clicked", G_CALLBACK(on_prefs_tools_button_clicked), ui_lookup_widget(ui_widgets.prefs_dialog, "entry_contextaction"));
+		ui_setup_open_button_callback(ui_lookup_widget(ui_widgets.prefs_dialog, "button_contextaction"),
+			_("Open File"),
+			GTK_FILE_CHOOSER_ACTION_OPEN,
+			GTK_ENTRY(ui_lookup_widget(ui_widgets.prefs_dialog, "entry_contextaction")));
 
 		/* printing */
-		g_signal_connect(ui_lookup_widget(ui_widgets.prefs_dialog, "button_print_external_cmd"),
-			"clicked", G_CALLBACK(on_prefs_tools_button_clicked), ui_lookup_widget(ui_widgets.prefs_dialog, "entry_print_external_cmd"));
+		ui_setup_open_button_callback(ui_lookup_widget(ui_widgets.prefs_dialog, "button_print_external_cmd"),
+			_("Open File"),
+			GTK_FILE_CHOOSER_ACTION_OPEN,
+			GTK_ENTRY(ui_lookup_widget(ui_widgets.prefs_dialog, "entry_print_external_cmd")));
+
 		g_signal_connect(ui_lookup_widget(ui_widgets.prefs_dialog, "radio_print_gtk"),
 			"toggled", G_CALLBACK(on_prefs_print_radio_button_toggled), NULL);
 		g_signal_connect(ui_lookup_widget(ui_widgets.prefs_dialog, "check_print_pageheader"),
@@ -1645,58 +1620,3 @@
 	gtk_window_present(GTK_WINDOW(ui_widgets.prefs_dialog));
 }
 
-
-void
-on_prefs_tools_button_clicked           (GtkButton       *button,
-                                        gpointer         item)
-{
-#ifdef G_OS_WIN32
-	win32_show_pref_file_dialog(item);
-#else
-	GtkWidget *dialog;
-	gchar *filename, *tmp, **field;
-
-	/* initialize the dialog */
-	dialog = gtk_file_chooser_dialog_new(_("Open File"), GTK_WINDOW(ui_widgets.prefs_dialog),
-					GTK_FILE_CHOOSER_ACTION_OPEN,
-					GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-					GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
-	/* cut the options from the command line */
-	field = g_strsplit(gtk_entry_get_text(GTK_ENTRY(item)), " ", 2);
-	if (field[0])
-	{
-		filename = g_find_program_in_path(field[0]);
-		if (filename)
-		{
-			gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(dialog), filename);
-			g_free(filename);
-		}
-	}
-
-	/* run it */
-	if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
-	{
-		gchar *utf8_filename;
-
-		tmp = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
-		utf8_filename = utils_get_utf8_from_locale(tmp);
-
-		if (g_strv_length(field) > 1)
-			filename = g_strconcat(utf8_filename, " ", field[1], NULL);
-		else
-		{
-			filename = utf8_filename;
-			utf8_filename = NULL;
-		}
-		gtk_entry_set_text(GTK_ENTRY(item), filename);
-		g_free(filename);
-		g_free(tmp);
-		g_free(utf8_filename);
-	}
-
-	g_strfreev(field);
-	gtk_widget_destroy(dialog);
-#endif
-}
-
-

Modified: trunk/src/prefs.h
===================================================================
--- trunk/src/prefs.h	2009-11-17 21:47:06 UTC (rev 4428)
+++ trunk/src/prefs.h	2009-11-17 21:49:43 UTC (rev 4429)
@@ -62,10 +62,4 @@
 
 void prefs_show_dialog(void);
 
-void on_prefs_font_choosed(GtkFontButton *widget, gpointer user_data);
-
-void on_prefs_color_choosed(GtkColorButton *widget, gpointer user_data);
-
-void on_prefs_tools_button_clicked(GtkButton *button, gpointer user_data);
-
 #endif

Modified: trunk/src/vte.c
===================================================================
--- trunk/src/vte.c	2009-11-17 21:47:06 UTC (rev 4428)
+++ trunk/src/vte.c	2009-11-17 21:49:43 UTC (rev 4429)
@@ -705,6 +705,40 @@
 }
 
 
+static void font_button_clicked_cb(GtkFontButton *widget, gpointer user_data)
+{
+	const gchar *fontbtn = gtk_font_button_get_font_name(widget);
+
+	if (! utils_str_equal(fontbtn, vc->font))
+	{
+		setptr(vc->font, g_strdup(gtk_font_button_get_font_name(widget)));
+		vte_apply_user_settings();
+	}
+}
+
+
+static void on_color_button_choose_cb(GtkColorButton *widget, gpointer user_data)
+{
+	switch (GPOINTER_TO_INT(user_data))
+	{
+		case 1:
+		{
+			g_free(vc->colour_fore);
+			vc->colour_fore = g_new0(GdkColor, 1);
+			gtk_color_button_get_color(widget, vc->colour_fore);
+			break;
+		}
+		case 2:
+		{
+			g_free(vc->colour_back);
+			vc->colour_back = g_new0(GdkColor, 1);
+			gtk_color_button_get_color(widget, vc->colour_back);
+			break;
+		}
+	}
+}
+
+
 void vte_append_preferences_tab(void)
 {
 	if (vte_info.have_vte)
@@ -881,14 +915,13 @@
 
 		gtk_widget_show_all(frame);
 
-		g_signal_connect(font_term, "font-set", G_CALLBACK(on_prefs_font_choosed),
-															GINT_TO_POINTER(4));
-		g_signal_connect(color_fore, "color-set", G_CALLBACK(on_prefs_color_choosed),
+		g_signal_connect(font_term, "font-set", G_CALLBACK(font_button_clicked_cb), NULL);
+		g_signal_connect(color_fore, "color-set", G_CALLBACK(on_color_button_choose_cb),
+															GINT_TO_POINTER(1));
+		g_signal_connect(color_back, "color-set", G_CALLBACK(on_color_button_choose_cb),
 															GINT_TO_POINTER(2));
-		g_signal_connect(color_back, "color-set", G_CALLBACK(on_prefs_color_choosed),
-															GINT_TO_POINTER(3));
-		g_signal_connect(button_shell, "clicked",
-				G_CALLBACK(on_prefs_tools_button_clicked), entry_shell);
+		ui_setup_open_button_callback(button_shell, _("Open File"),
+			GTK_FILE_CHOOSER_ACTION_OPEN, GTK_ENTRY(entry_shell));
 	}
 }
 


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