src/buddy_chat.c

Tue, 17 Dec 2002 11:03:44 +0000

author
Christian Hammond <chipx86@chipx86.com>
date
Tue, 17 Dec 2002 11:03:44 +0000
changeset 4091
e581b2bace1c
parent 4090
80d6b176ff79
child 4092
8788dcce1d81
permissions
-rw-r--r--

[gaim-migrate @ 4306]
The saved style is once again used on chat and IM windows. You may notice
that your style is set to Pictures, and until now, your IM and chat windows
have been Pictures & Text. If you prefer it this way, you'll need to set
your preferences to that.

1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 /*
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2 * gaim
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
5 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9 * (at your option) any later version.
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * GNU General Public License for more details.
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20 */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21
349
6f7d28b0f98d [gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 344
diff changeset
22 #ifdef HAVE_CONFIG_H
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2048
diff changeset
23 #include <config.h>
349
6f7d28b0f98d [gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 344
diff changeset
24 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
25 #include <string.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
26 #include <sys/time.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
27 #include <unistd.h>
2374
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
28 #include <ctype.h>
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
29 #include <stdio.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
30 #include <stdlib.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
31 #include <gtk/gtk.h>
1428
c14bab2b74bb [gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1398
diff changeset
32 #include "gtkimhtml.h"
3802
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3790
diff changeset
33 #ifdef USE_GTKSPELL
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3790
diff changeset
34 #include <gtkspell/gtkspell.h>
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3790
diff changeset
35 #endif
300
a6c19f404e08 [gaim-migrate @ 310]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 226
diff changeset
36 #include <gdk/gdkkeysyms.h>
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
37
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
38 #include "convo.h"
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1228
diff changeset
39 #include "prpl.h"
344
6dacf96cc000 [gaim-migrate @ 354]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 338
diff changeset
40
3716
172593593072 [gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents: 3708
diff changeset
41 /*#include "pixmaps/tb_forward.xpm"*/
604
a20b54408619 [gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 535
diff changeset
42 #include "pixmaps/join.xpm"
3716
172593593072 [gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents: 3708
diff changeset
43 /*#include "pixmaps/close.xpm"*/
172593593072 [gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents: 3708
diff changeset
44 #include "pixmaps/cancel.xpm"
172593593072 [gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents: 3708
diff changeset
45 #include "pixmaps/tmp_send.xpm"
172593593072 [gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents: 3708
diff changeset
46 #include "pixmaps/gnome_add.xpm"
172593593072 [gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents: 3708
diff changeset
47 #include "pixmaps/gnome_remove.xpm"
172593593072 [gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents: 3708
diff changeset
48 #include "pixmaps/block.xpm"
172593593072 [gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents: 3708
diff changeset
49 #include "pixmaps/warn.xpm"
172593593072 [gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents: 3708
diff changeset
50 #include "pixmaps/tb_search.xpm"
604
a20b54408619 [gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 535
diff changeset
51
1819
b82256590112 [gaim-migrate @ 1829]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1815
diff changeset
52 GtkWidget *joinchat;
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
53 static struct gaim_connection *joinchatgc;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
54 static GtkWidget *invite;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
55 static GtkWidget *inviteentry;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
56 static GtkWidget *invitemess;
1807
c75baa207eba [gaim-migrate @ 1817]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1806
diff changeset
57 static GtkWidget *jc_vbox = NULL;
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
58 static GList *chatentries = NULL;
344
6dacf96cc000 [gaim-migrate @ 354]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 338
diff changeset
59 extern int state_lock;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
60
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
61 GList *chats = NULL;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
62 GtkWidget *all_chats = NULL;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
63 GtkWidget *chat_notebook = NULL;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
64
2632
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
65 static char *ignored(struct conversation *b, char *who)
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
66 {
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
67 GList *ignore = b->ignored;
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
68
2632
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
69 while (ignore) {
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
70 char *ign = ignore->data;
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
71 if (!g_strcasecmp(who, ign))
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
72 return ign;
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
73 if (*ign == '+' && !g_strcasecmp(who, ign + 1))
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
74 return ign;
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
75 if (*ign == '@') {
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
76 ign++;
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
77 if (*ign == '+' && !g_strcasecmp(who, ign + 1))
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
78 return ign;
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
79 if (*ign != '+' && !g_strcasecmp(who, ign))
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
80 return ign;
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
81 }
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
82 ignore = ignore->next;
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
83 }
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
84 return NULL;
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
85 }
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
86
1806
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
87
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
88 static void destroy_join_chat()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
89 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
90 if (joinchat)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
91 gtk_widget_destroy(joinchat);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
92 joinchat = NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
93 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
94
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
95 static void destroy_invite()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
96 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
97 if (invite)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
98 gtk_widget_destroy(invite);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
99 invite = NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
100 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
101
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
102
1819
b82256590112 [gaim-migrate @ 1829]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1815
diff changeset
103 void do_join_chat()
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
104 {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
105 if (joinchat) {
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
106 GList *data = NULL;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
107 GList *tmp = chatentries;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
108 int *ival;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
109 char *sval;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
110 while (tmp) {
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
111 if (gtk_object_get_user_data(tmp->data)) {
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
112 ival = g_new0(int, 1);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
113 *ival = gtk_spin_button_get_value_as_int(tmp->data);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
114 data = g_list_append(data, ival);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
115 } else {
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
116 sval = g_strdup(gtk_entry_get_text(tmp->data));
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
117 data = g_list_append(data, sval);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
118 }
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
119 tmp = tmp->next;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
120 }
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
121 serv_join_chat(joinchatgc, data);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
122
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
123 tmp = data;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
124 while (tmp) {
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
125 g_free(tmp->data);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
126 tmp = tmp->next;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
127 }
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
128 g_list_free(data);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
129
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
130 gtk_widget_destroy(joinchat);
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
131 if (chatentries)
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
132 g_list_free(chatentries);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
133 chatentries = NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
134 }
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
135 joinchat = NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
136 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
137
1806
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
138 static void rebuild_jc()
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
139 {
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
140 GList *list, *tmp;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
141 struct proto_chat_entry *pce;
2289
0af7cf95a25d [gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2268
diff changeset
142 gboolean focus = TRUE;
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
143
1806
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
144 if (!joinchatgc)
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
145 return;
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
146
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
147 while (GTK_BOX(jc_vbox)->children)
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
148 gtk_container_remove(GTK_CONTAINER(jc_vbox),
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
149 ((GtkBoxChild *)GTK_BOX(jc_vbox)->children->data)->widget);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
150 if (chatentries)
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
151 g_list_free(chatentries);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
152 chatentries = NULL;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
153
2662
9201ea07c91e [gaim-migrate @ 2675]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2634
diff changeset
154 tmp = list = joinchatgc->prpl->chat_info(joinchatgc);
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
155 while (list) {
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
156 GtkWidget *label;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
157 GtkWidget *rowbox;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
158 pce = list->data;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
159
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
160 rowbox = gtk_hbox_new(FALSE, 5);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
161 gtk_box_pack_start(GTK_BOX(jc_vbox), rowbox, TRUE, TRUE, 0);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
162 gtk_widget_show(rowbox);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
163
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
164 label = gtk_label_new(pce->label);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
165 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
166 gtk_widget_show(label);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
167
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
168 if (pce->is_int) {
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
169 GtkObject *adjust;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
170 GtkWidget *spin;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
171 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max, 1, 10, 10);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
172 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
173 gtk_object_set_user_data(GTK_OBJECT(spin), (void *)1);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
174 chatentries = g_list_append(chatentries, spin);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
175 gtk_widget_set_usize(spin, 50, -1);
2346
3c22ab08c67e [gaim-migrate @ 2359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2345
diff changeset
176 gtk_box_pack_end(GTK_BOX(rowbox), spin, FALSE, FALSE, 0);
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
177 gtk_widget_show(spin);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
178 } else {
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
179 GtkWidget *entry;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
180 entry = gtk_entry_new();
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
181 chatentries = g_list_append(chatentries, entry);
2346
3c22ab08c67e [gaim-migrate @ 2359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2345
diff changeset
182 gtk_box_pack_end(GTK_BOX(rowbox), entry, FALSE, FALSE, 0);
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
183 if (pce->def)
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
184 gtk_entry_set_text(GTK_ENTRY(entry), pce->def);
2289
0af7cf95a25d [gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2268
diff changeset
185 if (focus) {
0af7cf95a25d [gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2268
diff changeset
186 gtk_widget_grab_focus(entry);
0af7cf95a25d [gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2268
diff changeset
187 focus = FALSE;
0af7cf95a25d [gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2268
diff changeset
188 }
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
189 gtk_signal_connect(GTK_OBJECT(entry), "activate",
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
190 GTK_SIGNAL_FUNC(do_join_chat), NULL);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
191 gtk_widget_show(entry);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
192 }
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
193
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
194 g_free(pce);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
195 list = list->next;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
196 }
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
197 g_list_free(tmp);
1806
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
198 }
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
199
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
200 static void joinchat_choose(GtkWidget *w, struct gaim_connection *g)
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
201 {
1806
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
202 if (joinchatgc == g)
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
203 return;
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
204 joinchatgc = g;
1806
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
205 rebuild_jc();
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
206 }
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
207
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
208 static void create_joinchat_menu(GtkWidget *box)
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
209 {
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
210 GtkWidget *optmenu;
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
211 GtkWidget *menu;
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
212 GtkWidget *opt;
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
213 GSList *c = connections;
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
214 struct gaim_connection *g;
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1228
diff changeset
215 char buf[2048];
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
216
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
217 optmenu = gtk_option_menu_new();
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
218 gtk_box_pack_start(GTK_BOX(box), optmenu, FALSE, FALSE, 0);
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
219
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
220 menu = gtk_menu_new();
1793
3e018c445885 [gaim-migrate @ 1803]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1780
diff changeset
221 joinchatgc = NULL;
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
222
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
223 while (c) {
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
224 g = (struct gaim_connection *)c->data;
1356
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
225 c = c->next;
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
226 if (!g->prpl->join_chat)
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
227 continue;
1793
3e018c445885 [gaim-migrate @ 1803]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1780
diff changeset
228 if (!joinchatgc)
3e018c445885 [gaim-migrate @ 1803]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1780
diff changeset
229 joinchatgc = g;
3572
d07e14aa6f26 [gaim-migrate @ 3670]
Sean Egan <seanegan@pidgin.im>
parents: 3517
diff changeset
230 g_snprintf(buf, sizeof buf, "%s (%s)", g->username, g->prpl->name);
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1228
diff changeset
231 opt = gtk_menu_item_new_with_label(buf);
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
232 gtk_object_set_user_data(GTK_OBJECT(opt), g);
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
233 gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(joinchat_choose), g);
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
234 gtk_menu_append(GTK_MENU(menu), opt);
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
235 gtk_widget_show(opt);
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
236 }
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
237
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
238 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu);
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
239 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), 0);
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
240 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
241
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
242 void join_chat()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
243 {
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
244 GtkWidget *mainbox;
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
245 GtkWidget *frame;
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
246 GtkWidget *fbox;
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
247 GtkWidget *rowbox;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
248 GtkWidget *bbox;
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
249 GtkWidget *join;
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
250 GtkWidget *cancel;
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
251 GtkWidget *label;
1356
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
252 GSList *c = connections;
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
253 struct gaim_connection *gc = NULL;
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
254
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
255 while (c) {
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
256 gc = c->data;
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
257 if (gc->prpl->join_chat)
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
258 break;
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
259 gc = NULL;
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
260 c = c->next;
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
261 }
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
262 if (gc == NULL) {
1358
a6a2a745bf67 [gaim-migrate @ 1368]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1356
diff changeset
263 do_error_dialog("You are not currently signed on with any protocols that have "
3427
75387df65a9b [gaim-migrate @ 3453]
Sean Egan <seanegan@pidgin.im>
parents: 3367
diff changeset
264 "the ability to chat.", NULL, GAIM_ERROR);
1356
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
265 return;
b67d26ed9b37 [gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1343
diff changeset
266 }
456
0cae8eafffa3 [gaim-migrate @ 466]
Rob Flynn <gaim@robflynn.com>
parents: 449
diff changeset
267
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
268 if (!joinchat) {
2725
a844d0964552 [gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2699
diff changeset
269 GAIM_DIALOG(joinchat);
4074
c69100a0ede9 [gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents: 3986
diff changeset
270 gtk_window_set_role(GTK_WINDOW(joinchat), "joinchat");
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
271 gtk_window_set_policy(GTK_WINDOW(joinchat), FALSE, TRUE, TRUE);
834
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
272 gtk_widget_realize(joinchat);
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
273 gtk_signal_connect(GTK_OBJECT(joinchat), "delete_event",
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
274 GTK_SIGNAL_FUNC(destroy_join_chat), joinchat);
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
275 gtk_window_set_title(GTK_WINDOW(joinchat), _("Join Chat"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
276
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
277 mainbox = gtk_vbox_new(FALSE, 5);
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
278 gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5);
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
279 gtk_container_add(GTK_CONTAINER(joinchat), mainbox);
456
0cae8eafffa3 [gaim-migrate @ 466]
Rob Flynn <gaim@robflynn.com>
parents: 449
diff changeset
280
1211
8805798663a1 [gaim-migrate @ 1221]
Rob Flynn <gaim@robflynn.com>
parents: 1210
diff changeset
281 frame = gtk_frame_new(_("Buddy Chat"));
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
282 gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
283
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
284 fbox = gtk_vbox_new(FALSE, 5);
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
285 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
286 gtk_container_add(GTK_CONTAINER(frame), fbox);
456
0cae8eafffa3 [gaim-migrate @ 466]
Rob Flynn <gaim@robflynn.com>
parents: 449
diff changeset
287
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1018
diff changeset
288 #ifndef NO_MULTI
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
289 rowbox = gtk_hbox_new(FALSE, 5);
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
290 gtk_box_pack_start(GTK_BOX(fbox), rowbox, TRUE, TRUE, 0);
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
291
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
292 label = gtk_label_new(_("Join Chat As:"));
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
293 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
294
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
295 create_joinchat_menu(rowbox);
1806
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
296
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
297 {
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
298 GtkWidget *tmp = fbox;
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
299 fbox = gtk_vbox_new(FALSE, 5);
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
300 gtk_container_add(GTK_CONTAINER(tmp), fbox);
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
301 gtk_container_set_border_width(GTK_CONTAINER(fbox), 0);
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
302 jc_vbox = fbox;
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
303 }
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1018
diff changeset
304 #else
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1018
diff changeset
305 joinchatgc = connections->data;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1018
diff changeset
306 #endif
1806
097882303253 [gaim-migrate @ 1816]
Neil Sanchala <nsanch@gmail.com>
parents: 1793
diff changeset
307 rebuild_jc();
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
308 /* buttons */
692
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
309
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
310 bbox = gtk_hbox_new(FALSE, 5);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
311 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0);
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
312
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
313 cancel = picture_button(joinchat, _("Cancel"), cancel_xpm);
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
314 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0);
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
315 gtk_signal_connect(GTK_OBJECT(cancel), "clicked",
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
316 GTK_SIGNAL_FUNC(destroy_join_chat), joinchat);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
317
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
318 join = picture_button(joinchat, _("Join"), join_xpm);
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
319 gtk_box_pack_end(GTK_BOX(bbox), join, FALSE, FALSE, 0);
1819
b82256590112 [gaim-migrate @ 1829]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1815
diff changeset
320 gtk_signal_connect(GTK_OBJECT(join), "clicked", GTK_SIGNAL_FUNC(do_join_chat), NULL);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
321 }
1210
083b7bf35280 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1201
diff changeset
322 gtk_widget_show_all(joinchat);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
323 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
324
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
325
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
326 static void do_invite(GtkWidget *w, struct conversation *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
327 {
3466
db8d35ad8480 [gaim-migrate @ 3516]
Sean Egan <seanegan@pidgin.im>
parents: 3453
diff changeset
328 const char *buddy;
db8d35ad8480 [gaim-migrate @ 3516]
Sean Egan <seanegan@pidgin.im>
parents: 3453
diff changeset
329 const char *mess;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
330
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
331 if (!b->is_chat) {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
332 debug_printf("do_invite: expecting chat, got IM\n");
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
333 return;
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
334 }
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
335
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
336 buddy = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(inviteentry)->entry));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
337 mess = gtk_entry_get_text(GTK_ENTRY(invitemess));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
338
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
339 if (invite) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
340 serv_chat_invite(b->gc, b->id, mess, buddy);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
341 gtk_widget_destroy(invite);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
342 }
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
343 invite = NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
344 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
345
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
346
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
347 GList *generate_invite_user_names(struct gaim_connection *gc)
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
348 {
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
349 GSList *grp;
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
350 GSList *bl;
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
351 struct group *g;
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
352 struct buddy *buddy;
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
353
2257
fd3ceeea0d8e [gaim-migrate @ 2267]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2256
diff changeset
354 static GList *tmp = NULL;
fd3ceeea0d8e [gaim-migrate @ 2267]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2256
diff changeset
355
fd3ceeea0d8e [gaim-migrate @ 2267]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2256
diff changeset
356 if (tmp)
fd3ceeea0d8e [gaim-migrate @ 2267]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2256
diff changeset
357 g_list_free(tmp);
2268
866399e75706 [gaim-migrate @ 2278]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2257
diff changeset
358 tmp = NULL;
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
359
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
360 tmp = g_list_append(tmp, "");
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
361
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
362 if (gc) {
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
363 grp = gc->groups;
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
364
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
365 while (grp) {
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
366 g = (struct group *)grp->data;
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
367
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
368 bl = g->members;
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
369
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
370 while (bl) {
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
371 buddy = (struct buddy *)bl->data;
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
372
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
373 if (buddy->present)
2257
fd3ceeea0d8e [gaim-migrate @ 2267]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2256
diff changeset
374 tmp = g_list_append(tmp, buddy->name);
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
375
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
376 bl = g_slist_next(bl);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
377 }
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
378
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
379 grp = g_slist_next(grp);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
380 }
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
381 }
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
382
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
383 return tmp;
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
384
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
385 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
386
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
387 void invite_callback(GtkWidget *w, struct conversation *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
388 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
389 GtkWidget *cancel;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
390 GtkWidget *invite_btn;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
391 GtkWidget *label;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
392 GtkWidget *bbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
393 GtkWidget *vbox;
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
394 GtkWidget *table;
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
395 GtkWidget *frame;
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
396
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
397 if (!invite) {
2725
a844d0964552 [gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2699
diff changeset
398 GAIM_DIALOG(invite);
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
399 gtk_widget_realize(invite);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
400
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
401 cancel = picture_button(invite, _("Cancel"), cancel_xpm);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
402 invite_btn = picture_button(invite, _("Invite"), join_xpm);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
403 inviteentry = gtk_combo_new();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
404 invitemess = gtk_entry_new();
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
405 frame = gtk_frame_new(_("Invite"));
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
406 table = gtk_table_new(2, 2, FALSE);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
407
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
408 gtk_table_set_row_spacings(GTK_TABLE(table), 5);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
409 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
410 gtk_container_set_border_width(GTK_CONTAINER(table), 5);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
411
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
412 gtk_container_set_border_width(GTK_CONTAINER(frame), 5);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
413
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
414 /* Now we should fill out all of the names */
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
415 gtk_combo_set_popdown_strings(GTK_COMBO(inviteentry), generate_invite_user_names(b->gc));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
416
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
417 vbox = gtk_vbox_new(FALSE, 0);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
418 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
419 gtk_container_add(GTK_CONTAINER(frame), table);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
420
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
421 label = gtk_label_new(_("Buddy"));
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
422 gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
423 gtk_widget_show(label);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
424 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
425
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
426 label = gtk_label_new(_("Message"));
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
427 gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
428 gtk_widget_show(label);
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
429 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
430
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
431 /* Now the right side of the table */
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
432 gtk_table_attach(GTK_TABLE(table), inviteentry, 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, 0, 0,
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
433 0);
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
434 gtk_table_attach(GTK_TABLE(table), invitemess, 1, 2, 1, 2, GTK_FILL | GTK_EXPAND, 0, 0,
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
435 0);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
436
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
437 /* And now for the button box */
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
438 bbox = gtk_hbox_new(FALSE, 10);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
439 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
440
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
441 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
442 gtk_box_pack_end(GTK_BOX(bbox), invite_btn, FALSE, FALSE, 0);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
443
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
444 /* Handle closes right */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
445 gtk_signal_connect(GTK_OBJECT(invite), "delete_event",
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
446 GTK_SIGNAL_FUNC(destroy_invite), invite);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
447
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
448 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(destroy_invite), b);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
449 gtk_signal_connect(GTK_OBJECT(invite_btn), "clicked", GTK_SIGNAL_FUNC(do_invite), b);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
450 gtk_signal_connect(GTK_OBJECT(GTK_ENTRY(GTK_COMBO(inviteentry)->entry)), "activate",
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
451 GTK_SIGNAL_FUNC(do_invite), b);
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
452
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
453 /* Finish up */
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
454 gtk_widget_set_usize(GTK_WIDGET(invite), 550, 115);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
455 gtk_widget_show(invite_btn);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
456 gtk_widget_show(cancel);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
457 gtk_widget_show(inviteentry);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
458 gtk_widget_show(invitemess);
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
459 gtk_widget_show(vbox);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
460 gtk_widget_show(bbox);
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
461 gtk_widget_show(table);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
462 gtk_widget_show(frame);
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
463 gtk_window_set_title(GTK_WINDOW(invite), _("Gaim - Invite Buddy Into Chat Room"));
2253
49ee3715d1b5 [gaim-migrate @ 2263]
Rob Flynn <gaim@robflynn.com>
parents: 2252
diff changeset
464 gtk_window_set_focus(GTK_WINDOW(invite), GTK_WIDGET(GTK_COMBO(inviteentry)->entry));
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
465 gtk_container_add(GTK_CONTAINER(invite), vbox);
2252
7872fd4fdc9f [gaim-migrate @ 2262]
Rob Flynn <gaim@robflynn.com>
parents: 2208
diff changeset
466
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
467
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
468 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
469 gtk_widget_show(invite);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
470 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
471
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
472 void tab_complete(struct conversation *c)
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
473 {
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
474 GtkTextIter cursor, word_start, start_buffer;
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
475 int start;
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
476 int most_matched = -1;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
477 char *entered, *partial = NULL;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
478 char *text;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
479 GList *matches = NULL;
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
480 GList *nicks = NULL;
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
481
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
482 gtk_text_buffer_get_start_iter(c->entry_buffer, &start_buffer);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
483 gtk_text_buffer_get_iter_at_mark(c->entry_buffer, &cursor,
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
484 gtk_text_buffer_get_insert(c->entry_buffer));
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
485 word_start = cursor;
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
486
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
487 /* if there's nothing there just return */
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
488 if (!gtk_text_iter_compare(&cursor, &start_buffer))
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
489 return;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
490
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
491 text = gtk_text_buffer_get_text(c->entry_buffer, &start_buffer, &cursor, FALSE);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
492
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
493 /* if we're at the end of ": " we need to move back 2 spaces */
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
494 start = strlen(text)-1;
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
495 if (strlen(text)>=2 && !strncmp(&text[start-1], ": ", 2)) {
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
496 gtk_text_iter_backward_chars(&word_start, 2);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
497 }
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
498
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
499 /* find the start of the word that we're tabbing */
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
500 while (start >= 0 && text[start] != ' ') {
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
501 gtk_text_iter_backward_char(&word_start);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
502 start--;
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
503 }
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
504 g_free(text);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
505
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
506 entered = gtk_text_buffer_get_text(c->entry_buffer, &word_start, &cursor, FALSE);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
507 if (chat_options & OPT_CHAT_OLD_STYLE_TAB) {
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
508 if (strlen(entered) >= 2 && !strncmp(": ", entered + strlen(entered) - 2, 2))
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
509 entered[strlen(entered) - 2] = 0;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
510 }
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
511
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
512 if (!strlen(entered)) {
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
513 g_free(entered);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
514 return;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
515 }
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
516
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
517 debug_printf("checking tab-completion for %s\n", entered);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
518
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
519 nicks = c->in_room;
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
520 while (nicks) {
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
521 char *nick = nicks->data;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
522 /* this checks to see if the current nick could be a completion */
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
523 if (g_strncasecmp(nick, entered, strlen(entered))) {
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
524 if (nick[0] != '+' && nick[0] != '@') {
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
525 nicks = nicks->next;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
526 continue;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
527 }
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
528 if (g_strncasecmp(nick + 1, entered, strlen(entered))) {
2386
1b79255087be [gaim-migrate @ 2399]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2385
diff changeset
529 if (nick[0] != '@' || nick[1] != '+') {
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
530 nicks = nicks->next;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
531 continue;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
532 }
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
533 if (g_strncasecmp(nick + 2, entered, strlen(entered))) {
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
534 nicks = nicks->next;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
535 continue;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
536 }
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
537 else
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
538 nick += 2;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
539 } else
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
540 nick++;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
541 }
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
542 /* if we're here, it's a possible completion */
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
543 debug_printf("possible completion: %s\n", nick);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
544
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
545 /* if we're doing old-style, just fill in the completion */
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
546 if (chat_options & OPT_CHAT_OLD_STYLE_TAB) {
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
547 gtk_text_buffer_delete(c->entry_buffer, &word_start, &cursor);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
548 if (strlen(nick) == strlen(entered)) {
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
549 nicks = nicks->next ? nicks->next : c->in_room;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
550 nick = nicks->data;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
551 if (*nick == '@')
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
552 nick++;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
553 if (*nick == '+')
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
554 nick++;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
555 }
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
556
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
557 gtk_text_buffer_get_start_iter(c->entry_buffer, &start_buffer);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
558 gtk_text_buffer_get_iter_at_mark(c->entry_buffer, &cursor,
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
559 gtk_text_buffer_get_insert(c->entry_buffer));
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
560 if (!gtk_text_iter_compare(&cursor, &start_buffer)) {
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
561 char *tmp = g_strdup_printf("%s: ", nick);
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
562 gtk_text_buffer_insert_at_cursor(c->entry_buffer, tmp, -1);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
563 g_free(tmp);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
564 } else {
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
565 gtk_text_buffer_insert_at_cursor(c->entry_buffer, nick, -1);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
566 }
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
567 g_free(entered);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
568 return;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
569 }
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
570
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
571 /* we're only here if we're doing new style */
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
572 if (most_matched == -1) {
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
573 /* this will only get called once, since from now on most_matched is >= 0 */
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
574 most_matched = strlen(nick);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
575 partial = g_strdup(nick);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
576 } else if (most_matched) {
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
577 while (g_strncasecmp(nick, partial, most_matched))
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
578 most_matched--;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
579 partial[most_matched] = 0;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
580 }
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
581 matches = g_list_append(matches, nick);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
582
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
583 nicks = nicks->next;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
584 }
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
585 /* we're only here if we're doing new style */
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
586
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
587 /* if there weren't any matches, return */
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
588 if (!matches) {
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
589 /* if matches isn't set partials won't be either */
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
590 g_free(entered);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
591 return;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
592 }
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
593
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
594 gtk_text_buffer_delete(c->entry_buffer, &word_start, &cursor);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
595 if (!matches->next) {
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
596 /* there was only one match. fill it in. */
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
597 gtk_text_buffer_get_start_iter(c->entry_buffer, &start_buffer);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
598 gtk_text_buffer_get_iter_at_mark(c->entry_buffer, &cursor,
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
599 gtk_text_buffer_get_insert(c->entry_buffer));
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
600 if (!gtk_text_iter_compare(&cursor, &start_buffer)) {
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
601 char *tmp = g_strdup_printf("%s: ", (char *)matches->data);
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
602 gtk_text_buffer_insert_at_cursor(c->entry_buffer, tmp, -1);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
603 g_free(tmp);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
604 } else {
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
605 gtk_text_buffer_insert_at_cursor(c->entry_buffer, matches->data, -1);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
606 }
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
607 matches = g_list_remove(matches, matches->data);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
608 } else {
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
609 /* there were lots of matches, fill in as much as possible and display all of them */
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
610 char *addthis = g_malloc0(1);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
611 while (matches) {
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
612 char *tmp = addthis;
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
613 addthis = g_strconcat(tmp, matches->data, " ", NULL);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
614 g_free(tmp);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
615 matches = g_list_remove(matches, matches->data);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
616 }
2856
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2854
diff changeset
617 write_to_conv(c, addthis, WFLAG_NOLOG, NULL, time(NULL), -1);
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
618 gtk_text_buffer_insert_at_cursor(c->entry_buffer, partial, -1);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
619 g_free(addthis);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
620 }
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
621
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
622 g_free(entered);
2385
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
623 g_free(partial);
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
624 }
883dabd877db [gaim-migrate @ 2398]
Sean Egan <seanegan@pidgin.im>
parents: 2384
diff changeset
625
2856
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2854
diff changeset
626 gboolean meify(char *message, int len)
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
627 {
415
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
628 /* read /me-ify : if the message (post-HTML) starts with /me, remove
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
629 * the "/me " part of it (including that space) and return TRUE */
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
630 char *c = message;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
631 int inside_HTML = 0; /* i really don't like descriptive names */
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
632 if (!c)
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
633 return FALSE; /* um... this would be very bad if this happens */
2856
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2854
diff changeset
634 if (len == -1)
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2854
diff changeset
635 len = strlen(message);
415
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
636 while (*c) {
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
637 if (inside_HTML) {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
638 if (*c == '>')
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
639 inside_HTML = 0;
415
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
640 } else {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
641 if (*c == '<')
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
642 inside_HTML = 1;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
643 else
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
644 break;
415
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
645 }
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
646 c++; /* i really don't like c++ either */
2856
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2854
diff changeset
647 len--;
415
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
648 }
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
649 /* k, so now we've gotten past all the HTML who. */
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
650 if (!*c)
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
651 return FALSE;
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2017
diff changeset
652 if (!g_strncasecmp(c, "/me ", 4)) {
2860
5ccae58f45f0 [gaim-migrate @ 2873]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2856
diff changeset
653 memmove(c, c + 4, len - 3);
415
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
654 return TRUE;
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
655 } else
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
656 return FALSE;
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
657 }
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
658
2374
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
659 static gboolean find_nick(struct gaim_connection *gc, char *message)
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
660 {
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
661 char *msg = g_strdup(message), *who, *p;
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
662 int n;
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
663 g_strdown(msg);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
664
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
665 who = g_strdup(gc->username);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
666 n = strlen(who);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
667 g_strdown(who);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
668
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
669 if ((p = strstr(msg, who)) != NULL) {
2384
c7249c80fbc4 [gaim-migrate @ 2397]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2374
diff changeset
670 if (((p == msg) || !isalnum(*(p - 1))) && !isalnum(*(p + n))) {
2374
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
671 g_free(who);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
672 g_free(msg);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
673 return TRUE;
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
674 }
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
675 }
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
676 g_free(who);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
677
2390
bd1730def780 [gaim-migrate @ 2403]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2386
diff changeset
678 if (!g_strcasecmp(gc->username, gc->displayname)) {
2374
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
679 g_free(msg);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
680 return FALSE;
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
681 }
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
682
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
683 who = g_strdup(gc->displayname);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
684 n = strlen(who);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
685 g_strdown(who);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
686
3944
50e6a77a308d [gaim-migrate @ 4123]
Nathan Walp <nwalp@pidgin.im>
parents: 3922
diff changeset
687 if (n > 0 && (p = strstr(msg, who)) != NULL) {
2384
c7249c80fbc4 [gaim-migrate @ 2397]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2374
diff changeset
688 if (((p == msg) || !isalnum(*(p - 1))) && !isalnum(*(p + n))) {
2374
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
689 g_free(who);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
690 g_free(msg);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
691 return TRUE;
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
692 }
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
693 }
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
694 g_free(who);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
695 g_free(msg);
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
696 return FALSE;
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
697 }
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
698
1764
d8c1affb29fe [gaim-migrate @ 1774]
Rob Flynn <gaim@robflynn.com>
parents: 1757
diff changeset
699 void chat_write(struct conversation *b, char *who, int flag, char *message, time_t mtime)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
700 {
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
701 char *str;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
702
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
703 if (!b->is_chat) {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
704 debug_printf("chat_write: expecting chat, got IM\n");
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
705 return;
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
706 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
707
2632
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
708 if (ignored(b, who))
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
709 return;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
710
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
711 if (!(flag & WFLAG_WHISPER)) {
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
712 str = g_strdup(normalize (who));
2374
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
713 if (!g_strcasecmp(str, normalize(b->gc->username))) {
3060
ec62758f47b3 [gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents: 2956
diff changeset
714 if (b->makesound)
ec62758f47b3 [gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents: 2956
diff changeset
715 play_sound(SND_CHAT_YOU_SAY);
2289
0af7cf95a25d [gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2268
diff changeset
716 flag |= WFLAG_SEND;
2374
5b3ff703c700 [gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
717 } else if (!g_strcasecmp(str, normalize(b->gc->displayname))) {
3060
ec62758f47b3 [gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents: 2956
diff changeset
718 if (b->makesound)
ec62758f47b3 [gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents: 2956
diff changeset
719 play_sound(SND_CHAT_YOU_SAY);
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
720 flag |= WFLAG_SEND;
371
12d85f4efaaa [gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
721 } else {
3224
e00ae29924ec [gaim-migrate @ 3241]
Sean Egan <seanegan@pidgin.im>
parents: 3223
diff changeset
722 flag |= WFLAG_RECV;
3228
30699bcad51e [gaim-migrate @ 3245]
Sean Egan <seanegan@pidgin.im>
parents: 3227
diff changeset
723 if (find_nick(b->gc, message))
3226
911cf5e8bf57 [gaim-migrate @ 3243]
Sean Egan <seanegan@pidgin.im>
parents: 3225
diff changeset
724 flag |= WFLAG_NICK;
371
12d85f4efaaa [gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
725 }
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
726 g_free(str);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
727 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
728
3226
911cf5e8bf57 [gaim-migrate @ 3243]
Sean Egan <seanegan@pidgin.im>
parents: 3225
diff changeset
729 if (flag & WFLAG_RECV && b->makesound) {
3227
a7f54558d0bd [gaim-migrate @ 3244]
Sean Egan <seanegan@pidgin.im>
parents: 3226
diff changeset
730 if (flag & WFLAG_NICK && (sound_options & OPT_SOUND_CHAT_NICK)) {
3219
4e3d3b7595be [gaim-migrate @ 3236]
Sean Egan <seanegan@pidgin.im>
parents: 3217
diff changeset
731 play_sound(SND_CHAT_NICK);
3226
911cf5e8bf57 [gaim-migrate @ 3243]
Sean Egan <seanegan@pidgin.im>
parents: 3225
diff changeset
732 } else {
3224
e00ae29924ec [gaim-migrate @ 3241]
Sean Egan <seanegan@pidgin.im>
parents: 3223
diff changeset
733 play_sound(SND_CHAT_SAY);
3226
911cf5e8bf57 [gaim-migrate @ 3243]
Sean Egan <seanegan@pidgin.im>
parents: 3225
diff changeset
734 }
3217
989f7f0fe2a5 [gaim-migrate @ 3234]
Sean Egan <seanegan@pidgin.im>
parents: 3216
diff changeset
735 }
3367
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3312
diff changeset
736
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3312
diff changeset
737 if (chat_options & OPT_CHAT_COLORIZE)
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3312
diff changeset
738 flag |= WFLAG_COLORIZE;
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3312
diff changeset
739 write_to_conv(b, message, flag, who, mtime, -1);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
740 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
741
1223
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
742 static gint insertname(gconstpointer one, gconstpointer two)
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
743 {
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
744 const char *a = (const char *)one;
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
745 const char *b = (const char *)two;
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
746
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
747 if (*a == '@') {
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
748 if (*b != '@')
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
749 return -1;
3312
2da2e0d7023b [gaim-migrate @ 3330]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3250
diff changeset
750 return (strcasecmp(a + 1, b + 1));
1223
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
751 } else if (*a == '+') {
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
752 if (*b == '@')
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
753 return 1;
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
754 if (*b != '+')
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
755 return -1;
3312
2da2e0d7023b [gaim-migrate @ 3330]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3250
diff changeset
756 return (strcasecmp(a + 1, b + 1));
1223
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
757 } else {
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
758 if (*b == '@' || *b == '+')
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
759 return 1;
3312
2da2e0d7023b [gaim-migrate @ 3330]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3250
diff changeset
760 return strcasecmp(a, b);
1223
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
761 }
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
762 }
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
763
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
764 static void chat_press_im(GtkObject *obj, struct conversation *b)
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
765 {
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
766 struct conversation *c;
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
767
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
768 c = find_conversation(gtk_object_get_user_data(obj));
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
769
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
770 if (c != NULL)
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
771 gdk_window_show(c->window->window);
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
772 else {
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
773 c = new_conversation(gtk_object_get_user_data(obj));
1898
695a31e4452b [gaim-migrate @ 1908]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1860
diff changeset
774 set_convo_gc(c, b->gc);
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
775 }
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
776 }
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
777
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
778 static void chat_press_ign(GtkWidget *obj, struct conversation *b)
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
779 {
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
780 ignore_callback(obj, b);
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
781 }
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
782
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
783 static void chat_press_info(GtkObject *obj, struct conversation *b)
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
784 {
2956
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
785 if (b->gc) {
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
786 /*
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
787 * If there are special needs for getting info on users in
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
788 * buddy chat "rooms"...
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
789 */
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
790 if(b->gc->prpl->get_cb_info != NULL) {
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
791 b->gc->prpl->get_cb_info(b->gc, b->id, gtk_object_get_user_data(obj));
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
792 } else {
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
793 b->gc->prpl->get_info(b->gc, gtk_object_get_user_data(obj));
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
794 }
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
795 }
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
796 }
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
797
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
798
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
799 static void chat_press_away(GtkObject *obj, struct conversation *b)
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
800 {
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
801 if (b->gc) {
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
802 /*
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
803 * May want to expand this to work similarly to chat_press_info?
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
804 */
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
805 if(b->gc->prpl->get_cb_away != NULL) {
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
806 b->gc->prpl->get_cb_away(b->gc, b->id, gtk_object_get_user_data(obj));
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
807 }
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
808 }
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
809 }
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
810
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
811 /* Added by Jonas <jonas@birme.se> */
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
812 static void chat_press_add(GtkObject *obj, struct conversation *c)
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
813 {
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
814 char *name = gtk_object_get_user_data(obj);
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
815 struct buddy *b = find_buddy(c->gc, name);
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
816
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
817 if (b) {
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
818 show_confirm_del(c->gc, name);
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
819 } else if (c->gc)
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
820 show_add_buddy(c->gc, name, NULL, NULL);
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
821
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
822 gtk_widget_grab_focus(c->entry);
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
823 }
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
824 /* End Jonas */
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
825
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
826 static gint right_click_chat(GtkObject *obj, GdkEventButton *event, struct conversation *b)
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
827 {
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
828 GtkTreePath *path;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
829 int x;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
830 int y;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
831 GtkTreeIter iter;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
832 GtkTreeModel *mod;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
833 GtkTreeViewColumn *column;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
834 gchar *who;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
835
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
836
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
837 mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list));
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
838
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
839 gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(b->list), event->x, event->y, &path, &column, &x, &y);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
840
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
841 if (path == NULL)
3841
841b58a84ba9 [gaim-migrate @ 3991]
Lee Roach <phroggster@gmail.com>
parents: 3805
diff changeset
842 return FALSE;
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
843
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
844 gtk_tree_selection_select_path(GTK_TREE_SELECTION(gtk_tree_view_get_selection(GTK_TREE_VIEW(b->list))), path);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
845 gtk_tree_model_get_iter(GTK_TREE_MODEL(mod), &iter, path);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
846 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &who, -1);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
847
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
848 if ((event->button == 1) && (event->type == GDK_2BUTTON_PRESS)) {
2854
45e56f3229ce [gaim-migrate @ 2867]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2845
diff changeset
849 struct conversation *c;
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
850
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
851 if ((c = find_conversation(who)) == NULL)
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
852 c = new_conversation(who);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
853
2854
45e56f3229ce [gaim-migrate @ 2867]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2845
diff changeset
854 set_convo_gc(c, b->gc);
2845
21aae1ba83b9 [gaim-migrate @ 2858]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2843
diff changeset
855 } else if (event->button == 3 && event->type == GDK_BUTTON_PRESS) {
3250
d167cdaf91f4 [gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3228
diff changeset
856 static GtkWidget *menu = NULL;
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
857 GtkWidget *button;
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
858
3250
d167cdaf91f4 [gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3228
diff changeset
859 /*
d167cdaf91f4 [gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3228
diff changeset
860 * If a menu already exists, destroy it before creating a new one,
d167cdaf91f4 [gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3228
diff changeset
861 * thus freeing-up the memory it occupied.
d167cdaf91f4 [gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3228
diff changeset
862 */
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
863
3250
d167cdaf91f4 [gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3228
diff changeset
864 if(menu)
d167cdaf91f4 [gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3228
diff changeset
865 gtk_widget_destroy(menu);
d167cdaf91f4 [gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3228
diff changeset
866
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
867 menu = gtk_menu_new();
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
868
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
869 button = gtk_menu_item_new_with_label(_("IM"));
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
870 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(chat_press_im), b);
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
871 gtk_object_set_user_data(GTK_OBJECT(button), who);
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
872 gtk_menu_append(GTK_MENU(menu), button);
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
873 gtk_widget_show(button);
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
874
2632
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
875 if (ignored(b, gtk_object_get_user_data(obj)))
2350
94cc09f218c0 [gaim-migrate @ 2363]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2346
diff changeset
876 button = gtk_menu_item_new_with_label(_("Un-Ignore"));
94cc09f218c0 [gaim-migrate @ 2363]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2346
diff changeset
877 else
94cc09f218c0 [gaim-migrate @ 2363]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2346
diff changeset
878 button = gtk_menu_item_new_with_label(_("Ignore"));
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
879
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
880 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(chat_press_ign), b);
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
881 gtk_object_set_user_data(GTK_OBJECT(button), who);
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
882 gtk_menu_append(GTK_MENU(menu), button);
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
883 gtk_widget_show(button);
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
884
2208
bbb5b9d987c1 [gaim-migrate @ 2218]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2205
diff changeset
885 if (b->gc && b->gc->prpl->get_info) {
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
886 button = gtk_menu_item_new_with_label(_("Info"));
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
887 gtk_signal_connect(GTK_OBJECT(button), "activate",
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
888 GTK_SIGNAL_FUNC(chat_press_info), b);
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
889 gtk_object_set_user_data(GTK_OBJECT(button), who);
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
890 gtk_menu_append(GTK_MENU(menu), button);
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
891 gtk_widget_show(button);
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
892 }
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
893
2956
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
894 if (b->gc && b->gc->prpl->get_cb_away) {
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
895 button = gtk_menu_item_new_with_label(_("Get Away Msg"));
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
896 gtk_signal_connect(GTK_OBJECT(button), "activate",
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
897 GTK_SIGNAL_FUNC(chat_press_away), b);
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
898 gtk_object_set_user_data(GTK_OBJECT(button), who);
2956
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
899 gtk_menu_append(GTK_MENU(menu), button);
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
900 gtk_widget_show(button);
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
901 }
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
902
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
903 /* Added by Jonas <jonas@birme.se> */
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
904 if (b->gc) {
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
905 if (find_buddy(b->gc, who))
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
906 button = gtk_menu_item_new_with_label(_("Remove"));
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
907 else
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
908 button = gtk_menu_item_new_with_label(_("Add"));
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
909 gtk_signal_connect(GTK_OBJECT(button), "activate",
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
910 GTK_SIGNAL_FUNC(chat_press_add), b);
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
911 gtk_object_set_user_data(GTK_OBJECT(button),
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
912 who);
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
913 gtk_menu_append(GTK_MENU(menu), button);
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
914 gtk_widget_show(button);
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
915 }
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
916 /* End Jonas */
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
917
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
918 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time);
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
919
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
920 return TRUE;
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
921 }
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
922
1398
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
923 return TRUE;
f1baeeb78bb1 [gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1390
diff changeset
924 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
925
2956
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
926 /*
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
927 * Common code for adding a chat buddy to the list
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
928 */
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
929 static void add_chat_buddy_common(struct conversation *b, char *name, int pos)
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
930 {
3841
841b58a84ba9 [gaim-migrate @ 3991]
Lee Roach <phroggster@gmail.com>
parents: 3805
diff changeset
931 GtkTreeIter iter;
841b58a84ba9 [gaim-migrate @ 3991]
Lee Roach <phroggster@gmail.com>
parents: 3805
diff changeset
932 GtkListStore *ls;
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
933
2956
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
934
3841
841b58a84ba9 [gaim-migrate @ 3991]
Lee Roach <phroggster@gmail.com>
parents: 3805
diff changeset
935 ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(b->list)));
2956
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
936
3841
841b58a84ba9 [gaim-migrate @ 3991]
Lee Roach <phroggster@gmail.com>
parents: 3805
diff changeset
937 gtk_list_store_append(ls, &iter);
841b58a84ba9 [gaim-migrate @ 3991]
Lee Roach <phroggster@gmail.com>
parents: 3805
diff changeset
938 gtk_list_store_set(ls, &iter, 0, ignored(b, name) ? "X" : " ", 1, name, -1);
841b58a84ba9 [gaim-migrate @ 3991]
Lee Roach <phroggster@gmail.com>
parents: 3805
diff changeset
939 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), 1, GTK_SORT_ASCENDING);
2956
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
940 }
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
941
3708
20ba51ab2c7f [gaim-migrate @ 3841]
Jonas Birme <jonas.birme@fro.se>
parents: 3695
diff changeset
942 void add_chat_buddy(struct conversation *b, char *buddy, char *extra_msg)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
943 {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
944 char *name = g_strdup(buddy);
612
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
945 char tmp[BUF_LONG];
1223
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
946 int pos;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
947
3517
ef03be2348a5 [gaim-migrate @ 3590]
Sean Egan <seanegan@pidgin.im>
parents: 3474
diff changeset
948 plugin_event(event_chat_buddy_join, b->gc, b->id, name);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
949 b->in_room = g_list_insert_sorted(b->in_room, name, insertname);
1223
dd7afcf8f2e1 [gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1211
diff changeset
950 pos = g_list_index(b->in_room, name);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
951
2956
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
952 add_chat_buddy_common(b, name, pos);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
953
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
954 g_snprintf(tmp, sizeof(tmp), _("%d %s in room"), g_list_length(b->in_room),
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
955 g_list_length(b->in_room) == 1 ? "person" : "people");
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
956 gtk_label_set_text(GTK_LABEL(b->count), tmp);
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
957
3060
ec62758f47b3 [gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents: 2956
diff changeset
958 if (b->makesound)
ec62758f47b3 [gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents: 2956
diff changeset
959 play_sound(SND_CHAT_JOIN);
612
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
960
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2289
diff changeset
961 if (chat_options & OPT_CHAT_LOGON) {
3708
20ba51ab2c7f [gaim-migrate @ 3841]
Jonas Birme <jonas.birme@fro.se>
parents: 3695
diff changeset
962 if (!extra_msg)
20ba51ab2c7f [gaim-migrate @ 3841]
Jonas Birme <jonas.birme@fro.se>
parents: 3695
diff changeset
963 g_snprintf(tmp, sizeof(tmp), _("%s entered the room."), name);
20ba51ab2c7f [gaim-migrate @ 3841]
Jonas Birme <jonas.birme@fro.se>
parents: 3695
diff changeset
964 else
20ba51ab2c7f [gaim-migrate @ 3841]
Jonas Birme <jonas.birme@fro.se>
parents: 3695
diff changeset
965 g_snprintf(tmp, sizeof(tmp), _("%s [<I>%s</I>] entered the room."), name,
20ba51ab2c7f [gaim-migrate @ 3841]
Jonas Birme <jonas.birme@fro.se>
parents: 3695
diff changeset
966 extra_msg);
2856
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2854
diff changeset
967 write_to_conv(b, tmp, WFLAG_SYSTEM, NULL, time(NULL), -1);
612
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
968 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
969 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
970
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
971
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
972 void rename_chat_buddy(struct conversation *b, char *old, char *new)
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
973 {
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
974 GList *names = b->in_room;
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
975 char *name = g_strdup(new);
2632
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
976 char *ign;
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
977 int pos;
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
978 char tmp[BUF_LONG];
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
979 GtkTreeIter iter;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
980 GtkTreeModel *mod;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
981 int f = 1;
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
982
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
983 while (names) {
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2017
diff changeset
984 if (!g_strcasecmp((char *)names->data, old)) {
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
985 char *tmp2 = names->data;
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
986 b->in_room = g_list_remove(b->in_room, names->data);
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
987
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
988 mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list));
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
989
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
990 if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mod), &iter))
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
991 break;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
992
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
993 while (f != 0) {
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
994 gchar *val;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
995
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
996 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &val, -1);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
997
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
998
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
999 if (!g_strcasecmp(old, val))
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1000 gtk_list_store_remove(GTK_LIST_STORE(mod), &iter);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1001
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1002 f = gtk_tree_model_iter_next(GTK_TREE_MODEL(mod), &iter);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1003
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1004 g_free(val);
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1005 }
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1006
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1007 g_free(tmp2);
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1008 break;
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1009 }
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1010 names = names->next;
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1011 }
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1012
2630
37e6e85c321d [gaim-migrate @ 2643]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2625
diff changeset
1013 if (!names) {
37e6e85c321d [gaim-migrate @ 2643]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2625
diff changeset
1014 g_free(name);
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1015 return;
2630
37e6e85c321d [gaim-migrate @ 2643]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2625
diff changeset
1016 }
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1017
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1018 b->in_room = g_list_insert_sorted(b->in_room, name, insertname);
1505
adc57f107914 [gaim-migrate @ 1515]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1504
diff changeset
1019 pos = g_list_index(b->in_room, name);
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1020
2632
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1021 ign = ignored(b, old);
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1022
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1023 if (ign) {
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1024 g_free(ign);
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1025 b->ignored = g_list_remove(b->ignored, ign);
2631
d6b85863554c [gaim-migrate @ 2644]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2630
diff changeset
1026
2632
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1027 /* we haven't added them yet. if we find them, don't add them again */
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1028 if (!ignored(b, new))
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1029 b->ignored = g_list_append(b->ignored, g_strdup(name));
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1030
2634
3b16305c023b [gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2632
diff changeset
1031 } else {
3b16305c023b [gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2632
diff changeset
1032 if ((ign = ignored(b, new)) != NULL) {
3b16305c023b [gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2632
diff changeset
1033 /* if they weren't ignored and change to someone who is ignored,
3b16305c023b [gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2632
diff changeset
1034 * assume it's someone else. that may seem a little backwards but
3b16305c023b [gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2632
diff changeset
1035 * it's better when it *is* actually someone else. Sorry Sean. */
3b16305c023b [gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2632
diff changeset
1036 g_free(ign);
3b16305c023b [gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2632
diff changeset
1037 b->ignored = g_list_remove(b->ignored, ign);
3b16305c023b [gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2632
diff changeset
1038 }
3b16305c023b [gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2632
diff changeset
1039 }
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1040
2956
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
1041 add_chat_buddy_common(b, name, pos);
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1042
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2289
diff changeset
1043 if (chat_options & OPT_CHAT_LOGON) {
1735
4f5f223fca01 [gaim-migrate @ 1745]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1732
diff changeset
1044 g_snprintf(tmp, sizeof(tmp), _("%s is now known as %s"), old, new);
2856
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2854
diff changeset
1045 write_to_conv(b, tmp, WFLAG_SYSTEM, NULL, time(NULL), -1);
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1046 }
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1047 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1048
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1049
2820
4e07191ca3d0 [gaim-migrate @ 2833]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2725
diff changeset
1050 void remove_chat_buddy(struct conversation *b, char *buddy, char *reason)
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1051 {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1052 GList *names = b->in_room;
612
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
1053 char tmp[BUF_LONG];
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1054 GtkTreeIter iter;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1055 GtkTreeModel *mod;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1056 int f = 1;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1057
3517
ef03be2348a5 [gaim-migrate @ 3590]
Sean Egan <seanegan@pidgin.im>
parents: 3474
diff changeset
1058 plugin_event(event_chat_buddy_leave, b->gc, b->id, buddy);
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
1059
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1060 while (names) {
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2017
diff changeset
1061 if (!g_strcasecmp((char *)names->data, buddy)) {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1062 b->in_room = g_list_remove(b->in_room, names->data);
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1063
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1064 mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list));
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1065
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1066 if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mod), &iter))
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1067 break;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1068
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1069 while (f != 0) {
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1070 gchar *val;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1071
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1072 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &val, -1);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1073
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1074
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1075 if (!g_strcasecmp(buddy, val))
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1076 gtk_list_store_remove(GTK_LIST_STORE(mod), &iter);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1077
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1078 f = gtk_tree_model_iter_next(GTK_TREE_MODEL(mod), &iter);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1079
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1080 g_free(val);
1053
e73b159a9047 [gaim-migrate @ 1063]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
1081 }
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1082
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1083 break;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1084 }
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1085
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1086 names = names->next;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1087 }
371
12d85f4efaaa [gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
1088
1504
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1089 if (!names)
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1090 return;
120bbdf576cd [gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
1091
2631
d6b85863554c [gaim-migrate @ 2644]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2630
diff changeset
1092 /* don't remove them from ignored in case they re-enter */
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1093 g_snprintf(tmp, sizeof(tmp), _("%d %s in room"), g_list_length(b->in_room),
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1094 g_list_length(b->in_room) == 1 ? "person" : "people");
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1095 gtk_label_set_text(GTK_LABEL(b->count), tmp);
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1096
3060
ec62758f47b3 [gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents: 2956
diff changeset
1097 if (b->makesound)
ec62758f47b3 [gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents: 2956
diff changeset
1098 play_sound(SND_CHAT_LEAVE);
612
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
1099
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2289
diff changeset
1100 if (chat_options & OPT_CHAT_LOGON) {
2820
4e07191ca3d0 [gaim-migrate @ 2833]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2725
diff changeset
1101 if (reason && *reason)
4e07191ca3d0 [gaim-migrate @ 2833]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2725
diff changeset
1102 g_snprintf(tmp, sizeof(tmp), _("%s left the room (%s)."), buddy, reason);
4e07191ca3d0 [gaim-migrate @ 2833]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2725
diff changeset
1103 else
4e07191ca3d0 [gaim-migrate @ 2833]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2725
diff changeset
1104 g_snprintf(tmp, sizeof(tmp), _("%s left the room."), buddy);
2856
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2854
diff changeset
1105 write_to_conv(b, tmp, WFLAG_SYSTEM, NULL, time(NULL), -1);
612
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
1106 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1107 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1108
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1109
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
1110 void im_callback(GtkWidget *w, struct conversation *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1111 {
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1112 gchar *name;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1113 struct conversation *c;
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1114 GtkTreeIter iter;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1115 GtkTreeModel *mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list));
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1116 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(b->list));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1117
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1118 if (gtk_tree_selection_get_selected(sel, NULL, &iter)) {
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1119 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &name, -1);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1120 } else {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1121 return;
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1122 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1123
2663
f00c8e7d369e [gaim-migrate @ 2676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2662
diff changeset
1124 if (*name == '@')
f00c8e7d369e [gaim-migrate @ 2676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2662
diff changeset
1125 name++;
f00c8e7d369e [gaim-migrate @ 2676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2662
diff changeset
1126 if (*name == '+')
f00c8e7d369e [gaim-migrate @ 2676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2662
diff changeset
1127 name++;
f00c8e7d369e [gaim-migrate @ 2676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2662
diff changeset
1128
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1129 c = find_conversation(name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1130
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1131 if (c != NULL) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1132 gdk_window_raise(c->window->window);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1133 } else {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1134 c = new_conversation(name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1135 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1136
2391
131e391dad57 [gaim-migrate @ 2404]
Arkadiusz Miskiewicz <arekm@maven.pl>
parents: 2390
diff changeset
1137 set_convo_gc(c, b->gc);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1138 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1139
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
1140 void ignore_callback(GtkWidget *w, struct conversation *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1141 {
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1142 GtkTreeIter iter;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1143 GtkTreeModel *mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list));
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1144 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(b->list));
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1145 char *name;
2632
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1146 char *ign;
1053
e73b159a9047 [gaim-migrate @ 1063]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
1147 int pos;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1148
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1149 if (gtk_tree_selection_get_selected(sel, NULL, &iter)) {
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1150 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &name, -1);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1151 gtk_list_store_remove(GTK_LIST_STORE(mod), &iter);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1152 } else {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1153 return;
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1154 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1155
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1156 pos = g_list_index(b->in_room, name);
1053
e73b159a9047 [gaim-migrate @ 1063]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
1157
2632
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1158 ign = ignored(b, name);
1303
04847adbeb72 [gaim-migrate @ 1313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1159
2632
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1160 if (ign) {
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1161 g_free(ign);
2c51c8289c56 [gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2631
diff changeset
1162 b->ignored = g_list_remove(b->ignored, ign);
1303
04847adbeb72 [gaim-migrate @ 1313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1163 } else {
04847adbeb72 [gaim-migrate @ 1313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1164 b->ignored = g_list_append(b->ignored, g_strdup(name));
1053
e73b159a9047 [gaim-migrate @ 1063]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
1165 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1166
2956
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
1167 add_chat_buddy_common(b, name, pos);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1168 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1169
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
1170 void show_new_buddy_chat(struct conversation *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1171 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1172 GtkWidget *win;
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1173 GtkWidget *cont;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1174 GtkWidget *text;
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1175 /*GtkWidget *close;*/
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1176 GtkWidget *frame;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1177 GtkWidget *chatentry;
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1178 GtkWidget *lbox;
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1179 GtkWidget *bbox;
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1180 GtkWidget *bbox2;
3716
172593593072 [gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents: 3708
diff changeset
1181 GtkWidget *button;
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1182 GtkWidget *sw;
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1183 GtkWidget *sw2;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1184 GtkWidget *vbox;
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
1185 GtkWidget *vpaned;
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
1186 GtkWidget *hpaned;
344
6dacf96cc000 [gaim-migrate @ 354]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 338
diff changeset
1187 GtkWidget *toolbar;
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1188 GtkWidget *sep;
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1189 GtkListStore *ls;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1190 GtkWidget *list;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1191 GtkCellRenderer *rend;
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1192 GtkTreeViewColumn *col;
3866
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3841
diff changeset
1193 GtkWidget *tabby;
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1194
1380
6a1dfed47a63 [gaim-migrate @ 1390]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1358
diff changeset
1195 char buf[BUF_LONG];
844
1f9956df0673 [gaim-migrate @ 854]
Rob Flynn <gaim@robflynn.com>
parents: 834
diff changeset
1196
4091
e581b2bace1c [gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents: 4090
diff changeset
1197 int dispstyle = set_dispstyle(1);
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1198
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2289
diff changeset
1199 if (chat_options & OPT_CHAT_ONE_WINDOW) {
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1200 if (!all_chats) {
3683
464d1b6614d5 [gaim-migrate @ 3813]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1201 GtkWidget *testidea;
464d1b6614d5 [gaim-migrate @ 3813]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1202
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1203 win = all_chats = b->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
2843
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1204 if ((convo_options & OPT_CONVO_COMBINE) && (im_options & OPT_IM_ONE_WINDOW))
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1205 all_convos = all_chats;
4074
c69100a0ede9 [gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents: 3986
diff changeset
1206 gtk_window_set_role(GTK_WINDOW(win), "buddy_chat");
2880
149ac50ab295 [gaim-migrate @ 2893]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2860
diff changeset
1207 gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, FALSE);
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1208 gtk_container_border_width(GTK_CONTAINER(win), 0);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1209 gtk_widget_realize(win);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1210 gtk_window_set_title(GTK_WINDOW(win), _("Gaim - Group Chats"));
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1211 gtk_signal_connect(GTK_OBJECT(win), "delete_event",
2843
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1212 GTK_SIGNAL_FUNC(delete_all_convo), NULL);
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1213
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1214 chat_notebook = gtk_notebook_new();
2843
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1215 if ((convo_options & OPT_CONVO_COMBINE) && (im_options & OPT_IM_ONE_WINDOW))
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1216 convo_notebook = chat_notebook;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2289
diff changeset
1217 if (chat_options & OPT_CHAT_SIDE_TAB) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2289
diff changeset
1218 if (chat_options & OPT_CHAT_BR_TAB) {
1757
8c57846a4691 [gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
1219 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook),
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1220 GTK_POS_RIGHT);
1757
8c57846a4691 [gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
1221 } else {
8c57846a4691 [gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
1222 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook),
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1223 GTK_POS_LEFT);
1757
8c57846a4691 [gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
1224 }
8c57846a4691 [gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
1225 } else {
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2289
diff changeset
1226 if (chat_options & OPT_CHAT_BR_TAB) {
1757
8c57846a4691 [gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
1227 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook),
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1228 GTK_POS_BOTTOM);
1757
8c57846a4691 [gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
1229 } else {
8c57846a4691 [gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
1230 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook),
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1231 GTK_POS_TOP);
1757
8c57846a4691 [gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
1232 }
8c57846a4691 [gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
1233 }
3683
464d1b6614d5 [gaim-migrate @ 3813]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1234
464d1b6614d5 [gaim-migrate @ 3813]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1235 testidea = gtk_vbox_new(FALSE, 0);
464d1b6614d5 [gaim-migrate @ 3813]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1236 gtk_box_pack_start(GTK_BOX(testidea), chat_notebook, TRUE, TRUE, 0);
464d1b6614d5 [gaim-migrate @ 3813]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1237 gtk_widget_show(testidea);
464d1b6614d5 [gaim-migrate @ 3813]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1238
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1239 gtk_notebook_set_scrollable(GTK_NOTEBOOK(chat_notebook), TRUE);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1240 gtk_notebook_popup_enable(GTK_NOTEBOOK(chat_notebook));
3683
464d1b6614d5 [gaim-migrate @ 3813]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1241 gtk_container_add(GTK_CONTAINER(win), testidea);
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1242 gtk_signal_connect(GTK_OBJECT(chat_notebook), "switch-page",
2843
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1243 GTK_SIGNAL_FUNC(convo_switch), NULL);
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1244 gtk_widget_show(chat_notebook);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1245 } else
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1246 win = b->window = all_chats;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1247
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1248 cont = gtk_vbox_new(FALSE, 5);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1249 gtk_container_set_border_width(GTK_CONTAINER(cont), 5);
3866
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3841
diff changeset
1250
3986
4f8cb0199cd7 [gaim-migrate @ 4177]
Christian Hammond <chipx86@chipx86.com>
parents: 3985
diff changeset
1251 tabby = gtk_hbox_new(FALSE, 5);
3866
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3841
diff changeset
1252 b->close = gtk_button_new();
3985
2c3fe8e4c552 [gaim-migrate @ 4176]
Etan Reisner <deryni@pidgin.im>
parents: 3944
diff changeset
1253 gtk_widget_set_size_request(GTK_WIDGET(b->close), 16, 16);
3866
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3841
diff changeset
1254 gtk_container_add(GTK_CONTAINER(b->close), gtk_image_new_from_stock(GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU));
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3841
diff changeset
1255 gtk_button_set_relief(GTK_BUTTON(b->close), GTK_RELIEF_NONE);
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3841
diff changeset
1256 b->tab_label = gtk_label_new(b->name);
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3841
diff changeset
1257
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3841
diff changeset
1258 gtk_signal_connect(GTK_OBJECT(b->close), "clicked", GTK_SIGNAL_FUNC(close_callback), b);
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3841
diff changeset
1259
3871
8e7d4dc1dfd9 [gaim-migrate @ 4023]
Rob Flynn <gaim@robflynn.com>
parents: 3866
diff changeset
1260 gtk_box_pack_start(GTK_BOX(tabby), b->tab_label, FALSE, FALSE, 0);
3866
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3841
diff changeset
1261 gtk_box_pack_start(GTK_BOX(tabby), b->close, FALSE, FALSE, 0);
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3841
diff changeset
1262 gtk_widget_show_all(tabby);
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3841
diff changeset
1263 gtk_notebook_append_page(GTK_NOTEBOOK(chat_notebook), cont, tabby);
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1264 gtk_widget_show(cont);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1265 } else {
1920
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1266 win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1267 b->window = win;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1268 gtk_object_set_user_data(GTK_OBJECT(win), b);
4074
c69100a0ede9 [gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents: 3986
diff changeset
1269 gtk_window_set_role(GTK_WINDOW(win), "buddy_chat");
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1270 gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1271 gtk_container_border_width(GTK_CONTAINER(win), 10);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1272 gtk_widget_realize(win);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1273 g_snprintf(buf, sizeof(buf), "Gaim - %s (chat)", b->name);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1274 gtk_window_set_title(GTK_WINDOW(win), buf);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1275 gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(close_callback), b);
1920
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1276
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1277 cont = gtk_vbox_new(FALSE, 5);
1920
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1278 gtk_container_add(GTK_CONTAINER(win), cont);
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1279 gtk_widget_show(cont);
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1280 }
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1281
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1282 if (b->gc->prpl->options & OPT_PROTO_CHAT_TOPIC) {
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1283 GtkWidget *hbox;
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1284 GtkWidget *label;
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1285
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1286 hbox = gtk_hbox_new(FALSE, 0);
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1287 gtk_box_pack_start(GTK_BOX(cont), hbox, FALSE, FALSE, 5);
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1288 gtk_widget_show(hbox);
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1289
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1290 label = gtk_label_new(_("Topic:"));
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1291 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1292 gtk_widget_show(label);
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1293
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1294 b->topic_text = gtk_entry_new();
2289
0af7cf95a25d [gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2268
diff changeset
1295 gtk_entry_set_editable(GTK_ENTRY(b->topic_text), FALSE);
1920
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1296 gtk_box_pack_start(GTK_BOX(hbox), b->topic_text, TRUE, TRUE, 5);
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1297 gtk_widget_show(b->topic_text);
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1298 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1299
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
1300 vpaned = gtk_vpaned_new();
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1301 gtk_paned_set_gutter_size(GTK_PANED(vpaned), 15);
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1302 gtk_container_add(GTK_CONTAINER(cont), vpaned);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1303 gtk_widget_show(vpaned);
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
1304
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1305 hpaned = gtk_hpaned_new();
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1306 gtk_paned_set_gutter_size(GTK_PANED(hpaned), 15);
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1307 gtk_paned_pack1(GTK_PANED(vpaned), hpaned, TRUE, FALSE);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1308 gtk_widget_show(hpaned);
26
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 21
diff changeset
1309
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1310 sw = gtk_scrolled_window_new(NULL, NULL);
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1311 b->sw = sw;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1312 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1313 gtk_paned_pack1(GTK_PANED(hpaned), sw, TRUE, TRUE);
1813
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1807
diff changeset
1314 gtk_widget_set_usize(sw, buddy_chat_size.width, buddy_chat_size.height);
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1315 gtk_widget_show(sw);
834
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1316
1428
c14bab2b74bb [gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1398
diff changeset
1317 text = gtk_imhtml_new(NULL, NULL);
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1318 b->text = text;
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1319 gtk_container_add(GTK_CONTAINER(sw), text);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2289
diff changeset
1320 if (convo_options & OPT_CONVO_SHOW_TIME)
1428
c14bab2b74bb [gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1398
diff changeset
1321 gtk_imhtml_show_comments(GTK_IMHTML(text), TRUE);
1815
e2b090284b19 [gaim-migrate @ 1825]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1813
diff changeset
1322 gaim_setup_imhtml(text);
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1323 gtk_widget_show(text);
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1324
1228
632838648f4a [gaim-migrate @ 1238]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1227
diff changeset
1325 lbox = gtk_vbox_new(FALSE, 5);
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1326 gtk_paned_pack2(GTK_PANED(hpaned), lbox, TRUE, TRUE);
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1327 gtk_widget_show(lbox);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1328
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1329 b->count = gtk_label_new(_("0 people in room"));
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1330 gtk_box_pack_start(GTK_BOX(lbox), b->count, FALSE, FALSE, 0);
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1331 gtk_widget_show(b->count);
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1332
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1333 sw2 = gtk_scrolled_window_new(NULL, NULL);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1334 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1335 gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0);
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1336 gtk_widget_show(sw2);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1337
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1338 ls = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1339 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), 1, GTK_SORT_ASCENDING);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1340 list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(ls));
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1341
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1342 rend = gtk_cell_renderer_text_new();
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1343 col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 0, NULL);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1344 gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1345 gtk_signal_connect(GTK_OBJECT(list), "button_press_event",
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1346 GTK_SIGNAL_FUNC(right_click_chat), b);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1347 gtk_tree_view_append_column(GTK_TREE_VIEW(list), col);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1348
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1349 col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 1, NULL);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1350 gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1351 gtk_signal_connect(GTK_OBJECT(list), "button_press_event",
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1352 GTK_SIGNAL_FUNC(right_click_chat), b);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1353 gtk_tree_view_append_column(GTK_TREE_VIEW(list), col);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1354
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1355 gtk_widget_set_usize(list, 150, -1);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1356
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1357 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(list), FALSE);
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1358 gtk_widget_show(list);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1359 b->list = list;
3762
9f4acb0dccb4 [gaim-migrate @ 3901]
Rob Flynn <gaim@robflynn.com>
parents: 3716
diff changeset
1360
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1361 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), list);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1362
1228
632838648f4a [gaim-migrate @ 1238]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1227
diff changeset
1363 bbox2 = gtk_hbox_new(TRUE, 5);
632838648f4a [gaim-migrate @ 1238]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1227
diff changeset
1364 gtk_box_pack_start(GTK_BOX(lbox), bbox2, FALSE, FALSE, 0);
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1365 gtk_widget_show(bbox2);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1366
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1367 button = gaim_pixbuf_button_from_stock(NULL, "gtk-redo", GAIM_BUTTON_VERTICAL);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1368 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1369 gtk_box_pack_start(GTK_BOX(bbox2), button, FALSE, FALSE, 0);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1370 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(im_callback), b);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1371 gtk_widget_show(button);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1372
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1373 button = gaim_pixbuf_button_from_stock(NULL, "gtk-dialog-error", GAIM_BUTTON_VERTICAL);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1374 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1375 gtk_box_pack_start(GTK_BOX(bbox2), button, FALSE, FALSE, 0);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1376 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(ignore_callback), b);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1377 gtk_widget_show(button);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1378
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1379 button = gaim_pixbuf_button_from_stock(NULL, "gtk-find", GAIM_BUTTON_VERTICAL);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1380 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1381 gtk_box_pack_start(GTK_BOX(bbox2), button, FALSE, FALSE, 0);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1382 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(info_callback), b);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1383 gtk_widget_show(button);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1384 b->info = button;
844
1f9956df0673 [gaim-migrate @ 854]
Rob Flynn <gaim@robflynn.com>
parents: 834
diff changeset
1385
1228
632838648f4a [gaim-migrate @ 1238]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1227
diff changeset
1386 vbox = gtk_vbox_new(FALSE, 5);
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1387 gtk_paned_pack2(GTK_PANED(vpaned), vbox, TRUE, FALSE);
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1388 gtk_widget_show(vbox);
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1389
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1390 toolbar = build_conv_toolbar(b);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1391 gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1392
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1393 frame = gtk_frame_new(NULL);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1394 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1395 gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(frame), TRUE, TRUE, 0);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1396 gtk_widget_show(frame);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1397
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1398 b->entry_buffer = gtk_text_buffer_new(NULL);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1399 g_object_set_data(G_OBJECT(b->entry_buffer), "user_data", b);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1400 chatentry = gtk_text_view_new_with_buffer(b->entry_buffer);
1227
d707ce201f4a [gaim-migrate @ 1237]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1223
diff changeset
1401 b->entry = chatentry;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2289
diff changeset
1402 if (!(chat_options & OPT_CHAT_ONE_WINDOW))
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1403 gtk_window_set_focus(GTK_WINDOW(b->window), b->entry);
1227
d707ce201f4a [gaim-migrate @ 1237]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1223
diff changeset
1404
3695
6642498476bd [gaim-migrate @ 3825]
Rob Flynn <gaim@robflynn.com>
parents: 3689
diff changeset
1405
6642498476bd [gaim-migrate @ 3825]
Rob Flynn <gaim@robflynn.com>
parents: 3689
diff changeset
1406 b->makesound = 1; /* Need to do this until we get a menu */
6642498476bd [gaim-migrate @ 3825]
Rob Flynn <gaim@robflynn.com>
parents: 3689
diff changeset
1407
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1408 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(b->entry), GTK_WRAP_WORD);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1409 g_signal_connect(G_OBJECT(b->entry), "key_press_event", G_CALLBACK(keypress_callback), b);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1410 g_signal_connect_after(G_OBJECT(b->entry), "button_press_event",
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1411 G_CALLBACK(stop_rclick_callback), NULL);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1412 g_signal_connect_swapped(G_OBJECT(chatentry), "key_press_event",
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1413 G_CALLBACK(entry_key_pressed), chatentry);
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3763
diff changeset
1414 gtk_container_add(GTK_CONTAINER(frame), GTK_WIDGET(chatentry));
2899
311232d44e03 [gaim-migrate @ 2912]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2880
diff changeset
1415 gtk_widget_set_usize(chatentry, buddy_chat_size.width, MAX(buddy_chat_size.entry_height, 25));
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1416 gtk_window_set_focus(GTK_WINDOW(win), chatentry);
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1417 gtk_widget_show(chatentry);
3802
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3790
diff changeset
1418 #ifdef USE_GTKSPELL
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3790
diff changeset
1419 if (convo_options & OPT_CONVO_CHECK_SPELLING)
3805
8b26d693765d [gaim-migrate @ 3948]
dindinx
parents: 3802
diff changeset
1420 gtkspell_attach(GTK_TEXT_VIEW(chatentry));
3802
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3790
diff changeset
1421 #endif
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1422 bbox = gtk_hbox_new(FALSE, 5);
1228
632838648f4a [gaim-migrate @ 1238]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1227
diff changeset
1423 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1424 gtk_widget_show(bbox);
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1425
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1426 /*
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1427 close = picture_button2(win, _("Close"), cancel_xpm, dispstyle);
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1428 b->close = close;
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1429 gtk_object_set_user_data(GTK_OBJECT(close), b);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1430 gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(close_callback), b);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1431 gtk_box_pack_end(GTK_BOX(bbox), close, dispstyle, dispstyle, 0);
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1432 */
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1433
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1434 /* Send */
4091
e581b2bace1c [gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents: 4090
diff changeset
1435 button = gaim_pixbuf_button_from_stock(
e581b2bace1c [gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents: 4090
diff changeset
1436 (dispstyle == 0 ? NULL : _("Send")),
e581b2bace1c [gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents: 4090
diff changeset
1437 (dispstyle == 1 ? NULL : "gtk-convert"),
e581b2bace1c [gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents: 4090
diff changeset
1438 GAIM_BUTTON_VERTICAL);
e581b2bace1c [gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents: 4090
diff changeset
1439
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1440 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1441 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(send_callback), b);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1442 gtk_widget_show(button);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1443 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1444 b->send = button;
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1445
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1446 /* Sep */
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1447 sep = gtk_vseparator_new();
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1448 gtk_box_pack_start(GTK_BOX(bbox), sep, FALSE, FALSE, 0);
1201
6bd04139238b [gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
1449
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1450 /* Invite */
4091
e581b2bace1c [gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents: 4090
diff changeset
1451 button = gaim_pixbuf_button_from_stock(
e581b2bace1c [gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents: 4090
diff changeset
1452 (dispstyle == 0 ? NULL : _("Invite")),
e581b2bace1c [gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents: 4090
diff changeset
1453 (dispstyle == 1 ? NULL : "gtk-jump-to"),
e581b2bace1c [gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents: 4090
diff changeset
1454 GAIM_BUTTON_VERTICAL);
e581b2bace1c [gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents: 4090
diff changeset
1455
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1456 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(invite_callback), b);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1457 gtk_widget_show(button);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1458 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1459 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1460 b->invite = button;
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1461
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1462
716
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
1463 b->font_dialog = NULL;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1464 b->fg_color_dialog = NULL;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1465 b->bg_color_dialog = NULL;
716
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
1466 b->smiley_dialog = NULL;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
1467 b->link_dialog = NULL;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
1468 b->log_dialog = NULL;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
1469 sprintf(b->fontface, "%s", fontface);
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
1470 b->hasfont = 0;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
1471 b->bgcol = bgcolor;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
1472 b->hasbg = 0;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
1473 b->fgcol = fgcolor;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
1474 b->hasfg = 0;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1475
1343
d1aedcf1f7e7 [gaim-migrate @ 1353]
Rob Flynn <gaim@robflynn.com>
parents: 1303
diff changeset
1476 update_buttons_by_protocol(b);
d1aedcf1f7e7 [gaim-migrate @ 1353]
Rob Flynn <gaim@robflynn.com>
parents: 1303
diff changeset
1477
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1478 gtk_widget_show(win);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1479 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1480
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1481 void chat_set_topic(struct conversation *b, char *who, char *topic)
2017
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1482 {
1920
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1483 gtk_entry_set_text(GTK_ENTRY(b->topic_text), topic);
2368
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1484 if (b->topic)
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1485 g_free(b->topic);
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1486 b->topic = g_strdup(topic);
1920
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1487 }
8e86151db7dc [gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
1488
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1489
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1490
2017
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1491 void delete_chat(struct conversation *b)
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1492 {
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1493 while (b->in_room) {
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1494 g_free(b->in_room->data);
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1495 b->in_room = g_list_remove(b->in_room, b->in_room->data);
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1496 }
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1497 while (b->ignored) {
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1498 g_free(b->ignored->data);
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1499 b->ignored = g_list_remove(b->ignored, b->ignored->data);
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1500 }
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1501 g_string_free(b->history, TRUE);
2368
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1502 if (b->topic)
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1503 g_free(b->topic);
2017
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1504 g_free(b);
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1924
diff changeset
1505 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1506
4089
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1507 static GtkWidget *change_text(GtkWidget *win, char *text, GtkWidget *button, char *stock, int chat)
834
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1508 {
915
73495897d670 [gaim-migrate @ 925]
Ben Miller <millebe@cs.earlham.edu>
parents: 909
diff changeset
1509 int dispstyle = set_dispstyle(chat);
834
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1510 GtkWidget *parent = button->parent;
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1511 gtk_widget_destroy(button);
4089
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1512 /* XXX button = picture_button2(win, text, xpm, dispstyle); */
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1513 button = gaim_pixbuf_button_from_stock((dispstyle == 0 ? NULL : text),
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1514 (dispstyle == 1 ? NULL : stock),
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1515 GAIM_BUTTON_VERTICAL);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1516 #if 0
915
73495897d670 [gaim-migrate @ 925]
Ben Miller <millebe@cs.earlham.edu>
parents: 909
diff changeset
1517 if (chat == 1)
909
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1518 gtk_box_pack_start(GTK_BOX(parent), button, dispstyle, dispstyle, 5);
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1519 else
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1520 gtk_box_pack_end(GTK_BOX(parent), button, dispstyle, dispstyle, 0);
4089
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1521
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1522 gtk_box_pack_start(GTK_BOX(parent), button, dispstyle, dispstyle, 0);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1523 #endif
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1524
834
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1525 gtk_widget_show(button);
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1526 return button;
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1527 }
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1528
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1529 void update_chat_button_pix()
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1530 {
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1531 GSList *C = connections;
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1532 struct gaim_connection *g;
4089
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1533 GtkWidget *parent;
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1534
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1535 while (C) {
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1536 GSList *bcs;
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1537 struct conversation *c;
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1538 int opt = 1;
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1539 g = (struct gaim_connection *)C->data;
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1540 bcs = g->buddy_chats;
834
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1541
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1542 while (bcs) {
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1543 c = (struct conversation *)bcs->data;
4089
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1544 parent = c->send->parent;
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1545
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1546 c->send = change_text(c->window, _("Send"), c->send, "gtk-convert", opt);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1547 c->invite = change_text(c->window, _("Invite"), c->invite, "gtk-jump-to", opt);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1548 gtk_box_pack_end(GTK_BOX(parent), c->send, FALSE, FALSE, 0);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1549 gtk_box_pack_end(GTK_BOX(parent), c->invite, FALSE, FALSE, 0);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1550
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1551 gtk_signal_connect(GTK_OBJECT(c->send), "clicked",
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1552 GTK_SIGNAL_FUNC(send_callback), c);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1553 gtk_signal_connect(GTK_OBJECT(c->invite), "clicked",
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1554 GTK_SIGNAL_FUNC(invite_callback), c);
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2391
diff changeset
1555
4089
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1556 gtk_button_set_relief(GTK_BUTTON(c->send), GTK_RELIEF_NONE);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1557 gtk_button_set_relief(GTK_BUTTON(c->invite), GTK_RELIEF_NONE);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1558
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2391
diff changeset
1559 update_buttons_by_protocol(c);
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2391
diff changeset
1560
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1561 bcs = bcs->next;
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1562 }
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
1563 C = C->next;
834
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1564 }
11fe3931b832 [gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 823
diff changeset
1565 }
909
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1566
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1567 void update_im_button_pix()
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1568 {
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1569 GList *bcs = conversations;
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1570 struct conversation *c;
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1571 GtkWidget *parent;
915
73495897d670 [gaim-migrate @ 925]
Ben Miller <millebe@cs.earlham.edu>
parents: 909
diff changeset
1572 int opt = 0;
73495897d670 [gaim-migrate @ 925]
Ben Miller <millebe@cs.earlham.edu>
parents: 909
diff changeset
1573 int dispstyle = set_dispstyle(0);
909
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1574
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1575 while (bcs) {
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1576 c = (struct conversation *)bcs->data;
3687
cdf091d5e57d [gaim-migrate @ 3817]
Rob Flynn <gaim@robflynn.com>
parents: 3683
diff changeset
1577 parent = c->send->parent;
4089
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1578
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1579 c->send = change_text(c->window, _("Send"), c->send, "gtk-convert", opt);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1580 gtk_box_pack_end(GTK_BOX(parent), c->send, FALSE, FALSE, 0);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1581
4090
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1582 gtk_widget_destroy(c->sep2);
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1583 c->sep2 = gtk_vseparator_new();
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1584 gtk_box_pack_end(GTK_BOX(parent), c->sep2, FALSE, TRUE, 0);
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1585 gtk_widget_show(c->sep2);
4089
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1586
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1018
diff changeset
1587 if (find_buddy(c->gc, c->name) == NULL)
4090
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1588 c->add = change_text(c->window, _("Add"), c->add, "gtk-add", opt);
909
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1589 else
4089
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1590 c->add = change_text(c->window, _("Remove"), c->add, "gtk-remove", opt);
4090
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1591
4089
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1592 gtk_box_pack_start(GTK_BOX(parent), c->add, FALSE, FALSE, 0);
4090
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1593
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1594 c->warn = change_text(c->window, _("Warn"), c->warn, "gtk-dialog-warning", opt);
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1595 gtk_box_pack_start(GTK_BOX(parent), c->warn, FALSE, FALSE, 0);
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1596
4089
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1597 c->info = change_text(c->window, _("Info"), c->info, "gtk-find", opt);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1598 gtk_box_pack_start(GTK_BOX(parent), c->info, FALSE, FALSE, 0);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1599
4090
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1600 c->block = change_text(c->window, _("Block"), c->block, "gtk-stop", opt);
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1601 gtk_box_pack_start(GTK_BOX(parent), c->block, FALSE, FALSE, 0);
80d6b176ff79 [gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents: 4089
diff changeset
1602
4089
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1603 gtk_button_set_relief(GTK_BUTTON(c->info), GTK_RELIEF_NONE);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1604 gtk_button_set_relief(GTK_BUTTON(c->add), GTK_RELIEF_NONE);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1605 gtk_button_set_relief(GTK_BUTTON(c->warn), GTK_RELIEF_NONE);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1606 gtk_button_set_relief(GTK_BUTTON(c->send), GTK_RELIEF_NONE);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1607 gtk_button_set_relief(GTK_BUTTON(c->block), GTK_RELIEF_NONE);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1608
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1609 gtk_size_group_add_widget(c->sg, c->info);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1610 gtk_size_group_add_widget(c->sg, c->add);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1611 gtk_size_group_add_widget(c->sg, c->warn);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1612 gtk_size_group_add_widget(c->sg, c->send);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1613 gtk_size_group_add_widget(c->sg, c->block);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1614
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1615 gtk_box_reorder_child(GTK_BOX(parent), c->warn, 1);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1616 gtk_box_reorder_child(GTK_BOX(parent), c->block, 2);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1617 gtk_box_reorder_child(GTK_BOX(parent), c->info, 4);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1618
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1619
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1620 update_buttons_by_protocol(c);
1e2a472beb95 [gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents: 4074
diff changeset
1621
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1622 gtk_signal_connect(GTK_OBJECT(c->send), "clicked", GTK_SIGNAL_FUNC(send_callback), c);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1623 gtk_signal_connect(GTK_OBJECT(c->info), "clicked", GTK_SIGNAL_FUNC(info_callback), c);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1624 gtk_signal_connect(GTK_OBJECT(c->warn), "clicked", GTK_SIGNAL_FUNC(warn_callback), c);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1235
diff changeset
1625 gtk_signal_connect(GTK_OBJECT(c->block), "clicked", GTK_SIGNAL_FUNC(block_callback), c);
909
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1626 bcs = bcs->next;
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1627 }
83af8c8b993b [gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 907
diff changeset
1628 }
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1629
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1630 void chat_tabize()
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1631 {
2368
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1632 int pos = 0;
2843
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1633 char tmp[BUF_LONG];
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1634 /* evil, evil i tell you! evil! */
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2289
diff changeset
1635 if (chat_options & OPT_CHAT_ONE_WINDOW) {
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1636 GList *x = chats;
2843
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1637 if ((convo_options & OPT_CONVO_COMBINE) && (im_options & OPT_IM_ONE_WINDOW)) {
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1638 all_chats = all_convos;
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1639 chat_notebook = convo_notebook;
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1640 }
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1641 while (x) {
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1642 struct conversation *c = x->data;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1643 GtkWidget *imhtml, *win;
2368
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1644 GList *r = c->in_room;
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1645
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1646 imhtml = c->text;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1647 win = c->window;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1648 show_new_buddy_chat(c);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1649 gtk_widget_destroy(c->text);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1650 gtk_widget_reparent(imhtml, c->sw);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1651 c->text = imhtml;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1652 gtk_signal_disconnect_by_func(GTK_OBJECT(win),
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2371
diff changeset
1653 GTK_SIGNAL_FUNC(close_callback), c);
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1654 gtk_widget_destroy(win);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1655
2368
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1656 if (c->topic)
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1657 gtk_entry_set_text(GTK_ENTRY(c->topic_text), c->topic);
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1658
2843
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1659 g_snprintf(tmp, sizeof(tmp), _("%d %s in room"), g_list_length(c->in_room),
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1660 g_list_length(c->in_room) == 1 ? "person" : "people");
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1661 gtk_label_set_text(GTK_LABEL(c->count), tmp);
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1662
2368
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1663 while (r) {
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1664 char *name = r->data;
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1665
2956
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
1666 add_chat_buddy_common(c, name, pos);
2368
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1667
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1668 r = r->next;
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1669 pos++;
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1670 }
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1671
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1672 x = x->next;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1673 }
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1674 } else {
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1675 GList *x, *m;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1676 x = m = chats;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1677 chats = NULL;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1678 while (x) {
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1679 struct conversation *c = x->data;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1680 GtkWidget *imhtml;
2368
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1681 GList *r = c->in_room;
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1682
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1683 imhtml = c->text;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1684 show_new_buddy_chat(c);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1685 gtk_widget_destroy(c->text);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1686 gtk_widget_reparent(imhtml, c->sw);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1687 c->text = imhtml;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1688
2368
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1689 if (c->topic)
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1690 gtk_entry_set_text(GTK_ENTRY(c->topic_text), c->topic);
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1691
2843
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1692 g_snprintf(tmp, sizeof(tmp), _("%d %s in room"), g_list_length(c->in_room),
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1693 g_list_length(c->in_room) == 1 ? "person" : "people");
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1694 gtk_label_set_text(GTK_LABEL(c->count), tmp);
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1695
2368
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1696 while (r) {
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1697 char *name = r->data;
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1698
2956
1836bfe768df [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2899
diff changeset
1699 add_chat_buddy_common(c, name, pos);
2368
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1700
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1701 r = r->next;
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1702 pos++;
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1703 }
7f495de3b20b [gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2350
diff changeset
1704
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1705 x = x->next;
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1706 }
2843
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1707 chats = m;
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1708 if ((convo_options & OPT_CONVO_COMBINE) &&
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1709 (im_options & OPT_IM_ONE_WINDOW) && conversations) {
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1710 while (m) {
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1711 gtk_notebook_remove_page(GTK_NOTEBOOK(chat_notebook),
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1712 g_list_length(conversations));
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1713 m = m->next;
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1714 }
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1715 } else if (all_chats)
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1716 gtk_widget_destroy(all_chats);
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1717 all_chats = NULL;
1757
8c57846a4691 [gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
1718 chat_notebook = NULL;
1692
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1719 }
ff73167542e9 [gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1505
diff changeset
1720 }

mercurial