| 243 g_signal_connect_swapped(G_OBJECT(toolbar), "show", G_CALLBACK(gtk_widget_show), sep); |
243 g_signal_connect_swapped(G_OBJECT(toolbar), "show", G_CALLBACK(gtk_widget_show), sep); |
| 244 g_signal_connect_swapped(G_OBJECT(toolbar), "hide", G_CALLBACK(gtk_widget_hide), sep); |
244 g_signal_connect_swapped(G_OBJECT(toolbar), "hide", G_CALLBACK(gtk_widget_hide), sep); |
| 245 gtk_widget_show(sep); |
245 gtk_widget_show(sep); |
| 246 } |
246 } |
| 247 |
247 |
| 248 sw = gtk_scrolled_window_new(NULL, NULL); |
|
| 249 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
|
| 250 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
|
| 251 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); |
|
| 252 gtk_widget_show(sw); |
|
| 253 |
|
| 254 imhtml = gtk_imhtml_new(NULL, NULL); |
248 imhtml = gtk_imhtml_new(NULL, NULL); |
| 255 gtk_imhtml_set_editable(GTK_IMHTML(imhtml), editable); |
249 gtk_imhtml_set_editable(GTK_IMHTML(imhtml), editable); |
| 256 gtk_imhtml_set_format_functions(GTK_IMHTML(imhtml), GTK_IMHTML_ALL ^ GTK_IMHTML_IMAGE); |
250 gtk_imhtml_set_format_functions(GTK_IMHTML(imhtml), GTK_IMHTML_ALL ^ GTK_IMHTML_IMAGE); |
| 257 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(imhtml), GTK_WRAP_WORD_CHAR); |
251 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(imhtml), GTK_WRAP_WORD_CHAR); |
| 258 #ifdef USE_GTKSPELL |
252 #ifdef USE_GTKSPELL |
| 265 gtk_imhtmltoolbar_attach(GTK_IMHTMLTOOLBAR(toolbar), imhtml); |
259 gtk_imhtmltoolbar_attach(GTK_IMHTMLTOOLBAR(toolbar), imhtml); |
| 266 gtk_imhtmltoolbar_associate_smileys(GTK_IMHTMLTOOLBAR(toolbar), "default"); |
260 gtk_imhtmltoolbar_associate_smileys(GTK_IMHTMLTOOLBAR(toolbar), "default"); |
| 267 } |
261 } |
| 268 pidgin_setup_imhtml(imhtml); |
262 pidgin_setup_imhtml(imhtml); |
| 269 |
263 |
| 270 gtk_container_add(GTK_CONTAINER(sw), imhtml); |
264 sw = pidgin_make_scrollable(imhtml, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, GTK_SHADOW_NONE, -1, -1); |
| |
265 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); |
| 271 |
266 |
| 272 if (imhtml_ret != NULL) |
267 if (imhtml_ret != NULL) |
| 273 *imhtml_ret = imhtml; |
268 *imhtml_ret = imhtml; |
| 274 |
269 |
| 275 if (editable && (toolbar_ret != NULL)) |
270 if (editable && (toolbar_ret != NULL)) |
| 3490 purple_debug_error("winpidgin", "Error iterating HKEY_CLASSES_ROOT subkeys: %ld\n", |
3485 purple_debug_error("winpidgin", "Error iterating HKEY_CLASSES_ROOT subkeys: %ld\n", |
| 3491 ret); |
3486 ret); |
| 3492 } |
3487 } |
| 3493 #endif |
3488 #endif |
| 3494 |
3489 |
| |
3490 GtkWidget * |
| |
3491 pidgin_make_scrollable(GtkWidget *child, GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy, GtkShadowType shadow_type, int width, int height) |
| |
3492 { |
| |
3493 GtkWidget *sw = gtk_scrolled_window_new(NULL, NULL); |
| |
3494 |
| |
3495 if (G_LIKELY(sw)) { |
| |
3496 gtk_widget_show(sw); |
| |
3497 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), hscrollbar_policy, vscrollbar_policy); |
| |
3498 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), shadow_type); |
| |
3499 if (width != -1 || height != -1) |
| |
3500 gtk_widget_set_size_request(sw, width, height); |
| |
3501 if (child) { |
| |
3502 if (GTK_WIDGET_GET_CLASS(child)->set_scroll_adjustments_signal) |
| |
3503 gtk_container_add(GTK_CONTAINER(sw), child); |
| |
3504 else |
| |
3505 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), child); |
| |
3506 } |
| |
3507 return sw; |
| |
3508 } |
| |
3509 |
| |
3510 return child; |
| |
3511 } |
| |
3512 |
| 3495 void pidgin_utils_init(void) |
3513 void pidgin_utils_init(void) |
| 3496 { |
3514 { |
| 3497 gtk_imhtml_class_register_protocol("http://", url_clicked_cb, link_context_menu); |
3515 gtk_imhtml_class_register_protocol("http://", url_clicked_cb, link_context_menu); |
| 3498 gtk_imhtml_class_register_protocol("https://", url_clicked_cb, link_context_menu); |
3516 gtk_imhtml_class_register_protocol("https://", url_clicked_cb, link_context_menu); |
| 3499 gtk_imhtml_class_register_protocol("ftp://", url_clicked_cb, link_context_menu); |
3517 gtk_imhtml_class_register_protocol("ftp://", url_clicked_cb, link_context_menu); |