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