comparison src/gtkconv.c @ 8456:5f8d4ab6d375

[gaim-migrate @ 9186] "his patch fixes an issue where the gtkimhtml and the gtkimtoolbar did not know what protocol the conversation was for so they we're either displaying core smileys or white boxes with an x through them. this also make gtkimthml honor the ctrl-{b/u/i} and ctrl-number prefs." --Gary Kramlich who continues: "in the first patch i forgot to adjust the protocol name in the conversation when an item in the send as menu was selected. This fixes that." committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Tue, 16 Mar 2004 19:35:17 +0000
parents ebb160ec42af
children 9773e3f3ec7a
comparison
equal deleted inserted replaced
8455:622fd4e800b4 8456:5f8d4ab6d375
1492 menu_conv_sel_send_cb(GObject *m, gpointer data) 1492 menu_conv_sel_send_cb(GObject *m, gpointer data)
1493 { 1493 {
1494 GaimConvWindow *win = g_object_get_data(m, "user_data"); 1494 GaimConvWindow *win = g_object_get_data(m, "user_data");
1495 GaimAccount *account = g_object_get_data(m, "gaim_account"); 1495 GaimAccount *account = g_object_get_data(m, "gaim_account");
1496 GaimConversation *conv; 1496 GaimConversation *conv;
1497 GaimGtkConversation *gtkconv;
1498 GaimPlugin *protocol;
1497 1499
1498 conv = gaim_conv_window_get_active_conversation(win); 1500 conv = gaim_conv_window_get_active_conversation(win);
1499 1501
1500 gaim_conversation_set_account(conv, account); 1502 gaim_conversation_set_account(conv, account);
1503
1504 gtkconv = GAIM_GTK_CONVERSATION(conv);
1505 protocol = gaim_find_prpl(conv->account->protocol_id);
1506 gtk_imhtml_set_protocol_name(GTK_IMHTML(gtkconv->entry),
1507 protocol->info->name);
1501 } 1508 }
1502 1509
1503 static void 1510 static void
1504 insert_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *position, 1511 insert_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *position,
1505 gchar *new_text, gint new_text_length, gpointer user_data) 1512 gchar *new_text, gint new_text_length, gpointer user_data)
3451 { 3458 {
3452 GaimPluginProtocolInfo *prpl_info = NULL; 3459 GaimPluginProtocolInfo *prpl_info = NULL;
3453 GaimGtkConversation *gtkconv; 3460 GaimGtkConversation *gtkconv;
3454 GaimGtkChatPane *gtkchat; 3461 GaimGtkChatPane *gtkchat;
3455 GaimConnection *gc; 3462 GaimConnection *gc;
3463 GaimPlugin *protocol;
3456 GtkWidget *vpaned, *hpaned; 3464 GtkWidget *vpaned, *hpaned;
3457 GtkWidget *vbox, *hbox; 3465 GtkWidget *vbox, *hbox;
3458 GtkWidget *lbox, *bbox; 3466 GtkWidget *lbox, *bbox;
3459 GtkWidget *label; 3467 GtkWidget *label;
3460 GtkWidget *list; 3468 GtkWidget *list;
3653 GTK_SHADOW_IN); 3661 GTK_SHADOW_IN);
3654 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); 3662 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
3655 gtk_widget_show(sw); 3663 gtk_widget_show(sw);
3656 3664
3657 gtkconv->entry = gtk_imhtml_new(NULL, NULL); 3665 gtkconv->entry = gtk_imhtml_new(NULL, NULL);
3666 gtk_imhtml_smiley_shortcuts(GTK_IMHTML(gtkconv->entry),
3667 gaim_prefs_get_bool("/gaim/gtk/conversations/smiley_shortcuts"));
3668 gtk_imhtml_html_shortcuts(GTK_IMHTML(gtkconv->entry),
3669 gaim_prefs_get_bool("/gaim/gtk/conversations/html_shortcuts"));
3670
3671 protocol = gaim_find_prpl(conv->account->protocol_id);
3672 gtk_imhtml_set_protocol_name(GTK_IMHTML(gtkconv->entry),
3673 protocol->info->name);
3658 gtkconv->entry_buffer = 3674 gtkconv->entry_buffer =
3659 gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry)); 3675 gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry));
3660 gaim_setup_imhtml(gtkconv->entry); 3676 gaim_setup_imhtml(gtkconv->entry);
3661 gtk_imhtml_set_editable(GTK_IMHTML(gtkconv->entry), TRUE); 3677 gtk_imhtml_set_editable(GTK_IMHTML(gtkconv->entry), TRUE);
3662 default_formatize(conv); 3678 default_formatize(conv);
3694 static GtkWidget * 3710 static GtkWidget *
3695 setup_im_pane(GaimConversation *conv) 3711 setup_im_pane(GaimConversation *conv)
3696 { 3712 {
3697 GaimGtkConversation *gtkconv; 3713 GaimGtkConversation *gtkconv;
3698 GaimGtkImPane *gtkim; 3714 GaimGtkImPane *gtkim;
3715 GaimPlugin *protocol;
3699 GtkWidget *paned; 3716 GtkWidget *paned;
3700 GtkWidget *vbox; 3717 GtkWidget *vbox;
3701 GtkWidget *vbox2; 3718 GtkWidget *vbox2;
3702 GtkWidget *sw; 3719 GtkWidget *sw;
3703 GList *focus_chain; 3720 GList *focus_chain;
3763 GTK_SHADOW_IN); 3780 GTK_SHADOW_IN);
3764 gtk_box_pack_start(GTK_BOX(vbox2), sw, TRUE, TRUE, 0); 3781 gtk_box_pack_start(GTK_BOX(vbox2), sw, TRUE, TRUE, 0);
3765 gtk_widget_show(sw); 3782 gtk_widget_show(sw);
3766 3783
3767 gtkconv->entry = gtk_imhtml_new(NULL, NULL); 3784 gtkconv->entry = gtk_imhtml_new(NULL, NULL);
3785
3786 gtk_imhtml_smiley_shortcuts(GTK_IMHTML(gtkconv->entry),
3787 gaim_prefs_get_bool("/gaim/gtk/conversations/smiley_shortcuts"));
3788 gtk_imhtml_html_shortcuts(GTK_IMHTML(gtkconv->entry),
3789 gaim_prefs_get_bool("/gaim/gtk/conversations/html_shortcuts"));
3790
3791 protocol = gaim_find_prpl(conv->account->protocol_id);
3792 gtk_imhtml_set_protocol_name(GTK_IMHTML(gtkconv->entry),
3793 protocol->info->name);
3768 gtkconv->entry_buffer = 3794 gtkconv->entry_buffer =
3769 gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry)); 3795 gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry));
3770 gaim_setup_imhtml(gtkconv->entry); 3796 gaim_setup_imhtml(gtkconv->entry);
3771 gtk_imhtml_set_editable(GTK_IMHTML(gtkconv->entry), TRUE); 3797 gtk_imhtml_set_editable(GTK_IMHTML(gtkconv->entry), TRUE);
3772 default_formatize(conv); 3798 default_formatize(conv);
5528 continue; 5554 continue;
5529 5555
5530 gtkwin = GAIM_GTK_WINDOW(win); 5556 gtkwin = GAIM_GTK_WINDOW(win);
5531 5557
5532 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(gtkwin->notebook), pos); 5558 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(gtkwin->notebook), pos);
5559 }
5560 }
5561
5562 static void
5563 html_shortcuts_pref_cb(const char *name, GaimPrefType type,
5564 gpointer value, gpointer data)
5565 {
5566 GList *l;
5567 GaimConversation *conv;
5568 GaimGtkConversation *gtkconv;
5569
5570 for(l = gaim_get_conversations(); l != NULL; l = l->next) {
5571 conv = (GaimConversation *)l->data;
5572
5573 if(!GAIM_IS_GTK_CONVERSATION(conv))
5574 continue;
5575
5576 gtkconv = GAIM_GTK_CONVERSATION(conv);
5577
5578 gtk_imhtml_html_shortcuts(GTK_IMHTML(gtkconv->entry),
5579 (gboolean)GPOINTER_TO_INT(value));
5580 }
5581 }
5582
5583 static void
5584 smiley_shortcuts_pref_cb(const char *name, GaimPrefType type,
5585 gpointer value, gpointer data)
5586 {
5587 GList *l;
5588 GaimConversation *conv;
5589 GaimGtkConversation *gtkconv;
5590
5591 for(l = gaim_get_conversations(); l != NULL; l = l->next) {
5592 conv = (GaimConversation *)l->data;
5593
5594 if(!GAIM_IS_GTK_CONVERSATION(conv))
5595 continue;
5596
5597 gtkconv = GAIM_GTK_CONVERSATION(conv);
5598
5599 gtk_imhtml_smiley_shortcuts(GTK_IMHTML(gtkconv->entry),
5600 (gboolean)GPOINTER_TO_INT(value));
5533 } 5601 }
5534 } 5602 }
5535 5603
5536 static void 5604 static void
5537 show_formatting_toolbar_pref_cb(const char *name, GaimPrefType type, 5605 show_formatting_toolbar_pref_cb(const char *name, GaimPrefType type,
5726 close_on_tabs_pref_cb, NULL); 5794 close_on_tabs_pref_cb, NULL);
5727 gaim_prefs_connect_callback("/gaim/gtk/conversations/show_smileys", 5795 gaim_prefs_connect_callback("/gaim/gtk/conversations/show_smileys",
5728 show_smileys_pref_cb, NULL); 5796 show_smileys_pref_cb, NULL);
5729 gaim_prefs_connect_callback("/gaim/gtk/conversations/show_timestamps", 5797 gaim_prefs_connect_callback("/gaim/gtk/conversations/show_timestamps",
5730 show_timestamps_pref_cb, NULL); 5798 show_timestamps_pref_cb, NULL);
5799 gaim_prefs_connect_callback("/gaim/gtk/conversations/html_shortcuts",
5800 html_shortcuts_pref_cb, NULL);
5801 gaim_prefs_connect_callback("/gaim/gtk/conversations/smiley_shortcuts",
5802 smiley_shortcuts_pref_cb, NULL);
5731 gaim_prefs_connect_callback("/gaim/gtk/conversations/show_formatting_toolbar", 5803 gaim_prefs_connect_callback("/gaim/gtk/conversations/show_formatting_toolbar",
5732 show_formatting_toolbar_pref_cb, NULL); 5804 show_formatting_toolbar_pref_cb, NULL);
5733 gaim_prefs_connect_callback("/gaim/gtk/conversations/spellcheck", 5805 gaim_prefs_connect_callback("/gaim/gtk/conversations/spellcheck",
5734 spellcheck_pref_cb, NULL); 5806 spellcheck_pref_cb, NULL);
5735 gaim_prefs_connect_callback("/gaim/gtk/conversations/tab_side", 5807 gaim_prefs_connect_callback("/gaim/gtk/conversations/tab_side",