Mercurial > pidgin.yaz
comparison src/gtkconv.c @ 8061:ea073d234191
[gaim-migrate @ 8749]
<b><i><u>what you see is what you get</u></i></b>
committer: Tailor Script <tailor@pidgin.im>
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Sat, 10 Jan 2004 06:06:02 +0000 |
parents | fa6395637e2c |
children | 73781ed9fdf7 |
comparison
equal
deleted
inserted
replaced
8060:b66733e6e6f2 | 8061:ea073d234191 |
---|---|
351 check_everything(buffer); | 351 check_everything(buffer); |
352 | 352 |
353 return FALSE; | 353 return FALSE; |
354 } | 354 } |
355 | 355 |
356 static void default_formatize(GaimConversation *conv) { | |
357 GaimGtkConversation *c = GAIM_GTK_CONVERSATION(conv); | |
358 GaimConnection *gc = gaim_conversation_get_gc(conv); | |
359 | |
360 if (gc && gc->flags & GAIM_CONNECTION_HTML) { | |
361 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_bold")) { | |
362 gtk_imhtml_toggle_bold(GTK_IMHTML(c->entry)); | |
363 } | |
364 | |
365 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_italic")) { | |
366 gtk_imhtml_toggle_italic(GTK_IMHTML(c->entry)); | |
367 } | |
368 | |
369 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_underline")) { | |
370 gtk_imhtml_toggle_underline(GTK_IMHTML(c->entry)); | |
371 } | |
372 | |
373 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_strikethrough")) { | |
374 /* Tell me noone uses <s> by default ... maybe I won't do | |
375 _toggle_strikethrough and not let them */ | |
376 /* g_snprintf(buf2, limit, "<STRIKE>%s</STRIKE>", buf); | |
377 strcpy(buf, buf2); */ | |
378 } | |
379 | |
380 if (gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_font") || c->has_font) { | |
381 gtk_imhtml_toggle_fontface(GTK_IMHTML(c->entry), c->fontface); | |
382 } | |
383 | |
384 if (gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_size")) { | |
385 gtk_imhtml_font_set_size(GTK_IMHTML(c->entry), gaim_prefs_get_int("/gaim/gtk/conversations/font_size")); | |
386 } | |
387 | |
388 if (gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_fgcolor")) { | |
389 char *color = g_strdup_printf("#%02x%02x%02x", | |
390 c->fg_color.red / 256, | |
391 c->fg_color.green / 256, | |
392 c->fg_color.blue / 256); | |
393 gtk_imhtml_toggle_forecolor(GTK_IMHTML(c->entry), color); | |
394 g_free(color); | |
395 } | |
396 | |
397 if (!(gc->flags & GAIM_CONNECTION_NO_BGCOLOR) && gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_bgcolor")) { | |
398 char *color = g_strdup_printf("#%02x%02x%02x", | |
399 c->bg_color.red / 256, | |
400 c->bg_color.green / 256, | |
401 c->bg_color.blue / 256); | |
402 gtk_imhtml_toggle_backcolor(GTK_IMHTML(c->entry), color); | |
403 g_free(color); | |
404 } | |
405 } | |
406 } | |
407 | |
356 static void | 408 static void |
357 send_cb(GtkWidget *widget, GaimConversation *conv) | 409 send_cb(GtkWidget *widget, GaimConversation *conv) |
358 { | 410 { |
359 GaimGtkConversation *gtkconv; | 411 GaimGtkConversation *gtkconv; |
360 char *buf, *buf2; | 412 char *buf; |
361 GtkTextIter start_iter, end_iter; | |
362 int limit; | |
363 GaimConnection *gc = gaim_conversation_get_gc(conv); | 413 GaimConnection *gc = gaim_conversation_get_gc(conv); |
364 | 414 |
365 gtkconv = GAIM_GTK_CONVERSATION(conv); | 415 gtkconv = GAIM_GTK_CONVERSATION(conv); |
366 | 416 |
367 gtk_text_buffer_get_start_iter(gtkconv->entry_buffer, &start_iter); | 417 if (gc && gc->flags & GAIM_CONNECTION_HTML) |
368 gtk_text_buffer_get_end_iter(gtkconv->entry_buffer, &end_iter); | 418 buf = gtk_imhtml_get_markup(GTK_IMHTML(gtkconv->entry)); |
369 buf2 = gtk_text_buffer_get_text(gtkconv->entry_buffer, | 419 else |
370 &start_iter, &end_iter, FALSE); | 420 buf = gtk_imhtml_get_text(GTK_IMHTML(gtkconv->entry)); |
371 | 421 |
372 set_toggle(gtkconv->toolbar.bold, FALSE); | 422 /* set_toggle(gtkconv->toolbar.bold, FALSE); |
373 set_toggle(gtkconv->toolbar.italic, FALSE); | 423 set_toggle(gtkconv->toolbar.italic, FALSE); |
374 set_toggle(gtkconv->toolbar.underline, FALSE); | 424 set_toggle(gtkconv->toolbar.underline, FALSE); |
375 set_toggle(gtkconv->toolbar.larger_size, FALSE); | 425 set_toggle(gtkconv->toolbar.larger_size, FALSE); |
376 set_toggle(gtkconv->toolbar.normal_size, FALSE); | 426 set_toggle(gtkconv->toolbar.normal_size, FALSE); |
377 set_toggle(gtkconv->toolbar.smaller_size,FALSE); | 427 set_toggle(gtkconv->toolbar.smaller_size,FALSE); |
378 set_toggle(gtkconv->toolbar.font, FALSE); | 428 set_toggle(gtkconv->toolbar.font, FALSE); |
379 set_toggle(gtkconv->toolbar.fgcolor, FALSE); | 429 set_toggle(gtkconv->toolbar.fgcolor, FALSE); |
380 set_toggle(gtkconv->toolbar.bgcolor, FALSE); | 430 set_toggle(gtkconv->toolbar.bgcolor, FALSE); |
381 set_toggle(gtkconv->toolbar.link, FALSE); | 431 set_toggle(gtkconv->toolbar.link, FALSE); |
382 | 432 */ |
383 gtk_widget_grab_focus(gtkconv->entry); | 433 gtk_widget_grab_focus(gtkconv->entry); |
384 | |
385 limit = 32 * 1024; /* This will be done again in gaim_conv_im_send. *shrug* */ | |
386 | |
387 buf = g_malloc(limit); | |
388 strncpy(buf, buf2, limit); | |
389 | |
390 g_free(buf2); | |
391 | 434 |
392 if (strlen(buf) == 0) { | 435 if (strlen(buf) == 0) { |
393 g_free(buf); | 436 g_free(buf); |
394 | 437 |
395 return; | 438 return; |
396 } | 439 } |
397 | 440 |
398 buf2 = g_malloc(limit); | |
399 | |
400 if (gc && gc->flags & GAIM_CONNECTION_HTML) { | |
401 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_bold")) { | |
402 g_snprintf(buf2, limit, "<B>%s</B>", buf); | |
403 strcpy(buf, buf2); | |
404 } | |
405 | |
406 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_italic")) { | |
407 g_snprintf(buf2, limit, "<I>%s</I>", buf); | |
408 strcpy(buf, buf2); | |
409 } | |
410 | |
411 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_underline")) { | |
412 g_snprintf(buf2, limit, "<U>%s</U>", buf); | |
413 strcpy(buf, buf2); | |
414 } | |
415 | |
416 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_strikethrough")) { | |
417 g_snprintf(buf2, limit, "<STRIKE>%s</STRIKE>", buf); | |
418 strcpy(buf, buf2); | |
419 } | |
420 | |
421 if (gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_font") || | |
422 gtkconv->has_font) { | |
423 | |
424 g_snprintf(buf2, limit, | |
425 "<FONT FACE=\"%s\">%s</FONT>", gtkconv->fontface, buf); | |
426 strcpy(buf, buf2); | |
427 } | |
428 | |
429 if (gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_size")) { | |
430 g_snprintf(buf2, limit, | |
431 "<FONT SIZE=\"%d\">%s</FONT>", | |
432 gaim_prefs_get_int("/gaim/gtk/conversations/font_size"), | |
433 buf); | |
434 strcpy(buf, buf2); | |
435 } | |
436 | |
437 if (gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_fgcolor")) { | |
438 g_snprintf(buf2, limit, | |
439 "<FONT COLOR=\"#%02X%02X%02X\">%s</FONT>", | |
440 gtkconv->fg_color.red / 256, | |
441 gtkconv->fg_color.green / 256, | |
442 gtkconv->fg_color.blue / 256, buf); | |
443 strcpy(buf, buf2); | |
444 } | |
445 | |
446 if (!(gc->flags & GAIM_CONNECTION_NO_BGCOLOR) && gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_bgcolor")) { | |
447 g_snprintf(buf2, limit, | |
448 "<BODY BGCOLOR=\"#%02X%02X%02X\">%s</BODY>", | |
449 gtkconv->bg_color.red / 256, | |
450 gtkconv->bg_color.green / 256, | |
451 gtkconv->bg_color.blue / 256, buf); | |
452 strcpy(buf, buf2); | |
453 } | |
454 } | |
455 | |
456 g_free(buf2); | |
457 | |
458 if (gaim_conversation_get_type(conv) == GAIM_CONV_IM) | 441 if (gaim_conversation_get_type(conv) == GAIM_CONV_IM) |
459 gaim_conv_im_send(GAIM_CONV_IM(conv), buf); | 442 gaim_conv_im_send(GAIM_CONV_IM(conv), buf); |
460 else | 443 else if (gaim_conversation_get_type(conv) == GAIM_CONV_CHAT) |
461 gaim_conv_chat_send(GAIM_CONV_CHAT(conv), buf); | 444 gaim_conv_chat_send(GAIM_CONV_CHAT(conv), buf); |
462 | 445 |
463 if (gaim_prefs_get_bool("/gaim/gtk/conversations/im/hide_on_send")) | 446 if (gaim_prefs_get_bool("/gaim/gtk/conversations/im/hide_on_send")) |
464 gaim_conv_window_hide(gaim_conversation_get_window(conv)); | 447 gaim_conv_window_hide(gaim_conversation_get_window(conv)); |
465 | 448 |
466 g_free(buf); | 449 g_free(buf); |
467 | 450 |
468 gtk_text_buffer_set_text(gtkconv->entry_buffer, "", -1); | 451 gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry)); |
452 default_formatize(conv); | |
469 } | 453 } |
470 | 454 |
471 static void | 455 static void |
472 add_remove_cb(GtkWidget *widget, GaimConversation *conv) | 456 add_remove_cb(GtkWidget *widget, GaimConversation *conv) |
473 { | 457 { |
1351 | 1335 |
1352 if (conv->send_history->next && | 1336 if (conv->send_history->next && |
1353 conv->send_history->next->data) { | 1337 conv->send_history->next->data) { |
1354 | 1338 |
1355 conv->send_history = conv->send_history->next; | 1339 conv->send_history = conv->send_history->next; |
1356 gtk_text_buffer_set_text(gtkconv->entry_buffer, | 1340 gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry)); |
1357 conv->send_history->data, -1); | 1341 gtk_imhtml_append_text_with_images(GTK_IMHTML(gtkconv->entry), conv->send_history->data, 0, NULL); |
1358 } | 1342 } |
1359 | 1343 |
1360 break; | 1344 break; |
1361 | 1345 |
1362 case GDK_Down: | 1346 case GDK_Down: |
1364 break; | 1348 break; |
1365 | 1349 |
1366 if (conv->send_history->prev) { | 1350 if (conv->send_history->prev) { |
1367 conv->send_history = conv->send_history->prev; | 1351 conv->send_history = conv->send_history->prev; |
1368 | 1352 |
1369 if (conv->send_history->data) | 1353 if (conv->send_history->data) { |
1370 gtk_text_buffer_set_text(gtkconv->entry_buffer, | 1354 gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry)); |
1371 conv->send_history->data, -1); | 1355 gtk_imhtml_append_text_with_images(GTK_IMHTML(gtkconv->entry), conv->send_history->data, 0, NULL); |
1356 } | |
1372 } | 1357 } |
1373 | 1358 |
1374 break; | 1359 break; |
1375 } | 1360 } |
1376 | 1361 |
2302 * Utility functions | 2287 * Utility functions |
2303 **************************************************************************/ | 2288 **************************************************************************/ |
2304 static void | 2289 static void |
2305 do_bold(GtkWidget *bold, GaimGtkConversation *gtkconv) | 2290 do_bold(GtkWidget *bold, GaimGtkConversation *gtkconv) |
2306 { | 2291 { |
2307 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(bold))) | 2292 gtk_imhtml_toggle_bold(GTK_IMHTML(gtkconv->entry)); |
2308 gaim_gtk_surround(gtkconv, "<B>", "</B>"); | |
2309 else | |
2310 gaim_gtk_advance_past(gtkconv, "<B>", "</B>"); | |
2311 | |
2312 gtk_widget_grab_focus(gtkconv->entry); | 2293 gtk_widget_grab_focus(gtkconv->entry); |
2313 } | 2294 } |
2314 | 2295 |
2315 static void | 2296 static void |
2316 do_italic(GtkWidget *italic, GaimGtkConversation *gtkconv) | 2297 do_italic(GtkWidget *italic, GaimGtkConversation *gtkconv) |
2317 { | 2298 { |
2318 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(italic))) | 2299 gtk_imhtml_toggle_italic(GTK_IMHTML(gtkconv->entry)); |
2319 gaim_gtk_surround(gtkconv, "<I>", "</I>"); | |
2320 else | |
2321 gaim_gtk_advance_past(gtkconv, "<I>", "</I>"); | |
2322 | |
2323 gtk_widget_grab_focus(gtkconv->entry); | 2300 gtk_widget_grab_focus(gtkconv->entry); |
2324 } | 2301 } |
2325 | 2302 |
2326 static void | 2303 static void |
2327 do_underline(GtkWidget *underline, GaimGtkConversation *gtkconv) | 2304 do_underline(GtkWidget *underline, GaimGtkConversation *gtkconv) |
2328 { | 2305 { |
2329 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(underline))) | 2306 gtk_imhtml_toggle_underline(GTK_IMHTML(gtkconv->entry)); |
2330 gaim_gtk_surround(gtkconv, "<U>", "</U>"); | |
2331 else | |
2332 gaim_gtk_advance_past(gtkconv, "<U>", "</U>"); | |
2333 | |
2334 gtk_widget_grab_focus(gtkconv->entry); | 2307 gtk_widget_grab_focus(gtkconv->entry); |
2335 } | 2308 } |
2336 | 2309 |
2337 static void | 2310 static void |
2338 do_small(GtkWidget *smalltb, GaimGtkConversation *gtkconv) | 2311 do_small(GtkWidget *smalltb, GaimGtkConversation *gtkconv) |
2339 { | 2312 { |
2340 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(smalltb))) | 2313 gtk_imhtml_font_shrink(GTK_IMHTML(gtkconv->entry)); |
2341 gaim_gtk_surround(gtkconv, "<FONT SIZE=\"1\">", "</FONT>"); | |
2342 else | |
2343 gaim_gtk_advance_past(gtkconv, "<FONT SIZE=\"1\">", "</FONT>"); | |
2344 | |
2345 gtk_widget_grab_focus(gtkconv->entry); | 2314 gtk_widget_grab_focus(gtkconv->entry); |
2346 } | 2315 } |
2347 | 2316 |
2348 static void | 2317 static void |
2349 do_normal(GtkWidget *normal, GaimGtkConversation *gtkconv) | 2318 do_big(GtkWidget *large, GaimGtkConversation *gtkconv) |
2350 { | 2319 { |
2351 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(normal))) | 2320 gtk_imhtml_font_grow(GTK_IMHTML(gtkconv->entry)); |
2352 gaim_gtk_surround(gtkconv, "<FONT SIZE=\"3\">", "</FONT>"); | |
2353 else | |
2354 gaim_gtk_advance_past(gtkconv, "<FONT SIZE=\"3\">", "</FONT>"); | |
2355 | |
2356 gtk_widget_grab_focus(gtkconv->entry); | 2321 gtk_widget_grab_focus(gtkconv->entry); |
2357 } | 2322 } |
2358 | 2323 |
2359 static void | 2324 static void |
2360 do_big(GtkWidget *large, GaimGtkConversation *gtkconv) | |
2361 { | |
2362 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(large))) | |
2363 gaim_gtk_surround(gtkconv, "<FONT SIZE=\"5\">", "</FONT>"); | |
2364 else | |
2365 gaim_gtk_advance_past(gtkconv, "<FONT SIZE=\"5\">", "</FONT>"); | |
2366 | |
2367 gtk_widget_grab_focus(gtkconv->entry); | |
2368 } | |
2369 | |
2370 static void | |
2371 toggle_font(GtkWidget *font, GaimConversation *conv) | 2325 toggle_font(GtkWidget *font, GaimConversation *conv) |
2372 { | 2326 { |
2373 GaimGtkConversation *gtkconv; | 2327 GaimGtkConversation *gtkconv; |
2374 | 2328 |
2375 gtkconv = GAIM_GTK_CONVERSATION(conv); | 2329 gtkconv = GAIM_GTK_CONVERSATION(conv); |
2376 | 2330 |
2377 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(font))) | 2331 show_font_dialog(conv, font); |
2378 show_font_dialog(conv, font); | |
2379 else if (gtkconv->dialogs.font != NULL) | |
2380 cancel_font(font, conv); | |
2381 else | |
2382 gaim_gtk_advance_past(gtkconv, "<FONT FACE>", "</FONT>"); | |
2383 } | 2332 } |
2384 | 2333 |
2385 static void | 2334 static void |
2386 toggle_fg_color(GtkWidget *color, GaimConversation *conv) | 2335 toggle_fg_color(GtkWidget *color, GaimConversation *conv) |
2387 { | 2336 { |
3438 g_signal_connect(G_OBJECT(button), "clicked", | 3387 g_signal_connect(G_OBJECT(button), "clicked", |
3439 G_CALLBACK(do_big), gtkconv); | 3388 G_CALLBACK(do_big), gtkconv); |
3440 | 3389 |
3441 gtkconv->toolbar.larger_size = button; | 3390 gtkconv->toolbar.larger_size = button; |
3442 | 3391 |
3443 /* Normal font size */ | 3392 /* Normal font size |
3444 button = gaim_pixbuf_toolbar_button_from_stock(GAIM_STOCK_TEXT_NORMAL); | 3393 button = gaim_pixbuf_toolbar_button_from_stock(GAIM_STOCK_TEXT_NORMAL); |
3445 gtk_size_group_add_widget(sg, button); | 3394 gtk_size_group_add_widget(sg, button); |
3446 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | 3395 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
3447 gtk_tooltips_set_tip(gtkconv->tooltips, button, | 3396 gtk_tooltips_set_tip(gtkconv->tooltips, button, |
3448 _("Normal font size"), NULL); | 3397 _("Normal font size"), NULL); |
3449 | 3398 |
3450 g_signal_connect(G_OBJECT(button), "clicked", | 3399 g_signal_connect(G_OBJECT(button), "clicked", |
3451 G_CALLBACK(do_normal), gtkconv); | 3400 G_CALLBACK(do_normal), gtkconv); |
3452 | 3401 |
3453 gtkconv->toolbar.normal_size = button; | 3402 gtkconv->toolbar.normal_size = button; |
3403 */ | |
3454 | 3404 |
3455 /* Decrease font size */ | 3405 /* Decrease font size */ |
3456 button = gaim_pixbuf_toolbar_button_from_stock(GAIM_STOCK_TEXT_SMALLER); | 3406 button = gaim_pixbuf_toolbar_button_from_stock(GAIM_STOCK_TEXT_SMALLER); |
3457 gtk_size_group_add_widget(sg, button); | 3407 gtk_size_group_add_widget(sg, button); |
3458 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | 3408 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
3771 FALSE, FALSE, 0); | 3721 FALSE, FALSE, 0); |
3772 | 3722 |
3773 /* Setup the entry widget. */ | 3723 /* Setup the entry widget. */ |
3774 sw = gtk_scrolled_window_new(NULL, NULL); | 3724 sw = gtk_scrolled_window_new(NULL, NULL); |
3775 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | 3725 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
3776 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | 3726 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
3777 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | 3727 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), |
3728 GTK_SHADOW_IN); | |
3778 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); | 3729 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); |
3779 gtk_widget_show(sw); | 3730 gtk_widget_show(sw); |
3780 | 3731 |
3781 gtkconv->entry_buffer = gtk_text_buffer_new(NULL); | 3732 gtkconv->entry = gtk_imhtml_new(NULL, NULL); |
3782 gtkconv->entry = gtk_text_view_new_with_buffer(gtkconv->entry_buffer); | 3733 gtkconv->entry_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry)); |
3783 | 3734 gaim_setup_imhtml(gtkconv->entry); |
3735 gtk_imhtml_set_editable(GTK_IMHTML(gtkconv->entry), TRUE); | |
3736 default_formatize(conv); | |
3784 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gtkconv->entry), GTK_WRAP_WORD_CHAR); | 3737 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gtkconv->entry), GTK_WRAP_WORD_CHAR); |
3785 gtk_widget_set_size_request(gtkconv->entry, -1, | 3738 gtk_widget_set_size_request(gtkconv->entry, -1, |
3786 MAX(gaim_prefs_get_int("/gaim/gtk/conversations/chat/entry_height"), | 3739 MAX(gaim_prefs_get_int("/gaim/gtk/conversations/chat/entry_height"), |
3787 25)); | 3740 25)); |
3788 g_object_set_data(G_OBJECT(gtkconv->entry_buffer), "user_data", conv); | 3741 g_object_set_data(G_OBJECT(gtkconv->entry_buffer), "user_data", conv); |
3872 FALSE, FALSE, 0); | 3825 FALSE, FALSE, 0); |
3873 | 3826 |
3874 /* Setup the entry widget. */ | 3827 /* Setup the entry widget. */ |
3875 sw = gtk_scrolled_window_new(NULL, NULL); | 3828 sw = gtk_scrolled_window_new(NULL, NULL); |
3876 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | 3829 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
3877 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | 3830 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
3878 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | 3831 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), |
3832 GTK_SHADOW_IN); | |
3879 gtk_box_pack_start(GTK_BOX(vbox2), sw, TRUE, TRUE, 0); | 3833 gtk_box_pack_start(GTK_BOX(vbox2), sw, TRUE, TRUE, 0); |
3880 gtk_widget_show(sw); | 3834 gtk_widget_show(sw); |
3881 | 3835 |
3882 gtkconv->entry_buffer = gtk_text_buffer_new(NULL); | 3836 gtkconv->entry = gtk_imhtml_new(NULL, NULL); |
3883 gtkconv->entry = gtk_text_view_new_with_buffer(gtkconv->entry_buffer); | 3837 gtkconv->entry_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry)); |
3884 | 3838 gaim_setup_imhtml(gtkconv->entry); |
3839 gtk_imhtml_set_editable(GTK_IMHTML(gtkconv->entry), TRUE); | |
3840 default_formatize(conv); | |
3885 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gtkconv->entry), GTK_WRAP_WORD_CHAR); | 3841 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gtkconv->entry), GTK_WRAP_WORD_CHAR); |
3886 gtk_widget_set_size_request(gtkconv->entry, -1, | 3842 gtk_widget_set_size_request(gtkconv->entry, -1, |
3887 MAX(gaim_prefs_get_int("/gaim/gtk/conversations/im/entry_height"), | 3843 MAX(gaim_prefs_get_int("/gaim/gtk/conversations/im/entry_height"), |
3888 25)); | 3844 25)); |
3889 g_object_set_data(G_OBJECT(gtkconv->entry_buffer), "user_data", conv); | 3845 g_object_set_data(G_OBJECT(gtkconv->entry_buffer), "user_data", conv); |