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