Mercurial > pidgin.yaz
annotate src/server.c @ 3572:bdd0bebd2d04
[gaim-migrate @ 3670]
Phase II. No longer do you have to worry about protocol plugins. When
Gaim probes plugins on load, it will detect protocol plugins and add them
to the list of available protocols. When you try to log an account on with
one of them, Gaim will automatically load the plugin--when no more accounts
need the protocol--Gaim will automatically unload it. Protocol plugins are
no longer available in the plugins ui, and no protocols are compiled statically
by default.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Mon, 30 Sep 2002 01:05:18 +0000 |
parents | b791019b2492 |
children | 81d514f109de |
rev | line source |
---|---|
1 | 1 /* |
2 * gaim | |
3 * | |
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
5 * | |
6 * This program is free software; you can redistribute it and/or modify | |
7 * it under the terms of the GNU General Public License as published by | |
8 * the Free Software Foundation; either version 2 of the License, or | |
9 * (at your option) any later version. | |
10 * | |
11 * This program is distributed in the hope that it will be useful, | |
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 * GNU General Public License for more details. | |
15 * | |
16 * You should have received a copy of the GNU General Public License | |
17 * along with this program; if not, write to the Free Software | |
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
19 * | |
20 */ | |
21 | |
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
338
diff
changeset
|
22 #ifdef HAVE_CONFIG_H |
2090
b66aca8e8dce
[gaim-migrate @ 2100]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2048
diff
changeset
|
23 #include <config.h> |
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
338
diff
changeset
|
24 #endif |
1 | 25 #include <time.h> |
26 #include <stdio.h> | |
1057
d50d3abb9eb7
[gaim-migrate @ 1067]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1056
diff
changeset
|
27 #include <stdlib.h> |
1 | 28 #include <string.h> |
29 #include <sys/types.h> | |
30 #include <sys/stat.h> | |
31 #include <sys/time.h> | |
32 #include <unistd.h> | |
2123
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2108
diff
changeset
|
33 #include <errno.h> |
2768
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
34 #include "gtkimhtml.h" |
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
35 #include "prpl.h" |
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
36 #include "multi.h" |
1 | 37 #include "gaim.h" |
38 | |
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
39 #include "pixmaps/ok.xpm" |
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
40 #include "pixmaps/cancel.xpm" |
2768
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
41 #include "pixmaps/tb_search.xpm" |
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
42 |
980
82c5865f7cfe
[gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
978
diff
changeset
|
43 void serv_login(struct aim_user *user) |
1 | 44 { |
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
45 struct prpl *p = find_prpl(user->protocol); |
2531 | 46 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
47 if (user->gc != NULL) |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
48 return; |
2531 | 49 |
3572 | 50 #ifdef GAIM_PLUGINS |
51 if (p->plug) { /* This protocol is a plugin */ | |
52 prpl_accounts[p->protocol]++; | |
53 debug_printf("Protocol %s is now being used by %d connections.\n", p->name, prpl_accounts[p->protocol]); | |
54 if (!p->plug->handle) { /* But the protocol isn't yet loaded. */ | |
55 unload_protocol(p); /* Unload it to free the old name and options */ | |
56 if (load_prpl(p)) /* And load the plugin */ | |
57 return; | |
58 } | |
59 } | |
60 #endif | |
61 | |
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
62 if (p && p->login) { |
2531 | 63 if (!strlen(user->password) && !(p->options & OPT_PROTO_NO_PASSWORD)) { |
3427 | 64 do_error_dialog(_("Please enter your password"), NULL, GAIM_ERROR); |
2531 | 65 return; |
66 } | |
67 | |
3572 | 68 debug_printf(PACKAGE " " VERSION " logging in %s using %s\n", user->username, p->name); |
3510 | 69 user->connecting = TRUE; |
3517 | 70 connecting_count++; |
3570 | 71 debug_printf("connecting_count: %d\n", connecting_count); |
3517 | 72 plugin_event(event_connecting, user); |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
73 p->login(user); |
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
74 } |
1 | 75 } |
76 | |
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
77 static gboolean send_keepalive(gpointer d) |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
78 { |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
79 struct gaim_connection *gc = d; |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
80 if (gc->prpl && gc->prpl->keepalive) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
81 gc->prpl->keepalive(gc); |
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
82 return TRUE; |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
83 } |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
84 |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
85 static void update_keepalive(struct gaim_connection *gc, gboolean on) |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
86 { |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
87 if (on && !gc->keepalive) { |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
88 debug_printf("allowing NOP\n"); |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
89 gc->keepalive = g_timeout_add(60000, send_keepalive, gc); |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
90 } else if (!on && gc->keepalive > 0) { |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
91 debug_printf("removing NOP\n"); |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
92 g_source_remove(gc->keepalive); |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
93 gc->keepalive = 0; |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
94 } |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
95 } |
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
96 |
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
97 void serv_close(struct gaim_connection *gc) |
1 | 98 { |
3572 | 99 struct prpl *prpl; |
2017
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2001
diff
changeset
|
100 while (gc->buddy_chats) { |
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2001
diff
changeset
|
101 struct conversation *b = gc->buddy_chats->data; |
1063
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
102 gc->buddy_chats = g_slist_remove(gc->buddy_chats, b); |
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
103 b->gc = NULL; |
2546
d392e9b867e9
[gaim-migrate @ 2559]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2531
diff
changeset
|
104 update_buttons_by_protocol(b); |
1063
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
105 } |
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
106 |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
107 if (gc->idle_timer > 0) |
2131
acc11216ec5d
[gaim-migrate @ 2141]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2123
diff
changeset
|
108 g_source_remove(gc->idle_timer); |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
109 gc->idle_timer = 0; |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
110 |
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2381
diff
changeset
|
111 update_keepalive(gc, FALSE); |
1050
c4baa5509558
[gaim-migrate @ 1060]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1038
diff
changeset
|
112 |
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
113 if (gc->prpl && gc->prpl->close) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
114 gc->prpl->close(gc); |
3572 | 115 |
116 prpl = gc->prpl; | |
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
117 account_offline(gc); |
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
118 destroy_gaim_conn(gc); |
3572 | 119 |
120 #ifdef GAIM_PLUGINS | |
121 if (prpl->plug) { /* This is a plugin */ | |
122 prpl_accounts[prpl->protocol]--; | |
123 debug_printf("Prpl %s is now being used by %d accounts\n", prpl->name, prpl_accounts[prpl->protocol]); | |
124 if (prpl_accounts[prpl->protocol] == 0) { /* We don't need this protocol anymore */ | |
125 debug_printf("Throwing out prpl %s\n", prpl->name); | |
126 g_module_close(prpl->plug->handle); | |
127 prpl->plug->handle = NULL; | |
128 } | |
129 } | |
130 #endif | |
131 | |
1 | 132 } |
133 | |
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
134 void serv_touch_idle(struct gaim_connection *gc) |
1 | 135 { |
136 /* Are we idle? If so, not anymore */ | |
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
137 if (gc->is_idle > 0) { |
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
138 gc->is_idle = 0; |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
139 serv_set_idle(gc, 0); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
140 } |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
141 time(&gc->lastsent); |
1834
0695f52c06da
[gaim-migrate @ 1844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1815
diff
changeset
|
142 if (gc->is_auto_away) |
0695f52c06da
[gaim-migrate @ 1844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1815
diff
changeset
|
143 check_idle(gc); |
1 | 144 } |
145 | |
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
146 void serv_finish_login(struct gaim_connection *gc) |
1 | 147 { |
1051
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1050
diff
changeset
|
148 if (strlen(gc->user->user_info)) { |
1976 | 149 /* g_malloc(strlen(gc->user->user_info) * 4); |
150 strncpy_withhtml(buf, gc->user->user_info, strlen(gc->user->user_info) * 4); */ | |
1292 | 151 serv_set_info(gc, gc->user->user_info); |
1976 | 152 /* g_free(buf); */ |
1 | 153 } |
154 | |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
155 if (gc->idle_timer > 0) |
2131
acc11216ec5d
[gaim-migrate @ 2141]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2123
diff
changeset
|
156 g_source_remove(gc->idle_timer); |
1 | 157 |
2381
427ccd7dfdd2
[gaim-migrate @ 2394]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
158 gc->idle_timer = g_timeout_add(20000, check_idle, gc); |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
159 serv_touch_idle(gc); |
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
160 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
161 time(&gc->login_time); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
162 |
1995
815997c7d4f1
[gaim-migrate @ 2005]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1981
diff
changeset
|
163 if (gc->prpl->options & OPT_PROTO_CORRECT_TIME) |
815997c7d4f1
[gaim-migrate @ 2005]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1981
diff
changeset
|
164 serv_add_buddy(gc, gc->username); |
815997c7d4f1
[gaim-migrate @ 2005]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1981
diff
changeset
|
165 |
1772
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1771
diff
changeset
|
166 update_keepalive(gc, TRUE); |
1 | 167 } |
168 | |
2993 | 169 /* This should return the elapsed time in seconds in which Gaim will not send |
170 * typing notifications. | |
3001 | 171 * if it returns zero, it will not send any more typing notifications |
172 * typing is a flag - TRUE for typing, FALSE for stopped typing */ | |
173 int serv_send_typing(struct gaim_connection *g, char *name, int typing) { | |
2993 | 174 if (g && g->prpl && g->prpl->send_typing) |
3001 | 175 return g->prpl->send_typing(g, name, typing); |
2993 | 176 else return 0; |
177 } | |
1 | 178 |
3033 | 179 int serv_send_im(struct gaim_connection *gc, char *name, char *message, int len, int flags) |
1 | 180 { |
2123
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2108
diff
changeset
|
181 int val = -EINVAL; |
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
182 if (gc->prpl && gc->prpl->send_im) |
3033 | 183 val = gc->prpl->send_im(gc, name, message, len, flags); |
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
184 |
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2205
diff
changeset
|
185 if (!(flags & IM_FLAG_AWAY)) |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
186 serv_touch_idle(gc); |
2123
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2108
diff
changeset
|
187 |
3001 | 188 serv_send_typing(gc, name, FALSE); |
2123
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2108
diff
changeset
|
189 return val; |
1 | 190 } |
191 | |
1032
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
192 void serv_get_info(struct gaim_connection *g, char *name) |
1 | 193 { |
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
194 if (g && g->prpl && g->prpl->get_info) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
195 g->prpl->get_info(g, name); |
249
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
196 } |
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
197 |
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2768
diff
changeset
|
198 void serv_get_away(struct gaim_connection *g, char *name) |
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2768
diff
changeset
|
199 { |
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2768
diff
changeset
|
200 if (g && g->prpl && g->prpl->get_away) |
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2768
diff
changeset
|
201 g->prpl->get_away(g, name); |
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2768
diff
changeset
|
202 } |
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2768
diff
changeset
|
203 |
1032
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
204 void serv_get_dir(struct gaim_connection *g, char *name) |
1 | 205 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
206 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->get_dir) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
207 g->prpl->get_dir(g, name); |
1 | 208 } |
209 | |
3466 | 210 void serv_set_dir(struct gaim_connection *g, const char *first, const char *middle, const char *last, const char *maiden, |
211 const char *city, const char *state, const char *country, int web) | |
1 | 212 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
213 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->set_dir) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
214 g->prpl->set_dir(g, first, middle, last, maiden, city, state, country, web); |
1 | 215 } |
216 | |
3466 | 217 void serv_dir_search(struct gaim_connection *g, const char *first, const char *middle, const char *last, const char *maiden, |
218 const char *city, const char *state, const char *country, const char *email) | |
1 | 219 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
220 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->dir_search) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
221 g->prpl->dir_search(g, first, middle, last, maiden, city, state, country, email); |
1 | 222 } |
223 | |
224 | |
1401
bf041349b11e
[gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
225 void serv_set_away(struct gaim_connection *gc, char *state, char *message) |
bf041349b11e
[gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
226 { |
1938
c9db54d8d8dc
[gaim-migrate @ 1948]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1937
diff
changeset
|
227 if (gc && gc->prpl && gc->prpl->set_away) { |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
228 char *buf = NULL; |
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
229 if (message) { |
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
230 buf = g_malloc(strlen(message) + 1); |
2706
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
231 if (gc->flags & OPT_CONN_HTML) |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
232 strncpy(buf, message, strlen(message) + 1); |
1938
c9db54d8d8dc
[gaim-migrate @ 1948]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1937
diff
changeset
|
233 else |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
234 strncpy_nohtml(buf, message, strlen(message) + 1); |
1937 | 235 } |
1938
c9db54d8d8dc
[gaim-migrate @ 1948]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1937
diff
changeset
|
236 |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
237 gc->prpl->set_away(gc, state, buf); |
2000 | 238 |
3517 | 239 plugin_event(event_away, gc, state, buf); |
1938
c9db54d8d8dc
[gaim-migrate @ 1948]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1937
diff
changeset
|
240 |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
241 if (buf) |
1938
c9db54d8d8dc
[gaim-migrate @ 1948]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1937
diff
changeset
|
242 g_free(buf); |
1404
96e93119268d
[gaim-migrate @ 1414]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1401
diff
changeset
|
243 } |
1937 | 244 |
1938
c9db54d8d8dc
[gaim-migrate @ 1948]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1937
diff
changeset
|
245 system_log(log_away, gc, NULL, OPT_LOG_BUDDY_AWAY | OPT_LOG_MY_SIGNON); |
1401
bf041349b11e
[gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
246 } |
bf041349b11e
[gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
247 |
bf041349b11e
[gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
248 void serv_set_away_all(char *message) |
1 | 249 { |
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
250 GSList *c = connections; |
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
251 struct gaim_connection *g; |
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
252 |
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
253 while (c) { |
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
254 g = (struct gaim_connection *)c->data; |
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1555
diff
changeset
|
255 serv_set_away(g, GAIM_AWAY_CUSTOM, message); |
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
256 c = c->next; |
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
257 } |
1 | 258 } |
259 | |
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
260 void serv_set_info(struct gaim_connection *g, char *info) |
1 | 261 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
262 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->set_info) { |
3517 | 263 if (plugin_event(event_set_info, g, info)) |
3456 | 264 return; |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
265 g->prpl->set_info(g, info); |
1749
5bfc58c20e82
[gaim-migrate @ 1759]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1734
diff
changeset
|
266 } |
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
267 } |
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
268 |
3466 | 269 void serv_change_passwd(struct gaim_connection *g, const char *orig, const char *new) |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
270 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
271 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->change_passwd) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
272 g->prpl->change_passwd(g, orig, new); |
1 | 273 } |
274 | |
3466 | 275 void serv_add_buddy(struct gaim_connection *g, const char *name) |
1 | 276 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
277 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->add_buddy) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
278 g->prpl->add_buddy(g, name); |
1 | 279 } |
280 | |
1336
f3303fc05572
[gaim-migrate @ 1346]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1303
diff
changeset
|
281 void serv_add_buddies(struct gaim_connection *g, GList *buddies) |
1 | 282 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
283 if (g && g_slist_find(connections, g) && g->prpl) { |
1336
f3303fc05572
[gaim-migrate @ 1346]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1303
diff
changeset
|
284 if (g->prpl->add_buddies) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
285 g->prpl->add_buddies(g, buddies); |
1336
f3303fc05572
[gaim-migrate @ 1346]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1303
diff
changeset
|
286 else if (g->prpl->add_buddy) |
f3303fc05572
[gaim-migrate @ 1346]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1303
diff
changeset
|
287 while (buddies) { |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
288 g->prpl->add_buddy(g, buddies->data); |
1336
f3303fc05572
[gaim-migrate @ 1346]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1303
diff
changeset
|
289 buddies = buddies->next; |
f3303fc05572
[gaim-migrate @ 1346]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1303
diff
changeset
|
290 } |
f3303fc05572
[gaim-migrate @ 1346]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1303
diff
changeset
|
291 } |
1 | 292 } |
293 | |
294 | |
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2662
diff
changeset
|
295 void serv_remove_buddy(struct gaim_connection *g, char *name, char *group) |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
296 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
297 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->remove_buddy) |
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2662
diff
changeset
|
298 g->prpl->remove_buddy(g, name, group); |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
299 } |
1 | 300 |
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2662
diff
changeset
|
301 void serv_remove_buddies(struct gaim_connection *gc, GList *g, char *group) |
2334
b53cd5b63a99
[gaim-migrate @ 2347]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
302 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
303 if (!g_slist_find(connections, gc)) |
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
304 return; |
2334
b53cd5b63a99
[gaim-migrate @ 2347]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
305 if (!gc->prpl) |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
306 return; /* how the hell did that happen? */ |
2334
b53cd5b63a99
[gaim-migrate @ 2347]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
307 if (gc->prpl->remove_buddies) |
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2662
diff
changeset
|
308 gc->prpl->remove_buddies(gc, g, group); |
2334
b53cd5b63a99
[gaim-migrate @ 2347]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
309 else { |
b53cd5b63a99
[gaim-migrate @ 2347]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
310 while (g) { |
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2662
diff
changeset
|
311 serv_remove_buddy(gc, g->data, group); |
2334
b53cd5b63a99
[gaim-migrate @ 2347]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
312 g = g->next; |
b53cd5b63a99
[gaim-migrate @ 2347]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
313 } |
b53cd5b63a99
[gaim-migrate @ 2347]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
314 } |
b53cd5b63a99
[gaim-migrate @ 2347]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
315 } |
b53cd5b63a99
[gaim-migrate @ 2347]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
316 |
3136 | 317 /* |
318 * Set buddy's alias on server roster/list | |
319 */ | |
320 void serv_alias_buddy(struct buddy *b) | |
321 { | |
322 if(b && b->gc && b->gc->prpl && b->gc->prpl->alias_buddy) { | |
323 b->gc->prpl->alias_buddy(b->gc, b->name); | |
324 } | |
325 } | |
326 | |
327 /* | |
328 * Move a buddy from one group to another on server. | |
329 * | |
330 * Note: For now we'll not deal with changing gc's at the same time, but | |
331 * it should be possible. Probably needs to be done, someday. | |
332 */ | |
333 void serv_move_buddy(struct buddy *b, struct group *og, struct group *ng) | |
334 { | |
335 if(b && b->gc && og && og->gc && ng && ng->gc) { | |
336 /* | |
337 * If there are no connection changes... | |
338 */ | |
339 if(b->gc == og->gc && b->gc == ng->gc && ng->gc == og->gc) { | |
340 if(b->gc->prpl && b->gc->prpl->group_buddy) { | |
341 b->gc->prpl->group_buddy(b->gc, b->name, og->name, ng->name); | |
342 } | |
343 } | |
344 } | |
345 } | |
346 | |
3348 | 347 /* |
348 * Rename a group on server roster/list. | |
349 */ | |
3466 | 350 void serv_rename_group(struct gaim_connection *g, struct group *old_group, const char *new_name) |
3348 | 351 { |
352 if (g && g->prpl && old_group && new_name) { | |
353 GList *tobemoved = NULL; | |
354 GSList *original; | |
355 | |
356 for (original=old_group->members; original; original=g_slist_next(original)) | |
357 tobemoved = g_list_append(tobemoved, ((struct buddy *)original->data)->name); | |
358 | |
359 if (g->prpl->rename_group) { | |
360 /* prpl's might need to check if the group already | |
361 * exists or not, and handle that differently */ | |
362 g->prpl->rename_group(g, old_group->name, new_name, tobemoved); | |
363 } else { | |
364 serv_remove_buddies(g, tobemoved, old_group->name); | |
365 serv_add_buddies(g, tobemoved); | |
366 } | |
367 | |
368 g_list_free(tobemoved); | |
369 } | |
370 } | |
371 | |
1038
daad2440a642
[gaim-migrate @ 1048]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
372 void serv_add_permit(struct gaim_connection *g, char *name) |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
373 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
374 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->add_permit) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
375 g->prpl->add_permit(g, name); |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
376 } |
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
377 |
1038
daad2440a642
[gaim-migrate @ 1048]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
378 void serv_add_deny(struct gaim_connection *g, char *name) |
1 | 379 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
380 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->add_deny) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
381 g->prpl->add_deny(g, name); |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
382 } |
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
383 |
1038
daad2440a642
[gaim-migrate @ 1048]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
384 void serv_rem_permit(struct gaim_connection *g, char *name) |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
385 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
386 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->rem_permit) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
387 g->prpl->rem_permit(g, name); |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
388 } |
1 | 389 |
1038
daad2440a642
[gaim-migrate @ 1048]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
390 void serv_rem_deny(struct gaim_connection *g, char *name) |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
391 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
392 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->rem_deny) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
393 g->prpl->rem_deny(g, name); |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
394 } |
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
395 |
1038
daad2440a642
[gaim-migrate @ 1048]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
396 void serv_set_permit_deny(struct gaim_connection *g) |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
397 { |
1145
cd96ca1aed02
[gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1140
diff
changeset
|
398 /* this is called when either you import a buddy list, and make lots of changes that way, |
cd96ca1aed02
[gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1140
diff
changeset
|
399 * or when the user toggles the permit/deny mode in the prefs. In either case you should |
cd96ca1aed02
[gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1140
diff
changeset
|
400 * probably be resetting and resending the permit/deny info when you get this. */ |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
401 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->set_permit_deny) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
402 g->prpl->set_permit_deny(g); |
1 | 403 } |
404 | |
1026 | 405 |
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
406 void serv_set_idle(struct gaim_connection *g, int time) |
1 | 407 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
408 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->set_idle) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
409 g->prpl->set_idle(g, time); |
1 | 410 } |
411 | |
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
412 void serv_warn(struct gaim_connection *g, char *name, int anon) |
1 | 413 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
414 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->warn) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
415 g->prpl->warn(g, name, anon); |
1 | 416 } |
417 | |
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
418 void serv_join_chat(struct gaim_connection *g, GList *data) |
1 | 419 { |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
420 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->join_chat) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
421 g->prpl->join_chat(g, data); |
1 | 422 } |
423 | |
3466 | 424 void serv_chat_invite(struct gaim_connection *g, int id, const char *message, const char *name) |
1 | 425 { |
2359
ad56a93661fc
[gaim-migrate @ 2372]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2345
diff
changeset
|
426 char *buffy = message && *message ? g_strdup(message) : NULL; |
ad56a93661fc
[gaim-migrate @ 2372]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2345
diff
changeset
|
427 plugin_event(event_chat_send_invite, g, (void *)id, name, &buffy); |
2586
0f5390176949
[gaim-migrate @ 2599]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2546
diff
changeset
|
428 if (g && g_slist_find(connections, g) && g->prpl && g->prpl->chat_invite) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
429 g->prpl->chat_invite(g, id, buffy, name); |
2359
ad56a93661fc
[gaim-migrate @ 2372]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2345
diff
changeset
|
430 if (buffy) |
ad56a93661fc
[gaim-migrate @ 2372]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2345
diff
changeset
|
431 g_free(buffy); |
1 | 432 } |
433 | |
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
434 void serv_chat_leave(struct gaim_connection *g, int id) |
1 | 435 { |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
436 if (!g_slist_find(connections, g)) |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
437 return; |
1015
c3579d03a0c1
[gaim-migrate @ 1025]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1013
diff
changeset
|
438 |
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
439 if (g->prpl && g->prpl->chat_leave) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
440 g->prpl->chat_leave(g, id); |
1 | 441 } |
442 | |
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
443 void serv_chat_whisper(struct gaim_connection *g, int id, char *who, char *message) |
1 | 444 { |
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
445 if (g->prpl && g->prpl->chat_whisper) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
446 g->prpl->chat_whisper(g, id, who, message); |
1 | 447 } |
448 | |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2131
diff
changeset
|
449 int serv_chat_send(struct gaim_connection *g, int id, char *message) |
1 | 450 { |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2131
diff
changeset
|
451 int val = -EINVAL; |
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
452 if (g->prpl && g->prpl->chat_send) |
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2646
diff
changeset
|
453 val = g->prpl->chat_send(g, id, message); |
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
454 serv_touch_idle(g); |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2131
diff
changeset
|
455 return val; |
1 | 456 } |
457 | |
1773 | 458 int find_queue_row_by_name(char *name) |
459 { | |
460 GSList *templist; | |
461 char *temp; | |
462 int i; | |
463 | |
464 templist = message_queue; | |
465 | |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
466 for (i = 0; i < GTK_CLIST(clistqueue)->rows; i++) { |
1773 | 467 gtk_clist_get_text(GTK_CLIST(clistqueue), i, 0, &temp); |
468 | |
469 if (!strcmp(name, temp)) | |
470 return i; | |
471 } | |
472 | |
473 return -1; | |
474 } | |
475 | |
476 int find_queue_total_by_name(char *name) | |
477 { | |
478 GSList *templist; | |
479 int i = 0; | |
480 | |
481 templist = message_queue; | |
482 | |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
483 while (templist) { |
1773 | 484 struct queued_message *qm = (struct queued_message *)templist->data; |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
485 if ((qm->flags & WFLAG_RECV) && !strcmp(name, qm->name)) |
1773 | 486 i++; |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
487 |
1773 | 488 templist = templist->next; |
489 } | |
490 | |
491 return i; | |
492 } | |
493 | |
2435
b4f2a53c0ee5
[gaim-migrate @ 2448]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
494 struct queued_away_response { |
b4f2a53c0ee5
[gaim-migrate @ 2448]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
495 char name[80]; |
b4f2a53c0ee5
[gaim-migrate @ 2448]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
496 time_t sent_away; |
b4f2a53c0ee5
[gaim-migrate @ 2448]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
497 }; |
b4f2a53c0ee5
[gaim-migrate @ 2448]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
498 |
1774 | 499 struct queued_away_response *find_queued_away_response_by_name(char *name) |
500 { | |
501 GSList *templist; | |
502 struct queued_away_response *qar; | |
503 | |
504 templist = away_time_queue; | |
505 | |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
506 while (templist) { |
1774 | 507 qar = (struct queued_away_response *)templist->data; |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
508 |
1774 | 509 if (!strcmp(name, qar->name)) |
510 return qar; | |
511 | |
512 templist = templist->next; | |
513 } | |
514 | |
515 return NULL; | |
516 } | |
517 | |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
518 /* woo. i'm actually going to comment this function. isn't that fun. make sure to follow along, kids */ |
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
519 void serv_got_im(struct gaim_connection *gc, char *name, char *message, guint32 flags, time_t mtime, gint len) |
1 | 520 { |
1981
7739e648a28a
[gaim-migrate @ 1991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1976
diff
changeset
|
521 char *buffy; |
7739e648a28a
[gaim-migrate @ 1991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1976
diff
changeset
|
522 char *angel; |
7739e648a28a
[gaim-migrate @ 1991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1976
diff
changeset
|
523 int plugin_return; |
2273
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
524 int away = 0; |
1981
7739e648a28a
[gaim-migrate @ 1991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1976
diff
changeset
|
525 |
1 | 526 struct conversation *cnv; |
764 | 527 int new_conv = 0; |
1 | 528 |
2273
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
529 /* pay no attention to the man behind the curtain. |
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
530 * |
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
531 * the reason i feel okay with this is because it's useful to some plugins. |
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
532 * Gaim doesn't ever use it itself. Besides, it's not entirely accurate; it's |
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
533 * possible to have false negatives with most protocols. Also with some it's |
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
534 * easy to have false positives as well. So if you're a plugin author, don't |
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
535 * rely on this, still do your own checks. but uh. it's a start. */ |
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
536 if (flags & IM_FLAG_GAIMUSER) |
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
537 debug_printf("%s is a gaim user.\n", name); |
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
538 |
2106
efb39c151cf7
[gaim-migrate @ 2116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2104
diff
changeset
|
539 /* we should update the conversation window buttons and menu, if it exists. */ |
efb39c151cf7
[gaim-migrate @ 2116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2104
diff
changeset
|
540 cnv = find_conversation(name); |
efb39c151cf7
[gaim-migrate @ 2116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2104
diff
changeset
|
541 if (cnv) |
efb39c151cf7
[gaim-migrate @ 2116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2104
diff
changeset
|
542 set_convo_gc(cnv, gc); |
efb39c151cf7
[gaim-migrate @ 2116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2104
diff
changeset
|
543 /* we do the new_conv check here in case any plugins decide to create it */ |
efb39c151cf7
[gaim-migrate @ 2116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2104
diff
changeset
|
544 else |
efb39c151cf7
[gaim-migrate @ 2116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2104
diff
changeset
|
545 new_conv = 1; |
efb39c151cf7
[gaim-migrate @ 2116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2104
diff
changeset
|
546 |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
547 /* plugin stuff. we pass a char ** but we don't want to pass what's been given us |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
548 * by the prpls. so we create temp holders and pass those instead. it's basically |
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
549 * just to avoid segfaults. of course, if the data is binary, plugins don't see it. |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
550 * bitch all you want; i really don't want you to be dealing with it. */ |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
551 if (len < 0) { |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
552 buffy = g_malloc(MAX(strlen(message) + 1, BUF_LONG)); |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
553 strcpy(buffy, message); |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
554 angel = g_strdup(name); |
3517 | 555 plugin_return = plugin_event(event_im_recv, gc, &angel, &buffy, &flags); |
1339 | 556 |
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
557 if (!buffy || !angel || plugin_return) { |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
558 if (buffy) |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
559 g_free(buffy); |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
560 if (angel) |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
561 g_free(angel); |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
562 return; |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
563 } |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
564 name = angel; |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
565 message = buffy; |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
566 } else { |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
567 name = g_strdup(name); |
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
568 message = g_memdup(message, len); |
1100
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1089
diff
changeset
|
569 } |
2104
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
570 |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
571 /* TiK, using TOC, sends an automated message in order to get your away message. Now, |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
572 * this is one of the biggest hacks I think I've seen. But, in order to be nice to |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
573 * TiK, we're going to give users the option to ignore it. */ |
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
574 if ((away_options & OPT_AWAY_TIK_HACK) && gc->away && strlen(gc->away) && (len < 0) && |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
575 !strcmp(message, ">>>Automated Message: Getting Away Message<<<")) { |
831
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
809
diff
changeset
|
576 char *tmpmsg = stylize(awaymessage->message, MSG_LEN); |
3033 | 577 serv_send_im(gc, name, tmpmsg, -1, IM_FLAG_AWAY); |
831
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
809
diff
changeset
|
578 g_free(tmpmsg); |
2104
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
579 g_free(name); |
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
580 g_free(message); |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
581 return; |
736
d05d746384a7
[gaim-migrate @ 746]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
710
diff
changeset
|
582 } |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
583 |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
584 /* if you can't figure this out, stop reading right now. |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
585 * "we're not worthy! we're not worthy!" */ |
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
586 if ((len < 0) && (convo_options & OPT_CONVO_SEND_LINKS)) |
616 | 587 linkify_text(message); |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
588 |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
589 /* um. when we call write_to_conv with the message we received, it's nice to pass whether |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
590 * or not it was an auto-response. so if it was an auto-response, we set the appropriate |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
591 * flag. this is just so prpls don't have to know about WFLAG_* (though some do anyway) */ |
2273
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
592 if (flags & IM_FLAG_AWAY) |
764 | 593 away = WFLAG_AUTO; |
1 | 594 |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
595 /* alright. two cases for how to handle this. either we're away or we're not. if we're not, |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
596 * then it's easy. if we are, then there are three or four different ways of handling it |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
597 * and different things we have to do for each. */ |
1404
96e93119268d
[gaim-migrate @ 1414]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1401
diff
changeset
|
598 if (gc->away) { |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
599 time_t t; |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
600 char *tmpmsg; |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
601 struct buddy *b = find_buddy(gc, name); |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
602 char *alias = b ? b->show : name; |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
603 int row; |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
604 struct queued_away_response *qar; |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
605 |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
606 time(&t); |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
607 |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
608 /* either we're going to queue it or not. Because of the way awayness currently |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
609 * works, this is fucked up. it's possible for an account to be away without the |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
610 * imaway dialog being shown. in fact, it's possible for *all* the accounts to be |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
611 * away without the imaway dialog being shown. so in order for this to be queued |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
612 * properly, we have to make sure that the imaway dialog actually exists, first. */ |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2309
diff
changeset
|
613 if (!cnv && clistqueue && (away_options & OPT_AWAY_QUEUE)) { |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
614 /* alright, so we're going to queue it. neat, eh? :) so first we create |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
615 * something to store the message, and add it to our queue. Then we update |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
616 * the away dialog to indicate that we've queued something. */ |
1769
68eddf56f419
[gaim-migrate @ 1779]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1768
diff
changeset
|
617 struct queued_message *qm; |
1773 | 618 |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
619 qm = g_new0(struct queued_message, 1); |
1774 | 620 g_snprintf(qm->name, sizeof(qm->name), "%s", name); |
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
621 qm->message = g_memdup(message, len == -1 ? strlen(message) + 1 : len); |
1769
68eddf56f419
[gaim-migrate @ 1779]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1768
diff
changeset
|
622 qm->gc = gc; |
68eddf56f419
[gaim-migrate @ 1779]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1768
diff
changeset
|
623 qm->tm = mtime; |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
624 qm->flags = WFLAG_RECV | away; |
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
625 qm->len = len; |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
626 message_queue = g_slist_append(message_queue, qm); |
1768 | 627 |
1773 | 628 row = find_queue_row_by_name(qm->name); |
629 | |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
630 if (row >= 0) { |
1773 | 631 char number[32]; |
632 int qtotal; | |
633 | |
634 qtotal = find_queue_total_by_name(qm->name); | |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
635 g_snprintf(number, 32, _("(%d messages)"), qtotal); |
1773 | 636 gtk_clist_set_text(GTK_CLIST(clistqueue), row, 1, number); |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
637 } else { |
1773 | 638 gchar *heh[2]; |
639 | |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
640 heh[0] = qm->name; |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
641 heh[1] = _("(1 message)"); |
1773 | 642 gtk_clist_append(GTK_CLIST(clistqueue), heh); |
643 } | |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
644 } else { |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
645 /* ok, so we're not queuing it. well then, we'll try to handle it normally. |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
646 * Some people think that ignoring it is a perfectly acceptible way to handle |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
647 * it. i think they're on crack, but hey, that's why it's optional. */ |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2309
diff
changeset
|
648 if (away_options & OPT_AWAY_DISCARD) { |
2104
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
649 g_free(name); |
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
650 g_free(message); |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
651 return; |
2104
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
652 } |
1773 | 653 |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
654 /* ok, so we're not ignoring it. make sure the conversation exists and is |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
655 * updated (partly handled above already), play the receive sound (sound.c |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
656 * will take care of not playing while away), and then write it to the |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
657 * convo window. */ |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
658 if (cnv == NULL) { |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
659 cnv = new_conversation(name); |
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1834
diff
changeset
|
660 set_convo_gc(cnv, gc); |
1773 | 661 } |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
662 if (new_conv && (sound_options & OPT_SOUND_FIRST_RCV)) |
3060 | 663 play_sound(SND_FIRST_RECEIVE); |
664 else if (cnv->makesound) | |
665 play_sound(SND_RECEIVE); | |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
666 |
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
667 write_to_conv(cnv, message, away | WFLAG_RECV, NULL, mtime, len); |
1 | 668 } |
669 | |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
670 /* regardless of whether we queue it or not, we should send an auto-response. That is, |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
671 * of course, unless the horse.... no wait. */ |
2906
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
672 if ((away_options & OPT_AWAY_NO_AUTO_RESP) || !strlen(gc->away) || |
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
673 ((away_options & OPT_AWAY_IDLE_RESP) && !gc->is_idle)) { |
2104
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
674 g_free(name); |
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
675 g_free(message); |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
676 return; |
2104
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
677 } |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
678 |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
679 /* this used to be based on the conversation window. but um, if you went away, and |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
680 * someone sent you a message and got your auto-response, and then you closed the |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
681 * window, and then the sent you another one, they'd get the auto-response back |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
682 * too soon. besides that, we need to keep track of this even if we've got a queue. |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
683 * so the rest of this block is just the auto-response, if necessary */ |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
684 qar = find_queued_away_response_by_name(name); |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
685 if (!qar) { |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
686 qar = (struct queued_away_response *)g_new0(struct queued_away_response, 1); |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
687 g_snprintf(qar->name, sizeof(qar->name), "%s", name); |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
688 qar->sent_away = 0; |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
689 away_time_queue = g_slist_append(away_time_queue, qar); |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
690 } |
2906
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
691 if ((t - qar->sent_away) < away_resend) { |
2104
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
692 g_free(name); |
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
693 g_free(message); |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
694 return; |
2104
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
695 } |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
696 qar->sent_away = t; |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
697 |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
698 /* apply default fonts and colors */ |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
699 tmpmsg = stylize(gc->away, MSG_LEN); |
3033 | 700 serv_send_im(gc, name, away_subs(tmpmsg, alias), -1, IM_FLAG_AWAY); |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2309
diff
changeset
|
701 if (!cnv && clistqueue && (away_options & OPT_AWAY_QUEUE)) { |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
702 struct queued_message *qm; |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
703 qm = g_new0(struct queued_message, 1); |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
704 g_snprintf(qm->name, sizeof(qm->name), "%s", name); |
1785
f4ae086c746b
[gaim-migrate @ 1795]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1775
diff
changeset
|
705 qm->message = g_strdup(away_subs(tmpmsg, alias)); |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
706 qm->gc = gc; |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
707 qm->tm = mtime; |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
708 qm->flags = WFLAG_SEND | WFLAG_AUTO; |
2979 | 709 qm->len = -1; |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
710 message_queue = g_slist_append(message_queue, qm); |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
711 } else if (cnv != NULL) |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
712 write_to_conv(cnv, away_subs(tmpmsg, alias), WFLAG_SEND | WFLAG_AUTO, NULL, |
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
713 mtime, len); |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
714 g_free(tmpmsg); |
1 | 715 } else { |
1775
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
716 /* we're not away. this is easy. if the convo window doesn't exist, create and update |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
717 * it (if it does exist it was updated earlier), then play a sound indicating we've |
9ca22174da76
[gaim-migrate @ 1785]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1774
diff
changeset
|
718 * received it and then display it. easy. */ |
3521 | 719 |
720 if (new_conv && (sound_options & OPT_SOUND_FIRST_RCV)) | |
721 play_sound(SND_FIRST_RECEIVE); | |
3524 | 722 else if (new_conv || cnv->makesound) |
3521 | 723 play_sound(SND_RECEIVE); |
724 | |
3524 | 725 if (away_options & OPT_AWAY_QUEUE_UNREAD && !find_conversation(name) && docklet_count) { |
3517 | 726 /* We're gonna queue it up and wait for the user to ask for it... probably |
727 * by clicking the docklet or windows tray icon. */ | |
728 struct queued_message *qm; | |
729 qm = g_new0(struct queued_message, 1); | |
730 g_snprintf(qm->name, sizeof(qm->name), "%s", name); | |
731 qm->message = g_strdup(message); | |
732 qm->gc = gc; | |
733 qm->tm = mtime; | |
734 qm->flags = away | WFLAG_RECV; | |
735 qm->len = len; | |
736 unread_message_queue = g_slist_append(unread_message_queue, qm); | |
737 } else { | |
738 if (cnv == NULL) { | |
739 cnv = new_conversation(name); | |
740 set_convo_gc(cnv, gc); | |
741 } | |
3521 | 742 |
3517 | 743 set_convo_name(cnv, name); |
744 | |
745 write_to_conv(cnv, message, away | WFLAG_RECV, NULL, mtime, len); | |
1 | 746 } |
747 } | |
3517 | 748 plugin_event(event_im_displayed_rcvd, gc, name, message, flags, mtime); |
2104
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
749 g_free(name); |
0b81421021fd
[gaim-migrate @ 2114]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
750 g_free(message); |
1 | 751 } |
752 | |
753 | |
754 | |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
755 void serv_got_update(struct gaim_connection *gc, char *name, int loggedin, int evil, time_t signon, |
2920 | 756 time_t idle, int type, guint caps) |
1 | 757 { |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
758 struct buddy *b = find_buddy(gc, name); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
759 |
2993 | 760 if (signon && (gc->prpl->options & OPT_PROTO_CORRECT_TIME)) { |
1435
f16e17d42b43
[gaim-migrate @ 1445]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
761 char *tmp = g_strdup(normalize(name)); |
1995
815997c7d4f1
[gaim-migrate @ 2005]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1981
diff
changeset
|
762 if (!g_strcasecmp(tmp, normalize(gc->username))) { |
2506
072f253d5939
[gaim-migrate @ 2519]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2505
diff
changeset
|
763 gc->evil = evil; |
1995
815997c7d4f1
[gaim-migrate @ 2005]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1981
diff
changeset
|
764 gc->correction_time = (signon - gc->login_time); |
815997c7d4f1
[gaim-migrate @ 2005]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1981
diff
changeset
|
765 update_idle_times(); |
815997c7d4f1
[gaim-migrate @ 2005]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1981
diff
changeset
|
766 } |
1435
f16e17d42b43
[gaim-migrate @ 1445]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
767 g_free(tmp); |
f16e17d42b43
[gaim-migrate @ 1445]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
768 } |
f16e17d42b43
[gaim-migrate @ 1445]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
769 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
770 if (!b) { |
1376
730a1a19b4cc
[gaim-migrate @ 1386]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1371
diff
changeset
|
771 debug_printf("Error, no such buddy %s\n", name); |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
772 return; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
773 } |
1 | 774 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
775 /* This code will 'align' the name from the TOC */ |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
776 /* server with what's in our record. We want to */ |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
777 /* store things how THEY want it... */ |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
778 if (strcmp(name, b->name)) { |
2787
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
779 char *who = g_strdup(b->name); |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
780 g_snprintf(b->name, sizeof(b->name), "%s", name); |
2273
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
781 handle_buddy_rename(b, who); |
0b5c3338fa3d
[gaim-migrate @ 2283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
782 g_free(who); |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
783 } |
1 | 784 |
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1555
diff
changeset
|
785 if (!b->idle && idle) { |
3517 | 786 plugin_event(event_buddy_idle, gc, b->name); |
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1555
diff
changeset
|
787 system_log(log_idle, gc, b, OPT_LOG_BUDDY_IDLE); |
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1555
diff
changeset
|
788 } |
1140 | 789 if (b->idle && !idle) { |
2131
acc11216ec5d
[gaim-migrate @ 2141]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2123
diff
changeset
|
790 do_pounce(gc, b->name, OPT_POUNCE_UNIDLE); |
3517 | 791 plugin_event(event_buddy_unidle, gc, b->name); |
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1555
diff
changeset
|
792 system_log(log_unidle, gc, b, OPT_LOG_BUDDY_IDLE); |
1140 | 793 } |
1000
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
794 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
795 b->idle = idle; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
796 b->evil = evil; |
780
c714def9cebb
[gaim-migrate @ 790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
771
diff
changeset
|
797 |
136
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
798 if ((b->uc & UC_UNAVAILABLE) && !(type & UC_UNAVAILABLE)) { |
2131
acc11216ec5d
[gaim-migrate @ 2141]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2123
diff
changeset
|
799 do_pounce(gc, b->name, OPT_POUNCE_UNAWAY); |
3517 | 800 plugin_event(event_buddy_back, gc, b->name); |
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1555
diff
changeset
|
801 system_log(log_back, gc, b, OPT_LOG_BUDDY_AWAY); |
780
c714def9cebb
[gaim-migrate @ 790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
771
diff
changeset
|
802 } else if (!(b->uc & UC_UNAVAILABLE) && (type & UC_UNAVAILABLE)) { |
3517 | 803 plugin_event(event_buddy_away, gc, b->name); |
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1555
diff
changeset
|
804 system_log(log_away, gc, b, OPT_LOG_BUDDY_AWAY); |
136
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
805 } |
780
c714def9cebb
[gaim-migrate @ 790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
771
diff
changeset
|
806 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
807 b->uc = type; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
808 if (caps) |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
809 b->caps = caps; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
810 |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
811 b->signon = signon; |
1 | 812 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
813 if (loggedin) { |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
814 if (!b->present) { |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
815 b->present = 1; |
2131
acc11216ec5d
[gaim-migrate @ 2141]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2123
diff
changeset
|
816 do_pounce(gc, b->name, OPT_POUNCE_SIGNON); |
3517 | 817 plugin_event(event_buddy_signon, gc, b->name); |
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1555
diff
changeset
|
818 system_log(log_signon, gc, b, OPT_LOG_BUDDY_SIGNON); |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
819 } |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
820 } else { |
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1555
diff
changeset
|
821 if (b->present) { |
3517 | 822 plugin_event(event_buddy_signoff, gc, b->name); |
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1555
diff
changeset
|
823 system_log(log_signoff, gc, b, OPT_LOG_BUDDY_SIGNON); |
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1555
diff
changeset
|
824 } |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
825 b->present = 0; |
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1026
diff
changeset
|
826 } |
1 | 827 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
828 set_buddy(gc, b); |
1 | 829 } |
830 | |
831 | |
1100
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1089
diff
changeset
|
832 void serv_got_eviled(struct gaim_connection *gc, char *name, int lev) |
1 | 833 { |
1771
213607e89598
[gaim-migrate @ 1781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1769
diff
changeset
|
834 char buf2[1024]; |
1 | 835 |
3517 | 836 plugin_event(event_warned, gc, name, lev); |
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
837 |
2646
2555683e8dc8
[gaim-migrate @ 2659]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2607
diff
changeset
|
838 if (gc->evil >= lev) { |
1771
213607e89598
[gaim-migrate @ 1781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1769
diff
changeset
|
839 gc->evil = lev; |
213607e89598
[gaim-migrate @ 1781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1769
diff
changeset
|
840 return; |
213607e89598
[gaim-migrate @ 1781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1769
diff
changeset
|
841 } |
213607e89598
[gaim-migrate @ 1781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1769
diff
changeset
|
842 |
213607e89598
[gaim-migrate @ 1781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1769
diff
changeset
|
843 gc->evil = lev; |
213607e89598
[gaim-migrate @ 1781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1769
diff
changeset
|
844 |
213607e89598
[gaim-migrate @ 1781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1769
diff
changeset
|
845 g_snprintf(buf2, sizeof(buf2), "%s has just been warned by %s.\nYour new warning level is %d%%", |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
846 gc->username, ((name == NULL)? "an anonymous person" : name), lev); |
1 | 847 |
3427 | 848 do_error_dialog(buf2, NULL, GAIM_INFO); |
1 | 849 } |
850 | |
2993 | 851 void serv_got_typing(struct gaim_connection *gc, char *name, int timeout) { |
852 struct conversation *cnv = find_conversation(name); | |
853 if (cnv) { | |
854 set_convo_gc(cnv, gc); | |
855 show_typing(cnv); | |
856 } else return; | |
3517 | 857 plugin_event(event_got_typing, gc, name); |
2993 | 858 do_pounce(gc, name, OPT_POUNCE_TYPING); |
859 if (timeout > 0) { | |
860 if (cnv->typing_timeout) | |
861 gtk_timeout_remove (cnv->typing_timeout); | |
862 cnv->typing_timeout = gtk_timeout_add(timeout * 1000,(GtkFunction)reset_typing, | |
863 g_strdup(name)); | |
864 } | |
865 } | |
1 | 866 |
2993 | 867 void serv_got_typing_stopped(struct gaim_connection *gc, char *name) { |
868 struct conversation *c = find_conversation(name); | |
3002 | 869 if (c && c->typing_timeout) { |
2993 | 870 gtk_timeout_remove (c->typing_timeout); |
871 } | |
872 reset_typing(g_strdup(name)); | |
873 } | |
1 | 874 |
875 static void close_invite(GtkWidget *w, GtkWidget *w2) | |
876 { | |
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
877 GList *str = gtk_object_get_user_data(GTK_OBJECT(w2)); |
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
878 GList *tmp = str; |
1723
76e601b77099
[gaim-migrate @ 1733]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
879 |
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
880 while (tmp) { |
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
881 g_free(tmp->data); |
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
882 tmp = tmp->next; |
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
883 } |
1723
76e601b77099
[gaim-migrate @ 1733]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
884 if (str) |
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
885 g_list_free(str); |
1723
76e601b77099
[gaim-migrate @ 1733]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
886 |
1 | 887 gtk_widget_destroy(w2); |
888 } | |
889 | |
890 static void chat_invite_callback(GtkWidget *w, GtkWidget *w2) | |
891 { | |
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
892 struct gaim_connection *g = (struct gaim_connection *) |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
893 gtk_object_get_user_data(GTK_OBJECT(GTK_DIALOG(w2)->vbox)); |
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
894 GList *str, *tmp; |
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
895 |
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
896 str = gtk_object_get_user_data(GTK_OBJECT(w2)); |
1723
76e601b77099
[gaim-migrate @ 1733]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
897 |
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
898 serv_join_chat(g, str); |
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
899 |
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
900 tmp = str; |
1723
76e601b77099
[gaim-migrate @ 1733]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
901 |
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
902 while (tmp) { |
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
903 /* this is either a g_malloc'd char* or g_malloc'd int* */ |
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
904 g_free(tmp->data); |
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
905 tmp = tmp->next; |
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
906 } |
1723
76e601b77099
[gaim-migrate @ 1733]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
907 if (str) |
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
908 g_list_free(str); |
1723
76e601b77099
[gaim-migrate @ 1733]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
909 |
76e601b77099
[gaim-migrate @ 1733]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
910 gtk_widget_destroy(w2); |
1 | 911 } |
912 | |
913 | |
914 | |
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
915 void serv_got_chat_invite(struct gaim_connection *g, char *name, char *who, char *message, GList *data) |
1 | 916 { |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
917 GtkWidget *d; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
918 GtkWidget *label; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
919 GtkWidget *yesbtn; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
920 GtkWidget *nobtn; |
1 | 921 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
922 char buf2[BUF_LONG]; |
1 | 923 |
924 | |
1000
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
925 plugin_event(event_chat_invited, g, who, name, message); |
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
926 |
414
f9dc74875833
[gaim-migrate @ 424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
927 if (message) |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
928 g_snprintf(buf2, sizeof(buf2), "User '%s' invites %s to buddy chat room: '%s'\n%s", who, |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
929 g->username, name, message); |
414
f9dc74875833
[gaim-migrate @ 424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
930 else |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
931 g_snprintf(buf2, sizeof(buf2), "User '%s' invites %s to buddy chat room: '%s'\n", who, |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
932 g->username, name); |
1 | 933 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
934 d = gtk_dialog_new(); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
935 gtk_widget_realize(d); |
1 | 936 |
937 | |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
938 label = gtk_label_new(buf2); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
939 gtk_widget_show(label); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
940 yesbtn = picture_button(d, _("Yes"), ok_xpm); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
941 nobtn = picture_button(d, _("No"), cancel_xpm); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
942 gtk_widget_show(nobtn); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
943 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), label, FALSE, FALSE, 5); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
944 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), yesbtn, FALSE, FALSE, 5); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
945 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), nobtn, FALSE, FALSE, 5); |
1 | 946 |
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
947 gtk_object_set_user_data(GTK_OBJECT(GTK_DIALOG(d)->vbox), g); |
2205
cff4fbe01c7b
[gaim-migrate @ 2215]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
948 gtk_object_set_user_data(GTK_OBJECT(d), data); |
1 | 949 |
950 | |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
951 gtk_window_set_title(GTK_WINDOW(d), "Buddy chat invite"); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
952 gtk_signal_connect(GTK_OBJECT(nobtn), "clicked", GTK_SIGNAL_FUNC(close_invite), d); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
953 gtk_signal_connect(GTK_OBJECT(yesbtn), "clicked", GTK_SIGNAL_FUNC(chat_invite_callback), d); |
1 | 954 |
955 | |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
956 gtk_widget_show(d); |
1 | 957 } |
958 | |
1785
f4ae086c746b
[gaim-migrate @ 1795]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1775
diff
changeset
|
959 struct conversation *serv_got_joined_chat(struct gaim_connection *gc, int id, char *name) |
1 | 960 { |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
961 struct conversation *b; |
1 | 962 |
3517 | 963 plugin_event(event_chat_join, gc, id, name); |
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
964 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
965 b = (struct conversation *)g_new0(struct conversation, 1); |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
966 gc->buddy_chats = g_slist_append(gc->buddy_chats, b); |
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1659
diff
changeset
|
967 chats = g_list_append(chats, b); |
1 | 968 |
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
447
diff
changeset
|
969 b->is_chat = TRUE; |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
970 b->ignored = NULL; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
971 b->in_room = NULL; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
972 b->id = id; |
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
973 b->gc = gc; |
3124 | 974 b->send_history = g_list_append(NULL, NULL); |
1479
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
975 b->history = g_string_new(""); |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
976 g_snprintf(b->name, 80, "%s", name); |
3124 | 977 |
3457 | 978 if ((logging_options & OPT_LOG_CHATS) || find_log_info(b->name)) { |
888 | 979 FILE *fd; |
980 char *filename; | |
981 | |
982 filename = (char *)malloc(100); | |
1212
a487b35ac05a
[gaim-migrate @ 1222]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1191
diff
changeset
|
983 g_snprintf(filename, 100, "%s.chat", b->name); |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
984 |
3457 | 985 fd = open_log_file(filename, b->is_chat); |
1722
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1721
diff
changeset
|
986 if (fd) { |
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1721
diff
changeset
|
987 if (!(logging_options & OPT_LOG_STRIP_HTML)) |
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1721
diff
changeset
|
988 fprintf(fd, |
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1721
diff
changeset
|
989 "<HR><BR><H3 Align=Center> ---- New Conversation @ %s ----</H3><BR>\n", |
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1721
diff
changeset
|
990 full_date()); |
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1721
diff
changeset
|
991 else |
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1721
diff
changeset
|
992 fprintf(fd, "---- New Conversation @ %s ----\n", full_date()); |
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1435
diff
changeset
|
993 |
1722
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1721
diff
changeset
|
994 fclose(fd); |
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1721
diff
changeset
|
995 } |
888 | 996 free(filename); |
997 } | |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
998 |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
999 show_new_buddy_chat(b); |
1785
f4ae086c746b
[gaim-migrate @ 1795]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1775
diff
changeset
|
1000 |
f4ae086c746b
[gaim-migrate @ 1795]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1775
diff
changeset
|
1001 return b; |
1 | 1002 } |
1003 | |
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
1004 void serv_got_chat_left(struct gaim_connection *g, int id) |
1 | 1005 { |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1006 GSList *bcs = g->buddy_chats; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1007 struct conversation *b = NULL; |
1 | 1008 |
1009 | |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1010 while (bcs) { |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1011 b = (struct conversation *)bcs->data; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1012 if (id == b->id) { |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1013 break; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1014 } |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1015 b = NULL; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1016 bcs = bcs->next; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1017 } |
1 | 1018 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1019 if (!b) |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1020 return; |
1 | 1021 |
3517 | 1022 plugin_event(event_chat_leave, g, b->id); |
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
1023 |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1024 debug_printf("Leaving room %s.\n", b->name); |
1 | 1025 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1026 g->buddy_chats = g_slist_remove(g->buddy_chats, b); |
1 | 1027 |
2017
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2001
diff
changeset
|
1028 delete_chat(b); |
1 | 1029 } |
1030 | |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
1031 void serv_got_chat_in(struct gaim_connection *g, int id, char *who, int whisper, char *message, |
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
1032 time_t mtime) |
1 | 1033 { |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1034 int w; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1035 GSList *bcs = g->buddy_chats; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1036 struct conversation *b = NULL; |
2296
878503b60006
[gaim-migrate @ 2306]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1037 char *buf; |
3163 | 1038 char *buffy, *angel; |
1039 int plugin_return; | |
1 | 1040 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1041 while (bcs) { |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1042 b = (struct conversation *)bcs->data; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1043 if (id == b->id) |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1044 break; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1045 bcs = bcs->next; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1046 b = NULL; |
1 | 1047 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1048 } |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1049 if (!b) |
1100
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1089
diff
changeset
|
1050 return; |
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
1051 |
3163 | 1052 |
1053 /* plugin stuff. we pass a char ** but we don't want to pass what's been given us | |
1054 * by the prpls. so we create temp holders and pass those instead. it's basically | |
1055 * just to avoid segfaults. of course, if the data is binary, plugins don't see it. | |
1056 * bitch all you want; i really don't want you to be dealing with it. */ | |
1057 | |
1058 buffy = g_malloc(MAX(strlen(message) + 1, BUF_LONG)); | |
1059 strcpy(buffy, message); | |
1060 angel = g_strdup(who); | |
3517 | 1061 plugin_return = plugin_event(event_chat_recv, g, b->id, &angel, &buffy); |
3163 | 1062 |
1063 if (!buffy || !angel || plugin_return) { | |
1064 if (buffy) | |
1065 g_free(buffy); | |
1066 if (angel) | |
1067 g_free(angel); | |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2359
diff
changeset
|
1068 return; |
3163 | 1069 } |
1070 who = angel; | |
1071 message = buffy; | |
1 | 1072 |
2296
878503b60006
[gaim-migrate @ 2306]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1073 buf = g_malloc(MAX(strlen(message) * 2, 8192)); |
878503b60006
[gaim-migrate @ 2306]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1074 strcpy(buf, message); |
878503b60006
[gaim-migrate @ 2306]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1075 |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2309
diff
changeset
|
1076 if (convo_options & OPT_CONVO_SEND_LINKS) |
2296
878503b60006
[gaim-migrate @ 2306]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1077 linkify_text(buf); |
1643
d7e380618fd5
[gaim-migrate @ 1653]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1587
diff
changeset
|
1078 |
1252
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1079 if (whisper) |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1080 w = WFLAG_WHISPER; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1081 else |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1082 w = 0; |
46c09828e929
[gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1083 |
2296
878503b60006
[gaim-migrate @ 2306]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1084 chat_write(b, who, w, buf, mtime); |
3163 | 1085 g_free(who); |
1086 g_free(message); | |
2296
878503b60006
[gaim-migrate @ 2306]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2289
diff
changeset
|
1087 g_free(buf); |
1 | 1088 } |
2768
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1089 |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1090 static void des_popup(GtkWidget *w, GtkWidget *window) |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1091 { |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1092 if (w == window) { |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1093 char *u = gtk_object_get_user_data(GTK_OBJECT(window)); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1094 g_free(u); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1095 } |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1096 gtk_widget_destroy(window); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1097 } |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1098 |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1099 void serv_got_popup(char *msg, char *u, int wid, int hei) |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1100 { |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1101 GtkWidget *window; |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1102 GtkWidget *vbox; |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1103 GtkWidget *sw; |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1104 GtkWidget *text; |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1105 GtkWidget *hbox; |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1106 GtkWidget *button; |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1107 char *url = g_strdup(u); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1108 |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1109 GAIM_DIALOG(window); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1110 gtk_window_set_wmclass(GTK_WINDOW(window), "popup", "Gaim"); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1111 gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, TRUE); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1112 gtk_window_set_title(GTK_WINDOW(window), "Gaim - Popup"); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1113 gtk_container_set_border_width(GTK_CONTAINER(window), 5); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1114 gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(des_popup), window); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1115 gtk_object_set_user_data(GTK_OBJECT(window), url); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1116 gtk_widget_realize(window); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1117 |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1118 vbox = gtk_vbox_new(FALSE, 5); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1119 gtk_container_add(GTK_CONTAINER(window), vbox); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1120 |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1121 sw = gtk_scrolled_window_new(NULL, NULL); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1122 gtk_widget_set_usize(sw, wid, hei); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1123 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1124 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 5); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1125 |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1126 text = gtk_imhtml_new(NULL, NULL); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1127 gtk_container_add(GTK_CONTAINER(sw), text); |
2906
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
1128 GTK_LAYOUT(text)->hadjustment->step_increment = 10.0; |
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
1129 GTK_LAYOUT(text)->vadjustment->step_increment = 10.0; |
2768
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1130 gaim_setup_imhtml(text); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1131 |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1132 hbox = gtk_hbox_new(FALSE, 5); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1133 gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1134 |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1135 button = picture_button(window, _("Close"), cancel_xpm); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1136 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1137 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(des_popup), window); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1138 |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1139 button = picture_button(window, _("More Info"), tb_search_xpm); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1140 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); |
2827
51999a36c0b1
[gaim-migrate @ 2840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2787
diff
changeset
|
1141 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(open_url), url); |
2768
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1142 |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1143 gtk_widget_show_all(window); |
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1144 |
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
1145 gtk_imhtml_append_text(GTK_IMHTML(text), msg, -1, GTK_IMHTML_NO_NEWLINE); |
2768
8a918df1a5ed
[gaim-migrate @ 2781]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2762
diff
changeset
|
1146 } |