Mercurial > pidgin.yaz
diff pidgin/gtkprefs.c @ 17489:747e5fd970e6
Reluctantly, I've added a preference for overriding the GTK+ default theme in GtkIMHtml widgets. There is support for this feature in the GNOME HIG and in other GTK+ (including GNOME) applications. This fixes #494. This is a GTK+ 2.4-only feature. I don't update the fonts in existing gtkimhtml's yet, only in new ones. Someone else may want to take care of that
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Thu, 31 May 2007 03:00:35 +0000 |
parents | 92821180bded |
children | 8e8da9a1eaac e91e2b450e5d a79b96ba2b49 |
line wrap: on
line diff
--- a/pidgin/gtkprefs.c Thu May 31 00:57:53 2007 +0000 +++ b/pidgin/gtkprefs.c Thu May 31 03:00:35 2007 +0000 @@ -881,6 +881,15 @@ return ret; } +#if GTK_CHECK_VERSION(2,4,0) +static void +pidgin_custom_font_set(GtkFontButton *font_button, gpointer nul) +{ + purple_prefs_set_string(PIDGIN_PREFS_ROOT "/conversations/custom_font", + gtk_font_button_get_font_name(font_button)); +} +#endif + static GtkWidget * conv_page() { @@ -889,9 +898,16 @@ GtkWidget *toolbar; GtkWidget *iconpref1; GtkWidget *iconpref2; + GtkWidget *fontpref; GtkWidget *imhtml; GtkWidget *frame; +#if GTK_CHECK_VERSION(2,4,0) + GtkWidget *hbox; + GtkWidget *label; + GtkWidget *font_button; +#endif + ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER); @@ -922,6 +938,25 @@ pidgin_prefs_checkbox(_("F_lash window when IMs are received"), PIDGIN_PREFS_ROOT "/win32/blink_im", vbox); #endif +#if GTK_CHECK_VERSION(2,4,0) + vbox = pidgin_make_frame(ret, _("Font")); + if (purple_running_gnome()) + fontpref = pidgin_prefs_checkbox(_("Use document font from _theme"), PIDGIN_PREFS_ROOT "/conversations/use_theme_font", vbox); + else + fontpref = pidgin_prefs_checkbox(_("Use font from _theme"), PIDGIN_PREFS_ROOT "/conversations/use_theme_font", vbox); + hbox = gtk_hbox_new(FALSE, 3); + label = gtk_label_new_with_mnemonic(_("Conversation _font:")); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); + font_button = gtk_font_button_new_with_font(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/custom_font")); + gtk_font_button_set_show_style(GTK_FONT_BUTTON(font_button), TRUE); + gtk_box_pack_start(GTK_BOX(hbox), font_button, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); + if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/use_theme_font")) + gtk_widget_set_sensitive(hbox, FALSE); + g_signal_connect(G_OBJECT(fontpref), "clicked", G_CALLBACK(pidgin_toggle_sensitive), hbox); + g_signal_connect(G_OBJECT(font_button), "font-set", G_CALLBACK(pidgin_custom_font_set), NULL); +#endif + vbox = pidgin_make_frame(ret, _("Default Formatting")); frame = pidgin_create_imhtml(TRUE, &imhtml, &toolbar, NULL);