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