now we parse the entire glade file at startup, there's no need to reparse

2007-05-13  Jens Granseuer  <jensgr@gmx.net>

	* appearance-font.c: (cb_details_response), (cb_show_details):
	now we parse the entire glade file at startup, there's no need to
	reparse it for the font details dialog

svn path=/trunk/; revision=7609
This commit is contained in:
Jens Granseuer 2007-05-13 16:20:17 +00:00 committed by Jens Granseuer
parent 150a7cdbf6
commit 55f1e82094
2 changed files with 39 additions and 45 deletions

View file

@ -1,3 +1,9 @@
2007-05-13 Jens Granseuer <jensgr@gmx.net>
* appearance-font.c: (cb_details_response), (cb_show_details):
now we parse the entire glade file at startup, there's no need to
reparse it for the font details dialog
2007-05-13 Jens Granseuer <jensgr@gmx.net> 2007-05-13 Jens Granseuer <jensgr@gmx.net>
* appearance-themes.c: (themes_init): update button name, declare * appearance-themes.c: (themes_init): update button name, declare

View file

@ -796,7 +796,6 @@ cb_details_response (GtkDialog *dialog, gint response_id)
/* "Go to font folder" was clicked */ /* "Go to font folder" was clicked */
g_spawn_command_line_async ("nautilus --no-desktop fonts:///", NULL); g_spawn_command_line_async ("nautilus --no-desktop fonts:///", NULL);
} else } else
gtk_widget_hide (GTK_WIDGET (dialog)); gtk_widget_hide (GTK_WIDGET (dialog));
} }
@ -805,86 +804,77 @@ cb_show_details (GtkWidget *button,
AppearanceData *data) AppearanceData *data)
{ {
if (!data->font_details) { if (!data->font_details) {
GladeXML *dialog;
GtkWidget *dpi_spinner;
GnomeVFSURI *uri; GnomeVFSURI *uri;
gint dpi; gint dpi;
GtkAdjustment *adjustment; GtkAdjustment *adjustment;
gchar *gladefile; GtkWidget *widget;
gladefile = g_build_filename (GNOMECC_GLADE_DIR, "appearance.glade", NULL); data->font_details = glade_xml_get_widget (data->xml, "render_details");
dialog = glade_xml_new (gladefile, "render_details", NULL);
g_free (gladefile);
if (!dialog)
return;
data->font_details = WID ("render_details");
uri = gnome_vfs_uri_new ("fonts:///"); uri = gnome_vfs_uri_new ("fonts:///");
widget = glade_xml_get_widget (data->xml, "go_to_font_button");
if (uri == NULL) { if (uri == NULL) {
gtk_widget_hide (WID ("go_to_font_button")); gtk_widget_hide (widget);
} else { } else {
gnome_vfs_uri_unref (uri); gnome_vfs_uri_unref (uri);
gtk_widget_show (WID ("go_to_font_button")); gtk_widget_show (widget);
} }
gtk_window_set_transient_for (GTK_WINDOW (data->font_details), gtk_window_set_transient_for (GTK_WINDOW (data->font_details),
GTK_WINDOW (glade_xml_get_widget (data->xml, "appearance_window"))); GTK_WINDOW (glade_xml_get_widget (data->xml, "appearance_window")));
dpi_spinner = WID ("dpi_spinner"); widget = glade_xml_get_widget (data->xml, "dpi_spinner");
/* pick a sensible maximum dpi */ /* pick a sensible maximum dpi */
dpi = floor ((gdk_screen_width () / gdk_screen_width_mm () + dpi = floor ((gdk_screen_width () / gdk_screen_width_mm () +
gdk_screen_height () / gdk_screen_height_mm ()) * 25.4 / 2. + .5); gdk_screen_height () / gdk_screen_height_mm ()) * 25.4 / 2. + .5);
if (dpi < DPI_LOW_REASONABLE_VALUE) if (dpi < DPI_LOW_REASONABLE_VALUE)
dpi = DPI_LOW_REASONABLE_VALUE; /* be extra careful */ dpi = DPI_LOW_REASONABLE_VALUE; /* be extra careful */
adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (dpi_spinner)); adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
adjustment->upper = dpi * 3; adjustment->upper = dpi * 3;
dpi_load (data->client, GTK_SPIN_BUTTON (dpi_spinner)); dpi_load (data->client, GTK_SPIN_BUTTON (widget));
g_signal_connect (dpi_spinner, "value_changed", g_signal_connect (widget, "value_changed",
G_CALLBACK (dpi_value_changed), data->client); G_CALLBACK (dpi_value_changed), data->client);
gconf_client_notify_add (data->client, FONT_DPI_KEY, gconf_client_notify_add (data->client, FONT_DPI_KEY,
dpi_changed, dpi_changed, widget, NULL, NULL);
dpi_spinner, NULL, NULL);
setup_font_sample (WID ("antialias_none_sample"), ANTIALIAS_NONE, HINT_FULL); setup_font_sample (glade_xml_get_widget (data->xml, "antialias_none_sample"), ANTIALIAS_NONE, HINT_FULL);
setup_font_sample (WID ("antialias_grayscale_sample"), ANTIALIAS_GRAYSCALE, HINT_FULL); setup_font_sample (glade_xml_get_widget (data->xml, "antialias_grayscale_sample"), ANTIALIAS_GRAYSCALE, HINT_FULL);
setup_font_sample (WID ("antialias_subpixel_sample"), ANTIALIAS_RGBA, HINT_FULL); setup_font_sample (glade_xml_get_widget (data->xml, "antialias_subpixel_sample"), ANTIALIAS_RGBA, HINT_FULL);
enum_group_create (FONT_ANTIALIASING_KEY, antialias_enums, ANTIALIAS_GRAYSCALE, enum_group_create (FONT_ANTIALIASING_KEY, antialias_enums, ANTIALIAS_GRAYSCALE,
WID ("antialias_none_radio"), ANTIALIAS_NONE, glade_xml_get_widget (data->xml, "antialias_none_radio"), ANTIALIAS_NONE,
WID ("antialias_grayscale_radio"), ANTIALIAS_GRAYSCALE, glade_xml_get_widget (data->xml, "antialias_grayscale_radio"), ANTIALIAS_GRAYSCALE,
WID ("antialias_subpixel_radio"), ANTIALIAS_RGBA, glade_xml_get_widget (data->xml, "antialias_subpixel_radio"), ANTIALIAS_RGBA,
NULL); NULL);
setup_font_sample (WID ("hint_none_sample"), ANTIALIAS_GRAYSCALE, HINT_NONE); setup_font_sample (glade_xml_get_widget (data->xml, "hint_none_sample"), ANTIALIAS_GRAYSCALE, HINT_NONE);
setup_font_sample (WID ("hint_slight_sample"), ANTIALIAS_GRAYSCALE, HINT_SLIGHT); setup_font_sample (glade_xml_get_widget (data->xml, "hint_slight_sample"), ANTIALIAS_GRAYSCALE, HINT_SLIGHT);
setup_font_sample (WID ("hint_medium_sample"), ANTIALIAS_GRAYSCALE, HINT_MEDIUM); setup_font_sample (glade_xml_get_widget (data->xml, "hint_medium_sample"), ANTIALIAS_GRAYSCALE, HINT_MEDIUM);
setup_font_sample (WID ("hint_full_sample"), ANTIALIAS_GRAYSCALE, HINT_FULL); setup_font_sample (glade_xml_get_widget (data->xml, "hint_full_sample"), ANTIALIAS_GRAYSCALE, HINT_FULL);
enum_group_create (FONT_HINTING_KEY, hint_enums, HINT_FULL, enum_group_create (FONT_HINTING_KEY, hint_enums, HINT_FULL,
WID ("hint_none_radio"), HINT_NONE, glade_xml_get_widget (data->xml, "hint_none_radio"), HINT_NONE,
WID ("hint_slight_radio"), HINT_SLIGHT, glade_xml_get_widget (data->xml, "hint_slight_radio"), HINT_SLIGHT,
WID ("hint_medium_radio"), HINT_MEDIUM, glade_xml_get_widget (data->xml, "hint_medium_radio"), HINT_MEDIUM,
WID ("hint_full_radio"), HINT_FULL, glade_xml_get_widget (data->xml, "hint_full_radio"), HINT_FULL,
NULL); NULL);
gtk_image_set_from_file (GTK_IMAGE (WID ("subpixel_rgb_image")), gtk_image_set_from_file (GTK_IMAGE (glade_xml_get_widget (data->xml, "subpixel_rgb_image")),
GNOMECC_PIXMAP_DIR "/subpixel-rgb.png"); GNOMECC_PIXMAP_DIR "/subpixel-rgb.png");
gtk_image_set_from_file (GTK_IMAGE (WID ("subpixel_bgr_image")), gtk_image_set_from_file (GTK_IMAGE (glade_xml_get_widget (data->xml, "subpixel_bgr_image")),
GNOMECC_PIXMAP_DIR "/subpixel-bgr.png"); GNOMECC_PIXMAP_DIR "/subpixel-bgr.png");
gtk_image_set_from_file (GTK_IMAGE (WID ("subpixel_vrgb_image")), gtk_image_set_from_file (GTK_IMAGE (glade_xml_get_widget (data->xml, "subpixel_vrgb_image")),
GNOMECC_PIXMAP_DIR "/subpixel-vrgb.png"); GNOMECC_PIXMAP_DIR "/subpixel-vrgb.png");
gtk_image_set_from_file (GTK_IMAGE (WID ("subpixel_vbgr_image")), gtk_image_set_from_file (GTK_IMAGE (glade_xml_get_widget (data->xml, "subpixel_vbgr_image")),
GNOMECC_PIXMAP_DIR "/subpixel-vbgr.png"); GNOMECC_PIXMAP_DIR "/subpixel-vbgr.png");
enum_group_create (FONT_RGBA_ORDER_KEY, rgba_order_enums, RGBA_RGB, enum_group_create (FONT_RGBA_ORDER_KEY, rgba_order_enums, RGBA_RGB,
WID ("subpixel_rgb_radio"), RGBA_RGB, glade_xml_get_widget (data->xml, "subpixel_rgb_radio"), RGBA_RGB,
WID ("subpixel_bgr_radio"), RGBA_BGR, glade_xml_get_widget (data->xml, "subpixel_bgr_radio"), RGBA_BGR,
WID ("subpixel_vrgb_radio"), RGBA_VRGB, glade_xml_get_widget (data->xml, "subpixel_vrgb_radio"), RGBA_VRGB,
WID ("subpixel_vbgr_radio"), RGBA_VBGR, glade_xml_get_widget (data->xml, "subpixel_vbgr_radio"), RGBA_VBGR,
NULL); NULL);
g_signal_connect (G_OBJECT (data->font_details), g_signal_connect (G_OBJECT (data->font_details),
@ -893,8 +883,6 @@ cb_show_details (GtkWidget *button,
g_signal_connect (G_OBJECT (data->font_details), g_signal_connect (G_OBJECT (data->font_details),
"delete_event", "delete_event",
G_CALLBACK (gtk_true), NULL); G_CALLBACK (gtk_true), NULL);
g_object_unref (dialog);
} }
gtk_window_present (GTK_WINDOW (data->font_details)); gtk_window_present (GTK_WINDOW (data->font_details));