src/conversation.c

Thu, 02 Feb 2006 05:54:51 +0000

author
Richard Laager <rlaager@pidgin.im>
date
Thu, 02 Feb 2006 05:54:51 +0000
changeset 13094
dfbe0dea413b
parent 12902
de9e0cc3feab
child 13107
704041197f4d
permissions
-rw-r--r--

[gaim-migrate @ 15455]
Since we try to discourage use of CVS, let's not talk about it in the segfault message. That line doesn't really provide any useful information to the average user anyway.

66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 /*
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2 * gaim
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3 *
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8015
diff changeset
4 * Gaim is the legal property of its developers, whose names are too numerous
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8015
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8015
diff changeset
6 * source distribution.
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
7 *
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * (at your option) any later version.
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 *
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * GNU General Public License for more details.
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 *
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21 */
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
22 #include "internal.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
23 #include "blist.h"
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
24 #include "conversation.h"
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11137
diff changeset
25 #include "dbus-maybe.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
26 #include "debug.h"
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6846
diff changeset
27 #include "imgstore.h"
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5350
diff changeset
28 #include "notify.h"
5539
a13dd0ba205a [gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents: 5436
diff changeset
29 #include "prefs.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
30 #include "prpl.h"
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
31 #include "signals.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
32 #include "util.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
33
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
34 #define SEND_TYPED_TIMEOUT 5000
4241
d2855049753d [gaim-migrate @ 4491]
Ethan Blanton <elb@pidgin.im>
parents: 4228
diff changeset
35
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
36 static GList *conversations = NULL;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
37 static GList *ims = NULL;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
38 static GList *chats = NULL;
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
39 static GaimConversationUiOps *default_ops = NULL;
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
40
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
41
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
42 void
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
43 gaim_conversations_set_ui_ops(GaimConversationUiOps *ops)
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
44 {
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
45 default_ops = ops;
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
46 }
7602
1b9f55e57af3 [gaim-migrate @ 8225]
Christian Hammond <chipx86@chipx86.com>
parents: 7562
diff changeset
47
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
48 static gboolean
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
49 reset_typing(gpointer data)
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
50 {
6640
007eb21016b4 [gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents: 6637
diff changeset
51 GaimConversation *c = (GaimConversation *)data;
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
52 GaimConvIm *im;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
53
6640
007eb21016b4 [gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents: 6637
diff changeset
54 if (!g_list_find(conversations, c))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
55 return FALSE;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
56
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
57 im = GAIM_CONV_IM(c);
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
58
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
59 gaim_conv_im_set_typing_state(im, GAIM_NOT_TYPING);
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
60 gaim_conv_im_update_typing(im);
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
61 gaim_conv_im_stop_typing_timeout(im);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
62
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
63 return FALSE;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
64 }
3159
15816c95c61c [gaim-migrate @ 3175]
Sean Egan <seanegan@pidgin.im>
parents: 3129
diff changeset
65
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
66 static gboolean
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
67 send_typed(gpointer data)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
68 {
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
69 GaimConversation *conv = (GaimConversation *)data;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
70 GaimConnection *gc;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
71 const char *name;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
72
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
73 gc = gaim_conversation_get_gc(conv);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
74 name = gaim_conversation_get_name(conv);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
75
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
76 if (conv != NULL && gc != NULL && name != NULL) {
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
77 gaim_conv_im_set_type_again(GAIM_CONV_IM(conv), TRUE);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
78
6402
d9015e8d06fd [gaim-migrate @ 6907]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
79 serv_send_typing(gc, name, GAIM_TYPED);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
80
5213
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
81 gaim_debug(GAIM_DEBUG_MISC, "conversation", "typed...\n");
573
a267d68a8240 [gaim-migrate @ 583]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 570
diff changeset
82 }
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
83
2725
a844d0964552 [gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2722
diff changeset
84 return FALSE;
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
85 }
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
86
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
87 static void
11921
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
88 common_send(GaimConversation *conv, const char *message, GaimMessageFlags msgflags)
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3789
diff changeset
89 {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
90 GaimConversationType type;
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
91 GaimAccount *account;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
92 GaimConnection *gc;
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
93 GaimConversationUiOps *ops;
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
94 char *displayed = NULL, *sent = NULL;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
95 int plugin_return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
96 int err = 0;
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3789
diff changeset
97
7947
76de4859a53a [gaim-migrate @ 8621]
Mark Doliner <markdoliner@pidgin.im>
parents: 7930
diff changeset
98 if (strlen(message) == 0)
76de4859a53a [gaim-migrate @ 8621]
Mark Doliner <markdoliner@pidgin.im>
parents: 7930
diff changeset
99 return;
76de4859a53a [gaim-migrate @ 8621]
Mark Doliner <markdoliner@pidgin.im>
parents: 7930
diff changeset
100
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
101 account = gaim_conversation_get_account(conv);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
102 gc = gaim_conversation_get_gc(conv);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
103
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
104 g_return_if_fail(account != NULL);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
105 g_return_if_fail(gc != NULL);
3731
1bc8fa617c7d [gaim-migrate @ 3869]
Nathan Walp <nwalp@pidgin.im>
parents: 3716
diff changeset
106
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
107 type = gaim_conversation_get_type(conv);
4465
43184ae252ed [gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents: 4425
diff changeset
108 ops = gaim_conversation_get_ui_ops(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
109
12901
85ddd02a44d1 [gaim-migrate @ 15254]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12867
diff changeset
110 /* Always linkfy the text for display */
85ddd02a44d1 [gaim-migrate @ 15254]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12867
diff changeset
111 displayed = gaim_markup_linkify(message);
85ddd02a44d1 [gaim-migrate @ 15254]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12867
diff changeset
112
11921
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
113 if ((conv->features & GAIM_CONNECTION_HTML) &&
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
114 !(msgflags & GAIM_MESSAGE_RAW))
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
115 {
12901
85ddd02a44d1 [gaim-migrate @ 15254]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12867
diff changeset
116 sent = g_strdup(displayed);
11921
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
117 }
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5103
diff changeset
118 else
12901
85ddd02a44d1 [gaim-migrate @ 15254]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12867
diff changeset
119 sent = g_strdup(message);
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5103
diff changeset
120
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
121 plugin_return =
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
122 GPOINTER_TO_INT(gaim_signal_emit_return_1(
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
123 gaim_conversations_get_handle(),
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
124 (type == GAIM_CONV_TYPE_IM ? "writing-im-msg" : "writing-chat-msg"),
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
125 account, conv, &displayed));
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
126
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
127 if (displayed == NULL)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
128 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
129
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
130 if (plugin_return) {
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
131 g_free(displayed);
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
132 return;
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
133 }
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
134
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
135 gaim_signal_emit(gaim_conversations_get_handle(),
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
136 (type == GAIM_CONV_TYPE_IM ? "wrote-im-msg" : "wrote-chat-msg"),
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
137 account, conv, displayed);
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
138
12216
d80739091a63 [gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12018
diff changeset
139 msgflags |= GAIM_MESSAGE_SEND;
d80739091a63 [gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12018
diff changeset
140
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
141 if (type == GAIM_CONV_TYPE_IM) {
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
142 GaimConvIm *im = GAIM_CONV_IM(conv);
2102
2d024ad2e07b [gaim-migrate @ 2112]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2094
diff changeset
143
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
144 gaim_signal_emit(gaim_conversations_get_handle(), "sending-im-msg",
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
145 account,
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
146 gaim_conversation_get_name(conv), &sent);
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
147
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
148 if (sent != NULL && sent[0] != '\0') {
12216
d80739091a63 [gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12018
diff changeset
149
d80739091a63 [gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12018
diff changeset
150 err = serv_send_im(gc, gaim_conversation_get_name(conv),
d80739091a63 [gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12018
diff changeset
151 sent, msgflags);
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6846
diff changeset
152
8078
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
153 if ((err > 0) && (displayed != NULL))
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
154 gaim_conv_im_write(im, NULL, displayed, msgflags, time(NULL));
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6846
diff changeset
155
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
156 gaim_signal_emit(gaim_conversations_get_handle(), "sent-im-msg",
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
157 account,
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
158 gaim_conversation_get_name(conv), sent);
2102
2d024ad2e07b [gaim-migrate @ 2112]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2094
diff changeset
159 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
160 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
161 else {
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
162 gaim_signal_emit(gaim_conversations_get_handle(), "sending-chat-msg",
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
163 account, &sent,
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
164 gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv)));
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
165
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
166 if (sent != NULL && sent[0] != '\0') {
12216
d80739091a63 [gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12018
diff changeset
167 err = serv_chat_send(gc, gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv)), sent, msgflags);
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
168
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
169 gaim_signal_emit(gaim_conversations_get_handle(), "sent-chat-msg",
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
170 account, sent,
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
171 gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv)));
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
172 }
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
173 }
1253
f02697a6aada [gaim-migrate @ 1263]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
174
2123
4cfdde0aa3f1 [gaim-migrate @ 2133]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2111
diff changeset
175 if (err < 0) {
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
176 const char *who;
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
177 char *msg;
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
178
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
179 who = gaim_conversation_get_name(conv);
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
180
5213
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
181 if (err == -E2BIG) {
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
182 msg = _("Unable to send message: The message is too large.");
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
183
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
184 if (!gaim_conv_present_error(who, account, msg)) {
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
185 msg = g_strdup_printf(_("Unable to send message to %s."), who);
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
186 gaim_notify_error(gc, NULL, msg, _("The message is too large."));
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
187 g_free(msg);
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
188 }
5213
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
189 }
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
190 else if (err == -ENOTCONN) {
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
191 gaim_debug(GAIM_DEBUG_ERROR, "conversation",
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
192 "Not yet connected.\n");
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
193 }
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
194 else {
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
195 msg = _("Unable to send message.");
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
196
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
197 if (!gaim_conv_present_error(who, account, msg)) {
10962
c0ed281c0422 [gaim-migrate @ 12765]
Gary Kramlich <grim@reaperworld.com>
parents: 10958
diff changeset
198 msg = g_strdup_printf(_("Unable to send message to %s."), who);
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
199 gaim_notify_error(gc, NULL, msg, NULL);
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
200 g_free(msg);
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
201 }
5213
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
202 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
203 }
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
204
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
205 g_free(displayed);
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
206 g_free(sent);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
207 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
208
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
209 static void
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
210 open_log(GaimConversation *conv)
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
211 {
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
212 conv->logs = g_list_append(NULL, gaim_log_new(conv->type == GAIM_CONV_TYPE_CHAT ? GAIM_LOG_CHAT :
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
213 GAIM_LOG_IM, conv->name, conv->account,
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
214 conv, time(NULL)));
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
215 }
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
216
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
217
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
218 /**************************************************************************
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
219 * Conversation API
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
220 **************************************************************************/
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
221 static void
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
222 gaim_conversation_chat_cleanup_for_rejoin(GaimConversation *conv)
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
223 {
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
224 const char *disp;
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
225 GaimAccount *account;
8373
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
226 GaimConnection *gc;
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
227
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
228 account = gaim_conversation_get_account(conv);
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
229
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
230 gaim_conversation_close_logs(conv);
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
231 open_log(conv);
8373
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
232
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
233 gc = gaim_account_get_connection(account);
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
234
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
235 if ((disp = gaim_connection_get_display_name(gc)) != NULL)
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
236 gaim_conv_chat_set_nick(GAIM_CONV_CHAT(conv), disp);
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
237 else
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
238 {
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
239 gaim_conv_chat_set_nick(GAIM_CONV_CHAT(conv),
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
240 gaim_account_get_username(account));
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
241 }
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
242
8373
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
243 gaim_conv_chat_clear_users(GAIM_CONV_CHAT(conv));
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
244 gaim_conv_chat_set_topic(GAIM_CONV_CHAT(conv), NULL, NULL);
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
245 GAIM_CONV_CHAT(conv)->left = FALSE;
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
246
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
247 gaim_conversation_update(conv, GAIM_CONV_UPDATE_CHATLEFT);
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
248 }
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
249
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
250 GaimConversation *
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
251 gaim_conversation_new(GaimConversationType type, GaimAccount *account,
4476
bf88170ba269 [gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents: 4471
diff changeset
252 const char *name)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
253 {
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
254 GaimConversation *conv;
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
255 GaimConnection *gc;
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
256 GaimConversationUiOps *ops;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
257
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
258 g_return_val_if_fail(type != GAIM_CONV_TYPE_UNKNOWN, NULL);
7088
0920bc6160ae [gaim-migrate @ 7653]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
259 g_return_val_if_fail(account != NULL, NULL);
0920bc6160ae [gaim-migrate @ 7653]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
260 g_return_val_if_fail(name != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
261
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
262 /* Check if this conversation already exists. */
10246
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10132
diff changeset
263 if ((conv = gaim_find_conversation_with_account(type, name, account)) != NULL)
8271
a79531291e7f [gaim-migrate @ 8995]
Christian Hammond <chipx86@chipx86.com>
parents: 8256
diff changeset
264 {
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
265 if (gaim_conversation_get_type(conv) != GAIM_CONV_TYPE_CHAT ||
8271
a79531291e7f [gaim-migrate @ 8995]
Christian Hammond <chipx86@chipx86.com>
parents: 8256
diff changeset
266 gaim_conv_chat_has_left(GAIM_CONV_CHAT(conv)))
a79531291e7f [gaim-migrate @ 8995]
Christian Hammond <chipx86@chipx86.com>
parents: 8256
diff changeset
267 {
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
268 if (gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_CHAT)
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
269 gaim_conversation_chat_cleanup_for_rejoin(conv);
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
270
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
271 return conv;
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
272 }
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
273 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
274
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
275 gc = gaim_account_get_connection(account);
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
276 g_return_val_if_fail(gc != NULL, NULL);
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
277
6402
d9015e8d06fd [gaim-migrate @ 6907]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
278 conv = g_new0(GaimConversation, 1);
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11137
diff changeset
279 GAIM_DBUS_REGISTER_POINTER(conv, GaimConversation);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
280
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
281 conv->type = type;
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
282 conv->account = account;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
283 conv->name = g_strdup(name);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
284 conv->title = g_strdup(name);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
285 conv->send_history = g_list_append(NULL, NULL);
5139
24c56d94ed79 [gaim-migrate @ 5503]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
286 conv->data = g_hash_table_new_full(g_str_hash, g_str_equal,
4876
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
287 g_free, NULL);
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
288 /* copy features from the connection. */
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
289 conv->features = gc->flags;
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
290
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
291 if (type == GAIM_CONV_TYPE_IM)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
292 {
9324
dfa7e7d6fb06 [gaim-migrate @ 10132]
Tim Ringenbach <marv@pidgin.im>
parents: 9261
diff changeset
293 GaimBuddyIcon *icon;
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
294 conv->u.im = g_new0(GaimConvIm, 1);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
295 conv->u.im->conv = conv;
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11137
diff changeset
296 GAIM_DBUS_REGISTER_POINTER(conv->u.im, GaimConvIm);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
297
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
298 ims = g_list_append(ims, conv);
9324
dfa7e7d6fb06 [gaim-migrate @ 10132]
Tim Ringenbach <marv@pidgin.im>
parents: 9261
diff changeset
299 if ((icon = gaim_buddy_icons_find(account, name)))
dfa7e7d6fb06 [gaim-migrate @ 10132]
Tim Ringenbach <marv@pidgin.im>
parents: 9261
diff changeset
300 gaim_conv_im_set_icon(conv->u.im, icon);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
301
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
302 if (gaim_prefs_get_bool("/core/logging/log_ims"))
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
303 {
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
304 gaim_conversation_set_logging(conv, TRUE);
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
305 open_log(conv);
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
306 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
307 }
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
308 else if (type == GAIM_CONV_TYPE_CHAT)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
309 {
8158
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
310 const char *disp;
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
311
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
312 conv->u.chat = g_new0(GaimConvChat, 1);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
313 conv->u.chat->conv = conv;
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11137
diff changeset
314 GAIM_DBUS_REGISTER_POINTER(conv->u.chat, GaimConvChat);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
315
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
316 chats = g_list_append(chats, conv);
8271
a79531291e7f [gaim-migrate @ 8995]
Christian Hammond <chipx86@chipx86.com>
parents: 8256
diff changeset
317
a79531291e7f [gaim-migrate @ 8995]
Christian Hammond <chipx86@chipx86.com>
parents: 8256
diff changeset
318 if ((disp = gaim_connection_get_display_name(account->gc)))
8158
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
319 gaim_conv_chat_set_nick(conv->u.chat, disp);
8271
a79531291e7f [gaim-migrate @ 8995]
Christian Hammond <chipx86@chipx86.com>
parents: 8256
diff changeset
320 else
a79531291e7f [gaim-migrate @ 8995]
Christian Hammond <chipx86@chipx86.com>
parents: 8256
diff changeset
321 gaim_conv_chat_set_nick(conv->u.chat,
a79531291e7f [gaim-migrate @ 8995]
Christian Hammond <chipx86@chipx86.com>
parents: 8256
diff changeset
322 gaim_account_get_username(account));
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
323
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
324 if (gaim_prefs_get_bool("/core/logging/log_chats"))
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
325 {
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
326 gaim_conversation_set_logging(conv, TRUE);
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
327 open_log(conv);
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
328 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
329 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
330
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
331 conversations = g_list_append(conversations, conv);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
332
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
333 /* Auto-set the title. */
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
334 gaim_conversation_autoset_title(conv);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
335
11602
bcbd0c5543ec [gaim-migrate @ 13873]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11598
diff changeset
336 /* Don't move this.. it needs to be one of the last things done otherwise
bcbd0c5543ec [gaim-migrate @ 13873]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11598
diff changeset
337 * it causes mysterious crashes on my system.
bcbd0c5543ec [gaim-migrate @ 13873]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11598
diff changeset
338 * -- Gary
bcbd0c5543ec [gaim-migrate @ 13873]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11598
diff changeset
339 */
bcbd0c5543ec [gaim-migrate @ 13873]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11598
diff changeset
340 ops = conv->ui_ops = default_ops;
bcbd0c5543ec [gaim-migrate @ 13873]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11598
diff changeset
341 if (ops != NULL && ops->create_conversation != NULL)
bcbd0c5543ec [gaim-migrate @ 13873]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11598
diff changeset
342 ops->create_conversation(conv);
bcbd0c5543ec [gaim-migrate @ 13873]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11598
diff changeset
343
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
344 gaim_signal_emit(gaim_conversations_get_handle(),
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
345 "conversation-created", conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
346
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
347 return conv;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
348 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
349
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
350 void
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
351 gaim_conversation_destroy(GaimConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
352 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5139
diff changeset
353 GaimPluginProtocolInfo *prpl_info = NULL;
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
354 GaimConversationUiOps *ops;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
355 GaimConnection *gc;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
356 const char *name;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
357 GList *node;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
358
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
359 g_return_if_fail(conv != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
360
4465
43184ae252ed [gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents: 4425
diff changeset
361 ops = gaim_conversation_get_ui_ops(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
362 gc = gaim_conversation_get_gc(conv);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
363 name = gaim_conversation_get_name(conv);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
364
8373
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
365 if (gc != NULL)
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
366 {
5262
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
367 /* Still connected */
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
368 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
369
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
370 if (gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_IM)
8373
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
371 {
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
372 if (gaim_prefs_get_bool("/core/conversations/im/send_typing"))
6403
9b2428783d7c [gaim-migrate @ 6908]
Christian Hammond <chipx86@chipx86.com>
parents: 6402
diff changeset
373 serv_send_typing(gc, name, GAIM_NOT_TYPING);
5262
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
374
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
375 if (gc && prpl_info->convo_closed != NULL)
6403
9b2428783d7c [gaim-migrate @ 6908]
Christian Hammond <chipx86@chipx86.com>
parents: 6402
diff changeset
376 prpl_info->convo_closed(gc, name);
5262
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
377 }
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
378 else if (gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_CHAT)
8373
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
379 {
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
380 int chat_id = gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv));
8271
a79531291e7f [gaim-migrate @ 8995]
Christian Hammond <chipx86@chipx86.com>
parents: 8256
diff changeset
381 #if 0
5262
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
382 /*
6030
0e20bf585317 [gaim-migrate @ 6480]
Christian Hammond <chipx86@chipx86.com>
parents: 6020
diff changeset
383 * This is unfortunately necessary, because calling
0e20bf585317 [gaim-migrate @ 6480]
Christian Hammond <chipx86@chipx86.com>
parents: 6020
diff changeset
384 * serv_chat_leave() calls this gaim_conversation_destroy(),
0e20bf585317 [gaim-migrate @ 6480]
Christian Hammond <chipx86@chipx86.com>
parents: 6020
diff changeset
385 * which leads to two calls here.. We can't just return after
0e20bf585317 [gaim-migrate @ 6480]
Christian Hammond <chipx86@chipx86.com>
parents: 6020
diff changeset
386 * this, because then it'll return on the next pass. So, since
0e20bf585317 [gaim-migrate @ 6480]
Christian Hammond <chipx86@chipx86.com>
parents: 6020
diff changeset
387 * serv_got_chat_left(), which is eventually called from the
0e20bf585317 [gaim-migrate @ 6480]
Christian Hammond <chipx86@chipx86.com>
parents: 6020
diff changeset
388 * prpl that serv_chat_leave() calls, removes this conversation
0e20bf585317 [gaim-migrate @ 6480]
Christian Hammond <chipx86@chipx86.com>
parents: 6020
diff changeset
389 * from the gc's buddy_chats list, we're going to check to see
0e20bf585317 [gaim-migrate @ 6480]
Christian Hammond <chipx86@chipx86.com>
parents: 6020
diff changeset
390 * if this exists in the list. If so, we want to return after
0e20bf585317 [gaim-migrate @ 6480]
Christian Hammond <chipx86@chipx86.com>
parents: 6020
diff changeset
391 * calling this, because it'll be called again. If not, fall
0e20bf585317 [gaim-migrate @ 6480]
Christian Hammond <chipx86@chipx86.com>
parents: 6020
diff changeset
392 * through, because it'll have already been removed, and we'd
5262
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
393 * be on the 2nd pass.
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
394 *
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
395 * Long paragraph. <-- Short sentence.
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
396 *
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
397 * -- ChipX86
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
398 */
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
399
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
400 if (gc && g_slist_find(gc->buddy_chats, conv) != NULL) {
8373
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
401 serv_chat_leave(gc, chat_id);
5262
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
402
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
403 return;
2e879b7de7fd [gaim-migrate @ 5634]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents: 5213
diff changeset
404 }
8271
a79531291e7f [gaim-migrate @ 8995]
Christian Hammond <chipx86@chipx86.com>
parents: 8256
diff changeset
405 #endif
8373
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
406 /*
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
407 * Instead of all of that, lets just close the window when
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
408 * the user tells us to, and let the prpl deal with the
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
409 * internals on it's own time. Don't do this if the prpl already
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
410 * knows it left the chat.
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
411 */
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
412 if (!gaim_conv_chat_has_left(GAIM_CONV_CHAT(conv)))
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
413 serv_chat_leave(gc, chat_id);
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
414
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
415 /*
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
416 * If they didn't call serv_got_chat_left by now, it's too late.
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
417 * So we better do it for them before we destroy the thing.
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
418 */
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
419 if (!gaim_conv_chat_has_left(GAIM_CONV_CHAT(conv)))
c71b30120b54 [gaim-migrate @ 9100]
Tim Ringenbach <marv@pidgin.im>
parents: 8348
diff changeset
420 serv_got_chat_left(gc, chat_id);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
421 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
422 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
423
12018
60a434403f7e [gaim-migrate @ 14311]
Casey Harkins <charkins@pidgin.im>
parents: 11921
diff changeset
424 /* remove from conversations and im/chats lists prior to emit */
60a434403f7e [gaim-migrate @ 14311]
Casey Harkins <charkins@pidgin.im>
parents: 11921
diff changeset
425 conversations = g_list_remove(conversations, conv);
60a434403f7e [gaim-migrate @ 14311]
Casey Harkins <charkins@pidgin.im>
parents: 11921
diff changeset
426
60a434403f7e [gaim-migrate @ 14311]
Casey Harkins <charkins@pidgin.im>
parents: 11921
diff changeset
427 if(conv->type==GAIM_CONV_TYPE_IM)
60a434403f7e [gaim-migrate @ 14311]
Casey Harkins <charkins@pidgin.im>
parents: 11921
diff changeset
428 ims = g_list_remove(ims, conv);
60a434403f7e [gaim-migrate @ 14311]
Casey Harkins <charkins@pidgin.im>
parents: 11921
diff changeset
429 else if(conv->type==GAIM_CONV_TYPE_CHAT)
60a434403f7e [gaim-migrate @ 14311]
Casey Harkins <charkins@pidgin.im>
parents: 11921
diff changeset
430 chats = g_list_remove(chats, conv);
60a434403f7e [gaim-migrate @ 14311]
Casey Harkins <charkins@pidgin.im>
parents: 11921
diff changeset
431
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
432 gaim_signal_emit(gaim_conversations_get_handle(),
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
433 "deleting-conversation", conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
434
11606
c291435cd3f8 [gaim-migrate @ 13877]
Tim Ringenbach <marv@pidgin.im>
parents: 11602
diff changeset
435 g_free(conv->name);
c291435cd3f8 [gaim-migrate @ 13877]
Tim Ringenbach <marv@pidgin.im>
parents: 11602
diff changeset
436 g_free(conv->title);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
437
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
438 conv->name = NULL;
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
439 conv->title = NULL;
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
440
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
441 for (node = g_list_first(conv->send_history);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
442 node != NULL;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
443 node = g_list_next(node)) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
444
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
445 if (node->data != NULL)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
446 g_free(node->data);
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
447 node->data = NULL;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
448 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
449
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
450 g_list_free(g_list_first(conv->send_history));
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
451
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
452 if (conv->type == GAIM_CONV_TYPE_IM) {
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
453 gaim_conv_im_stop_typing_timeout(conv->u.im);
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
454 gaim_conv_im_stop_type_again_timeout(conv->u.im);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
455
6846
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
456 if (conv->u.im->icon != NULL)
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
457 gaim_buddy_icon_unref(conv->u.im->icon);
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
458 conv->u.im->icon = NULL;
6846
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
459
11171
a25653d60f9c [gaim-migrate @ 13272]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11146
diff changeset
460 GAIM_DBUS_UNREGISTER_POINTER(conv->u.im);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
461 g_free(conv->u.im);
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
462 conv->u.im = NULL;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
463 }
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
464 else if (conv->type == GAIM_CONV_TYPE_CHAT) {
4572
c6dfc8e14233 [gaim-migrate @ 4853]
Christian Hammond <chipx86@chipx86.com>
parents: 4522
diff changeset
465
c6dfc8e14233 [gaim-migrate @ 4853]
Christian Hammond <chipx86@chipx86.com>
parents: 4522
diff changeset
466 for (node = conv->u.chat->in_room; node != NULL; node = node->next) {
c6dfc8e14233 [gaim-migrate @ 4853]
Christian Hammond <chipx86@chipx86.com>
parents: 4522
diff changeset
467 if (node->data != NULL)
10504
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10385
diff changeset
468 gaim_conv_chat_cb_destroy((GaimConvChatBuddy *)node->data);
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
469 node->data = NULL;
4572
c6dfc8e14233 [gaim-migrate @ 4853]
Christian Hammond <chipx86@chipx86.com>
parents: 4522
diff changeset
470 }
c6dfc8e14233 [gaim-migrate @ 4853]
Christian Hammond <chipx86@chipx86.com>
parents: 4522
diff changeset
471
c6dfc8e14233 [gaim-migrate @ 4853]
Christian Hammond <chipx86@chipx86.com>
parents: 4522
diff changeset
472 for (node = conv->u.chat->ignored; node != NULL; node = node->next) {
c6dfc8e14233 [gaim-migrate @ 4853]
Christian Hammond <chipx86@chipx86.com>
parents: 4522
diff changeset
473 if (node->data != NULL)
c6dfc8e14233 [gaim-migrate @ 4853]
Christian Hammond <chipx86@chipx86.com>
parents: 4522
diff changeset
474 g_free(node->data);
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
475 node->data = NULL;
4572
c6dfc8e14233 [gaim-migrate @ 4853]
Christian Hammond <chipx86@chipx86.com>
parents: 4522
diff changeset
476 }
c6dfc8e14233 [gaim-migrate @ 4853]
Christian Hammond <chipx86@chipx86.com>
parents: 4522
diff changeset
477
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
478 g_list_free(conv->u.chat->in_room);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
479 g_list_free(conv->u.chat->ignored);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
480
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
481 conv->u.chat->in_room = NULL;
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
482 conv->u.chat->ignored = NULL;
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
483
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
484 if (conv->u.chat->who != NULL)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
485 g_free(conv->u.chat->who);
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
486 conv->u.chat->who = NULL;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
487
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
488 if (conv->u.chat->topic != NULL)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
489 g_free(conv->u.chat->topic);
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
490 conv->u.chat->topic = NULL;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
491
10504
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10385
diff changeset
492 if(conv->u.chat->nick)
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10385
diff changeset
493 g_free(conv->u.chat->nick);
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10385
diff changeset
494
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11137
diff changeset
495 GAIM_DBUS_UNREGISTER_POINTER(conv->u.chat);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
496 g_free(conv->u.chat);
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
497 conv->u.chat = NULL;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
498 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
499
4877
7d1f4381fed0 [gaim-migrate @ 5207]
Christian Hammond <chipx86@chipx86.com>
parents: 4876
diff changeset
500 g_hash_table_destroy(conv->data);
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
501 conv->data = NULL;
4876
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
502
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
503 if (ops != NULL && ops->destroy_conversation != NULL)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
504 ops->destroy_conversation(conv);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
505
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
506 gaim_conversation_close_logs(conv);
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
507
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11137
diff changeset
508 GAIM_DBUS_UNREGISTER_POINTER(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
509 g_free(conv);
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
510 conv = NULL;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
511 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
512
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
513
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
514 void
12624
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
515 gaim_conversation_present(GaimConversation *conv) {
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
516 GaimConversationUiOps *ops;
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
517
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
518 g_return_if_fail(conv != NULL);
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
519
12629
14aae7d5da6b [gaim-migrate @ 14965]
Richard Laager <rlaager@pidgin.im>
parents: 12624
diff changeset
520 ops = gaim_conversation_get_ui_ops(conv);
12624
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
521 if(ops && ops->present)
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
522 ops->present(conv);
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
523 }
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
524
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
525
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
526 void
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
527 gaim_conversation_set_features(GaimConversation *conv, GaimConnectionFlags features)
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
528 {
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
529 g_return_if_fail(conv != NULL);
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
530
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
531 conv->features = features;
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
532
11671
111f7a038989 [gaim-migrate @ 13957]
Luke Schierer <lschiere@pidgin.im>
parents: 11669
diff changeset
533 gaim_conversation_update(conv, GAIM_CONV_UPDATE_FEATURES);
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
534 }
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
535
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
536
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
537 GaimConnectionFlags
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
538 gaim_conversation_get_features(GaimConversation *conv)
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
539 {
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
540 g_return_val_if_fail(conv != NULL, 0);
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
541 return conv->features;
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
542 }
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
543
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
544
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
545 GaimConversationType
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
546 gaim_conversation_get_type(const GaimConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
547 {
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
548 g_return_val_if_fail(conv != NULL, GAIM_CONV_TYPE_UNKNOWN);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
549
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
550 return conv->type;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
551 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
552
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
553 void
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
554 gaim_conversation_set_ui_ops(GaimConversation *conv,
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
555 GaimConversationUiOps *ops)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
556 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
557 g_return_if_fail(conv != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
558
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
559 if (conv->ui_ops == ops)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
560 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
561
4465
43184ae252ed [gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents: 4425
diff changeset
562 if (conv->ui_ops != NULL && conv->ui_ops->destroy_conversation != NULL)
43184ae252ed [gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents: 4425
diff changeset
563 conv->ui_ops->destroy_conversation(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
564
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
565 conv->ui_data = NULL;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
566
4465
43184ae252ed [gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents: 4425
diff changeset
567 conv->ui_ops = ops;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
568 }
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
569
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
570 GaimConversationUiOps *
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
571 gaim_conversation_get_ui_ops(const GaimConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
572 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
573 g_return_val_if_fail(conv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
574
4465
43184ae252ed [gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents: 4425
diff changeset
575 return conv->ui_ops;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
576 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
577
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
578 void
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
579 gaim_conversation_set_account(GaimConversation *conv, GaimAccount *account)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
580 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
581 g_return_if_fail(conv != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
582
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
583 if (account == gaim_conversation_get_account(conv))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
584 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
585
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
586 conv->account = account;
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
587
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
588 gaim_conversation_update(conv, GAIM_CONV_UPDATE_ACCOUNT);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
589 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
590
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
591 GaimAccount *
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
592 gaim_conversation_get_account(const GaimConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
593 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
594 g_return_val_if_fail(conv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
595
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
596 return conv->account;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
597 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
598
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
599 GaimConnection *
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
600 gaim_conversation_get_gc(const GaimConversation *conv)
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
601 {
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
602 GaimAccount *account;
4425
b2ccc08ed727 [gaim-migrate @ 4700]
Christian Hammond <chipx86@chipx86.com>
parents: 4415
diff changeset
603
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
604 g_return_val_if_fail(conv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
605
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
606 account = gaim_conversation_get_account(conv);
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
607
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
608 if (account == NULL)
4425
b2ccc08ed727 [gaim-migrate @ 4700]
Christian Hammond <chipx86@chipx86.com>
parents: 4415
diff changeset
609 return NULL;
b2ccc08ed727 [gaim-migrate @ 4700]
Christian Hammond <chipx86@chipx86.com>
parents: 4415
diff changeset
610
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
611 return account->gc;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
612 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
613
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
614 void
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
615 gaim_conversation_set_title(GaimConversation *conv, const char *title)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
616 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
617 g_return_if_fail(conv != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
618 g_return_if_fail(title != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
619
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
620 if (conv->title != NULL)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
621 g_free(conv->title);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
622
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
623 conv->title = g_strdup(title);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
624
11671
111f7a038989 [gaim-migrate @ 13957]
Luke Schierer <lschiere@pidgin.im>
parents: 11669
diff changeset
625 gaim_conversation_update(conv, GAIM_CONV_UPDATE_TITLE);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
626 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
627
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
628 const char *
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
629 gaim_conversation_get_title(const GaimConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
630 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
631 g_return_val_if_fail(conv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
632
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
633 return conv->title;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
634 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
635
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
636 void
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
637 gaim_conversation_autoset_title(GaimConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
638 {
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
639 GaimAccount *account;
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6640
diff changeset
640 GaimBuddy *b;
8015
52c74f82aff3 [gaim-migrate @ 8695]
Nathan Walp <nwalp@pidgin.im>
parents: 7947
diff changeset
641 GaimChat *chat;
52c74f82aff3 [gaim-migrate @ 8695]
Nathan Walp <nwalp@pidgin.im>
parents: 7947
diff changeset
642 const char *text = NULL, *name;
3799
1a53373deee6 [gaim-migrate @ 3941]
Nathan Walp <nwalp@pidgin.im>
parents: 3790
diff changeset
643
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
644 g_return_if_fail(conv != NULL);
2267
9704c0f60689 [gaim-migrate @ 2277]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2264
diff changeset
645
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
646 account = gaim_conversation_get_account(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
647 name = gaim_conversation_get_name(conv);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
648
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
649 if(gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_IM) {
10364
5d00600a2fe9 [gaim-migrate @ 11582]
Sean Egan <seanegan@pidgin.im>
parents: 10349
diff changeset
650 if(account && ((b = gaim_find_buddy(account, name)) != NULL))
12313
c3798631184f [gaim-migrate @ 14617]
Christopher O'Brien <siege@pidgin.im>
parents: 12216
diff changeset
651 text = gaim_buddy_get_contact_alias(b);
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
652 } else if(gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_CHAT) {
10364
5d00600a2fe9 [gaim-migrate @ 11582]
Sean Egan <seanegan@pidgin.im>
parents: 10349
diff changeset
653 if(account && ((chat = gaim_blist_find_chat(account, name)) != NULL))
5d00600a2fe9 [gaim-migrate @ 11582]
Sean Egan <seanegan@pidgin.im>
parents: 10349
diff changeset
654 text = chat->alias;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
655 }
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
656
8015
52c74f82aff3 [gaim-migrate @ 8695]
Nathan Walp <nwalp@pidgin.im>
parents: 7947
diff changeset
657
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
658 if(text == NULL)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
659 text = name;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
660
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
661 gaim_conversation_set_title(conv, text);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
662 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
663
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
664 void
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
665 gaim_conversation_foreach(void (*func)(GaimConversation *conv))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
666 {
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
667 GaimConversation *conv;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
668 GList *l;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
669
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
670 g_return_if_fail(func != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
671
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
672 for (l = gaim_get_conversations(); l != NULL; l = l->next) {
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
673 conv = (GaimConversation *)l->data;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
674
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
675 func(conv);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
676 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
677 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
678
7256
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
679 void
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
680 gaim_conversation_set_name(GaimConversation *conv, const char *name)
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
681 {
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
682 g_return_if_fail(conv != NULL);
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
683
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
684 if (conv->name != NULL)
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
685 g_free(conv->name);
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
686
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
687 conv->name = (name == NULL ? NULL : g_strdup(name));
7257
599b8494e6ee [gaim-migrate @ 7834]
Christian Hammond <chipx86@chipx86.com>
parents: 7256
diff changeset
688
599b8494e6ee [gaim-migrate @ 7834]
Christian Hammond <chipx86@chipx86.com>
parents: 7256
diff changeset
689 gaim_conversation_autoset_title(conv);
7256
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
690 }
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
691
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
692 const char *
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
693 gaim_conversation_get_name(const GaimConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
694 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
695 g_return_val_if_fail(conv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
696
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
697 return conv->name;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
698 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
699
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
700 void
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
701 gaim_conversation_set_logging(GaimConversation *conv, gboolean log)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
702 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
703 g_return_if_fail(conv != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
704
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
705 if (conv->logging != log)
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
706 {
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
707 conv->logging = log;
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
708 gaim_conversation_update(conv, GAIM_CONV_UPDATE_LOGGING);
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
709 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
710 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
711
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
712 gboolean
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
713 gaim_conversation_is_logging(const GaimConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
714 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
715 g_return_val_if_fail(conv != NULL, FALSE);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
716
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
717 return conv->logging;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
718 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
719
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
720 void
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
721 gaim_conversation_close_logs(GaimConversation *conv)
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
722 {
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
723 g_return_if_fail(conv != NULL);
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
724
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
725 g_list_foreach(conv->logs, (GFunc)gaim_log_free, NULL);
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
726 g_list_free(conv->logs);
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
727 conv->logs = NULL;
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
728 }
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
729
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
730 GList *
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
731 gaim_conversation_get_send_history(const GaimConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
732 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
733 g_return_val_if_fail(conv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
734
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
735 return conv->send_history;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
736 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
737
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
738 GaimConvIm *
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
739 gaim_conversation_get_im_data(const GaimConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
740 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
741 g_return_val_if_fail(conv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
742
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
743 if (gaim_conversation_get_type(conv) != GAIM_CONV_TYPE_IM)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
744 return NULL;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
745
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
746 return conv->u.im;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
747 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
748
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
749 GaimConvChat *
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
750 gaim_conversation_get_chat_data(const GaimConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
751 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
752 g_return_val_if_fail(conv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
753
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
754 if (gaim_conversation_get_type(conv) != GAIM_CONV_TYPE_CHAT)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
755 return NULL;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
756
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
757 return conv->u.chat;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
758 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
759
4876
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
760 void
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
761 gaim_conversation_set_data(GaimConversation *conv, const char *key,
4877
7d1f4381fed0 [gaim-migrate @ 5207]
Christian Hammond <chipx86@chipx86.com>
parents: 4876
diff changeset
762 gpointer data)
4876
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
763 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
764 g_return_if_fail(conv != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
765 g_return_if_fail(key != NULL);
4876
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
766
4877
7d1f4381fed0 [gaim-migrate @ 5207]
Christian Hammond <chipx86@chipx86.com>
parents: 4876
diff changeset
767 g_hash_table_replace(conv->data, g_strdup(key), data);
4876
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
768 }
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
769
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
770 gpointer
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
771 gaim_conversation_get_data(GaimConversation *conv, const char *key)
4876
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
772 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
773 g_return_val_if_fail(conv != NULL, NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
774 g_return_val_if_fail(key != NULL, NULL);
4876
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
775
4877
7d1f4381fed0 [gaim-migrate @ 5207]
Christian Hammond <chipx86@chipx86.com>
parents: 4876
diff changeset
776 return g_hash_table_lookup(conv->data, key);
4876
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
777 }
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
778
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
779 GList *
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
780 gaim_get_conversations(void)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
781 {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
782 return conversations;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
783 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
784
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
785 GList *
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
786 gaim_get_ims(void)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
787 {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
788 return ims;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
789 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
790
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
791 GList *
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
792 gaim_get_chats(void)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
793 {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
794 return chats;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
795 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
796
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7257
diff changeset
797
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
798 GaimConversation *
10246
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10132
diff changeset
799 gaim_find_conversation_with_account(GaimConversationType type,
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10132
diff changeset
800 const char *name,
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
801 const GaimAccount *account)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
802 {
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
803 GaimConversation *c = NULL;
10246
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10132
diff changeset
804 gchar *name1;
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10132
diff changeset
805 const gchar *name2;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
806 GList *cnv;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
807
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
808 g_return_val_if_fail(name != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
809
10246
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10132
diff changeset
810 name1 = g_strdup(gaim_normalize(account, name));
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
811
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
812 for (cnv = gaim_get_conversations(); cnv != NULL; cnv = cnv->next) {
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
813 c = (GaimConversation *)cnv->data;
10246
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10132
diff changeset
814 name2 = gaim_normalize(account, gaim_conversation_get_name(c));
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10132
diff changeset
815
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
816 if (((type == GAIM_CONV_TYPE_ANY) || (type == gaim_conversation_get_type(c))) &&
10246
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10132
diff changeset
817 (account == gaim_conversation_get_account(c)) &&
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10132
diff changeset
818 !gaim_utf8_strcasecmp(name1, name2)) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
819
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
820 break;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
821 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
822
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
823 c = NULL;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
824 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
825
10246
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10132
diff changeset
826 g_free(name1);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
827
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
828 return c;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
829 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
830
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
831 void
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
832 gaim_conversation_write(GaimConversation *conv, const char *who,
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6846
diff changeset
833 const char *message, GaimMessageFlags flags,
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
834 time_t mtime)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
835 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5139
diff changeset
836 GaimPluginProtocolInfo *prpl_info = NULL;
6496
9833c2665143 [gaim-migrate @ 7011]
Christian Hammond <chipx86@chipx86.com>
parents: 6485
diff changeset
837 GaimConnection *gc = NULL;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
838 GaimAccount *account;
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
839 GaimConversationUiOps *ops;
11468
3411c0d7f597 [gaim-migrate @ 13708]
Richard Laager <rlaager@pidgin.im>
parents: 11454
diff changeset
840 const char *alias;
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6640
diff changeset
841 GaimBuddy *b;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
842 /* int logging_font_options = 0; */
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
843
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
844 g_return_if_fail(conv != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
845 g_return_if_fail(message != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
846
4465
43184ae252ed [gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents: 4425
diff changeset
847 ops = gaim_conversation_get_ui_ops(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
848
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
849 if (ops == NULL || ops->write_conv == NULL)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
850 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
851
4608
c165a90c65fc [gaim-migrate @ 4896]
Nathan Walp <nwalp@pidgin.im>
parents: 4574
diff changeset
852 account = gaim_conversation_get_account(conv);
6496
9833c2665143 [gaim-migrate @ 7011]
Christian Hammond <chipx86@chipx86.com>
parents: 6485
diff changeset
853
9833c2665143 [gaim-migrate @ 7011]
Christian Hammond <chipx86@chipx86.com>
parents: 6485
diff changeset
854 if (account != NULL)
9833c2665143 [gaim-migrate @ 7011]
Christian Hammond <chipx86@chipx86.com>
parents: 6485
diff changeset
855 gc = gaim_account_get_connection(account);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
856
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
857 if (gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_CHAT &&
6496
9833c2665143 [gaim-migrate @ 7011]
Christian Hammond <chipx86@chipx86.com>
parents: 6485
diff changeset
858 (gc == NULL || !g_slist_find(gc->buddy_chats, conv)))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
859 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
860
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
861 if (gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_IM &&
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
862 !g_list_find(gaim_get_conversations(), conv))
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
863 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
864
11468
3411c0d7f597 [gaim-migrate @ 13708]
Richard Laager <rlaager@pidgin.im>
parents: 11454
diff changeset
865 if (who == NULL || *who == '\0')
3411c0d7f597 [gaim-migrate @ 13708]
Richard Laager <rlaager@pidgin.im>
parents: 11454
diff changeset
866 who = gaim_conversation_get_name(conv);
3411c0d7f597 [gaim-migrate @ 13708]
Richard Laager <rlaager@pidgin.im>
parents: 11454
diff changeset
867
3411c0d7f597 [gaim-migrate @ 13708]
Richard Laager <rlaager@pidgin.im>
parents: 11454
diff changeset
868 alias = who;
3411c0d7f597 [gaim-migrate @ 13708]
Richard Laager <rlaager@pidgin.im>
parents: 11454
diff changeset
869
9613
cd81e0c76ec0 [gaim-migrate @ 10456]
Kevin Stange <kstange@pidgin.im>
parents: 9607
diff changeset
870 if (account != NULL) {
cd81e0c76ec0 [gaim-migrate @ 10456]
Kevin Stange <kstange@pidgin.im>
parents: 9607
diff changeset
871 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gaim_find_prpl(gaim_account_get_protocol_id(account)));
5350
966c6d4d7bdd [gaim-migrate @ 5726]
Christian Hammond <chipx86@chipx86.com>
parents: 5262
diff changeset
872
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
873 if (gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_IM ||
5350
966c6d4d7bdd [gaim-migrate @ 5726]
Christian Hammond <chipx86@chipx86.com>
parents: 5262
diff changeset
874 !(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) {
966c6d4d7bdd [gaim-migrate @ 5726]
Christian Hammond <chipx86@chipx86.com>
parents: 5262
diff changeset
875
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
876 if (flags & GAIM_MESSAGE_SEND) {
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
877 b = gaim_find_buddy(account,
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
878 gaim_account_get_username(account));
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
879
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
880 if (gaim_account_get_alias(account) != NULL)
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
881 alias = account->alias;
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
882 else if (b != NULL && strcmp(b->name, gaim_buddy_get_contact_alias(b)))
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
883 alias = gaim_buddy_get_contact_alias(b);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
884 else if (gaim_connection_get_display_name(gc) != NULL)
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
885 alias = gaim_connection_get_display_name(gc);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
886 else
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
887 alias = gaim_account_get_username(account);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
888 }
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
889 else
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
890 {
5350
966c6d4d7bdd [gaim-migrate @ 5726]
Christian Hammond <chipx86@chipx86.com>
parents: 5262
diff changeset
891 b = gaim_find_buddy(account, who);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
892
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
893 if (b != NULL)
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
894 alias = gaim_buddy_get_contact_alias(b);
1772
c759c01bd66f [gaim-migrate @ 1782]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1764
diff changeset
895 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
896 }
474
8e9acf2f6c48 [gaim-migrate @ 484]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 473
diff changeset
897 }
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
898
11804
9a98a2cead46 [gaim-migrate @ 14095]
Richard Laager <rlaager@pidgin.im>
parents: 11793
diff changeset
899 if (!(flags & GAIM_MESSAGE_NO_LOG) && gaim_conversation_is_logging(conv)) {
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
900 GList *log;
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
901
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
902 if (conv->logs == NULL)
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
903 open_log(conv);
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
904
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
905 log = conv->logs;
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
906 while (log != NULL) {
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
907 gaim_log_write((GaimLog *)log->data, flags, alias, mtime, message);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
908 log = log->next;
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
909 }
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
910 }
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
911
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
912 if (gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_IM) {
11664
050d0caa0832 [gaim-migrate @ 13949]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11606
diff changeset
913 if ((flags & GAIM_MESSAGE_RECV) == GAIM_MESSAGE_RECV) {
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
914 gaim_conv_im_set_typing_state(GAIM_CONV_IM(conv), GAIM_NOT_TYPING);
11664
050d0caa0832 [gaim-migrate @ 13949]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11606
diff changeset
915 }
1253
f02697a6aada [gaim-migrate @ 1263]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
916 }
12902
de9e0cc3feab [gaim-migrate @ 15255]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12901
diff changeset
917
de9e0cc3feab [gaim-migrate @ 15255]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12901
diff changeset
918 ops->write_conv(conv, who, alias, message, flags, mtime);
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
919 }
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
920
9260
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
921 gboolean
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
922 gaim_conversation_has_focus(GaimConversation *conv)
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
923 {
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
924 gboolean ret = FALSE;
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
925 GaimConversationUiOps *ops;
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
926
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
927 g_return_val_if_fail(conv != NULL, FALSE);
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
928
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
929 ops = gaim_conversation_get_ui_ops(conv);
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
930
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
931 if (ops != NULL && ops->has_focus != NULL)
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
932 ret = ops->has_focus(conv);
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
933
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
934 return ret;
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
935 }
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
936
7930
3005873ac411 [gaim-migrate @ 8601]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
937 /*
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
938 * TODO: Need to make sure calls to this function happen in the core
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
939 * instead of the UI. That way UIs have less work to do, and the
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
940 * core/UI split is cleaner. Also need to make sure this is called
7930
3005873ac411 [gaim-migrate @ 8601]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
941 * when chats are added/removed from the blist.
3005873ac411 [gaim-migrate @ 8601]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
942 */
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
943 void
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
944 gaim_conversation_update(GaimConversation *conv, GaimConvUpdateType type)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
945 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
946 g_return_if_fail(conv != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
947
9734
58a18645cbd5 [gaim-migrate @ 10595]
Kevin Stange <kstange@pidgin.im>
parents: 9633
diff changeset
948 gaim_signal_emit(gaim_conversations_get_handle(),
58a18645cbd5 [gaim-migrate @ 10595]
Kevin Stange <kstange@pidgin.im>
parents: 9633
diff changeset
949 "conversation-updated", conv, type);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
950 }
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2979
diff changeset
951
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
952 /**************************************************************************
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
953 * IM Conversation API
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
954 **************************************************************************/
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
955 GaimConversation *
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
956 gaim_conv_im_get_conversation(const GaimConvIm *im)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
957 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
958 g_return_val_if_fail(im != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
959
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
960 return im->conv;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
961 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
962
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
963 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
964 gaim_conv_im_set_icon(GaimConvIm *im, GaimBuddyIcon *icon)
6846
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
965 {
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
966 g_return_if_fail(im != NULL);
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
967
9261
a0ed867a459e [gaim-migrate @ 10060]
Christian Hammond <chipx86@chipx86.com>
parents: 9260
diff changeset
968 if (im->icon != icon)
a0ed867a459e [gaim-migrate @ 10060]
Christian Hammond <chipx86@chipx86.com>
parents: 9260
diff changeset
969 {
a0ed867a459e [gaim-migrate @ 10060]
Christian Hammond <chipx86@chipx86.com>
parents: 9260
diff changeset
970 if (im->icon != NULL)
a0ed867a459e [gaim-migrate @ 10060]
Christian Hammond <chipx86@chipx86.com>
parents: 9260
diff changeset
971 gaim_buddy_icon_unref(im->icon);
a0ed867a459e [gaim-migrate @ 10060]
Christian Hammond <chipx86@chipx86.com>
parents: 9260
diff changeset
972
a0ed867a459e [gaim-migrate @ 10060]
Christian Hammond <chipx86@chipx86.com>
parents: 9260
diff changeset
973 im->icon = (icon == NULL ? NULL : gaim_buddy_icon_ref(icon));
a0ed867a459e [gaim-migrate @ 10060]
Christian Hammond <chipx86@chipx86.com>
parents: 9260
diff changeset
974 }
6846
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
975
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
976 gaim_conversation_update(gaim_conv_im_get_conversation(im),
6846
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
977 GAIM_CONV_UPDATE_ICON);
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
978 }
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
979
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
980 GaimBuddyIcon *
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
981 gaim_conv_im_get_icon(const GaimConvIm *im)
6846
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
982 {
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
983 g_return_val_if_fail(im != NULL, NULL);
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
984
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
985 return im->icon;
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
986 }
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
987
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
988 void
8288
457cf0339c09 [gaim-migrate @ 9012]
Christian Hammond <chipx86@chipx86.com>
parents: 8287
diff changeset
989 gaim_conv_im_set_typing_state(GaimConvIm *im, GaimTypingState state)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
990 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
991 g_return_if_fail(im != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
992
12797
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
993 if (im->typing_state != state)
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
994 {
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
995 im->typing_state = state;
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
996
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
997 if (state == GAIM_TYPING)
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
998 {
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
999 gaim_signal_emit(gaim_conversations_get_handle(),
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
1000 "buddy-typing", im->conv->account, im->conv->name);
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
1001 }
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
1002 else
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
1003 {
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
1004 gaim_signal_emit(gaim_conversations_get_handle(),
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
1005 "buddy-typing-stopped", im->conv->account, im->conv->name);
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
1006 }
d0f51cfde6bc [gaim-migrate @ 15144]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12639
diff changeset
1007 }
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2979
diff changeset
1008 }
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1009
8288
457cf0339c09 [gaim-migrate @ 9012]
Christian Hammond <chipx86@chipx86.com>
parents: 8287
diff changeset
1010 GaimTypingState
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1011 gaim_conv_im_get_typing_state(const GaimConvIm *im)
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1012 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1013 g_return_val_if_fail(im != NULL, 0);
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1014
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1015 return im->typing_state;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1016 }
3704
817dd1219f45 [gaim-migrate @ 3835]
Rob Flynn <gaim@robflynn.com>
parents: 3699
diff changeset
1017
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1018 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1019 gaim_conv_im_start_typing_timeout(GaimConvIm *im, int timeout)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1020 {
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
1021 GaimConversation *conv;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1022 const char *name;
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1023
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1024 g_return_if_fail(im != NULL);
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1025
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1026 if (im->typing_timeout > 0)
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1027 gaim_conv_im_stop_typing_timeout(im);
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1028
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1029 conv = gaim_conv_im_get_conversation(im);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1030 name = gaim_conversation_get_name(conv);
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1031
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents: 8271
diff changeset
1032 im->typing_timeout = gaim_timeout_add(timeout * 1000, reset_typing, conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1033 }
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1034
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1035 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1036 gaim_conv_im_stop_typing_timeout(GaimConvIm *im)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1037 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1038 g_return_if_fail(im != NULL);
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1039
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1040 if (im->typing_timeout == 0)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1041 return;
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1042
8287
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8273
diff changeset
1043 gaim_timeout_remove(im->typing_timeout);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1044 im->typing_timeout = 0;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1045 }
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1046
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1047 guint
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1048 gaim_conv_im_get_typing_timeout(const GaimConvIm *im)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1049 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1050 g_return_val_if_fail(im != NULL, 0);
3699
f84be29b4ce8 [gaim-migrate @ 3830]
Rob Flynn <gaim@robflynn.com>
parents: 3696
diff changeset
1051
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1052 return im->typing_timeout;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1053 }
3699
f84be29b4ce8 [gaim-migrate @ 3830]
Rob Flynn <gaim@robflynn.com>
parents: 3696
diff changeset
1054
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1055 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1056 gaim_conv_im_set_type_again(GaimConvIm *im, time_t val)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1057 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1058 g_return_if_fail(im != NULL);
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1059
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1060 im->type_again = val;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1061 }
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1062
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1063 time_t
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1064 gaim_conv_im_get_type_again(const GaimConvIm *im)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1065 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1066 g_return_val_if_fail(im != NULL, 0);
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1067
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1068 return im->type_again;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1069 }
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1070
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1071 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1072 gaim_conv_im_start_type_again_timeout(GaimConvIm *im)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1073 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1074 g_return_if_fail(im != NULL);
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1075
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents: 8271
diff changeset
1076 im->type_again_timeout = gaim_timeout_add(SEND_TYPED_TIMEOUT, send_typed,
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents: 8271
diff changeset
1077 gaim_conv_im_get_conversation(im));
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1078 }
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1079
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1080 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1081 gaim_conv_im_stop_type_again_timeout(GaimConvIm *im)
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1082 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1083 g_return_if_fail(im != NULL);
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1084
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1085 if (im->type_again_timeout == 0)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1086 return;
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1087
8287
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8273
diff changeset
1088 gaim_timeout_remove(im->type_again_timeout);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1089 im->type_again_timeout = 0;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1090 }
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1091
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1092 guint
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1093 gaim_conv_im_get_type_again_timeout(const GaimConvIm *im)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1094 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1095 g_return_val_if_fail(im != NULL, 0);
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1096
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1097 return im->type_again_timeout;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1098 }
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1099
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1100 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1101 gaim_conv_im_update_typing(GaimConvIm *im)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1102 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1103 g_return_if_fail(im != NULL);
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1104
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1105 gaim_conversation_update(gaim_conv_im_get_conversation(im),
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1106 GAIM_CONV_UPDATE_TYPING);
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1107 }
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1108
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1109 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1110 gaim_conv_im_write(GaimConvIm *im, const char *who, const char *message,
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6846
diff changeset
1111 GaimMessageFlags flags, time_t mtime)
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1112 {
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
1113 GaimConversation *c;
1898
695a31e4452b [gaim-migrate @ 1908]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1889
diff changeset
1114
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1115 g_return_if_fail(im != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1116 g_return_if_fail(message != NULL);
1898
695a31e4452b [gaim-migrate @ 1908]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1889
diff changeset
1117
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1118 c = gaim_conv_im_get_conversation(im);
2787
050506d3945f [gaim-migrate @ 2800]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2773
diff changeset
1119
4382
fd60cabf2bae [gaim-migrate @ 4648]
Christian Hammond <chipx86@chipx86.com>
parents: 4378
diff changeset
1120 /* Raise the window, if specified in prefs. */
4465
43184ae252ed [gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents: 4425
diff changeset
1121 if (c->ui_ops != NULL && c->ui_ops->write_im != NULL)
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6846
diff changeset
1122 c->ui_ops->write_im(c, who, message, flags, mtime);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1123 else
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6846
diff changeset
1124 gaim_conversation_write(c, who, message, flags, mtime);
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1125 }
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1126
9627
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1127 gboolean gaim_conv_present_error(const char *who, GaimAccount *account, const char *what)
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1128 {
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1129 GaimConversation *conv;
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1130
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1131 g_return_val_if_fail(who != NULL, FALSE);
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1132 g_return_val_if_fail(account !=NULL, FALSE);
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1133 g_return_val_if_fail(what != NULL, FALSE);
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1134
11338
1a3663ac9b05 [gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents: 11292
diff changeset
1135 conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_ANY, who, account);
9627
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1136 if (conv != NULL)
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1137 gaim_conversation_write(conv, NULL, what, GAIM_MESSAGE_ERROR, time(NULL));
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1138 else
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1139 return FALSE;
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1140
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1141 return TRUE;
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1142 }
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1143
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1144 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1145 gaim_conv_im_send(GaimConvIm *im, const char *message)
2379
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2375
diff changeset
1146 {
11921
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1147 gaim_conv_im_send_with_flags(im, message, 0);
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1148 }
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1149
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1150 void
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1151 gaim_conv_im_send_with_flags(GaimConvIm *im, const char *message, GaimMessageFlags flags)
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1152 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1153 g_return_if_fail(im != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1154 g_return_if_fail(message != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1155
11921
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1156 common_send(gaim_conv_im_get_conversation(im), message, flags);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1157 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1158
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1159 gboolean
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1160 gaim_conv_custom_smiley_add(GaimConversation *conv, const char *smile,
12618
b83b6bab0703 [gaim-migrate @ 14954]
Richard Laager <rlaager@pidgin.im>
parents: 12604
diff changeset
1161 const char *cksum_type, const char *chksum,
b83b6bab0703 [gaim-migrate @ 14954]
Richard Laager <rlaager@pidgin.im>
parents: 12604
diff changeset
1162 gboolean remote)
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1163 {
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1164 if (conv == NULL || smile == NULL || !*smile) {
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1165 return FALSE;
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1166 }
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1167
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1168 /* TODO: check if the icon is in the cache and return false if so */
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1169 /* TODO: add an icon cache (that doesn't suck) */
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1170 if (conv->ui_ops != NULL && conv->ui_ops->custom_smiley_add !=NULL) {
12618
b83b6bab0703 [gaim-migrate @ 14954]
Richard Laager <rlaager@pidgin.im>
parents: 12604
diff changeset
1171 return conv->ui_ops->custom_smiley_add(conv, smile, remote);
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1172 } else {
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1173 gaim_debug_info("conversation", "Could not find add custom smiley function");
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1174 return FALSE;
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1175 }
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1176
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1177 }
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1178
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1179 void
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1180 gaim_conv_custom_smiley_write(GaimConversation *conv, const char *smile,
11137
cf40226ddff7 [gaim-migrate @ 13201]
Mark Doliner <markdoliner@pidgin.im>
parents: 11064
diff changeset
1181 const guchar *data, gsize size)
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1182 {
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1183 g_return_if_fail(conv != NULL);
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1184 g_return_if_fail(smile != NULL && *smile);
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1185
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1186 if (conv->ui_ops != NULL && conv->ui_ops->custom_smiley_write != NULL)
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1187 conv->ui_ops->custom_smiley_write(conv, smile, data, size);
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1188 else
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1189 gaim_debug_info("conversation", "Could not find the smiley write function");
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1190 }
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1191
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1192 void
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1193 gaim_conv_custom_smiley_close(GaimConversation *conv, const char *smile)
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1194 {
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1195 g_return_if_fail(conv != NULL);
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1196 g_return_if_fail(smile != NULL && *smile);
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1197
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1198 if (conv->ui_ops != NULL && conv->ui_ops->custom_smiley_close != NULL)
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1199 conv->ui_ops->custom_smiley_close(conv, smile);
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1200 else
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1201 gaim_debug_info("conversation", "Could not find custom smiley close function");
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1202 }
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1203
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
1204
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1205 /**************************************************************************
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1206 * Chat Conversation API
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1207 **************************************************************************/
2379
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2375
diff changeset
1208
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
1209 GaimConversation *
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1210 gaim_conv_chat_get_conversation(const GaimConvChat *chat)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1211 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1212 g_return_val_if_fail(chat != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1213
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1214 return chat->conv;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1215 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1216
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1217 GList *
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1218 gaim_conv_chat_set_users(GaimConvChat *chat, GList *users)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1219 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1220 g_return_val_if_fail(chat != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1221
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1222 chat->in_room = users;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1223
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1224 return users;
2379
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2375
diff changeset
1225 }
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2375
diff changeset
1226
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1227 GList *
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1228 gaim_conv_chat_get_users(const GaimConvChat *chat)
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1229 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1230 g_return_val_if_fail(chat != NULL, NULL);
1253
f02697a6aada [gaim-migrate @ 1263]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1231
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1232 return chat->in_room;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1233 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1234
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1235 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1236 gaim_conv_chat_ignore(GaimConvChat *chat, const char *name)
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1237 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1238 g_return_if_fail(chat != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1239 g_return_if_fail(name != NULL);
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1240
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1241 /* Make sure the user isn't already ignored. */
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1242 if (gaim_conv_chat_is_user_ignored(chat, name))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1243 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1244
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1245 gaim_conv_chat_set_ignored(chat,
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1246 g_list_append(gaim_conv_chat_get_ignored(chat), g_strdup(name)));
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1247 }
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1248
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1249 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1250 gaim_conv_chat_unignore(GaimConvChat *chat, const char *name)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1251 {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1252 GList *item;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1253
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1254 g_return_if_fail(chat != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1255 g_return_if_fail(name != NULL);
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1256
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1257 /* Make sure the user is actually ignored. */
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1258 if (!gaim_conv_chat_is_user_ignored(chat, name))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1259 return;
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1260
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1261 item = g_list_find(gaim_conv_chat_get_ignored(chat),
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1262 gaim_conv_chat_get_ignored_user(chat, name));
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1263
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1264 gaim_conv_chat_set_ignored(chat,
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1265 g_list_remove_link(gaim_conv_chat_get_ignored(chat), item));
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1266
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1267 g_free(item->data);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1268 g_list_free_1(item);
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1269 }
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1270
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1271 GList *
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1272 gaim_conv_chat_set_ignored(GaimConvChat *chat, GList *ignored)
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1273 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1274 g_return_val_if_fail(chat != NULL, NULL);
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1275
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1276 chat->ignored = ignored;
993
8798e0ac047d [gaim-migrate @ 1003]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 980
diff changeset
1277
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1278 return ignored;
2111
34615a640c59 [gaim-migrate @ 2121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2109
diff changeset
1279 }
34615a640c59 [gaim-migrate @ 2121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2109
diff changeset
1280
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1281 GList *
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1282 gaim_conv_chat_get_ignored(const GaimConvChat *chat)
2111
34615a640c59 [gaim-migrate @ 2121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2109
diff changeset
1283 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1284 g_return_val_if_fail(chat != NULL, NULL);
1898
695a31e4452b [gaim-migrate @ 1908]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1889
diff changeset
1285
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1286 return chat->ignored;
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1287 }
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
1288
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1289 const char *
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1290 gaim_conv_chat_get_ignored_user(const GaimConvChat *chat, const char *user)
1340
f30961abcc50 [gaim-migrate @ 1350]
Rob Flynn <gaim@robflynn.com>
parents: 1253
diff changeset
1291 {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1292 GList *ignored;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1293
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1294 g_return_val_if_fail(chat != NULL, NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1295 g_return_val_if_fail(user != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1296
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1297 for (ignored = gaim_conv_chat_get_ignored(chat);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1298 ignored != NULL;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1299 ignored = ignored->next) {
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2363
diff changeset
1300
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1301 const char *ign = (const char *)ignored->data;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1302
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4687
diff changeset
1303 if (!gaim_utf8_strcasecmp(user, ign) ||
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4687
diff changeset
1304 ((*ign == '+' || *ign == '%') && !gaim_utf8_strcasecmp(user, ign + 1)))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1305 return ign;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1306
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1307 if (*ign == '@') {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1308 ign++;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1309
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4687
diff changeset
1310 if ((*ign == '+' && !gaim_utf8_strcasecmp(user, ign + 1)) ||
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4687
diff changeset
1311 (*ign != '+' && !gaim_utf8_strcasecmp(user, ign)))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1312 return ign;
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1313 }
2094
5bc29f962834 [gaim-migrate @ 2104]
Chris Testa
parents: 2090
diff changeset
1314 }
1341
dcf12d2edb9a [gaim-migrate @ 1351]
Rob Flynn <gaim@robflynn.com>
parents: 1340
diff changeset
1315
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1316 return NULL;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1317 }
1341
dcf12d2edb9a [gaim-migrate @ 1351]
Rob Flynn <gaim@robflynn.com>
parents: 1340
diff changeset
1318
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1319 gboolean
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1320 gaim_conv_chat_is_user_ignored(const GaimConvChat *chat, const char *user)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1321 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1322 g_return_val_if_fail(chat != NULL, FALSE);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1323 g_return_val_if_fail(user != NULL, FALSE);
1341
dcf12d2edb9a [gaim-migrate @ 1351]
Rob Flynn <gaim@robflynn.com>
parents: 1340
diff changeset
1324
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1325 return (gaim_conv_chat_get_ignored_user(chat, user) != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1326 }
1343
d1aedcf1f7e7 [gaim-migrate @ 1353]
Rob Flynn <gaim@robflynn.com>
parents: 1342
diff changeset
1327
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1328 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1329 gaim_conv_chat_set_topic(GaimConvChat *chat, const char *who, const char *topic)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1330 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1331 g_return_if_fail(chat != NULL);
1343
d1aedcf1f7e7 [gaim-migrate @ 1353]
Rob Flynn <gaim@robflynn.com>
parents: 1342
diff changeset
1332
7606
189d2833dc99 [gaim-migrate @ 8229]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 7602
diff changeset
1333 if (chat->who != NULL) g_free(chat->who);
189d2833dc99 [gaim-migrate @ 8229]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 7602
diff changeset
1334 if (chat->topic != NULL) g_free(chat->topic);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1335
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1336 chat->who = (who == NULL ? NULL : g_strdup(who));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1337 chat->topic = (topic == NULL ? NULL : g_strdup(topic));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1338
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1339 gaim_conversation_update(gaim_conv_chat_get_conversation(chat),
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1340 GAIM_CONV_UPDATE_TOPIC);
9517
a4b0dccad1f8 [gaim-migrate @ 10344]
Gary Kramlich <grim@pidgin.im>
parents: 9514
diff changeset
1341
a4b0dccad1f8 [gaim-migrate @ 10344]
Gary Kramlich <grim@pidgin.im>
parents: 9514
diff changeset
1342 gaim_signal_emit(gaim_conversations_get_handle(), "chat-topic-changed",
a4b0dccad1f8 [gaim-migrate @ 10344]
Gary Kramlich <grim@pidgin.im>
parents: 9514
diff changeset
1343 chat->conv, chat->who, chat->topic);
1340
f30961abcc50 [gaim-migrate @ 1350]
Rob Flynn <gaim@robflynn.com>
parents: 1253
diff changeset
1344 }
f30961abcc50 [gaim-migrate @ 1350]
Rob Flynn <gaim@robflynn.com>
parents: 1253
diff changeset
1345
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1346 const char *
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1347 gaim_conv_chat_get_topic(const GaimConvChat *chat)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1348 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1349 g_return_val_if_fail(chat != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1350
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1351 return chat->topic;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1352 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1353
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1354 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1355 gaim_conv_chat_set_id(GaimConvChat *chat, int id)
1573
878f7c59ee85 [gaim-migrate @ 1583]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1532
diff changeset
1356 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1357 g_return_if_fail(chat != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1358
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1359 chat->id = id;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1360 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1361
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1362 int
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1363 gaim_conv_chat_get_id(const GaimConvChat *chat)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1364 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1365 g_return_val_if_fail(chat != NULL, -1);
3951
3e505beb0272 [gaim-migrate @ 4132]
Nathan Walp <nwalp@pidgin.im>
parents: 3925
diff changeset
1366
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1367 return chat->id;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1368 }
3951
3e505beb0272 [gaim-migrate @ 4132]
Nathan Walp <nwalp@pidgin.im>
parents: 3925
diff changeset
1369
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1370 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1371 gaim_conv_chat_write(GaimConvChat *chat, const char *who, const char *message,
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6607
diff changeset
1372 GaimMessageFlags flags, time_t mtime)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1373 {
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
1374 GaimAccount *account;
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
1375 GaimConversation *conv;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
1376 GaimConnection *gc;
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1377 GaimPluginProtocolInfo *prpl_info;
3866
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3846
diff changeset
1378
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1379 g_return_if_fail(chat != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1380 g_return_if_fail(who != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1381 g_return_if_fail(message != NULL);
3866
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3846
diff changeset
1382
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1383 conv = gaim_conv_chat_get_conversation(chat);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1384 gc = gaim_conversation_get_gc(conv);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1385 account = gaim_connection_get_account(gc);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1386 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1387
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1388 /* Don't display this if the person who wrote it is ignored. */
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1389 if (gaim_conv_chat_is_user_ignored(chat, who))
1573
878f7c59ee85 [gaim-migrate @ 1583]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1532
diff changeset
1390 return;
3677
83601c9624ee [gaim-migrate @ 3807]
Rob Flynn <gaim@robflynn.com>
parents: 3671
diff changeset
1391
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6607
diff changeset
1392 if (!(flags & GAIM_MESSAGE_WHISPER)) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1393 char *str;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1394
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7257
diff changeset
1395 str = g_strdup(gaim_normalize(account, who));
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1396
11500
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1397 if (!strcmp(str, gaim_normalize(account, chat->nick))) {
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6607
diff changeset
1398 flags |= GAIM_MESSAGE_SEND;
8158
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1399 } else {
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6607
diff changeset
1400 flags |= GAIM_MESSAGE_RECV;
3677
83601c9624ee [gaim-migrate @ 3807]
Rob Flynn <gaim@robflynn.com>
parents: 3671
diff changeset
1401
11552
674a2a79943a [gaim-migrate @ 13812]
Casey Harkins <charkins@pidgin.im>
parents: 11500
diff changeset
1402 if (gaim_utf8_has_word(message, chat->nick))
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6607
diff changeset
1403 flags |= GAIM_MESSAGE_NICK;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1404 }
6060
d038fdf1da96 [gaim-migrate @ 6510]
Nathan Walp <nwalp@pidgin.im>
parents: 6054
diff changeset
1405
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1406 g_free(str);
3677
83601c9624ee [gaim-migrate @ 3807]
Rob Flynn <gaim@robflynn.com>
parents: 3671
diff changeset
1407 }
3705
939c96966fd7 [gaim-migrate @ 3838]
Etan Reisner <deryni@pidgin.im>
parents: 3704
diff changeset
1408
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1409 /* Pass this on to either the ops structure or the default write func. */
4465
43184ae252ed [gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents: 4425
diff changeset
1410 if (conv->ui_ops != NULL && conv->ui_ops->write_chat != NULL)
43184ae252ed [gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents: 4425
diff changeset
1411 conv->ui_ops->write_chat(conv, who, message, flags, mtime);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1412 else
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6846
diff changeset
1413 gaim_conversation_write(conv, who, message, flags, mtime);
1573
878f7c59ee85 [gaim-migrate @ 1583]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1532
diff changeset
1414 }
878f7c59ee85 [gaim-migrate @ 1583]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1532
diff changeset
1415
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1416 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1417 gaim_conv_chat_send(GaimConvChat *chat, const char *message)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1418 {
11921
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1419 gaim_conv_chat_send_with_flags(chat, message, 0);
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1420 }
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1421
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1422 void
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1423 gaim_conv_chat_send_with_flags(GaimConvChat *chat, const char *message, GaimMessageFlags flags)
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1424 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1425 g_return_if_fail(chat != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1426 g_return_if_fail(message != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1427
11921
fe74264ce36c [gaim-migrate @ 14212]
Evan Schoenberg <evands@pidgin.im>
parents: 11869
diff changeset
1428 common_send(gaim_conv_chat_get_conversation(chat), message, flags);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1429 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1430
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1431 void
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1432 gaim_conv_chat_add_user(GaimConvChat *chat, const char *user,
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1433 const char *extra_msg, GaimConvChatBuddyFlags flags,
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1434 gboolean new_arrival)
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1435 {
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1436 GList *users = g_list_append(NULL, (char *)user);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1437 GList *extra_msgs = g_list_append(NULL, (char *)extra_msg);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1438 GList *flags2 = g_list_append(NULL, GINT_TO_POINTER(flags));
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
1439
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1440 gaim_conv_chat_add_users(chat, users, extra_msgs, flags2, new_arrival);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1441
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1442 g_list_free(users);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1443 g_list_free(extra_msgs);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1444 g_list_free(flags2);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1445 }
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1446
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1447 void
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1448 gaim_conv_chat_add_users(GaimConvChat *chat, GList *users, GList *extra_msgs,
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1449 GList *flags, gboolean new_arrivals)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1450 {
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
1451 GaimConversation *conv;
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
1452 GaimConversationUiOps *ops;
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1453 GaimConvChatBuddy *cb;
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1454 GaimConnection *gc;
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1455 GaimPluginProtocolInfo *prpl_info;
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1456 GList *ul, *fl;
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1457 GList *aliases = NULL;
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1458
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1459 g_return_if_fail(chat != NULL);
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1460 g_return_if_fail(users != NULL);
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1461
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1462 conv = gaim_conv_chat_get_conversation(chat);
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1463 ops = gaim_conversation_get_ui_ops(conv);
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1464
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1465 gc = gaim_conversation_get_gc(conv);
12867
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1466 g_return_if_fail(gc != NULL);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1467 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1468 g_return_if_fail(prpl_info != NULL);
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1469
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1470 ul = users;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1471 fl = flags;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1472 while ((ul != NULL) && (fl != NULL)) {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1473 const char *user = (const char *)ul->data;
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1474 const char *alias = user;
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1475 gboolean quiet;
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1476 GaimConvChatBuddyFlags flags = GPOINTER_TO_INT(fl->data);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1477 const char *extra_msg = (extra_msgs ? extra_msgs->data : NULL);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1478
11500
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1479 if (!strcmp(chat->nick, gaim_normalize(conv->account, user))) {
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1480 const char *alias2 = gaim_account_get_alias(conv->account);
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1481 if (alias2 != NULL)
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1482 alias = alias2;
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1483 else
11500
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1484 {
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1485 const char *display_name = gaim_connection_get_display_name(gc);
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1486 if (display_name != NULL)
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1487 alias = display_name;
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1488 }
11500
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1489 } else if (!(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) {
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1490 GaimBuddy *buddy;
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1491 if ((buddy = gaim_find_buddy(gc->account, user)) != NULL)
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1492 alias = gaim_buddy_get_contact_alias(buddy);
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1493 }
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1494
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1495 quiet = GPOINTER_TO_INT(gaim_signal_emit_return_1(gaim_conversations_get_handle(),
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1496 "chat-buddy-joining", conv, user, flags)) |
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1497 gaim_conv_chat_is_user_ignored(chat, user);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1498
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1499 cb = gaim_conv_chat_cb_new(user, flags);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1500 gaim_conv_chat_set_users(chat,
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1501 g_list_prepend(gaim_conv_chat_get_users(chat), cb));
11866
6a0cbd5100be [gaim-migrate @ 14157]
Richard Laager <rlaager@pidgin.im>
parents: 11804
diff changeset
1502 /* We reverse this later to keep it in the same order as users. */
6a0cbd5100be [gaim-migrate @ 14157]
Richard Laager <rlaager@pidgin.im>
parents: 11804
diff changeset
1503 aliases = g_list_prepend(aliases, (char *)alias);
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1504
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1505 if (!quiet && new_arrivals) {
12840
548fd34f1f87 [gaim-migrate @ 15188]
Richard Laager <rlaager@pidgin.im>
parents: 12797
diff changeset
1506 char *escaped = g_markup_escape_text(alias, -1);
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1507 char *tmp;
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1508
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1509 if (extra_msg == NULL)
12840
548fd34f1f87 [gaim-migrate @ 15188]
Richard Laager <rlaager@pidgin.im>
parents: 12797
diff changeset
1510 tmp = g_strdup_printf(_("%s entered the room."), escaped);
548fd34f1f87 [gaim-migrate @ 15188]
Richard Laager <rlaager@pidgin.im>
parents: 12797
diff changeset
1511 else {
548fd34f1f87 [gaim-migrate @ 15188]
Richard Laager <rlaager@pidgin.im>
parents: 12797
diff changeset
1512 char *escaped2 = g_markup_escape_text(extra_msg, -1);
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1513 tmp = g_strdup_printf(_("%s [<I>%s</I>] entered the room."),
12840
548fd34f1f87 [gaim-migrate @ 15188]
Richard Laager <rlaager@pidgin.im>
parents: 12797
diff changeset
1514 escaped, escaped2);
548fd34f1f87 [gaim-migrate @ 15188]
Richard Laager <rlaager@pidgin.im>
parents: 12797
diff changeset
1515 g_free(escaped2);
548fd34f1f87 [gaim-migrate @ 15188]
Richard Laager <rlaager@pidgin.im>
parents: 12797
diff changeset
1516 }
548fd34f1f87 [gaim-migrate @ 15188]
Richard Laager <rlaager@pidgin.im>
parents: 12797
diff changeset
1517 g_free(escaped);
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1518
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1519 gaim_conversation_write(conv, NULL, tmp, GAIM_MESSAGE_SYSTEM, time(NULL));
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1520 g_free(tmp);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1521 }
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1522
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1523 gaim_signal_emit(gaim_conversations_get_handle(),
12850
744542bdd53e [gaim-migrate @ 15200]
Casey Harkins <charkins@pidgin.im>
parents: 12840
diff changeset
1524 "chat-buddy-joined", conv, user, flags, new_arrivals);
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1525 ul = ul->next;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1526 fl = fl->next;
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1527 if (extra_msgs != NULL)
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1528 extra_msgs = extra_msgs->next;
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1529 }
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1530
11866
6a0cbd5100be [gaim-migrate @ 14157]
Richard Laager <rlaager@pidgin.im>
parents: 11804
diff changeset
1531 /* This needs to be in the same order as users, but it's faster
6a0cbd5100be [gaim-migrate @ 14157]
Richard Laager <rlaager@pidgin.im>
parents: 11804
diff changeset
1532 * to prepend, so we do that above. */
6a0cbd5100be [gaim-migrate @ 14157]
Richard Laager <rlaager@pidgin.im>
parents: 11804
diff changeset
1533 aliases = g_list_reverse(aliases);
6a0cbd5100be [gaim-migrate @ 14157]
Richard Laager <rlaager@pidgin.im>
parents: 11804
diff changeset
1534
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1535 if (ops != NULL && ops->chat_add_users != NULL)
12463
8d8c5436803a [gaim-migrate @ 14773]
Evan Schoenberg <evands@pidgin.im>
parents: 12313
diff changeset
1536 ops->chat_add_users(conv, users, flags, aliases, new_arrivals);
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1537
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1538 g_list_free(aliases);
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1539 }
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1540
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1541 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1542 gaim_conv_chat_rename_user(GaimConvChat *chat, const char *old_user,
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1543 const char *new_user)
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
1544 {
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
1545 GaimConversation *conv;
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
1546 GaimConversationUiOps *ops;
11485
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1547 GaimConnection *gc;
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1548 GaimPluginProtocolInfo *prpl_info;
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1549 GaimConvChatBuddy *cb;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1550 GaimConvChatBuddyFlags flags;
11485
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1551 const char *new_alias = new_user;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1552 char tmp[BUF_LONG];
11485
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1553 gboolean is_me = FALSE;
3866
862ccacd24a8 [gaim-migrate @ 4018]
Rob Flynn <gaim@robflynn.com>
parents: 3846
diff changeset
1554
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1555 g_return_if_fail(chat != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1556 g_return_if_fail(old_user != NULL);
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
1557 g_return_if_fail(new_user != NULL);
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 936
diff changeset
1558
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1559 conv = gaim_conv_chat_get_conversation(chat);
4465
43184ae252ed [gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents: 4425
diff changeset
1560 ops = gaim_conversation_get_ui_ops(conv);
3304
85392ac1cdd2 [gaim-migrate @ 3322]
Sean Egan <seanegan@pidgin.im>
parents: 3300
diff changeset
1561
11485
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1562 gc = gaim_conversation_get_gc(conv);
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1563 g_return_if_fail(gc != NULL);
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1564 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1565 g_return_if_fail(prpl_info != NULL);
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1566
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1567 flags = gaim_conv_chat_user_get_flags(chat, old_user);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1568 cb = gaim_conv_chat_cb_new(new_user, flags);
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1569 gaim_conv_chat_set_users(chat,
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1570 g_list_prepend(gaim_conv_chat_get_users(chat), cb));
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1571
11500
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1572 if (!strcmp(chat->nick, gaim_normalize(conv->account, old_user))) {
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1573 const char *alias;
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1574
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1575 /* Note this for later. */
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1576 is_me = TRUE;
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1577
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1578 alias = gaim_account_get_alias(conv->account);
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1579 if (alias != NULL)
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1580 new_alias = alias;
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1581 else
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1582 {
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1583 const char *display_name = gaim_connection_get_display_name(gc);
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1584 if (display_name != NULL)
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1585 alias = display_name;
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1586 }
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1587 } else if (!(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) {
11485
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1588 GaimBuddy *buddy;
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1589 if ((buddy = gaim_find_buddy(gc->account, new_user)) != NULL)
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1590 new_alias = gaim_buddy_get_contact_alias(buddy);
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1591 }
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1592
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1593 if (ops != NULL && ops->chat_rename_user != NULL)
11485
fe334b13d1d0 [gaim-migrate @ 13727]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11481
diff changeset
1594 ops->chat_rename_user(conv, old_user, new_user, new_alias);
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3641
diff changeset
1595
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1596 cb = gaim_conv_chat_cb_find(chat, old_user);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1597
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1598 if (cb) {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1599 gaim_conv_chat_set_users(chat,
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1600 g_list_remove(gaim_conv_chat_get_users(chat), cb));
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1601 gaim_conv_chat_cb_destroy(cb);
4506
e4ef1834b415 [gaim-migrate @ 4781]
Christian Hammond <chipx86@chipx86.com>
parents: 4491
diff changeset
1602 }
1428
c14bab2b74bb [gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1414
diff changeset
1603
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1604 if (gaim_conv_chat_is_user_ignored(chat, old_user)) {
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1605 gaim_conv_chat_unignore(chat, old_user);
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1606 gaim_conv_chat_ignore(chat, new_user);
1428
c14bab2b74bb [gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1414
diff changeset
1607 }
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1608 else if (gaim_conv_chat_is_user_ignored(chat, new_user))
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1609 gaim_conv_chat_unignore(chat, new_user);
1573
878f7c59ee85 [gaim-migrate @ 1583]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1532
diff changeset
1610
11500
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1611 if (is_me)
8158
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1612 gaim_conv_chat_set_nick(chat, new_user);
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1613
11481
498f90760488 [gaim-migrate @ 13723]
Richard Laager <rlaager@pidgin.im>
parents: 11478
diff changeset
1614 if (gaim_prefs_get_bool("/core/conversations/chat/show_nick_change") &&
498f90760488 [gaim-migrate @ 13723]
Richard Laager <rlaager@pidgin.im>
parents: 11478
diff changeset
1615 !gaim_conv_chat_is_user_ignored(chat, new_user)) {
498f90760488 [gaim-migrate @ 13723]
Richard Laager <rlaager@pidgin.im>
parents: 11478
diff changeset
1616
11500
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1617 if (is_me) {
12853
4afa7cfd2741 [gaim-migrate @ 15203]
Richard Laager <rlaager@pidgin.im>
parents: 12850
diff changeset
1618 char *escaped = g_markup_escape_text(new_user, -1);
8158
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1619 g_snprintf(tmp, sizeof(tmp),
12853
4afa7cfd2741 [gaim-migrate @ 15203]
Richard Laager <rlaager@pidgin.im>
parents: 12850
diff changeset
1620 _("You are now known as %s"), escaped);
4afa7cfd2741 [gaim-migrate @ 15203]
Richard Laager <rlaager@pidgin.im>
parents: 12850
diff changeset
1621 g_free(escaped);
8158
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1622 } else {
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1623 const char *old_alias = old_user;
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1624 const char *new_alias = new_user;
12853
4afa7cfd2741 [gaim-migrate @ 15203]
Richard Laager <rlaager@pidgin.im>
parents: 12850
diff changeset
1625 char *escaped;
4afa7cfd2741 [gaim-migrate @ 15203]
Richard Laager <rlaager@pidgin.im>
parents: 12850
diff changeset
1626 char *escaped2;
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
1627
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1628 if (!(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) {
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1629 GaimBuddy *buddy;
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
1630
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1631 if ((buddy = gaim_find_buddy(gc->account, old_user)) != NULL)
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1632 old_alias = gaim_buddy_get_contact_alias(buddy);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1633 if ((buddy = gaim_find_buddy(gc->account, new_user)) != NULL)
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1634 new_alias = gaim_buddy_get_contact_alias(buddy);
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1635 }
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
1636
12853
4afa7cfd2741 [gaim-migrate @ 15203]
Richard Laager <rlaager@pidgin.im>
parents: 12850
diff changeset
1637 escaped = g_markup_escape_text(old_alias, -1);
4afa7cfd2741 [gaim-migrate @ 15203]
Richard Laager <rlaager@pidgin.im>
parents: 12850
diff changeset
1638 escaped2 = g_markup_escape_text(new_alias, -1);
8158
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1639 g_snprintf(tmp, sizeof(tmp),
12853
4afa7cfd2741 [gaim-migrate @ 15203]
Richard Laager <rlaager@pidgin.im>
parents: 12850
diff changeset
1640 _("%s is now known as %s"), escaped, escaped2);
4afa7cfd2741 [gaim-migrate @ 15203]
Richard Laager <rlaager@pidgin.im>
parents: 12850
diff changeset
1641 g_free(escaped);
4afa7cfd2741 [gaim-migrate @ 15203]
Richard Laager <rlaager@pidgin.im>
parents: 12850
diff changeset
1642 g_free(escaped2);
8158
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1643 }
1573
878f7c59ee85 [gaim-migrate @ 1583]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1532
diff changeset
1644
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6846
diff changeset
1645 gaim_conversation_write(conv, NULL, tmp, GAIM_MESSAGE_SYSTEM, time(NULL));
2843
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2834
diff changeset
1646 }
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2834
diff changeset
1647 }
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2834
diff changeset
1648
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1649 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1650 gaim_conv_chat_remove_user(GaimConvChat *chat, const char *user, const char *reason)
2843
6dd0497437e3 [gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2834
diff changeset
1651 {
12867
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1652 GList *users = g_list_append(NULL, (char *)user);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1653
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1654 gaim_conv_chat_remove_users(chat, users, reason);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1655
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1656 g_list_free(users);
1759
e5987be557ab [gaim-migrate @ 1769]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1757
diff changeset
1657 }
2191
a40e37f5bf27 [gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2167
diff changeset
1658
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1659 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1660 gaim_conv_chat_remove_users(GaimConvChat *chat, GList *users, const char *reason)
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1661 {
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1662 GaimConversation *conv;
12867
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1663 GaimConnection *gc;
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1664 GaimPluginProtocolInfo *prpl_info;
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1665 GaimConversationUiOps *ops;
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1666 GaimConvChatBuddy *cb;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1667 GList *l;
12867
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1668 gboolean quiet;
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1669
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1670 g_return_if_fail(chat != NULL);
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1671 g_return_if_fail(users != NULL);
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1672
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1673 conv = gaim_conv_chat_get_conversation(chat);
12867
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1674
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1675 gc = gaim_conversation_get_gc(conv);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1676 g_return_if_fail(gc != NULL);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1677 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1678 g_return_if_fail(prpl_info != NULL);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1679
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1680 ops = gaim_conversation_get_ui_ops(conv);
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1681
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1682 for (l = users; l != NULL; l = l->next) {
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1683 const char *user = (const char *)l->data;
9587
e015e91f6a3e [gaim-migrate @ 10430]
Luke Schierer <lschiere@pidgin.im>
parents: 9554
diff changeset
1684 quiet = GPOINTER_TO_INT(gaim_signal_emit_return_1(gaim_conversations_get_handle(),
12867
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1685 "chat-buddy-leaving", conv, user, reason)) |
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1686 gaim_conv_chat_is_user_ignored(chat, user);
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1687
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1688 cb = gaim_conv_chat_cb_find(chat, user);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1689
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1690 if (cb) {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1691 gaim_conv_chat_set_users(chat,
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1692 g_list_remove(gaim_conv_chat_get_users(chat), cb));
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1693 gaim_conv_chat_cb_destroy(cb);
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1694 }
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1695
12867
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1696 /* NOTE: Don't remove them from ignored in case they re-enter. */
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1697
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1698 if (!quiet) {
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1699 const char *alias = user;
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1700 char *escaped;
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1701 char *tmp;
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1702
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1703 if (!(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) {
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1704 GaimBuddy *buddy;
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1705
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1706 if ((buddy = gaim_find_buddy(gc->account, user)) != NULL)
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1707 alias = gaim_buddy_get_contact_alias(buddy);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1708 }
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1709
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1710 escaped = g_markup_escape_text(alias, -1);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1711
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1712 if (reason == NULL || !*reason)
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1713 tmp = g_strdup_printf(_("%s left the room."), escaped);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1714 else {
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1715 char *escaped2 = g_markup_escape_text(reason, -1);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1716 tmp = g_strdup_printf(_("%s left the room (%s)."),
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1717 escaped, escaped2);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1718 g_free(escaped2);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1719 }
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1720 g_free(escaped);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1721
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1722 gaim_conversation_write(conv, NULL, tmp, GAIM_MESSAGE_SYSTEM, time(NULL));
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1723 g_free(tmp);
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1724 }
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1725
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1726 gaim_signal_emit(gaim_conversations_get_handle(), "chat-buddy-left",
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1727 conv, user, reason);
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1728 }
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1729
12867
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1730 if (ops != NULL && ops->chat_remove_users != NULL)
080393331813 [gaim-migrate @ 15218]
Andrea Canciani <ranma42@users.sourceforge.net>
parents: 12853
diff changeset
1731 ops->chat_remove_users(conv, users);
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1732 }
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6405
diff changeset
1733
6414
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1734 void
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1735 gaim_conv_chat_clear_users(GaimConvChat *chat)
6414
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1736 {
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1737 GaimConversation *conv;
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1738 GaimConversationUiOps *ops;
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1739 GList *users, *names = NULL;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1740 GList *l;
6414
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1741
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1742 g_return_if_fail(chat != NULL);
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1743
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1744 conv = gaim_conv_chat_get_conversation(chat);
6414
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1745 ops = gaim_conversation_get_ui_ops(conv);
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1746 users = gaim_conv_chat_get_users(chat);
6414
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1747
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1748 if (ops != NULL && ops->chat_remove_users != NULL) {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1749 for (l = users; l; l = l->next) {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1750 GaimConvChatBuddy *cb = l->data;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1751 names = g_list_append(names, cb->name);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1752 }
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1753 ops->chat_remove_users(conv, names);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1754 g_list_free(names);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1755 }
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1756
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1757 for (l = users; l; l = l->next)
6414
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1758 {
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1759 GaimConvChatBuddy *cb = l->data;
6414
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1760
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1761 gaim_signal_emit(gaim_conversations_get_handle(),
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1762 "chat-buddy-leaving", conv, cb->name, NULL);
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1763 gaim_signal_emit(gaim_conversations_get_handle(),
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1764 "chat-buddy-left", conv, cb->name, NULL);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1765
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1766 gaim_conv_chat_cb_destroy(cb);
6414
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1767 }
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1768
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1769 g_list_free(users);
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1770 gaim_conv_chat_set_users(chat, NULL);
6414
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1771 }
f78eb072fcc0 [gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents: 6407
diff changeset
1772
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1773
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1774 gboolean
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1775 gaim_conv_chat_find_user(GaimConvChat *chat, const char *user)
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1776 {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1777 g_return_val_if_fail(chat != NULL, FALSE);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1778 g_return_val_if_fail(user != NULL, FALSE);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1779
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1780 return (gaim_conv_chat_cb_find(chat, user) != NULL);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1781 }
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1782
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1783 void
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1784 gaim_conv_chat_user_set_flags(GaimConvChat *chat, const char *user,
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1785 GaimConvChatBuddyFlags flags)
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1786 {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1787 GaimConversation *conv;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1788 GaimConversationUiOps *ops;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1789 GaimConvChatBuddy *cb;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1790 GaimConvChatBuddyFlags oldflags;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1791
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1792 g_return_if_fail(chat != NULL);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1793 g_return_if_fail(user != NULL);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1794
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1795 cb = gaim_conv_chat_cb_find(chat, user);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1796
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1797 if (!cb)
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1798 return;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1799
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1800 if (flags == cb->flags)
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1801 return;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1802
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1803 oldflags = cb->flags;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1804 cb->flags = flags;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1805
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1806 conv = gaim_conv_chat_get_conversation(chat);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1807 ops = gaim_conversation_get_ui_ops(conv);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1808
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1809 if (ops != NULL && ops->chat_update_user != NULL)
11500
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1810 ops->chat_update_user(conv, user);
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1811
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1812 gaim_signal_emit(gaim_conversations_get_handle(),
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1813 "chat-buddy-flags", conv, user, oldflags, flags);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1814 }
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1815
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1816 GaimConvChatBuddyFlags
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1817 gaim_conv_chat_user_get_flags(GaimConvChat *chat, const char *user)
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1818 {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1819 GaimConvChatBuddy *cb;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1820
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1821 g_return_val_if_fail(chat != NULL, 0);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1822 g_return_val_if_fail(user != NULL, 0);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1823
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1824 cb = gaim_conv_chat_cb_find(chat, user);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1825
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1826 if (!cb)
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1827 return GAIM_CBFLAGS_NONE;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1828
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1829 return cb->flags;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1830 }
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1831
8158
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1832 void gaim_conv_chat_set_nick(GaimConvChat *chat, const char *nick) {
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1833 g_return_if_fail(chat != NULL);
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1834
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1835 if(chat->nick)
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1836 g_free(chat->nick);
11500
e0965fb5bcd8 [gaim-migrate @ 13745]
Richard Laager <rlaager@pidgin.im>
parents: 11485
diff changeset
1837 chat->nick = g_strdup(gaim_normalize(chat->conv->account, nick));
8158
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1838 }
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1839
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1840 const char *gaim_conv_chat_get_nick(GaimConvChat *chat) {
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1841 g_return_val_if_fail(chat != NULL, NULL);
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1842
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1843 return chat->nick;
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1844 }
a62f04d81823 [gaim-migrate @ 8870]
Nathan Walp <nwalp@pidgin.im>
parents: 8155
diff changeset
1845
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
1846 GaimConversation *
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
1847 gaim_find_chat(const GaimConnection *gc, int id)
2191
a40e37f5bf27 [gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2167
diff changeset
1848 {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1849 GList *l;
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
1850 GaimConversation *conv;
2499
0e48d0a33bf7 [gaim-migrate @ 2512]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2487
diff changeset
1851
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1852 for (l = gaim_get_chats(); l != NULL; l = l->next) {
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5621
diff changeset
1853 conv = (GaimConversation *)l->data;
2499
0e48d0a33bf7 [gaim-migrate @ 2512]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2487
diff changeset
1854
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
1855 if (gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv)) == id &&
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1856 gaim_conversation_get_gc(conv) == gc)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1857 return conv;
2499
0e48d0a33bf7 [gaim-migrate @ 2512]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2487
diff changeset
1858 }
0e48d0a33bf7 [gaim-migrate @ 2512]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2487
diff changeset
1859
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1860 return NULL;
2191
a40e37f5bf27 [gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2167
diff changeset
1861 }
4469
ef60c820b884 [gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents: 4467
diff changeset
1862
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1863 void
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1864 gaim_conv_chat_left(GaimConvChat *chat)
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1865 {
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1866 g_return_if_fail(chat != NULL);
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1867
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1868 chat->left = TRUE;
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1869 gaim_conversation_update(chat->conv, GAIM_CONV_UPDATE_CHATLEFT);
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1870 }
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1871
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1872 gboolean
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1873 gaim_conv_chat_has_left(GaimConvChat *chat)
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1874 {
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1875 g_return_val_if_fail(chat != NULL, TRUE);
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1876
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1877 return chat->left;
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1878 }
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
1879
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1880 GaimConvChatBuddy *
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1881 gaim_conv_chat_cb_new(const char *name, GaimConvChatBuddyFlags flags)
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1882 {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1883 GaimConvChatBuddy *cb;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1884
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1885 g_return_val_if_fail(name != NULL, NULL);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1886
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1887 cb = g_new0(GaimConvChatBuddy, 1);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1888 cb->name = g_strdup(name);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1889 cb->flags = flags;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1890
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11137
diff changeset
1891 GAIM_DBUS_REGISTER_POINTER(cb, GaimConvChatBuddy);
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1892 return cb;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1893 }
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1894
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1895 GaimConvChatBuddy *
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1896 gaim_conv_chat_cb_find(GaimConvChat *chat, const char *name)
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1897 {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1898 GList *l;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1899 GaimConvChatBuddy *cb = NULL;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1900
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1901 g_return_val_if_fail(chat != NULL, NULL);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1902 g_return_val_if_fail(name != NULL, NULL);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1903
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1904 for (l = gaim_conv_chat_get_users(chat); l; l = l->next) {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1905 cb = l->data;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1906 if (!gaim_utf8_strcasecmp(cb->name, name))
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1907 return cb;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1908 }
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1909
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1910 return NULL;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1911 }
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1912
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1913 void
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1914 gaim_conv_chat_cb_destroy(GaimConvChatBuddy *cb)
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1915 {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1916 g_return_if_fail(cb != NULL);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1917
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1918 if (cb->name)
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1919 g_free(cb->name);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1920 cb->name = NULL;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1921 cb->flags = 0;
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11137
diff changeset
1922
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11137
diff changeset
1923 GAIM_DBUS_UNREGISTER_POINTER(cb);
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1924 g_free(cb);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1925 }
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1926
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1927 const char *
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1928 gaim_conv_chat_cb_get_name(GaimConvChatBuddy *cb)
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1929 {
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1930 g_return_val_if_fail(cb != NULL, NULL);
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1931
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1932 return cb->name;
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1933 }
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
1934
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1935 void *
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1936 gaim_conversations_get_handle(void)
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1937 {
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1938 static int handle;
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1939
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1940 return &handle;
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1941 }
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1942
5858
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1943 void
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1944 gaim_conversations_init(void)
5858
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1945 {
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1946 void *handle = gaim_conversations_get_handle();
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1947
6846
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
1948 /**********************************************************************
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
1949 * Register preferences
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
1950 **********************************************************************/
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1951
5858
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1952 /* Conversations */
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1953 gaim_prefs_add_none("/core/conversations");
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1954
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1955 /* Conversations -> Chat */
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1956 gaim_prefs_add_none("/core/conversations/chat");
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1957 gaim_prefs_add_bool("/core/conversations/chat/show_nick_change", TRUE);
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1958
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1959 /* Conversations -> IM */
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1960 gaim_prefs_add_none("/core/conversations/im");
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1961 gaim_prefs_add_bool("/core/conversations/im/send_typing", TRUE);
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1962
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1963
6846
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
1964 /**********************************************************************
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
1965 * Register signals
f814f02dca87 [gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents: 6837
diff changeset
1966 **********************************************************************/
8078
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1967 gaim_signal_register(handle, "writing-im-msg",
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1968 gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1969 gaim_value_new(GAIM_TYPE_BOOLEAN), 3,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1970 gaim_value_new(GAIM_TYPE_SUBTYPE,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1971 GAIM_SUBTYPE_ACCOUNT),
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1972 gaim_value_new(GAIM_TYPE_SUBTYPE,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1973 GAIM_SUBTYPE_CONVERSATION),
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1974 gaim_value_new_outgoing(GAIM_TYPE_STRING));
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1975
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1976 gaim_signal_register(handle, "wrote-im-msg",
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1977 gaim_marshal_VOID__POINTER_POINTER_POINTER,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1978 NULL, 3,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1979 gaim_value_new(GAIM_TYPE_SUBTYPE,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1980 GAIM_SUBTYPE_ACCOUNT),
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1981 gaim_value_new(GAIM_TYPE_SUBTYPE,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1982 GAIM_SUBTYPE_CONVERSATION),
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1983 gaim_value_new(GAIM_TYPE_STRING));
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
1984
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1985 gaim_signal_register(handle, "sending-im-msg",
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1986 gaim_marshal_VOID__POINTER_POINTER_POINTER,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1987 NULL, 3,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1988 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1989 GAIM_SUBTYPE_ACCOUNT),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1990 gaim_value_new(GAIM_TYPE_STRING),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1991 gaim_value_new_outgoing(GAIM_TYPE_STRING));
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1992
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1993 gaim_signal_register(handle, "sent-im-msg",
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1994 gaim_marshal_VOID__POINTER_POINTER_POINTER,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1995 NULL, 3,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1996 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1997 GAIM_SUBTYPE_ACCOUNT),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1998 gaim_value_new(GAIM_TYPE_STRING),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
1999 gaim_value_new(GAIM_TYPE_STRING));
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2000
8999
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2001 gaim_signal_register(handle, "receiving-im-msg",
10104
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2002 gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER,
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2003 gaim_value_new(GAIM_TYPE_BOOLEAN), 5,
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2004 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2005 GAIM_SUBTYPE_ACCOUNT),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2006 gaim_value_new_outgoing(GAIM_TYPE_STRING),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2007 gaim_value_new_outgoing(GAIM_TYPE_STRING),
10104
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2008 gaim_value_new(GAIM_TYPE_SUBTYPE,
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2009 GAIM_SUBTYPE_CONVERSATION),
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2010 gaim_value_new_outgoing(GAIM_TYPE_UINT));
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2011
8999
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2012 gaim_signal_register(handle, "received-im-msg",
10104
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2013 gaim_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT,
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2014 NULL, 5,
8999
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2015 gaim_value_new(GAIM_TYPE_SUBTYPE,
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2016 GAIM_SUBTYPE_ACCOUNT),
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2017 gaim_value_new(GAIM_TYPE_STRING),
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2018 gaim_value_new(GAIM_TYPE_STRING),
10104
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2019 gaim_value_new(GAIM_TYPE_SUBTYPE,
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2020 GAIM_SUBTYPE_CONVERSATION),
8999
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2021 gaim_value_new(GAIM_TYPE_UINT));
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2022
8078
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2023 gaim_signal_register(handle, "writing-chat-msg",
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2024 gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2025 gaim_value_new(GAIM_TYPE_BOOLEAN), 3,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2026 gaim_value_new(GAIM_TYPE_SUBTYPE,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2027 GAIM_SUBTYPE_ACCOUNT),
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2028 gaim_value_new(GAIM_TYPE_SUBTYPE,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2029 GAIM_SUBTYPE_CONVERSATION),
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2030 gaim_value_new_outgoing(GAIM_TYPE_STRING));
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2031
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2032 gaim_signal_register(handle, "wrote-chat-msg",
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2033 gaim_marshal_VOID__POINTER_POINTER_POINTER,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2034 NULL, 3,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2035 gaim_value_new(GAIM_TYPE_SUBTYPE,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2036 GAIM_SUBTYPE_ACCOUNT),
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2037 gaim_value_new(GAIM_TYPE_SUBTYPE,
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2038 GAIM_SUBTYPE_CONVERSATION),
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2039 gaim_value_new(GAIM_TYPE_STRING));
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
2040
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2041 gaim_signal_register(handle, "sending-chat-msg",
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2042 gaim_marshal_VOID__POINTER_POINTER_UINT, NULL, 3,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2043 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2044 GAIM_SUBTYPE_ACCOUNT),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2045 gaim_value_new_outgoing(GAIM_TYPE_STRING),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2046 gaim_value_new(GAIM_TYPE_UINT));
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2047
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2048 gaim_signal_register(handle, "sent-chat-msg",
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2049 gaim_marshal_VOID__POINTER_POINTER_UINT, NULL, 3,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2050 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2051 GAIM_SUBTYPE_ACCOUNT),
6607
32fd26037a59 [gaim-migrate @ 7131]
Christian Hammond <chipx86@chipx86.com>
parents: 6605
diff changeset
2052 gaim_value_new(GAIM_TYPE_STRING),
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2053 gaim_value_new(GAIM_TYPE_UINT));
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2054
8999
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2055 gaim_signal_register(handle, "receiving-chat-msg",
10104
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2056 gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER,
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2057 gaim_value_new(GAIM_TYPE_BOOLEAN), 5,
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2058 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2059 GAIM_SUBTYPE_ACCOUNT),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2060 gaim_value_new_outgoing(GAIM_TYPE_STRING),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2061 gaim_value_new_outgoing(GAIM_TYPE_STRING),
7511
0d98123a9378 [gaim-migrate @ 8124]
Christian Hammond <chipx86@chipx86.com>
parents: 7431
diff changeset
2062 gaim_value_new(GAIM_TYPE_SUBTYPE,
10104
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2063 GAIM_SUBTYPE_CONVERSATION),
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2064 gaim_value_new_outgoing(GAIM_TYPE_UINT));
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2065
8999
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2066 gaim_signal_register(handle, "received-chat-msg",
10104
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2067 gaim_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT,
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2068 NULL, 5,
8999
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2069 gaim_value_new(GAIM_TYPE_SUBTYPE,
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2070 GAIM_SUBTYPE_ACCOUNT),
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2071 gaim_value_new(GAIM_TYPE_STRING),
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2072 gaim_value_new(GAIM_TYPE_STRING),
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2073 gaim_value_new(GAIM_TYPE_SUBTYPE,
10104
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2074 GAIM_SUBTYPE_CONVERSATION),
081392879815 [gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents: 10087
diff changeset
2075 gaim_value_new(GAIM_TYPE_UINT));
8999
dd434cfec86a [gaim-migrate @ 9774]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8998
diff changeset
2076
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2077 gaim_signal_register(handle, "conversation-created",
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2078 gaim_marshal_VOID__POINTER, NULL, 1,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2079 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2080 GAIM_SUBTYPE_CONVERSATION));
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2081
9734
58a18645cbd5 [gaim-migrate @ 10595]
Kevin Stange <kstange@pidgin.im>
parents: 9633
diff changeset
2082 gaim_signal_register(handle, "conversation-updated",
9909
b13c36f7d52b [gaim-migrate @ 10801]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9846
diff changeset
2083 gaim_marshal_VOID__POINTER_UINT, NULL, 2,
9734
58a18645cbd5 [gaim-migrate @ 10595]
Kevin Stange <kstange@pidgin.im>
parents: 9633
diff changeset
2084 gaim_value_new(GAIM_TYPE_SUBTYPE,
58a18645cbd5 [gaim-migrate @ 10595]
Kevin Stange <kstange@pidgin.im>
parents: 9633
diff changeset
2085 GAIM_SUBTYPE_CONVERSATION),
58a18645cbd5 [gaim-migrate @ 10595]
Kevin Stange <kstange@pidgin.im>
parents: 9633
diff changeset
2086 gaim_value_new(GAIM_TYPE_UINT));
58a18645cbd5 [gaim-migrate @ 10595]
Kevin Stange <kstange@pidgin.im>
parents: 9633
diff changeset
2087
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2088 gaim_signal_register(handle, "deleting-conversation",
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2089 gaim_marshal_VOID__POINTER, NULL, 1,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2090 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2091 GAIM_SUBTYPE_CONVERSATION));
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2092
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2093 gaim_signal_register(handle, "buddy-typing",
11793
6fd6b4d95147 [gaim-migrate @ 14084]
Gary Kramlich <grim@reaperworld.com>
parents: 11706
diff changeset
2094 gaim_marshal_VOID__POINTER_POINTER, NULL, 2,
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2095 gaim_value_new(GAIM_TYPE_SUBTYPE,
11706
e45dd5c7b259 [gaim-migrate @ 13997]
Richard Laager <rlaager@pidgin.im>
parents: 11676
diff changeset
2096 GAIM_SUBTYPE_ACCOUNT),
e45dd5c7b259 [gaim-migrate @ 13997]
Richard Laager <rlaager@pidgin.im>
parents: 11676
diff changeset
2097 gaim_value_new(GAIM_TYPE_STRING));
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2098
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6787
diff changeset
2099 gaim_signal_register(handle, "buddy-typing-stopped",
11793
6fd6b4d95147 [gaim-migrate @ 14084]
Gary Kramlich <grim@reaperworld.com>
parents: 11706
diff changeset
2100 gaim_marshal_VOID__POINTER_POINTER, NULL, 2,
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6787
diff changeset
2101 gaim_value_new(GAIM_TYPE_SUBTYPE,
11706
e45dd5c7b259 [gaim-migrate @ 13997]
Richard Laager <rlaager@pidgin.im>
parents: 11676
diff changeset
2102 GAIM_SUBTYPE_ACCOUNT),
e45dd5c7b259 [gaim-migrate @ 13997]
Richard Laager <rlaager@pidgin.im>
parents: 11676
diff changeset
2103 gaim_value_new(GAIM_TYPE_STRING));
6837
7c0a9bac0f3f [gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents: 6787
diff changeset
2104
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2105 gaim_signal_register(handle, "chat-buddy-joining",
9587
e015e91f6a3e [gaim-migrate @ 10430]
Luke Schierer <lschiere@pidgin.im>
parents: 9554
diff changeset
2106 gaim_marshal_BOOLEAN__POINTER_POINTER_UINT,
e015e91f6a3e [gaim-migrate @ 10430]
Luke Schierer <lschiere@pidgin.im>
parents: 9554
diff changeset
2107 gaim_value_new(GAIM_TYPE_BOOLEAN), 3,
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2108 gaim_value_new(GAIM_TYPE_SUBTYPE,
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2109 GAIM_SUBTYPE_CONVERSATION),
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2110 gaim_value_new(GAIM_TYPE_STRING),
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2111 gaim_value_new(GAIM_TYPE_UINT));
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2112
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2113 gaim_signal_register(handle, "chat-buddy-joined",
12850
744542bdd53e [gaim-migrate @ 15200]
Casey Harkins <charkins@pidgin.im>
parents: 12840
diff changeset
2114 gaim_marshal_VOID__POINTER_POINTER_UINT_UINT, NULL, 4,
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2115 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2116 GAIM_SUBTYPE_CONVERSATION),
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2117 gaim_value_new(GAIM_TYPE_STRING),
12850
744542bdd53e [gaim-migrate @ 15200]
Casey Harkins <charkins@pidgin.im>
parents: 12840
diff changeset
2118 gaim_value_new(GAIM_TYPE_UINT),
744542bdd53e [gaim-migrate @ 15200]
Casey Harkins <charkins@pidgin.im>
parents: 12840
diff changeset
2119 gaim_value_new(GAIM_TYPE_BOOLEAN));
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2120
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2121 gaim_signal_register(handle, "chat-buddy-flags",
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2122 gaim_marshal_VOID__POINTER_POINTER_UINT_UINT, NULL, 4,
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2123 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2124 GAIM_SUBTYPE_CONVERSATION),
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2125 gaim_value_new(GAIM_TYPE_STRING),
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2126 gaim_value_new(GAIM_TYPE_UINT),
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9528
diff changeset
2127 gaim_value_new(GAIM_TYPE_UINT));
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2128
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2129 gaim_signal_register(handle, "chat-buddy-leaving",
9587
e015e91f6a3e [gaim-migrate @ 10430]
Luke Schierer <lschiere@pidgin.im>
parents: 9554
diff changeset
2130 gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER,
e015e91f6a3e [gaim-migrate @ 10430]
Luke Schierer <lschiere@pidgin.im>
parents: 9554
diff changeset
2131 gaim_value_new(GAIM_TYPE_BOOLEAN), 3,
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2132 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2133 GAIM_SUBTYPE_CONVERSATION),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2134 gaim_value_new(GAIM_TYPE_STRING),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2135 gaim_value_new(GAIM_TYPE_STRING));
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2136
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2137 gaim_signal_register(handle, "chat-buddy-left",
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2138 gaim_marshal_VOID__POINTER_POINTER_POINTER, NULL, 3,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2139 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2140 GAIM_SUBTYPE_CONVERSATION),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2141 gaim_value_new(GAIM_TYPE_STRING),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2142 gaim_value_new(GAIM_TYPE_STRING));
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2143
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2144 gaim_signal_register(handle, "chat-inviting-user",
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2145 gaim_marshal_VOID__POINTER_POINTER_POINTER, NULL, 3,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2146 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2147 GAIM_SUBTYPE_CONVERSATION),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2148 gaim_value_new(GAIM_TYPE_STRING),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2149 gaim_value_new_outgoing(GAIM_TYPE_STRING));
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2150
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2151 gaim_signal_register(handle, "chat-invited-user",
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2152 gaim_marshal_VOID__POINTER_POINTER_POINTER, NULL, 3,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2153 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2154 GAIM_SUBTYPE_CONVERSATION),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2155 gaim_value_new(GAIM_TYPE_STRING),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2156 gaim_value_new(GAIM_TYPE_STRING));
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2157
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2158 gaim_signal_register(handle, "chat-invited",
11064
8183c72bef80 [gaim-migrate @ 13035]
Levi Bard <levi@bard.sytes.net>
parents: 11048
diff changeset
2159 gaim_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER,
9514
05247f11e65c [gaim-migrate @ 10341]
Gary Kramlich <grim@pidgin.im>
parents: 9375
diff changeset
2160 NULL, 5,
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2161 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2162 GAIM_SUBTYPE_ACCOUNT),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2163 gaim_value_new(GAIM_TYPE_STRING),
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2164 gaim_value_new(GAIM_TYPE_STRING),
9514
05247f11e65c [gaim-migrate @ 10341]
Gary Kramlich <grim@pidgin.im>
parents: 9375
diff changeset
2165 gaim_value_new(GAIM_TYPE_STRING),
05247f11e65c [gaim-migrate @ 10341]
Gary Kramlich <grim@pidgin.im>
parents: 9375
diff changeset
2166 gaim_value_new(GAIM_TYPE_POINTER));
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2167
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2168 gaim_signal_register(handle, "chat-joined",
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2169 gaim_marshal_VOID__POINTER, NULL, 1,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2170 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2171 GAIM_SUBTYPE_CONVERSATION));
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2172
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2173 gaim_signal_register(handle, "chat-left",
6564
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2174 gaim_marshal_VOID__POINTER, NULL, 1,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2175 gaim_value_new(GAIM_TYPE_SUBTYPE,
a7a2c1927544 [gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents: 6509
diff changeset
2176 GAIM_SUBTYPE_CONVERSATION));
9517
a4b0dccad1f8 [gaim-migrate @ 10344]
Gary Kramlich <grim@pidgin.im>
parents: 9514
diff changeset
2177
a4b0dccad1f8 [gaim-migrate @ 10344]
Gary Kramlich <grim@pidgin.im>
parents: 9514
diff changeset
2178 gaim_signal_register(handle, "chat-topic-changed",
9528
fda6e5341bf2 [gaim-migrate @ 10355]
Luke Schierer <lschiere@pidgin.im>
parents: 9517
diff changeset
2179 gaim_marshal_VOID__POINTER_POINTER_POINTER, NULL, 3,
9517
a4b0dccad1f8 [gaim-migrate @ 10344]
Gary Kramlich <grim@pidgin.im>
parents: 9514
diff changeset
2180 gaim_value_new(GAIM_TYPE_SUBTYPE,
a4b0dccad1f8 [gaim-migrate @ 10344]
Gary Kramlich <grim@pidgin.im>
parents: 9514
diff changeset
2181 GAIM_SUBTYPE_CONVERSATION),
a4b0dccad1f8 [gaim-migrate @ 10344]
Gary Kramlich <grim@pidgin.im>
parents: 9514
diff changeset
2182 gaim_value_new(GAIM_TYPE_STRING),
a4b0dccad1f8 [gaim-migrate @ 10344]
Gary Kramlich <grim@pidgin.im>
parents: 9514
diff changeset
2183 gaim_value_new(GAIM_TYPE_STRING));
5858
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
2184 }
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2185
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2186 void
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2187 gaim_conversations_uninit(void)
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2188 {
9909
b13c36f7d52b [gaim-migrate @ 10801]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9846
diff changeset
2189 while (conversations)
b13c36f7d52b [gaim-migrate @ 10801]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9846
diff changeset
2190 gaim_conversation_destroy((GaimConversation*)conversations->data);
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2191 gaim_signals_unregister_by_instance(gaim_conversations_get_handle());
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
2192 }

mercurial