Mercurial > pidgin
comparison src/dialogs.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 | 4971193f761d |
comparison
equal
deleted
inserted
replaced
8060:b66733e6e6f2 | 8061:ea073d234191 |
---|---|
693 } | 693 } |
694 | 694 |
695 static void do_insert_link(GtkWidget *w, int resp, struct linkdlg *a) | 695 static void do_insert_link(GtkWidget *w, int resp, struct linkdlg *a) |
696 { | 696 { |
697 GaimGtkConversation *gtkconv; | 697 GaimGtkConversation *gtkconv; |
698 char *open_tag; | |
699 const char *urltext, *showtext; | 698 const char *urltext, *showtext; |
700 | 699 |
701 gtkconv = GAIM_GTK_CONVERSATION(a->c); | 700 gtkconv = GAIM_GTK_CONVERSATION(a->c); |
702 | 701 |
703 if (resp == GTK_RESPONSE_OK) { | 702 if (resp == GTK_RESPONSE_OK) { |
705 showtext = gtk_entry_get_text(GTK_ENTRY(a->text)); | 704 showtext = gtk_entry_get_text(GTK_ENTRY(a->text)); |
706 | 705 |
707 if (!strlen(showtext)) | 706 if (!strlen(showtext)) |
708 showtext = urltext; | 707 showtext = urltext; |
709 | 708 |
710 open_tag = g_strdup_printf("<A HREF=\"%s\">%s", urltext, showtext); | 709 gtk_imhtml_insert_link(GTK_IMHTML(gtkconv->entry), urltext, showtext); |
711 gaim_gtk_surround(gtkconv, open_tag, "</A>"); | 710 gaim_gtk_advance_past(gtkconv, "<A HREF>", "</A>"); |
712 g_free(open_tag); | |
713 } | 711 } |
714 | 712 |
715 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link), FALSE); | 713 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link), FALSE); |
716 } | 714 } |
717 | 715 |
861 /* GTK_IS_EDITABLE(c->entry); huh? */ | 859 /* GTK_IS_EDITABLE(c->entry); huh? */ |
862 | 860 |
863 gtkconv = GAIM_GTK_CONVERSATION(c); | 861 gtkconv = GAIM_GTK_CONVERSATION(c); |
864 | 862 |
865 gtkconv->fg_color = text_color; | 863 gtkconv->fg_color = text_color; |
866 g_snprintf(open_tag, 23, "<FONT COLOR=\"#%02X%02X%02X\">", | 864 g_snprintf(open_tag, 23, "#%02X%02X%02X", |
867 text_color.red / 256, | 865 text_color.red / 256, |
868 text_color.green / 256, | 866 text_color.green / 256, |
869 text_color.blue / 256); | 867 text_color.blue / 256); |
870 gaim_gtk_surround(gtkconv, open_tag, "</FONT>"); | 868 gtk_imhtml_toggle_forecolor(GTK_IMHTML(gtkconv->entry), open_tag); |
871 | 869 |
872 gaim_debug(GAIM_DEBUG_MISC, "fgcolor dialog", "#%02X%02X%02X\n", | |
873 text_color.red / 256, | |
874 text_color.green / 256, | |
875 text_color.blue / 256); | |
876 g_free(open_tag); | 870 g_free(open_tag); |
877 cancel_fgcolor(NULL, c); | 871 cancel_fgcolor(NULL, c); |
878 } | 872 } |
879 | 873 |
880 void do_bgcolor(GtkWidget *widget, GtkColorSelection *colorsel) | 874 void do_bgcolor(GtkWidget *widget, GtkColorSelection *colorsel) |
892 /* GTK_IS_EDITABLE(c->entry); huh? */ | 886 /* GTK_IS_EDITABLE(c->entry); huh? */ |
893 | 887 |
894 gtkconv = GAIM_GTK_CONVERSATION(c); | 888 gtkconv = GAIM_GTK_CONVERSATION(c); |
895 | 889 |
896 gtkconv->bg_color = text_color; | 890 gtkconv->bg_color = text_color; |
897 g_snprintf(open_tag, 25, "<BODY BGCOLOR=\"#%02X%02X%02X\">", | 891 g_snprintf(open_tag, 25, "#%02X%02X%02X", |
898 text_color.red / 256, | 892 text_color.red / 256, |
899 text_color.green / 256, | 893 text_color.green / 256, |
900 text_color.blue / 256); | 894 text_color.blue / 256); |
901 gaim_gtk_surround(gtkconv, open_tag, "</BODY>"); | 895 gtk_imhtml_toggle_backcolor(GTK_IMHTML(gtkconv->entry), open_tag); |
902 gaim_debug(GAIM_DEBUG_MISC, "bgcolor dialog", "#%02X%02X%02X\n", | 896 |
903 text_color.red / 256, | |
904 text_color.green / 256, | |
905 text_color.blue / 256); | |
906 | |
907 g_free(open_tag); | 897 g_free(open_tag); |
908 cancel_bgcolor(NULL, c); | 898 cancel_bgcolor(NULL, c); |
909 } | 899 } |
910 | 900 |
911 void show_fgcolor_dialog(GaimConversation *c, GtkWidget *color) | 901 void show_fgcolor_dialog(GaimConversation *c, GtkWidget *color) |
1349 | 1339 |
1350 void insert_smiley_text(GtkWidget *widget, GaimConversation *c) | 1340 void insert_smiley_text(GtkWidget *widget, GaimConversation *c) |
1351 { | 1341 { |
1352 GaimGtkConversation *gtkconv; | 1342 GaimGtkConversation *gtkconv; |
1353 char *smiley_text = g_object_get_data(G_OBJECT(widget), "smiley_text"); | 1343 char *smiley_text = g_object_get_data(G_OBJECT(widget), "smiley_text"); |
1354 GtkTextMark *select_mark, *insert_mark; | 1344 GaimPlugin *proto = gaim_find_prpl(gaim_account_get_protocol_id(gaim_conversation_get_account(c))); |
1355 GtkTextIter select_iter, insert_iter; | |
1356 | 1345 |
1357 gtkconv = GAIM_GTK_CONVERSATION(c); | 1346 gtkconv = GAIM_GTK_CONVERSATION(c); |
1358 | 1347 |
1359 select_mark = gtk_text_buffer_get_selection_bound(gtkconv->entry_buffer); | 1348 gtk_imhtml_insert_smiley(GTK_IMHTML(gtkconv->entry), proto->info->name, smiley_text); |
1360 insert_mark = gtk_text_buffer_get_insert(gtkconv->entry_buffer); | 1349 |
1361 | |
1362 if(insert_mark != select_mark) { /* there is text selected */ | |
1363 gtk_text_buffer_get_iter_at_mark(gtkconv->entry_buffer, &select_iter, select_mark); | |
1364 gtk_text_buffer_get_iter_at_mark(gtkconv->entry_buffer, &insert_iter, insert_mark); | |
1365 gtk_text_buffer_delete(gtkconv->entry_buffer, &select_iter, &insert_iter); | |
1366 } | |
1367 | |
1368 gtk_text_buffer_insert_at_cursor(gtkconv->entry_buffer, smiley_text, -1); | |
1369 close_smiley_dialog(NULL, c); | 1350 close_smiley_dialog(NULL, c); |
1370 } | 1351 } |
1371 | 1352 |
1372 static void add_smiley(GaimConversation *c, GtkWidget *table, int row, int col, char *filename, char *face) | 1353 static void add_smiley(GaimConversation *c, GtkWidget *table, int row, int col, char *filename, char *face) |
1373 { | 1354 { |