| 92 }; |
92 }; |
| 93 |
93 |
| 94 void |
94 void |
| 95 pidgin_setup_imhtml(GtkWidget *imhtml) |
95 pidgin_setup_imhtml(GtkWidget *imhtml) |
| 96 { |
96 { |
| |
97 PangoFontDescription *desc = NULL; |
| 97 g_return_if_fail(imhtml != NULL); |
98 g_return_if_fail(imhtml != NULL); |
| 98 g_return_if_fail(GTK_IS_IMHTML(imhtml)); |
99 g_return_if_fail(GTK_IS_IMHTML(imhtml)); |
| 99 |
100 |
| 100 g_signal_connect(G_OBJECT(imhtml), "url_clicked", |
101 g_signal_connect(G_OBJECT(imhtml), "url_clicked", |
| 101 G_CALLBACK(url_clicked_cb), NULL); |
102 G_CALLBACK(url_clicked_cb), NULL); |
| 102 |
103 |
| 103 pidgin_themes_smiley_themeize(imhtml); |
104 pidgin_themes_smiley_themeize(imhtml); |
| 104 |
105 |
| 105 gtk_imhtml_set_funcs(GTK_IMHTML(imhtml), >kimhtml_cbs); |
106 gtk_imhtml_set_funcs(GTK_IMHTML(imhtml), >kimhtml_cbs); |
| 106 |
107 |
| 107 /* Use the GNOME "document" font, if applicable */ |
108 if (!purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/use_theme_font")) { |
| 108 if (purple_running_gnome()) { |
109 const char *font = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/custom_font"); |
| |
110 desc = pango_font_description_from_string(font); |
| |
111 } else if (purple_running_gnome()) { |
| |
112 /* Use the GNOME "document" font, if applicable */ |
| 109 char *path, *font; |
113 char *path, *font; |
| 110 PangoFontDescription *desc = NULL; |
|
| 111 |
114 |
| 112 if ((path = g_find_program_in_path("gconftool-2"))) { |
115 if ((path = g_find_program_in_path("gconftool-2"))) { |
| 113 g_free(path); |
116 g_free(path); |
| 114 if (!g_spawn_command_line_sync( |
117 if (!g_spawn_command_line_sync( |
| 115 "gconftool-2 -g /desktop/gnome/interface/document_font_name", |
118 "gconftool-2 -g /desktop/gnome/interface/document_font_name", |
| 116 &font, NULL, NULL, NULL)) |
119 &font, NULL, NULL, NULL)) |
| 117 return; |
120 return; |
| 118 } |
121 } |
| 119 desc = pango_font_description_from_string(font); |
122 desc = pango_font_description_from_string(font); |
| 120 g_free(font); |
123 g_free(font); |
| 121 |
124 } |
| 122 if (desc) { |
125 |
| 123 gtk_widget_modify_font(imhtml, desc); |
126 if (desc) { |
| 124 pango_font_description_free(desc); |
127 gtk_widget_modify_font(imhtml, desc); |
| 125 } |
128 pango_font_description_free(desc); |
| 126 } |
129 } |
| 127 } |
130 } |
| 128 |
131 |
| 129 GtkWidget * |
132 GtkWidget * |
| 130 pidgin_create_imhtml(gboolean editable, GtkWidget **imhtml_ret, GtkWidget **toolbar_ret, GtkWidget **sw_ret) |
133 pidgin_create_imhtml(gboolean editable, GtkWidget **imhtml_ret, GtkWidget **toolbar_ret, GtkWidget **sw_ret) |