Mercurial > pidgin
annotate src/buddy_chat.c @ 2583:ce3df2c43f46
[gaim-migrate @ 2596]
thanks to Dennis Lambe Jr. (malsyned).
Several of you will probably wonder why I put it in gtkimhtml.c instead of conversation.c like the rest of the smilies. (Dennis also put it in gtkimhtml.c.)
gtkimhtml.c strives to be more or less compatible and identical with winaim (though fewer bugs ;) ). winaim parses out :-d. winaim doesn't parse any of the ones in conversation.c though. So if winaim parses it, it goes in gtkimhtml.c.
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Tue, 23 Oct 2001 04:59:46 +0000 |
| parents | 95b4ec08abec |
| children | d8d2df2bdf01 |
| rev | line source |
|---|---|
| 1 | 1 /* |
| 2 * gaim | |
| 3 * | |
| 4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
| 5 * | |
| 6 * This program is free software; you can redistribute it and/or modify | |
| 7 * it under the terms of the GNU General Public License as published by | |
| 8 * the Free Software Foundation; either version 2 of the License, or | |
| 9 * (at your option) any later version. | |
| 10 * | |
| 11 * This program is distributed in the hope that it will be useful, | |
| 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 * GNU General Public License for more details. | |
| 15 * | |
| 16 * You should have received a copy of the GNU General Public License | |
| 17 * along with this program; if not, write to the Free Software | |
| 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 19 * | |
| 20 */ | |
| 21 | |
|
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
344
diff
changeset
|
22 #ifdef HAVE_CONFIG_H |
|
2090
b66aca8e8dce
[gaim-migrate @ 2100]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2048
diff
changeset
|
23 #include <config.h> |
|
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
344
diff
changeset
|
24 #endif |
| 1 | 25 #include <string.h> |
| 26 #include <sys/time.h> | |
| 27 #include <unistd.h> | |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
28 #include <ctype.h> |
| 1 | 29 #include <stdio.h> |
| 30 #include <stdlib.h> | |
| 31 #include <gtk/gtk.h> | |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1398
diff
changeset
|
32 #include "gtkimhtml.h" |
|
1117
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1109
diff
changeset
|
33 #include "gtkspell.h" |
|
300
b32c83750104
[gaim-migrate @ 310]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
226
diff
changeset
|
34 #include <gdk/gdkkeysyms.h> |
| 1 | 35 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
36 #include "convo.h" |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1228
diff
changeset
|
37 #include "prpl.h" |
|
344
2434adbb8703
[gaim-migrate @ 354]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
338
diff
changeset
|
38 |
|
834
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
39 #include "pixmaps/tb_forward.xpm" |
|
604
0b1a132e0f75
[gaim-migrate @ 614]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
535
diff
changeset
|
40 #include "pixmaps/join.xpm" |
|
909
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
41 #include "pixmaps/close.xpm" |
|
604
0b1a132e0f75
[gaim-migrate @ 614]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
535
diff
changeset
|
42 |
|
1819
47e064712091
[gaim-migrate @ 1829]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1815
diff
changeset
|
43 GtkWidget *joinchat; |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
44 static struct gaim_connection *joinchatgc; |
| 1 | 45 static GtkWidget *invite; |
| 46 static GtkWidget *inviteentry; | |
| 47 static GtkWidget *invitemess; | |
|
1807
ba8f463744c0
[gaim-migrate @ 1817]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1806
diff
changeset
|
48 static GtkWidget *jc_vbox = NULL; |
|
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
49 static GList *chatentries = NULL; |
|
344
2434adbb8703
[gaim-migrate @ 354]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
338
diff
changeset
|
50 extern int state_lock; |
| 1 | 51 |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
52 GList *chats = NULL; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
53 GtkWidget *all_chats = NULL; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
54 GtkWidget *chat_notebook = NULL; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
55 |
|
1806
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
56 |
| 1 | 57 static void destroy_join_chat() |
| 58 { | |
| 59 if (joinchat) | |
| 60 gtk_widget_destroy(joinchat); | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
61 joinchat = NULL; |
| 1 | 62 } |
| 63 | |
| 64 static void destroy_invite() | |
| 65 { | |
| 66 if (invite) | |
| 67 gtk_widget_destroy(invite); | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
68 invite = NULL; |
| 1 | 69 } |
| 70 | |
| 71 | |
|
1819
47e064712091
[gaim-migrate @ 1829]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1815
diff
changeset
|
72 void do_join_chat() |
| 1 | 73 { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
74 if (joinchat) { |
|
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
75 GList *data = NULL; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
76 GList *tmp = chatentries; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
77 int *ival; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
78 char *sval; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
79 while (tmp) { |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
80 if (gtk_object_get_user_data(tmp->data)) { |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
81 ival = g_new0(int, 1); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
82 *ival = gtk_spin_button_get_value_as_int(tmp->data); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
83 data = g_list_append(data, ival); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
84 } else { |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
85 sval = g_strdup(gtk_entry_get_text(tmp->data)); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
86 data = g_list_append(data, sval); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
87 } |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
88 tmp = tmp->next; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
89 } |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
90 serv_join_chat(joinchatgc, data); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
91 |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
92 tmp = data; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
93 while (tmp) { |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
94 g_free(tmp->data); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
95 tmp = tmp->next; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
96 } |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
97 g_list_free(data); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
98 |
| 1 | 99 gtk_widget_destroy(joinchat); |
|
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
100 if (chatentries) |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
101 g_list_free(chatentries); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
102 chatentries = NULL; |
| 1 | 103 } |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
104 joinchat = NULL; |
| 1 | 105 } |
| 106 | |
|
1806
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
107 static void rebuild_jc() |
|
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
108 { |
|
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
109 GList *list, *tmp; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
110 struct proto_chat_entry *pce; |
|
2289
38e156136896
[gaim-migrate @ 2299]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2268
diff
changeset
|
111 gboolean focus = TRUE; |
|
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
112 |
|
1806
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
113 if (!joinchatgc) |
|
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
114 return; |
|
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
115 |
|
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
116 while (GTK_BOX(jc_vbox)->children) |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
117 gtk_container_remove(GTK_CONTAINER(jc_vbox), |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
118 ((GtkBoxChild *)GTK_BOX(jc_vbox)->children->data)->widget); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
119 if (chatentries) |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
120 g_list_free(chatentries); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
121 chatentries = NULL; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
122 |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
123 tmp = list = (*joinchatgc->prpl->chat_info)(joinchatgc); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
124 while (list) { |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
125 GtkWidget *label; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
126 GtkWidget *rowbox; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
127 pce = list->data; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
128 |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
129 rowbox = gtk_hbox_new(FALSE, 5); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
130 gtk_box_pack_start(GTK_BOX(jc_vbox), rowbox, TRUE, TRUE, 0); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
131 gtk_widget_show(rowbox); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
132 |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
133 label = gtk_label_new(pce->label); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
134 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
135 gtk_widget_show(label); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
136 |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
137 if (pce->is_int) { |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
138 GtkObject *adjust; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
139 GtkWidget *spin; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
140 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max, 1, 10, 10); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
141 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
142 gtk_object_set_user_data(GTK_OBJECT(spin), (void *)1); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
143 chatentries = g_list_append(chatentries, spin); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
144 gtk_widget_set_usize(spin, 50, -1); |
|
2346
b1c1e3401e10
[gaim-migrate @ 2359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2345
diff
changeset
|
145 gtk_box_pack_end(GTK_BOX(rowbox), spin, FALSE, FALSE, 0); |
|
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
146 gtk_widget_show(spin); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
147 } else { |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
148 GtkWidget *entry; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
149 entry = gtk_entry_new(); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
150 chatentries = g_list_append(chatentries, entry); |
|
2346
b1c1e3401e10
[gaim-migrate @ 2359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2345
diff
changeset
|
151 gtk_box_pack_end(GTK_BOX(rowbox), entry, FALSE, FALSE, 0); |
|
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
152 if (pce->def) |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
153 gtk_entry_set_text(GTK_ENTRY(entry), pce->def); |
|
2289
38e156136896
[gaim-migrate @ 2299]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2268
diff
changeset
|
154 if (focus) { |
|
38e156136896
[gaim-migrate @ 2299]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2268
diff
changeset
|
155 gtk_widget_grab_focus(entry); |
|
38e156136896
[gaim-migrate @ 2299]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2268
diff
changeset
|
156 focus = FALSE; |
|
38e156136896
[gaim-migrate @ 2299]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2268
diff
changeset
|
157 } |
|
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
158 gtk_signal_connect(GTK_OBJECT(entry), "activate", |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
159 GTK_SIGNAL_FUNC(do_join_chat), NULL); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
160 gtk_widget_show(entry); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
161 } |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
162 |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
163 g_free(pce); |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
164 list = list->next; |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
165 } |
|
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2199
diff
changeset
|
166 g_list_free(tmp); |
|
1806
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
167 } |
|
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
168 |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
169 static void joinchat_choose(GtkWidget *w, struct gaim_connection *g) |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
170 { |
|
1806
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
171 if (joinchatgc == g) |
|
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
172 return; |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
173 joinchatgc = g; |
|
1806
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
174 rebuild_jc(); |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
175 } |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
176 |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
177 static void create_joinchat_menu(GtkWidget *box) |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
178 { |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
179 GtkWidget *optmenu; |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
180 GtkWidget *menu; |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
181 GtkWidget *opt; |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
182 GSList *c = connections; |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
183 struct gaim_connection *g; |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1228
diff
changeset
|
184 char buf[2048]; |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
185 |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
186 optmenu = gtk_option_menu_new(); |
| 1210 | 187 gtk_box_pack_start(GTK_BOX(box), optmenu, FALSE, FALSE, 0); |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
188 |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
189 menu = gtk_menu_new(); |
|
1793
00c753b86710
[gaim-migrate @ 1803]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1780
diff
changeset
|
190 joinchatgc = NULL; |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
191 |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
192 while (c) { |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
193 g = (struct gaim_connection *)c->data; |
|
1356
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
194 c = c->next; |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
195 if (!g->prpl->join_chat) |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
196 continue; |
|
1793
00c753b86710
[gaim-migrate @ 1803]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1780
diff
changeset
|
197 if (!joinchatgc) |
|
00c753b86710
[gaim-migrate @ 1803]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1780
diff
changeset
|
198 joinchatgc = g; |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1228
diff
changeset
|
199 g_snprintf(buf, sizeof buf, "%s (%s)", g->username, (*g->prpl->name)()); |
|
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1228
diff
changeset
|
200 opt = gtk_menu_item_new_with_label(buf); |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
201 gtk_object_set_user_data(GTK_OBJECT(opt), g); |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
202 gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(joinchat_choose), g); |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
203 gtk_menu_append(GTK_MENU(menu), opt); |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
204 gtk_widget_show(opt); |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
205 } |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
206 |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
207 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
208 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), 0); |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
209 } |
| 1 | 210 |
| 211 void join_chat() | |
| 212 { | |
| 1210 | 213 GtkWidget *mainbox; |
| 214 GtkWidget *frame; | |
| 215 GtkWidget *fbox; | |
| 216 GtkWidget *rowbox; | |
| 1 | 217 GtkWidget *bbox; |
| 1210 | 218 GtkWidget *join; |
| 219 GtkWidget *cancel; | |
| 220 GtkWidget *label; | |
|
1356
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
221 GSList *c = connections; |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
222 struct gaim_connection *gc = NULL; |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
223 |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
224 while (c) { |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
225 gc = c->data; |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
226 if (gc->prpl->join_chat) |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
227 break; |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
228 gc = NULL; |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
229 c = c->next; |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
230 } |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
231 if (gc == NULL) { |
|
1358
3c87aa8efdc9
[gaim-migrate @ 1368]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1356
diff
changeset
|
232 do_error_dialog("You are not currently signed on with any protocols that have " |
|
1356
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
233 "the ability to chat.", "Unable to chat"); |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
234 return; |
|
c22d04db51be
[gaim-migrate @ 1366]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1343
diff
changeset
|
235 } |
| 456 | 236 |
| 1 | 237 if (!joinchat) { |
| 457 | 238 joinchat = gtk_window_new(GTK_WINDOW_DIALOG); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
239 gtk_window_set_wmclass(GTK_WINDOW(joinchat), "joinchat", "Gaim"); |
| 1210 | 240 gtk_window_set_policy(GTK_WINDOW(joinchat), FALSE, TRUE, TRUE); |
|
834
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
241 gtk_widget_realize(joinchat); |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
242 gtk_signal_connect(GTK_OBJECT(joinchat), "delete_event", |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
243 GTK_SIGNAL_FUNC(destroy_join_chat), joinchat); |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
244 gtk_window_set_title(GTK_WINDOW(joinchat), _("Join Chat")); |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
245 aol_icon(joinchat->window); |
| 1 | 246 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
247 mainbox = gtk_vbox_new(FALSE, 5); |
| 1210 | 248 gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5); |
| 249 gtk_container_add(GTK_CONTAINER(joinchat), mainbox); | |
| 456 | 250 |
| 1211 | 251 frame = gtk_frame_new(_("Buddy Chat")); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
252 gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
253 |
| 1210 | 254 fbox = gtk_vbox_new(FALSE, 5); |
| 255 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); | |
| 256 gtk_container_add(GTK_CONTAINER(frame), fbox); | |
| 456 | 257 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1018
diff
changeset
|
258 #ifndef NO_MULTI |
| 1210 | 259 rowbox = gtk_hbox_new(FALSE, 5); |
| 260 gtk_box_pack_start(GTK_BOX(fbox), rowbox, TRUE, TRUE, 0); | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
261 |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
262 label = gtk_label_new(_("Join Chat As:")); |
| 1210 | 263 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
264 |
| 1210 | 265 create_joinchat_menu(rowbox); |
|
1806
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
266 |
|
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
267 { |
|
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
268 GtkWidget *tmp = fbox; |
|
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
269 fbox = gtk_vbox_new(FALSE, 5); |
|
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
270 gtk_container_add(GTK_CONTAINER(tmp), fbox); |
|
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
271 gtk_container_set_border_width(GTK_CONTAINER(fbox), 0); |
|
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
272 jc_vbox = fbox; |
|
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
273 } |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1018
diff
changeset
|
274 #else |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1018
diff
changeset
|
275 joinchatgc = connections->data; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1018
diff
changeset
|
276 #endif |
|
1806
c649b63382b7
[gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1793
diff
changeset
|
277 rebuild_jc(); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
278 /* buttons */ |
|
692
f4026275bc9f
[gaim-migrate @ 702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
666
diff
changeset
|
279 |
| 1210 | 280 bbox = gtk_hbox_new(FALSE, 5); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
281 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0); |
| 1210 | 282 |
| 283 cancel = picture_button(joinchat, _("Cancel"), cancel_xpm); | |
| 284 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0); | |
| 285 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
286 GTK_SIGNAL_FUNC(destroy_join_chat), joinchat); |
| 1 | 287 |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
288 join = picture_button(joinchat, _("Join"), join_xpm); |
| 1210 | 289 gtk_box_pack_end(GTK_BOX(bbox), join, FALSE, FALSE, 0); |
|
1819
47e064712091
[gaim-migrate @ 1829]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1815
diff
changeset
|
290 gtk_signal_connect(GTK_OBJECT(join), "clicked", GTK_SIGNAL_FUNC(do_join_chat), NULL); |
| 1 | 291 } |
| 1210 | 292 gtk_widget_show_all(joinchat); |
| 1 | 293 } |
| 294 | |
| 295 | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
296 static void do_invite(GtkWidget *w, struct conversation *b) |
| 1 | 297 { |
| 298 char *buddy; | |
| 299 char *mess; | |
| 300 | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
301 if (!b->is_chat) { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
302 debug_printf("do_invite: expecting chat, got IM\n"); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
303 return; |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
304 } |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
305 |
| 2252 | 306 buddy = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(inviteentry)->entry)); |
| 1 | 307 mess = gtk_entry_get_text(GTK_ENTRY(invitemess)); |
| 308 | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
309 if (invite) { |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
310 serv_chat_invite(b->gc, b->id, mess, buddy); |
| 1 | 311 gtk_widget_destroy(invite); |
| 312 } | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
313 invite = NULL; |
| 1 | 314 } |
| 315 | |
| 316 | |
| 2252 | 317 GList *generate_invite_user_names(struct gaim_connection *gc) |
| 318 { | |
| 319 GSList *grp; | |
| 320 GSList *bl; | |
| 321 struct group *g; | |
| 322 struct buddy *buddy; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
323 |
|
2257
eae25a0309c1
[gaim-migrate @ 2267]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2256
diff
changeset
|
324 static GList *tmp = NULL; |
|
eae25a0309c1
[gaim-migrate @ 2267]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2256
diff
changeset
|
325 |
|
eae25a0309c1
[gaim-migrate @ 2267]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2256
diff
changeset
|
326 if (tmp) |
|
eae25a0309c1
[gaim-migrate @ 2267]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2256
diff
changeset
|
327 g_list_free(tmp); |
|
2268
a9787aad60f3
[gaim-migrate @ 2278]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2257
diff
changeset
|
328 tmp = NULL; |
| 2252 | 329 |
| 330 tmp = g_list_append(tmp, ""); | |
| 331 | |
| 332 if (gc) { | |
| 333 grp = gc->groups; | |
| 334 | |
| 335 while (grp) { | |
| 336 g = (struct group *)grp->data; | |
| 337 | |
| 338 bl = g->members; | |
| 339 | |
| 340 while (bl) { | |
| 341 buddy = (struct buddy *)bl->data; | |
| 342 | |
| 343 if (buddy->present) | |
|
2257
eae25a0309c1
[gaim-migrate @ 2267]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2256
diff
changeset
|
344 tmp = g_list_append(tmp, buddy->name); |
| 2252 | 345 |
| 346 bl = g_slist_next(bl); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
347 } |
| 2252 | 348 |
| 349 grp = g_slist_next(grp); | |
| 350 } | |
| 351 } | |
| 352 | |
| 353 return tmp; | |
| 354 | |
| 355 } | |
| 1 | 356 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
357 void invite_callback(GtkWidget *w, struct conversation *b) |
| 1 | 358 { |
| 359 GtkWidget *cancel; | |
| 360 GtkWidget *invite_btn; | |
| 361 GtkWidget *label; | |
| 362 GtkWidget *bbox; | |
| 363 GtkWidget *vbox; | |
| 2252 | 364 GtkWidget *table; |
| 365 GtkWidget *frame; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
366 |
| 1 | 367 if (!invite) { |
| 368 invite = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 2252 | 369 gtk_widget_realize(invite); |
| 370 | |
| 371 cancel = picture_button(invite, _("Cancel"), cancel_xpm); | |
| 372 invite_btn = picture_button(invite, _("Invite"), join_xpm); | |
| 373 inviteentry = gtk_combo_new(); | |
| 1 | 374 invitemess = gtk_entry_new(); |
| 2252 | 375 frame = gtk_frame_new(_("Invite")); |
| 376 table = gtk_table_new(2, 2, FALSE); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
377 |
| 2252 | 378 gtk_table_set_row_spacings(GTK_TABLE(table), 5); |
| 379 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 380 gtk_container_set_border_width(GTK_CONTAINER(table), 5); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
381 |
| 2252 | 382 gtk_container_set_border_width(GTK_CONTAINER(frame), 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
383 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
384 /* Now we should fill out all of the names */ |
| 2252 | 385 gtk_combo_set_popdown_strings(GTK_COMBO(inviteentry), generate_invite_user_names(b->gc)); |
| 1 | 386 |
| 2252 | 387 vbox = gtk_vbox_new(FALSE, 0); |
| 388 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); | |
| 389 gtk_container_add(GTK_CONTAINER(frame), table); | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
390 |
| 2252 | 391 label = gtk_label_new(_("Buddy")); |
| 392 gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5); | |
| 393 gtk_widget_show(label); | |
| 394 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); | |
| 395 | |
| 396 label = gtk_label_new(_("Message")); | |
| 397 gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5); | |
| 1 | 398 gtk_widget_show(label); |
| 2252 | 399 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); |
| 400 | |
| 401 /* Now the right side of the table */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
402 gtk_table_attach(GTK_TABLE(table), inviteentry, 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, 0, 0, |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
403 0); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
404 gtk_table_attach(GTK_TABLE(table), invitemess, 1, 2, 1, 2, GTK_FILL | GTK_EXPAND, 0, 0, |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
405 0); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
406 |
| 2252 | 407 /* And now for the button box */ |
| 408 bbox = gtk_hbox_new(FALSE, 10); | |
| 409 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); | |
| 410 | |
| 411 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0); | |
| 412 gtk_box_pack_end(GTK_BOX(bbox), invite_btn, FALSE, FALSE, 0); | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
413 |
| 1 | 414 /* Handle closes right */ |
| 415 gtk_signal_connect(GTK_OBJECT(invite), "delete_event", | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
416 GTK_SIGNAL_FUNC(destroy_invite), invite); |
| 1 | 417 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
418 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(destroy_invite), b); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
419 gtk_signal_connect(GTK_OBJECT(invite_btn), "clicked", GTK_SIGNAL_FUNC(do_invite), b); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
420 gtk_signal_connect(GTK_OBJECT(GTK_ENTRY(GTK_COMBO(inviteentry)->entry)), "activate", |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
421 GTK_SIGNAL_FUNC(do_invite), b); |
| 2252 | 422 |
| 1 | 423 /* Finish up */ |
| 2252 | 424 gtk_widget_set_usize(GTK_WIDGET(invite), 550, 115); |
| 1 | 425 gtk_widget_show(invite_btn); |
| 426 gtk_widget_show(cancel); | |
| 427 gtk_widget_show(inviteentry); | |
| 428 gtk_widget_show(invitemess); | |
| 2252 | 429 gtk_widget_show(vbox); |
| 1 | 430 gtk_widget_show(bbox); |
| 2252 | 431 gtk_widget_show(table); |
| 432 gtk_widget_show(frame); | |
| 433 gtk_window_set_title(GTK_WINDOW(invite), _("Gaim - Invite Buddy Into Chat Room")); | |
| 2253 | 434 gtk_window_set_focus(GTK_WINDOW(invite), GTK_WIDGET(GTK_COMBO(inviteentry)->entry)); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
435 gtk_container_add(GTK_CONTAINER(invite), vbox); |
| 2252 | 436 |
| 1 | 437 aol_icon(invite->window); |
| 438 | |
| 439 } | |
| 440 gtk_widget_show(invite); | |
| 441 } | |
| 442 | |
|
2385
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
443 void tab_complete(struct conversation *c) |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
444 { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
445 int pos = GTK_EDITABLE(c->entry)->current_pos; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
446 int start = pos; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
447 int most_matched = -1; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
448 char *entered, *partial = NULL; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
449 char *text; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
450 GList *matches = NULL; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
451 GList *nicks = c->in_room; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
452 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
453 /* if there's nothing there just return */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
454 if (!start) |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
455 return; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
456 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
457 text = gtk_editable_get_chars(GTK_EDITABLE(c->entry), 0, pos); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
458 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
459 /* if we're at the end of ": " we need to move back 2 spaces */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
460 if (start >= 2 && text[start - 1] == ' ' && text[start - 2] == ':') |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
461 start -= 2; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
462 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
463 /* find the start of the word that we're tabbing */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
464 while (start > 0 && text[start - 1] != ' ') |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
465 start--; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
466 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
467 entered = text + start; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
468 if (chat_options & OPT_CHAT_OLD_STYLE_TAB) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
469 if (strlen(entered) >= 2 && !strncmp(": ", entered + strlen(entered) - 2, 2)) |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
470 entered[strlen(entered) - 2] = 0; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
471 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
472 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
473 if (!strlen(entered)) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
474 g_free(text); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
475 return; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
476 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
477 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
478 debug_printf("checking tab-completion for %s\n", entered); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
479 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
480 while (nicks) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
481 char *nick = nicks->data; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
482 /* this checks to see if the current nick could be a completion */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
483 if (g_strncasecmp(nick, entered, strlen(entered))) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
484 if (nick[0] != '+' && nick[0] != '@') { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
485 nicks = nicks->next; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
486 continue; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
487 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
488 if (g_strncasecmp(nick + 1, entered, strlen(entered))) { |
|
2386
437ae28a1172
[gaim-migrate @ 2399]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2385
diff
changeset
|
489 if (nick[0] != '@' || nick[1] != '+') { |
|
2385
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
490 nicks = nicks->next; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
491 continue; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
492 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
493 if (g_strncasecmp(nick + 2, entered, strlen(entered))) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
494 nicks = nicks->next; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
495 continue; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
496 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
497 else |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
498 nick += 2; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
499 } else |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
500 nick++; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
501 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
502 /* if we're here, it's a possible completion */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
503 debug_printf("possible completion: %s\n", nick); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
504 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
505 /* if we're doing old-style, just fill in the completion */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
506 if (chat_options & OPT_CHAT_OLD_STYLE_TAB) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
507 gtk_editable_delete_text(GTK_EDITABLE(c->entry), start, pos); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
508 if (strlen(nick) == strlen(entered)) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
509 nicks = nicks->next ? nicks->next : c->in_room; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
510 nick = nicks->data; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
511 if (*nick == '@') |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
512 nick++; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
513 if (*nick == '+') |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
514 nick++; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
515 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
516 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
517 if (start == 0) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
518 char *tmp = g_strdup_printf("%s: ", nick); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
519 int t = start; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
520 gtk_editable_insert_text(GTK_EDITABLE(c->entry), tmp, strlen(tmp), &start); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
521 if (t == start) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
522 t = start + strlen(tmp); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
523 gtk_editable_set_position(GTK_EDITABLE(c->entry), t); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
524 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
525 g_free(tmp); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
526 } else { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
527 int t = start; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
528 gtk_editable_insert_text(GTK_EDITABLE(c->entry), nick, strlen(nick), &start); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
529 if (t == start) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
530 t = start + strlen(nick); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
531 gtk_editable_set_position(GTK_EDITABLE(c->entry), t); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
532 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
533 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
534 g_free(text); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
535 return; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
536 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
537 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
538 /* we're only here if we're doing new style */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
539 if (most_matched == -1) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
540 /* this will only get called once, since from now on most_matched is >= 0 */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
541 most_matched = strlen(nick); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
542 partial = g_strdup(nick); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
543 } else if (most_matched) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
544 while (g_strncasecmp(nick, partial, most_matched)) |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
545 most_matched--; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
546 partial[most_matched] = 0; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
547 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
548 matches = g_list_append(matches, nick); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
549 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
550 nicks = nicks->next; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
551 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
552 /* we're only here if we're doing new style */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
553 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
554 /* if there weren't any matches, return */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
555 if (!matches) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
556 /* if matches isn't set partials won't be either */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
557 g_free(text); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
558 return; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
559 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
560 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
561 gtk_editable_delete_text(GTK_EDITABLE(c->entry), start, pos); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
562 if (!matches->next) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
563 /* there was only one match. fill it in. */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
564 if (start == 0) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
565 char *tmp = g_strdup_printf("%s: ", (char *)matches->data); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
566 int t = start; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
567 gtk_editable_insert_text(GTK_EDITABLE(c->entry), tmp, strlen(tmp), &start); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
568 if (t == start) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
569 t = start + strlen(tmp); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
570 gtk_editable_set_position(GTK_EDITABLE(c->entry), t); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
571 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
572 g_free(tmp); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
573 } else { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
574 gtk_editable_insert_text(GTK_EDITABLE(c->entry), matches->data, strlen(matches->data), &start); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
575 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
576 matches = g_list_remove(matches, matches->data); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
577 } else { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
578 /* there were lots of matches, fill in as much as possible and display all of them */ |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
579 char *addthis = g_malloc0(1); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
580 int t = start; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
581 while (matches) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
582 char *tmp = addthis; |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
583 addthis = g_strconcat(tmp, matches->data, " ", NULL); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
584 g_free(tmp); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
585 matches = g_list_remove(matches, matches->data); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
586 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
587 write_to_conv(c, addthis, WFLAG_NOLOG, NULL, time(NULL)); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
588 gtk_editable_insert_text(GTK_EDITABLE(c->entry), partial, strlen(partial), &start); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
589 if (t == start) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
590 t = start + strlen(partial); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
591 gtk_editable_set_position(GTK_EDITABLE(c->entry), t); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
592 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
593 g_free(addthis); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
594 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
595 |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
596 g_free(text); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
597 g_free(partial); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
598 } |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2384
diff
changeset
|
599 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
600 gboolean meify(char *message) |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
601 { |
|
415
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
602 /* read /me-ify : if the message (post-HTML) starts with /me, remove |
|
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
603 * the "/me " part of it (including that space) and return TRUE */ |
|
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
604 char *c = message; |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
605 int inside_HTML = 0; /* i really don't like descriptive names */ |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
606 if (!c) |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
607 return FALSE; /* um... this would be very bad if this happens */ |
|
415
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
608 while (*c) { |
|
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
609 if (inside_HTML) { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
610 if (*c == '>') |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
611 inside_HTML = 0; |
|
415
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
612 } else { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
613 if (*c == '<') |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
614 inside_HTML = 1; |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
615 else |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
616 break; |
|
415
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
617 } |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
618 c++; /* i really don't like c++ either */ |
|
415
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
619 } |
|
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
620 /* k, so now we've gotten past all the HTML crap. */ |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
621 if (!*c) |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
622 return FALSE; |
|
2048
3366311426df
[gaim-migrate @ 2058]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2017
diff
changeset
|
623 if (!g_strncasecmp(c, "/me ", 4)) { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
624 sprintf(c, "%s", c + 4); |
|
415
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
625 return TRUE; |
|
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
626 } else |
|
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
627 return FALSE; |
|
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
628 } |
|
a266fd221c3c
[gaim-migrate @ 425]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
629 |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
630 static gboolean find_nick(struct gaim_connection *gc, char *message) |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
631 { |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
632 char *msg = g_strdup(message), *who, *p; |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
633 int n; |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
634 g_strdown(msg); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
635 |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
636 who = g_strdup(gc->username); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
637 n = strlen(who); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
638 g_strdown(who); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
639 |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
640 if ((p = strstr(msg, who)) != NULL) { |
|
2384
05034cd0402b
[gaim-migrate @ 2397]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2374
diff
changeset
|
641 if (((p == msg) || !isalnum(*(p - 1))) && !isalnum(*(p + n))) { |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
642 g_free(who); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
643 g_free(msg); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
644 return TRUE; |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
645 } |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
646 } |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
647 g_free(who); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
648 |
|
2390
bb088ec77c9b
[gaim-migrate @ 2403]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2386
diff
changeset
|
649 if (!g_strcasecmp(gc->username, gc->displayname)) { |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
650 g_free(msg); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
651 return FALSE; |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
652 } |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
653 |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
654 who = g_strdup(gc->displayname); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
655 n = strlen(who); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
656 g_strdown(who); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
657 |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
658 if ((p = strstr(msg, who)) != NULL) { |
|
2384
05034cd0402b
[gaim-migrate @ 2397]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2374
diff
changeset
|
659 if (((p == msg) || !isalnum(*(p - 1))) && !isalnum(*(p + n))) { |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
660 g_free(who); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
661 g_free(msg); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
662 return TRUE; |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
663 } |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
664 } |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
665 g_free(who); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
666 g_free(msg); |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
667 return FALSE; |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
668 } |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
669 |
| 1764 | 670 void chat_write(struct conversation *b, char *who, int flag, char *message, time_t mtime) |
| 1 | 671 { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
672 GList *ignore = b->ignored; |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
673 char *str; |
| 1 | 674 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
675 if (!b->is_chat) { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
676 debug_printf("chat_write: expecting chat, got IM\n"); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
677 return; |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
678 } |
| 1 | 679 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
680 while (ignore) { |
|
2048
3366311426df
[gaim-migrate @ 2058]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2017
diff
changeset
|
681 if (!g_strcasecmp(who, ignore->data)) |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
682 return; |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
683 ignore = ignore->next; |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
684 } |
|
371
9d22acf6db73
[gaim-migrate @ 381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
685 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
686 |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
687 if (!(flag & WFLAG_WHISPER)) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
688 str = g_strdup(normalize (who)); |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
689 if (!g_strcasecmp(str, normalize(b->gc->username))) { |
|
2289
38e156136896
[gaim-migrate @ 2299]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2268
diff
changeset
|
690 if (b->makesound && (sound_options & OPT_SOUND_CHAT_YOU_SAY)) |
|
38e156136896
[gaim-migrate @ 2299]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2268
diff
changeset
|
691 play_sound(CHAT_YOU_SAY); |
|
38e156136896
[gaim-migrate @ 2299]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2268
diff
changeset
|
692 flag |= WFLAG_SEND; |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
693 } else if (!g_strcasecmp(str, normalize(b->gc->displayname))) { |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1000
diff
changeset
|
694 if (b->makesound && (sound_options & OPT_SOUND_CHAT_YOU_SAY)) |
|
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1000
diff
changeset
|
695 play_sound(CHAT_YOU_SAY); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
696 flag |= WFLAG_SEND; |
|
371
9d22acf6db73
[gaim-migrate @ 381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
697 } else { |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
698 if (b->makesound && (sound_options & OPT_SOUND_CHAT_SAY)) |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1000
diff
changeset
|
699 play_sound(CHAT_SAY); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
700 flag |= WFLAG_RECV; |
|
371
9d22acf6db73
[gaim-migrate @ 381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
701 } |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
702 g_free(str); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
703 } |
| 1 | 704 |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
705 if ((flag & WFLAG_RECV) && find_nick(b->gc, message)) |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
706 flag |= WFLAG_NICK; |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
707 |
| 1764 | 708 write_to_conv(b, message, flag, who, mtime); |
| 1 | 709 } |
| 710 | |
| 711 | |
|
368
9bf1f77985d2
[gaim-migrate @ 378]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
363
diff
changeset
|
712 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
713 void whisper_callback(GtkWidget *widget, struct conversation *b) |
| 1 | 714 { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
715 char buf[BUF_LEN * 4]; |
| 1 | 716 char buf2[BUF_LONG]; |
| 717 GList *selected; | |
| 718 char *who; | |
| 719 | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
720 strncpy(buf, gtk_editable_get_chars(GTK_EDITABLE(b->entry), 0, -1), sizeof(buf) / 2); |
| 1 | 721 if (!strlen(buf)) |
| 722 return; | |
| 723 | |
| 724 selected = GTK_LIST(b->list)->selection; | |
| 725 | |
| 726 if (!selected) | |
| 727 return; | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
728 |
| 1 | 729 |
| 730 who = GTK_LABEL(gtk_container_children(GTK_CONTAINER(selected->data))->data)->label; | |
| 731 | |
| 732 if (!who) | |
| 733 return; | |
| 734 | |
|
338
9d258a0aa560
[gaim-migrate @ 348]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
300
diff
changeset
|
735 gtk_editable_delete_text(GTK_EDITABLE(b->entry), 0, -1); |
| 1 | 736 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
737 serv_chat_whisper(b->gc, b->id, who, buf); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
738 |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
915
diff
changeset
|
739 g_snprintf(buf2, sizeof(buf2), "%s->%s", b->gc->username, who); |
| 1 | 740 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
741 chat_write(b, buf2, WFLAG_WHISPER, buf, time(NULL)); |
| 1 | 742 |
| 743 gtk_widget_grab_focus(GTK_WIDGET(b->entry)); | |
| 744 | |
| 745 | |
| 746 } | |
| 747 | |
|
1223
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
748 static gint insertname(gconstpointer one, gconstpointer two) |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
749 { |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
750 const char *a = (const char *)one; |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
751 const char *b = (const char *)two; |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
752 |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
753 if (*a == '@') { |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
754 if (*b != '@') |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
755 return -1; |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
756 return (strcmp(a + 1, b + 1)); |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
757 } else if (*a == '+') { |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
758 if (*b == '@') |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
759 return 1; |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
760 if (*b != '+') |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
761 return -1; |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
762 return (strcmp(a + 1, b + 1)); |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
763 } else { |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
764 if (*b == '@' || *b == '+') |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
765 return 1; |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
766 return strcmp(a, b); |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
767 } |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
768 } |
|
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
769 |
|
1398
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
770 static void chat_press_im(GtkObject *obj, struct conversation *b) |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
771 { |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
772 struct conversation *c; |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
773 |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
774 c = find_conversation(gtk_object_get_user_data(obj)); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
775 |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
776 if (c != NULL) |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
777 gdk_window_show(c->window->window); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
778 else { |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
779 c = new_conversation(gtk_object_get_user_data(obj)); |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1860
diff
changeset
|
780 set_convo_gc(c, b->gc); |
|
1398
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
781 } |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
782 } |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
783 |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
784 static void chat_press_ign(GtkWidget *obj, struct conversation *b) |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
785 { |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
786 gtk_list_select_child(GTK_LIST(b->list), gtk_object_get_user_data(GTK_OBJECT(obj))); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
787 ignore_callback(obj, b); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
788 } |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
789 |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
790 static void chat_press_info(GtkObject *obj, struct conversation *b) |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
791 { |
|
2208
9b3262a2f7c4
[gaim-migrate @ 2218]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2205
diff
changeset
|
792 if (b->gc) |
|
9b3262a2f7c4
[gaim-migrate @ 2218]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2205
diff
changeset
|
793 (*b->gc->prpl->get_info)(b->gc, gtk_object_get_user_data(obj)); |
|
1398
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
794 } |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
795 |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
796 static gint right_click_chat(GtkObject *obj, GdkEventButton *event, struct conversation *b) |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
797 { |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
798 if (event->button == 3 && event->type == GDK_BUTTON_PRESS) { |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
799 GtkWidget *menu; |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
800 GtkWidget *button; |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
801 |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
802 menu = gtk_menu_new(); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
803 |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
804 button = gtk_menu_item_new_with_label(_("IM")); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
805 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(chat_press_im), b); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
806 gtk_object_set_user_data(GTK_OBJECT(button), gtk_object_get_user_data(obj)); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
807 gtk_menu_append(GTK_MENU(menu), button); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
808 gtk_widget_show(button); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
809 |
|
2350
0264a8a27e69
[gaim-migrate @ 2363]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2346
diff
changeset
|
810 if (g_list_find_custom(b->ignored, gtk_object_get_user_data(obj), (GCompareFunc)strcmp)) |
|
0264a8a27e69
[gaim-migrate @ 2363]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2346
diff
changeset
|
811 button = gtk_menu_item_new_with_label(_("Un-Ignore")); |
|
0264a8a27e69
[gaim-migrate @ 2363]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2346
diff
changeset
|
812 else |
|
0264a8a27e69
[gaim-migrate @ 2363]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2346
diff
changeset
|
813 button = gtk_menu_item_new_with_label(_("Ignore")); |
|
1398
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
814 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(chat_press_ign), b); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
815 gtk_object_set_user_data(GTK_OBJECT(button), obj); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
816 gtk_menu_append(GTK_MENU(menu), button); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
817 gtk_widget_show(button); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
818 |
|
2208
9b3262a2f7c4
[gaim-migrate @ 2218]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2205
diff
changeset
|
819 if (b->gc && b->gc->prpl->get_info) { |
|
1398
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
820 button = gtk_menu_item_new_with_label(_("Info")); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
821 gtk_signal_connect(GTK_OBJECT(button), "activate", |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
822 GTK_SIGNAL_FUNC(chat_press_info), b); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
823 gtk_object_set_user_data(GTK_OBJECT(button), gtk_object_get_user_data(obj)); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
824 gtk_menu_append(GTK_MENU(menu), button); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
825 gtk_widget_show(button); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
826 } |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
827 |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
828 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time); |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
829 return TRUE; |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
830 } |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
831 return TRUE; |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
832 } |
| 1 | 833 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
834 void add_chat_buddy(struct conversation *b, char *buddy) |
| 1 | 835 { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
836 char *name = g_strdup(buddy); |
|
612
12bb64b42ad1
[gaim-migrate @ 622]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
604
diff
changeset
|
837 char tmp[BUF_LONG]; |
|
1053
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
838 GtkWidget *list_item; |
|
1223
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
839 int pos; |
|
1303
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
840 GList *ignored; |
| 1 | 841 |
|
2345
a49e8f1afbc4
[gaim-migrate @ 2358]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
842 plugin_event(event_chat_buddy_join, b->gc, (void *)b->id, name, 0); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
843 b->in_room = g_list_insert_sorted(b->in_room, name, insertname); |
|
1223
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
844 pos = g_list_index(b->in_room, name); |
| 1 | 845 |
|
1303
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
846 ignored = b->ignored; |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
847 while (ignored) { |
|
2048
3366311426df
[gaim-migrate @ 2058]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2017
diff
changeset
|
848 if (!g_strcasecmp(name, ignored->data)) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
849 break; |
|
1303
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
850 ignored = ignored->next; |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
851 } |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
852 |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
853 if (ignored) { |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
854 g_snprintf(tmp, sizeof(tmp), "X %s", name); |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
855 list_item = gtk_list_item_new_with_label(tmp); |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
856 } else |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
857 list_item = gtk_list_item_new_with_label(name); |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
858 |
|
1053
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
859 gtk_object_set_user_data(GTK_OBJECT(list_item), name); |
|
1398
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
860 gtk_signal_connect(GTK_OBJECT(list_item), "button_press_event", |
|
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1390
diff
changeset
|
861 GTK_SIGNAL_FUNC(right_click_chat), b); |
|
1223
96ab3e7b7035
[gaim-migrate @ 1233]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1211
diff
changeset
|
862 gtk_list_insert_items(GTK_LIST(b->list), g_list_append(NULL, list_item), pos); |
|
1053
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
863 gtk_widget_show(list_item); |
| 1 | 864 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
865 g_snprintf(tmp, sizeof(tmp), _("%d %s in room"), g_list_length(b->in_room), |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
866 g_list_length(b->in_room) == 1 ? "person" : "people"); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
867 gtk_label_set_text(GTK_LABEL(b->count), tmp); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
868 |
|
371
9d22acf6db73
[gaim-migrate @ 381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
869 if (b->makesound && (sound_options & OPT_SOUND_CHAT_JOIN)) |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1000
diff
changeset
|
870 play_sound(CHAT_JOIN); |
|
612
12bb64b42ad1
[gaim-migrate @ 622]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
604
diff
changeset
|
871 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
872 if (chat_options & OPT_CHAT_LOGON) { |
|
1735
00f74db70f2d
[gaim-migrate @ 1745]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1732
diff
changeset
|
873 g_snprintf(tmp, sizeof(tmp), _("%s entered the room."), name); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
874 write_to_conv(b, tmp, WFLAG_SYSTEM, NULL, time(NULL)); |
|
612
12bb64b42ad1
[gaim-migrate @ 622]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
604
diff
changeset
|
875 } |
| 1 | 876 } |
| 877 | |
| 878 | |
|
1504
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
879 void rename_chat_buddy(struct conversation *b, char *old, char *new) |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
880 { |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
881 GList *names = b->in_room; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
882 GList *items = GTK_LIST(b->list)->children; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
883 |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
884 char *name = g_strdup(new); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
885 GtkWidget *list_item; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
886 int pos; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
887 GList *ignored = b->ignored; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
888 |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
889 char tmp[BUF_LONG]; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
890 |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
891 while (names) { |
|
2048
3366311426df
[gaim-migrate @ 2058]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2017
diff
changeset
|
892 if (!g_strcasecmp((char *)names->data, old)) { |
|
1504
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
893 char *tmp2 = names->data; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
894 b->in_room = g_list_remove(b->in_room, names->data); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
895 while (items) { |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
896 if (tmp2 == gtk_object_get_user_data(items->data)) { |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
897 gtk_list_remove_items(GTK_LIST(b->list), |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
898 g_list_append(NULL, items->data)); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
899 break; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
900 } |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
901 items = items->next; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
902 } |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
903 g_free(tmp2); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
904 break; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
905 } |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
906 names = names->next; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
907 } |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
908 |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
909 if (!names) |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
910 return; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
911 |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
912 b->in_room = g_list_insert_sorted(b->in_room, name, insertname); |
|
1505
171c64f70b66
[gaim-migrate @ 1515]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1504
diff
changeset
|
913 pos = g_list_index(b->in_room, name); |
|
1504
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
914 |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
915 while (ignored) { |
|
2048
3366311426df
[gaim-migrate @ 2058]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2017
diff
changeset
|
916 if (!g_strcasecmp(old, ignored->data)) |
|
1504
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
917 break; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
918 ignored = ignored->next; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
919 } |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
920 |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
921 if (ignored) { |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
922 b->ignored = g_list_remove(b->ignored, ignored->data); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
923 b->ignored = g_list_append(b->ignored, name); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
924 g_snprintf(tmp, sizeof(tmp), "X %s", name); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
925 list_item = gtk_list_item_new_with_label(tmp); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
926 } else |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
927 list_item = gtk_list_item_new_with_label(name); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
928 |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
929 gtk_object_set_user_data(GTK_OBJECT(list_item), name); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
930 gtk_signal_connect(GTK_OBJECT(list_item), "button_press_event", |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
931 GTK_SIGNAL_FUNC(right_click_chat), b); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
932 gtk_list_insert_items(GTK_LIST(b->list), g_list_append(NULL, list_item), pos); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
933 gtk_widget_show(list_item); |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
934 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
935 if (chat_options & OPT_CHAT_LOGON) { |
|
1735
00f74db70f2d
[gaim-migrate @ 1745]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1732
diff
changeset
|
936 g_snprintf(tmp, sizeof(tmp), _("%s is now known as %s"), old, new); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
937 write_to_conv(b, tmp, WFLAG_SYSTEM, NULL, time(NULL)); |
|
1504
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
938 } |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
939 } |
| 1 | 940 |
| 941 | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
942 void remove_chat_buddy(struct conversation *b, char *buddy) |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
943 { |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
944 GList *names = b->in_room; |
|
1053
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
945 GList *items = GTK_LIST(b->list)->children; |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
946 |
|
612
12bb64b42ad1
[gaim-migrate @ 622]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
604
diff
changeset
|
947 char tmp[BUF_LONG]; |
| 1 | 948 |
|
2345
a49e8f1afbc4
[gaim-migrate @ 2358]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
949 plugin_event(event_chat_buddy_leave, b->gc, (void *)b->id, buddy, 0); |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
375
diff
changeset
|
950 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
951 while (names) { |
|
2048
3366311426df
[gaim-migrate @ 2058]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2017
diff
changeset
|
952 if (!g_strcasecmp((char *)names->data, buddy)) { |
|
1053
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
953 char *tmp = names->data; |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
954 b->in_room = g_list_remove(b->in_room, names->data); |
|
1053
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
955 while (items) { |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
956 if (tmp == gtk_object_get_user_data(items->data)) { |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
957 gtk_list_remove_items(GTK_LIST(b->list), |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
958 g_list_append(NULL, items->data)); |
|
1053
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
959 break; |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
960 } |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
961 items = items->next; |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
962 } |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
963 g_free(tmp); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
964 break; |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
965 } |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
966 names = names->next; |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
967 } |
|
371
9d22acf6db73
[gaim-migrate @ 381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
968 |
|
1504
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
969 if (!names) |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
970 return; |
|
cac3efeb4d9c
[gaim-migrate @ 1514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
971 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
972 g_snprintf(tmp, sizeof(tmp), _("%d %s in room"), g_list_length(b->in_room), |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
973 g_list_length(b->in_room) == 1 ? "person" : "people"); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
974 gtk_label_set_text(GTK_LABEL(b->count), tmp); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
975 |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1000
diff
changeset
|
976 if (b->makesound && (sound_options & OPT_SOUND_CHAT_PART)) |
|
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1000
diff
changeset
|
977 play_sound(CHAT_LEAVE); |
|
612
12bb64b42ad1
[gaim-migrate @ 622]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
604
diff
changeset
|
978 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
979 if (chat_options & OPT_CHAT_LOGON) { |
|
1735
00f74db70f2d
[gaim-migrate @ 1745]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1732
diff
changeset
|
980 g_snprintf(tmp, sizeof(tmp), _("%s left the room."), buddy); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
981 write_to_conv(b, tmp, WFLAG_SYSTEM, NULL, time(NULL)); |
|
612
12bb64b42ad1
[gaim-migrate @ 622]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
604
diff
changeset
|
982 } |
| 1 | 983 } |
| 984 | |
| 985 | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
986 void im_callback(GtkWidget *w, struct conversation *b) |
| 1 | 987 { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
988 char *name; |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
989 GList *i; |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
990 struct conversation *c; |
| 1 | 991 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
992 i = GTK_LIST(b->list)->selection; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
993 if (i) { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
994 name = (char *)gtk_object_get_user_data(GTK_OBJECT(i->data)); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
995 } else { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
996 return; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
997 } |
| 1 | 998 |
| 999 c = find_conversation(name); | |
| 1000 | |
| 1001 if (c != NULL) { | |
| 1002 gdk_window_raise(c->window->window); | |
| 1003 } else { | |
| 1004 c = new_conversation(name); | |
| 1005 } | |
| 1006 | |
|
2391
abebece90bd7
[gaim-migrate @ 2404]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2390
diff
changeset
|
1007 set_convo_gc(c, b->gc); |
| 1 | 1008 } |
| 1009 | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
1010 void ignore_callback(GtkWidget *w, struct conversation *b) |
| 1 | 1011 { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1012 char *name; |
|
1303
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1013 GList *i, *ignored; |
|
1053
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1014 int pos; |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1015 GtkWidget *list_item; |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1016 char tmp[80]; |
| 1 | 1017 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1018 i = GTK_LIST(b->list)->selection; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1019 if (i) { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1020 name = (char *)gtk_object_get_user_data(GTK_OBJECT(i->data)); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1021 } else { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1022 return; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1023 } |
| 1 | 1024 |
|
1053
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1025 pos = gtk_list_child_position(GTK_LIST(b->list), i->data); |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1026 |
|
1303
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1027 ignored = b->ignored; |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1028 while (ignored) { |
|
2048
3366311426df
[gaim-migrate @ 2058]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2017
diff
changeset
|
1029 if (!g_strcasecmp(name, ignored->data)) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1030 break; |
|
1303
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1031 ignored = ignored->next; |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1032 } |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1033 |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1034 if (ignored) { |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1035 b->ignored = g_list_remove(b->ignored, ignored->data); |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1036 g_snprintf(tmp, sizeof tmp, "%s", name); |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1037 } else { |
|
9c34f99af79e
[gaim-migrate @ 1313]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1038 b->ignored = g_list_append(b->ignored, g_strdup(name)); |
|
1053
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1039 g_snprintf(tmp, sizeof tmp, "X %s", name); |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1040 } |
| 1 | 1041 |
|
1053
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1042 list_item = gtk_list_item_new_with_label(tmp); |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1043 gtk_object_set_user_data(GTK_OBJECT(list_item), name); |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1044 gtk_list_insert_items(GTK_LIST(b->list), g_list_append(NULL, list_item), pos); |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1045 gtk_widget_destroy(i->data); |
|
864f4aae0b60
[gaim-migrate @ 1063]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1046 gtk_widget_show(list_item); |
|
2350
0264a8a27e69
[gaim-migrate @ 2363]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2346
diff
changeset
|
1047 gtk_signal_connect(GTK_OBJECT(list_item), "button_press_event", |
|
0264a8a27e69
[gaim-migrate @ 2363]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2346
diff
changeset
|
1048 GTK_SIGNAL_FUNC(right_click_chat), b); |
| 1 | 1049 } |
| 1050 | |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1051 static gint delete_all_chats(GtkWidget *w, GdkEventAny *e, gpointer d) |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1052 { |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1053 while (chats) { |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1054 struct conversation *c = chats->data; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1055 close_callback(c->close, c); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1056 } |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1057 return FALSE; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1058 } |
| 1 | 1059 |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1060 static void chat_switch(GtkNotebook *notebook, GtkWidget *page, gint page_num, gpointer data) |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1061 { |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1062 GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(chat_notebook), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1063 gtk_notebook_get_nth_page(GTK_NOTEBOOK |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1064 (chat_notebook), |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1065 page_num)); |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1066 GtkStyle *style; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1067 struct conversation *b = g_list_nth_data(chats, page_num); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1068 if (b && b->window && b->entry) |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1069 gtk_window_set_focus(GTK_WINDOW(b->window), b->entry); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1070 if (!GTK_WIDGET_REALIZED(label)) |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1071 return; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1072 style = gtk_style_new(); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1073 gdk_font_unref(style->font); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1074 style->font = gdk_font_ref(label->style->font); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1075 gtk_widget_set_style(label, style); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1076 gtk_style_unref(style); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1077 b->unseen = FALSE; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1078 } |
| 1 | 1079 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
457
diff
changeset
|
1080 void show_new_buddy_chat(struct conversation *b) |
| 1 | 1081 { |
| 1082 GtkWidget *win; | |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1083 GtkWidget *cont; |
| 1 | 1084 GtkWidget *text; |
| 1085 GtkWidget *send; | |
| 1086 GtkWidget *list; | |
| 1087 GtkWidget *invite_btn; | |
| 1088 GtkWidget *whisper; | |
| 1089 GtkWidget *close; | |
| 1090 GtkWidget *chatentry; | |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1091 GtkWidget *lbox; |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1092 GtkWidget *bbox; |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1093 GtkWidget *bbox2; |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1094 GtkWidget *im, *ignore, *info; |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1095 GtkWidget *sw; |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1096 GtkWidget *sw2; |
| 1 | 1097 GtkWidget *vbox; |
| 223 | 1098 GtkWidget *vpaned; |
| 1099 GtkWidget *hpaned; | |
|
344
2434adbb8703
[gaim-migrate @ 354]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
338
diff
changeset
|
1100 GtkWidget *toolbar; |
|
1380
638af9a58e39
[gaim-migrate @ 1390]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1358
diff
changeset
|
1101 char buf[BUF_LONG]; |
| 844 | 1102 |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1103 int dispstyle = set_dispstyle(1); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1104 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1105 if (chat_options & OPT_CHAT_ONE_WINDOW) { |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1106 if (!all_chats) { |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1107 win = all_chats = b->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1108 gtk_window_set_wmclass(GTK_WINDOW(win), "buddy_chat", "Gaim"); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1109 gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1110 gtk_container_border_width(GTK_CONTAINER(win), 0); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1111 gtk_widget_realize(win); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1112 aol_icon(win->window); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1113 gtk_window_set_title(GTK_WINDOW(win), _("Gaim - Group Chats")); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1114 gtk_signal_connect(GTK_OBJECT(win), "delete_event", |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1115 GTK_SIGNAL_FUNC(delete_all_chats), NULL); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1116 |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1117 chat_notebook = gtk_notebook_new(); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1118 if (chat_options & OPT_CHAT_SIDE_TAB) { |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1119 if (chat_options & OPT_CHAT_BR_TAB) { |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
1120 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1121 GTK_POS_RIGHT); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
1122 } else { |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
1123 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1124 GTK_POS_LEFT); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
1125 } |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
1126 } else { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1127 if (chat_options & OPT_CHAT_BR_TAB) { |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
1128 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1129 GTK_POS_BOTTOM); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
1130 } else { |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
1131 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1132 GTK_POS_TOP); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
1133 } |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
1134 } |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1135 gtk_notebook_set_scrollable(GTK_NOTEBOOK(chat_notebook), TRUE); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1136 gtk_notebook_popup_enable(GTK_NOTEBOOK(chat_notebook)); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1137 gtk_container_add(GTK_CONTAINER(win), chat_notebook); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1138 gtk_signal_connect(GTK_OBJECT(chat_notebook), "switch-page", |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1139 GTK_SIGNAL_FUNC(chat_switch), NULL); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1140 gtk_widget_show(chat_notebook); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1141 } else |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1142 win = b->window = all_chats; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1143 |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1144 cont = gtk_vbox_new(FALSE, 5); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1145 gtk_container_set_border_width(GTK_CONTAINER(cont), 5); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1146 gtk_notebook_append_page(GTK_NOTEBOOK(chat_notebook), cont, gtk_label_new(b->name)); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1147 gtk_widget_show(cont); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1148 } else { |
|
1920
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1149 win = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1150 b->window = win; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1151 gtk_object_set_user_data(GTK_OBJECT(win), b); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1152 gtk_window_set_wmclass(GTK_WINDOW(win), "buddy_chat", "Gaim"); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1153 gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1154 gtk_container_border_width(GTK_CONTAINER(win), 10); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1155 gtk_widget_realize(win); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1156 aol_icon(win->window); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1157 g_snprintf(buf, sizeof(buf), "Gaim - %s (chat)", b->name); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1158 gtk_window_set_title(GTK_WINDOW(win), buf); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1159 gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(close_callback), b); |
|
1920
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1160 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1161 cont = gtk_vbox_new(FALSE, 5); |
|
1920
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1162 gtk_container_add(GTK_CONTAINER(win), cont); |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1163 gtk_widget_show(cont); |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1164 } |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1165 |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1166 if (b->gc->prpl->options & OPT_PROTO_CHAT_TOPIC) { |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1167 GtkWidget *hbox; |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1168 GtkWidget *label; |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1169 |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1170 hbox = gtk_hbox_new(FALSE, 0); |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1171 gtk_box_pack_start(GTK_BOX(cont), hbox, FALSE, FALSE, 5); |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1172 gtk_widget_show(hbox); |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1173 |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1174 label = gtk_label_new(_("Topic:")); |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1175 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1176 gtk_widget_show(label); |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1177 |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1178 b->topic_text = gtk_entry_new(); |
|
2289
38e156136896
[gaim-migrate @ 2299]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2268
diff
changeset
|
1179 gtk_entry_set_editable(GTK_ENTRY(b->topic_text), FALSE); |
|
1920
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1180 gtk_box_pack_start(GTK_BOX(hbox), b->topic_text, TRUE, TRUE, 5); |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1181 gtk_widget_show(b->topic_text); |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1182 } |
| 1 | 1183 |
| 223 | 1184 vpaned = gtk_vpaned_new(); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1185 gtk_paned_set_gutter_size(GTK_PANED(vpaned), 15); |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1186 gtk_container_add(GTK_CONTAINER(cont), vpaned); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1187 gtk_widget_show(vpaned); |
| 223 | 1188 |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1189 hpaned = gtk_hpaned_new(); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1190 gtk_paned_set_gutter_size(GTK_PANED(hpaned), 15); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1191 gtk_paned_pack1(GTK_PANED(vpaned), hpaned, TRUE, FALSE); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1192 gtk_widget_show(hpaned); |
| 26 | 1193 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1194 sw = gtk_scrolled_window_new(NULL, NULL); |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1195 b->sw = sw; |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1196 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1197 gtk_paned_pack1(GTK_PANED(hpaned), sw, TRUE, TRUE); |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1807
diff
changeset
|
1198 gtk_widget_set_usize(sw, buddy_chat_size.width, buddy_chat_size.height); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1199 gtk_widget_show(sw); |
|
834
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1200 |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1398
diff
changeset
|
1201 text = gtk_imhtml_new(NULL, NULL); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1202 b->text = text; |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1203 gtk_container_add(GTK_CONTAINER(sw), text); |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1398
diff
changeset
|
1204 GTK_LAYOUT(text)->hadjustment->step_increment = 10.0; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1398
diff
changeset
|
1205 GTK_LAYOUT(text)->vadjustment->step_increment = 10.0; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1206 if (convo_options & OPT_CONVO_SHOW_TIME) |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1398
diff
changeset
|
1207 gtk_imhtml_show_comments(GTK_IMHTML(text), TRUE); |
|
1815
f15d449b3167
[gaim-migrate @ 1825]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1813
diff
changeset
|
1208 gaim_setup_imhtml(text); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1209 gtk_widget_show(text); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1210 |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1211 lbox = gtk_vbox_new(FALSE, 5); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1212 gtk_paned_pack2(GTK_PANED(hpaned), lbox, TRUE, TRUE); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1213 gtk_widget_show(lbox); |
| 1 | 1214 |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1215 b->count = gtk_label_new(_("0 people in room")); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1216 gtk_box_pack_start(GTK_BOX(lbox), b->count, FALSE, FALSE, 0); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1217 gtk_widget_show(b->count); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1218 |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1219 sw2 = gtk_scrolled_window_new(NULL, NULL); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1220 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1221 gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1222 gtk_widget_show(sw2); |
| 1 | 1223 |
| 1224 list = gtk_list_new(); | |
| 1225 b->list = list; | |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1226 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), list); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1227 gtk_widget_set_usize(list, 150, -1); |
| 1 | 1228 gtk_widget_show(list); |
| 1229 | |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1230 bbox2 = gtk_hbox_new(TRUE, 5); |
|
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1231 gtk_box_pack_start(GTK_BOX(lbox), bbox2, FALSE, FALSE, 0); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1232 gtk_widget_show(bbox2); |
| 1 | 1233 |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1234 im = picture_button2(win, _("IM"), tmp_send_xpm, FALSE); |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1235 gtk_box_pack_start(GTK_BOX(bbox2), im, dispstyle, dispstyle, 0); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1236 gtk_signal_connect(GTK_OBJECT(im), "clicked", GTK_SIGNAL_FUNC(im_callback), b); |
| 1 | 1237 |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1238 ignore = picture_button2(win, _("Ignore"), close_xpm, FALSE); |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1239 gtk_box_pack_start(GTK_BOX(bbox2), ignore, dispstyle, dispstyle, 0); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1240 gtk_signal_connect(GTK_OBJECT(ignore), "clicked", GTK_SIGNAL_FUNC(ignore_callback), b); |
| 1 | 1241 |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1242 info = picture_button2(win, _("Info"), tb_search_xpm, FALSE); |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1243 gtk_box_pack_start(GTK_BOX(bbox2), info, dispstyle, dispstyle, 0); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1244 gtk_signal_connect(GTK_OBJECT(info), "clicked", GTK_SIGNAL_FUNC(info_callback), b); |
| 1343 | 1245 b->info = info; |
| 844 | 1246 |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1247 vbox = gtk_vbox_new(FALSE, 5); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1248 gtk_paned_pack2(GTK_PANED(vpaned), vbox, TRUE, FALSE); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1249 gtk_widget_show(vbox); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1250 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1251 chatentry = gtk_text_new(NULL, NULL); |
|
1227
25611364a504
[gaim-migrate @ 1237]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1223
diff
changeset
|
1252 b->entry = chatentry; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1253 if (!(chat_options & OPT_CHAT_ONE_WINDOW)) |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1254 gtk_window_set_focus(GTK_WINDOW(b->window), b->entry); |
|
1227
25611364a504
[gaim-migrate @ 1237]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1223
diff
changeset
|
1255 |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1256 toolbar = build_conv_toolbar(b); |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1257 gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); |
| 1 | 1258 |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1259 gtk_object_set_user_data(GTK_OBJECT(chatentry), b); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1260 gtk_text_set_editable(GTK_TEXT(chatentry), TRUE); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1261 gtk_text_set_word_wrap(GTK_TEXT(chatentry), TRUE); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1262 gtk_signal_connect(GTK_OBJECT(chatentry), "activate", GTK_SIGNAL_FUNC(send_callback), b); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1263 gtk_signal_connect(GTK_OBJECT(chatentry), "key_press_event", GTK_SIGNAL_FUNC(keypress_callback), |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1264 b); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1265 gtk_signal_connect(GTK_OBJECT(chatentry), "key_press_event", GTK_SIGNAL_FUNC(entry_key_pressed), |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1266 chatentry); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1267 if (convo_options & OPT_CONVO_CHECK_SPELLING) |
|
1117
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1109
diff
changeset
|
1268 gtkspell_attach(GTK_TEXT(chatentry)); |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1269 gtk_box_pack_start(GTK_BOX(vbox), chatentry, TRUE, TRUE, 0); |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1807
diff
changeset
|
1270 gtk_widget_set_usize(chatentry, buddy_chat_size.width, buddy_chat_size.entry_height); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1271 gtk_window_set_focus(GTK_WINDOW(win), chatentry); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1272 gtk_widget_show(chatentry); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1273 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1274 bbox = gtk_hbox_new(FALSE, 5); |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1275 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1276 gtk_widget_show(bbox); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1277 |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1278 close = picture_button2(win, _("Close"), cancel_xpm, dispstyle); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1279 b->close = close; |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1280 gtk_object_set_user_data(GTK_OBJECT(close), b); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1281 gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(close_callback), b); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1282 gtk_box_pack_end(GTK_BOX(bbox), close, dispstyle, dispstyle, 0); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1283 |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1284 invite_btn = picture_button2(win, _("Invite"), join_xpm, dispstyle); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1285 b->invite = invite_btn; |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1286 gtk_signal_connect(GTK_OBJECT(invite_btn), "clicked", GTK_SIGNAL_FUNC(invite_callback), b); |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1287 gtk_box_pack_end(GTK_BOX(bbox), invite_btn, dispstyle, dispstyle, 0); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1288 |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1289 whisper = picture_button2(win, _("Whisper"), tb_forward_xpm, dispstyle); |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1290 b->whisper = whisper; |
|
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1291 gtk_signal_connect(GTK_OBJECT(whisper), "clicked", GTK_SIGNAL_FUNC(whisper_callback), b); |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1292 gtk_box_pack_end(GTK_BOX(bbox), whisper, dispstyle, dispstyle, 0); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1293 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1294 send = picture_button2(win, _("Send"), tmp_send_xpm, dispstyle); |
|
1201
90bb83cafb9e
[gaim-migrate @ 1211]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
1295 b->send = send; |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1296 gtk_signal_connect(GTK_OBJECT(send), "clicked", GTK_SIGNAL_FUNC(send_callback), b); |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
1297 gtk_box_pack_end(GTK_BOX(bbox), send, dispstyle, dispstyle, 0); |
| 1 | 1298 |
| 716 | 1299 b->font_dialog = NULL; |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1300 b->fg_color_dialog = NULL; |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1301 b->bg_color_dialog = NULL; |
| 716 | 1302 b->smiley_dialog = NULL; |
| 1303 b->link_dialog = NULL; | |
| 1304 b->log_dialog = NULL; | |
| 1305 sprintf(b->fontface, "%s", fontface); | |
| 1306 b->hasfont = 0; | |
|
1441
5c67b8794991
[gaim-migrate @ 1451]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1428
diff
changeset
|
1307 b->fontsize = fontsize; |
|
5c67b8794991
[gaim-migrate @ 1451]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1428
diff
changeset
|
1308 b->hassize = 0; |
| 716 | 1309 b->bgcol = bgcolor; |
| 1310 b->hasbg = 0; | |
| 1311 b->fgcol = fgcolor; | |
| 1312 b->hasfg = 0; | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1313 |
| 1343 | 1314 update_buttons_by_protocol(b); |
| 1315 | |
| 1 | 1316 gtk_widget_show(win); |
| 1317 } | |
| 1318 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1319 void chat_set_topic(struct conversation *b, char *who, char *topic) |
|
2017
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1320 { |
|
1920
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1321 gtk_entry_set_text(GTK_ENTRY(b->topic_text), topic); |
|
2368
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1322 if (b->topic) |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1323 g_free(b->topic); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1324 b->topic = g_strdup(topic); |
|
1920
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1325 } |
|
5bed3bc833b5
[gaim-migrate @ 1930]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1898
diff
changeset
|
1326 |
| 1 | 1327 |
| 1328 | |
|
2017
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1329 void delete_chat(struct conversation *b) |
|
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1330 { |
|
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1331 while (b->in_room) { |
|
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1332 g_free(b->in_room->data); |
|
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1333 b->in_room = g_list_remove(b->in_room, b->in_room->data); |
|
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1334 } |
|
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1335 while (b->ignored) { |
|
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1336 g_free(b->ignored->data); |
|
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1337 b->ignored = g_list_remove(b->ignored, b->ignored->data); |
|
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1338 } |
|
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1339 g_string_free(b->history, TRUE); |
|
2368
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1340 if (b->topic) |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1341 g_free(b->topic); |
|
2017
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1342 g_free(b); |
|
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1924
diff
changeset
|
1343 } |
| 1 | 1344 |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
909
diff
changeset
|
1345 static GtkWidget *change_text(GtkWidget *win, char *text, GtkWidget *button, char **xpm, int chat) |
|
834
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1346 { |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
909
diff
changeset
|
1347 int dispstyle = set_dispstyle(chat); |
|
834
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1348 GtkWidget *parent = button->parent; |
|
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1349 gtk_widget_destroy(button); |
|
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1350 button = picture_button2(win, text, xpm, dispstyle); |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
909
diff
changeset
|
1351 if (chat == 1) |
|
909
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1352 gtk_box_pack_start(GTK_BOX(parent), button, dispstyle, dispstyle, 5); |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1353 else |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1354 gtk_box_pack_end(GTK_BOX(parent), button, dispstyle, dispstyle, 0); |
|
834
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1355 gtk_widget_show(button); |
|
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1356 return button; |
|
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1357 } |
|
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1358 |
|
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1359 void update_chat_button_pix() |
|
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1360 { |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1361 GSList *C = connections; |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1362 struct gaim_connection *g; |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1363 |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1364 while (C) { |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1365 GSList *bcs; |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1366 struct conversation *c; |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1367 int opt = 1; |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1368 g = (struct gaim_connection *)C->data; |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1369 bcs = g->buddy_chats; |
|
834
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1370 |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1371 while (bcs) { |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1372 c = (struct conversation *)bcs->data; |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1373 c->send = change_text(c->window, _("Send"), c->send, tmp_send_xpm, opt); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1374 c->whisper = |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1375 change_text(c->window, _("Whisper"), c->whisper, tb_forward_xpm, opt); |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1376 c->invite = change_text(c->window, _("Invite"), c->invite, join_xpm, opt); |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1377 c->close = change_text(c->window, _("Close"), c->close, cancel_xpm, opt); |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1378 gtk_object_set_user_data(GTK_OBJECT(c->close), c); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1379 gtk_signal_connect(GTK_OBJECT(c->close), "clicked", |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1380 GTK_SIGNAL_FUNC(close_callback), c); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1381 gtk_signal_connect(GTK_OBJECT(c->send), "clicked", |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1382 GTK_SIGNAL_FUNC(send_callback), c); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1383 gtk_signal_connect(GTK_OBJECT(c->invite), "clicked", |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1384 GTK_SIGNAL_FUNC(invite_callback), c); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1385 gtk_signal_connect(GTK_OBJECT(c->whisper), "clicked", |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1386 GTK_SIGNAL_FUNC(whisper_callback), c); |
|
2421
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2391
diff
changeset
|
1387 |
|
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2391
diff
changeset
|
1388 update_buttons_by_protocol(c); |
|
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2391
diff
changeset
|
1389 |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1390 bcs = bcs->next; |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1391 } |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
1392 C = C->next; |
|
834
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1393 } |
|
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
823
diff
changeset
|
1394 } |
|
909
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1395 |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1396 void update_im_button_pix() |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1397 { |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1398 GList *bcs = conversations; |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1399 struct conversation *c; |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1400 GtkWidget *parent; |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
909
diff
changeset
|
1401 int opt = 0; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
909
diff
changeset
|
1402 int dispstyle = set_dispstyle(0); |
|
909
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1403 |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1404 while (bcs) { |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1405 c = (struct conversation *)bcs->data; |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1406 parent = c->close->parent; |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1407 c->close = change_text(c->window, _("Close"), c->close, cancel_xpm, opt); |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1408 gtk_box_reorder_child(GTK_BOX(parent), c->close, 0); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1409 gtk_box_set_child_packing(GTK_BOX(parent), c->sep1, dispstyle, dispstyle, 0, |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1410 GTK_PACK_END); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1018
diff
changeset
|
1411 if (find_buddy(c->gc, c->name) == NULL) |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1412 c->add = change_text(c->window, _("Add"), c->add, gnome_add_xpm, opt); |
|
909
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1413 else |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1414 c->add = change_text(c->window, _("Remove"), c->add, gnome_remove_xpm, opt); |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1415 gtk_box_reorder_child(GTK_BOX(parent), c->add, 2); |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1416 c->block = change_text(c->window, _("Block"), c->block, block_xpm, opt); |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1417 gtk_box_reorder_child(GTK_BOX(parent), c->block, 3); |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1418 c->warn = change_text(c->window, _("Warn"), c->warn, warn_xpm, opt); |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1419 gtk_box_reorder_child(GTK_BOX(parent), c->warn, 4); |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1420 c->info = change_text(c->window, _("Info"), c->info, tb_search_xpm, opt); |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1421 gtk_box_reorder_child(GTK_BOX(parent), c->info, 5); |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1422 c->send = change_text(c->window, _("Send"), c->send, tmp_send_xpm, opt); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1423 gtk_box_set_child_packing(GTK_BOX(parent), c->sep2, dispstyle, dispstyle, 0, |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1424 GTK_PACK_END); |
|
909
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1425 gtk_box_reorder_child(GTK_BOX(parent), c->send, 7); |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1426 gtk_object_set_user_data(GTK_OBJECT(c->close), c); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1427 gtk_signal_connect(GTK_OBJECT(c->close), "clicked", GTK_SIGNAL_FUNC(close_callback), c); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1428 gtk_signal_connect(GTK_OBJECT(c->send), "clicked", GTK_SIGNAL_FUNC(send_callback), c); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1429 gtk_signal_connect(GTK_OBJECT(c->add), "clicked", GTK_SIGNAL_FUNC(add_callback), c); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1430 gtk_signal_connect(GTK_OBJECT(c->info), "clicked", GTK_SIGNAL_FUNC(info_callback), c); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1431 gtk_signal_connect(GTK_OBJECT(c->warn), "clicked", GTK_SIGNAL_FUNC(warn_callback), c); |
|
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1432 gtk_signal_connect(GTK_OBJECT(c->block), "clicked", GTK_SIGNAL_FUNC(block_callback), c); |
|
909
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1433 bcs = bcs->next; |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1434 } |
|
9f2afe5faed5
[gaim-migrate @ 919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
907
diff
changeset
|
1435 } |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1436 |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1437 void chat_tabize() |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1438 { |
|
2368
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1439 int pos = 0; |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1440 /* evil, evil i tell you! evil! */ |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1441 if (chat_options & OPT_CHAT_ONE_WINDOW) { |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1442 GList *x = chats; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1443 while (x) { |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1444 struct conversation *c = x->data; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1445 GtkWidget *imhtml, *win; |
|
2368
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1446 GList *r = c->in_room; |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1447 |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1448 imhtml = c->text; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1449 win = c->window; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1450 show_new_buddy_chat(c); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1451 gtk_widget_destroy(c->text); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1452 gtk_widget_reparent(imhtml, c->sw); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1453 c->text = imhtml; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1454 gtk_signal_disconnect_by_func(GTK_OBJECT(win), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1455 GTK_SIGNAL_FUNC(close_callback), c); |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1456 gtk_widget_destroy(win); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1457 |
|
2368
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1458 if (c->topic) |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1459 gtk_entry_set_text(GTK_ENTRY(c->topic_text), c->topic); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1460 |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1461 while (r) { |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1462 char *name = r->data; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1463 GtkWidget *list_item; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1464 GList *ignored = c->ignored; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1465 char tmp[BUF_LONG]; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1466 |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1467 while (ignored) { |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1468 if (!g_strcasecmp(name, ignored->data)) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1469 break; |
|
2368
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1470 ignored = ignored->next; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1471 } |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1472 |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1473 if (ignored) { |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1474 g_snprintf(tmp, sizeof(tmp), "X %s", name); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1475 list_item = gtk_list_item_new_with_label(tmp); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1476 } else |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1477 list_item = gtk_list_item_new_with_label(name); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1478 |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1479 gtk_object_set_user_data(GTK_OBJECT(list_item), name); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1480 gtk_signal_connect(GTK_OBJECT(list_item), "button_press_event", |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1481 GTK_SIGNAL_FUNC(right_click_chat), c); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1482 gtk_list_insert_items(GTK_LIST(c->list), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1483 g_list_append(NULL, list_item), pos); |
|
2368
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1484 gtk_widget_show(list_item); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1485 |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1486 r = r->next; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1487 pos++; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1488 } |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1489 |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1490 x = x->next; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1491 } |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1492 } else { |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1493 GList *x, *m; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1494 x = m = chats; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1495 chats = NULL; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1496 while (x) { |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1497 struct conversation *c = x->data; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1498 GtkWidget *imhtml; |
|
2368
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1499 GList *r = c->in_room; |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1500 |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1501 imhtml = c->text; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1502 show_new_buddy_chat(c); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1503 gtk_widget_destroy(c->text); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1504 gtk_widget_reparent(imhtml, c->sw); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1505 c->text = imhtml; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1506 |
|
2368
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1507 if (c->topic) |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1508 gtk_entry_set_text(GTK_ENTRY(c->topic_text), c->topic); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1509 |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1510 while (r) { |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1511 char *name = r->data; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1512 GtkWidget *list_item; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1513 GList *ignored = c->ignored; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1514 char tmp[BUF_LONG]; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1515 |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1516 while (ignored) { |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1517 if (!g_strcasecmp(name, ignored->data)) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1518 break; |
|
2368
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1519 ignored = ignored->next; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1520 } |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1521 |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1522 if (ignored) { |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1523 g_snprintf(tmp, sizeof(tmp), "X %s", name); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1524 list_item = gtk_list_item_new_with_label(tmp); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1525 } else |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1526 list_item = gtk_list_item_new_with_label(name); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1527 |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1528 gtk_object_set_user_data(GTK_OBJECT(list_item), name); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1529 gtk_signal_connect(GTK_OBJECT(list_item), "button_press_event", |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1530 GTK_SIGNAL_FUNC(right_click_chat), c); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1531 gtk_list_insert_items(GTK_LIST(c->list), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2371
diff
changeset
|
1532 g_list_append(NULL, list_item), pos); |
|
2368
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1533 gtk_widget_show(list_item); |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1534 |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1535 r = r->next; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1536 pos++; |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1537 } |
|
84823e04dcf7
[gaim-migrate @ 2381]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2350
diff
changeset
|
1538 |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1539 x = x->next; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1540 } |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1541 if (all_chats) |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1542 gtk_widget_destroy(all_chats); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1543 all_chats = NULL; |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
1544 chat_notebook = NULL; |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1545 chats = m; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1546 } |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1505
diff
changeset
|
1547 } |
