libpurple/conversation.c

Fri, 02 Aug 2013 03:19:58 +0530

author
Ankit Vani <a@nevitus.org>
date
Fri, 02 Aug 2013 03:19:58 +0530
branch
soc.2013.gobjectification.plugins
changeset 36414
18a801df193a
parent 36366
202c60d1300f
parent 34868
faa5b053f310
child 36475
03f37a4be260
permissions
-rw-r--r--

Merged soc.2013.gobjectification branch

66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 /*
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2 * purple
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8015
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8015
diff changeset
6 * source distribution.
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
7 *
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * (at your option) any later version.
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 *
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * GNU General Public License for more details.
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 *
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19769
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21 */
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
22 #include "internal.h"
34706
02cb08146888 Renamed blist.[ch] to buddylist.[ch]
Ankit Vani <a@nevitus.org>
parents: 34687
diff changeset
23 #include "buddylist.h"
17266
d4dc6a9ca244 New function purple_conversation_do_command. This is almost like
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17265
diff changeset
24 #include "cmds.h"
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
25 #include "conversation.h"
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11137
diff changeset
26 #include "dbus-maybe.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
27 #include "debug.h"
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
28 #include "enums.h"
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6846
diff changeset
29 #include "imgstore.h"
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5350
diff changeset
30 #include "notify.h"
5539
a13dd0ba205a [gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents: 5436
diff changeset
31 #include "prefs.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
32 #include "prpl.h"
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
33 #include "request.h"
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
34 #include "signals.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
35 #include "util.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
36
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
37 #define PURPLE_CONVERSATION_GET_PRIVATE(obj) \
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
38 (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CONVERSATION, PurpleConversationPrivate))
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
39
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
40 /** @copydoc _PurpleConversationPrivate */
34602
dbe6ee43aaa7 Created conversationtypes.[ch] for PurpleChatConversation and PurpleIMConversation
Ankit Vani <a@nevitus.org>
parents: 34601
diff changeset
41 typedef struct _PurpleConversationPrivate PurpleConversationPrivate;
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
42
34747
2d77da77b594 Fixed documentation for PurpleConversation and PurpleConversationPrivate structs
Ankit Vani <a@nevitus.org>
parents: 34746
diff changeset
43 /** General private data for a conversation */
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
44 struct _PurpleConversationPrivate
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
45 {
34678
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34673
diff changeset
46 PurpleAccount *account; /**< The user using this conversation. */
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
47
34678
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34673
diff changeset
48 char *name; /**< The name of the conversation. */
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34673
diff changeset
49 char *title; /**< The window title. */
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
50
34678
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34673
diff changeset
51 gboolean logging; /**< The status of logging. */
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
52
34678
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34673
diff changeset
53 GList *logs; /**< This conversation's logs */
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
54
34678
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34673
diff changeset
55 PurpleConversationUiOps *ui_ops; /**< UI-specific operations. */
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
56
34678
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34673
diff changeset
57 PurpleConnectionFlags features; /**< The supported features */
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34673
diff changeset
58 GList *message_history; /**< Message history, as a GList of
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34673
diff changeset
59 PurpleConversationMessage's */
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
60 };
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
61
34667
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
62 /**
32690
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
63 * Description of a conversation message
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
64 */
34601
bccb29d7be14 Removed GObject for PurpleConversationMessage, this will be a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34600
diff changeset
65 struct _PurpleConversationMessage
32690
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
66 {
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
67 char *who;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
68 char *what;
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
69 PurpleMessageFlags flags;
32690
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
70 time_t when;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
71 PurpleConversation *conv;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
72 char *alias;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
73 };
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
74
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
75 /* GObject Property enums */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
76 enum
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
77 {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
78 PROP_0,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
79 PROP_ACCOUNT,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
80 PROP_NAME,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
81 PROP_TITLE,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
82 PROP_LOGGING,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
83 PROP_FEATURES,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
84 PROP_LAST
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
85 };
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
86
34648
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
87 static GObjectClass *parent_class;
27967
01a64c630e35 More efficient purple_find_conversation_with_account. Closes #9703.
Aman Gupta <aman@tmm1.net>
parents: 27954
diff changeset
88
31900
bd3ee9587add conversation: O(1) purple_conv_chat_cb_find
Paul Aurich <darkrain42@pidgin.im>
parents: 31643
diff changeset
89
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
90 static void
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
91 common_send(PurpleConversation *conv, const char *message, PurpleMessageFlags msgflags)
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3789
diff changeset
92 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
93 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
94 PurpleConnection *gc;
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
95 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
96 char *displayed = NULL, *sent = NULL;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
97 int err = 0;
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3789
diff changeset
98
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
99 g_return_if_fail(priv != NULL);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
100
23440
d20160530c78 Don't use strlen() when we can just check the first character
Mark Doliner <markdoliner@pidgin.im>
parents: 23312
diff changeset
101 if (*message == '\0')
7947
76de4859a53a [gaim-migrate @ 8621]
Mark Doliner <markdoliner@pidgin.im>
parents: 7930
diff changeset
102 return;
76de4859a53a [gaim-migrate @ 8621]
Mark Doliner <markdoliner@pidgin.im>
parents: 7930
diff changeset
103
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
104 account = purple_conversation_get_account(conv);
32698
154e4a2a6287 Our API really shouldn't have a 'gc' in it anymore.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32690
diff changeset
105 gc = purple_conversation_get_connection(conv);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
106
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
107 g_return_if_fail(account != NULL);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
108 g_return_if_fail(gc != NULL);
3731
1bc8fa617c7d [gaim-migrate @ 3869]
Nathan Walp <nwalp@pidgin.im>
parents: 3716
diff changeset
109
18087
b56ec2e9dae6 add a PURPLE_MESSAGE_NO_LINKIFY to prevent things from getting linkified
Nathan Walp <nwalp@pidgin.im>
parents: 18068
diff changeset
110 /* Always linkfy the text for display, unless we're
b56ec2e9dae6 add a PURPLE_MESSAGE_NO_LINKIFY to prevent things from getting linkified
Nathan Walp <nwalp@pidgin.im>
parents: 18068
diff changeset
111 * explicitly asked to do otheriwse*/
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
112 if (!(msgflags & PURPLE_MESSAGE_INVISIBLE)) {
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
113 if(msgflags & PURPLE_MESSAGE_NO_LINKIFY)
19674
371069ae12fd Add a new flag PURPLE_MESSAGE_INVISIBLE which can be used to send a message
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19672
diff changeset
114 displayed = g_strdup(message);
371069ae12fd Add a new flag PURPLE_MESSAGE_INVISIBLE which can be used to send a message
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19672
diff changeset
115 else
371069ae12fd Add a new flag PURPLE_MESSAGE_INVISIBLE which can be used to send a message
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19672
diff changeset
116 displayed = purple_markup_linkify(message);
371069ae12fd Add a new flag PURPLE_MESSAGE_INVISIBLE which can be used to send a message
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19672
diff changeset
117 }
371069ae12fd Add a new flag PURPLE_MESSAGE_INVISIBLE which can be used to send a message
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19672
diff changeset
118
34746
dc9c911dbd35 Started GObjectification of PurpleConnection.
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
119 if (displayed && (priv->features & PURPLE_CONNECTION_FLAG_HTML) &&
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
120 !(msgflags & PURPLE_MESSAGE_RAW)) {
12901
85ddd02a44d1 [gaim-migrate @ 15254]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12867
diff changeset
121 sent = g_strdup(displayed);
19674
371069ae12fd Add a new flag PURPLE_MESSAGE_INVISIBLE which can be used to send a message
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19672
diff changeset
122 } else
12901
85ddd02a44d1 [gaim-migrate @ 15254]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12867
diff changeset
123 sent = g_strdup(message);
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5103
diff changeset
124
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
125 msgflags |= PURPLE_MESSAGE_SEND;
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
126
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
127 if (PURPLE_IS_IM_CONVERSATION(conv)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
128 purple_signal_emit(purple_conversations_get_handle(), "sending-im-msg",
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
129 account,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
130 purple_conversation_get_name(conv), &sent);
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
131
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
132 if (sent != NULL && sent[0] != '\0') {
12216
d80739091a63 [gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12018
diff changeset
133
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
134 err = serv_send_im(gc, purple_conversation_get_name(conv),
12216
d80739091a63 [gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12018
diff changeset
135 sent, msgflags);
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6846
diff changeset
136
8078
e8e087085339 [gaim-migrate @ 8777]
Mark Doliner <markdoliner@pidgin.im>
parents: 8076
diff changeset
137 if ((err > 0) && (displayed != NULL))
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
138 purple_conversation_write_message(conv, NULL, displayed, msgflags, time(NULL));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
139
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
140 purple_signal_emit(purple_conversations_get_handle(), "sent-im-msg",
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
141 account,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
142 purple_conversation_get_name(conv), sent);
2102
2d024ad2e07b [gaim-migrate @ 2112]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2094
diff changeset
143 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
144 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
145 else {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
146 PurpleChatConversation *chat = PURPLE_CHAT_CONVERSATION(conv);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
147 purple_signal_emit(purple_conversations_get_handle(), "sending-chat-msg",
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
148 account, &sent,
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
149 purple_chat_conversation_get_id(PURPLE_CHAT_CONVERSATION(conv)));
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
150
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
151 if (sent != NULL && sent[0] != '\0') {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
152 err = serv_chat_send(gc, purple_chat_conversation_get_id(chat), sent, msgflags);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
153
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
154 purple_signal_emit(purple_conversations_get_handle(), "sent-chat-msg",
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
155 account, sent,
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
156 purple_chat_conversation_get_id(chat));
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
157 }
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
158 }
1253
f02697a6aada [gaim-migrate @ 1263]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
159
2123
4cfdde0aa3f1 [gaim-migrate @ 2133]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2111
diff changeset
160 if (err < 0) {
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
161 const char *who;
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12902
diff changeset
162 const char *msg;
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
163
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
164 who = purple_conversation_get_name(conv);
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
165
5213
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
166 if (err == -E2BIG) {
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
167 msg = _("Unable to send message: The message is too large.");
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
168
34868
faa5b053f310 Replaced purple_conversation_helper_present_error() with simpler purple_conversation_present_error()
Ankit Vani <a@nevitus.org>
parents: 34787
diff changeset
169 if (!purple_conversation_present_error(who, account, msg)) {
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12902
diff changeset
170 char *msg2 = g_strdup_printf(_("Unable to send message to %s."), who);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
171 purple_notify_error(gc, NULL, msg2, _("The message is too large."));
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12902
diff changeset
172 g_free(msg2);
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
173 }
5213
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
174 }
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
175 else if (err == -ENOTCONN) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
176 purple_debug(PURPLE_DEBUG_ERROR, "conversation",
5213
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
177 "Not yet connected.\n");
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
178 }
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
179 else {
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
180 msg = _("Unable to send message.");
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
181
34868
faa5b053f310 Replaced purple_conversation_helper_present_error() with simpler purple_conversation_present_error()
Ankit Vani <a@nevitus.org>
parents: 34787
diff changeset
182 if (!purple_conversation_present_error(who, account, msg)) {
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12902
diff changeset
183 char *msg2 = g_strdup_printf(_("Unable to send message to %s."), who);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
184 purple_notify_error(gc, NULL, msg2, NULL);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12902
diff changeset
185 g_free(msg2);
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
186 }
5213
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
187 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
188 }
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
189
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
190 g_free(displayed);
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
191 g_free(sent);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
192 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
193
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
194 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
195 open_log(PurpleConversation *conv)
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
196 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
197 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
198
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
199 g_return_if_fail(priv != NULL);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
200
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
201 priv->logs = g_list_append(NULL, purple_log_new(PURPLE_IS_CHAT_CONVERSATION(conv) ? PURPLE_LOG_CHAT :
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
202 PURPLE_LOG_IM, priv->name, priv->account,
13120
c25222322810 [gaim-migrate @ 15481]
Richard Laager <rlaager@pidgin.im>
parents: 13107
diff changeset
203 conv, time(NULL), NULL));
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
204 }
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
205
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
206 /* Functions that deal with PurpleConversationMessage */
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
207
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
208 static void
21253
121075afcdbc Show alias in restored conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
209 add_message_to_history(PurpleConversation *conv, const char *who, const char *alias,
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
210 const char *message, PurpleMessageFlags flags, time_t when)
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
211 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
212 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
213 PurpleConversationMessage *msg;
22458
42e804b6db56 Kill off some uses of account->gc.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22390
diff changeset
214 PurpleConnection *gc;
42e804b6db56 Kill off some uses of account->gc.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22390
diff changeset
215
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
216 g_return_if_fail(priv != NULL);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
217
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
218 gc = purple_account_get_connection(priv->account);
19601
8f000de5f9de Do not duplicate the same message in the history, and store the correct
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19595
diff changeset
219
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
220 if (flags & PURPLE_MESSAGE_SEND) {
19601
8f000de5f9de Do not duplicate the same message in the history, and store the correct
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19595
diff changeset
221 const char *me = NULL;
22458
42e804b6db56 Kill off some uses of account->gc.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22390
diff changeset
222 if (gc)
42e804b6db56 Kill off some uses of account->gc.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22390
diff changeset
223 me = purple_connection_get_display_name(gc);
19601
8f000de5f9de Do not duplicate the same message in the history, and store the correct
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19595
diff changeset
224 if (!me)
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
225 me = purple_account_get_username(priv->account);
19601
8f000de5f9de Do not duplicate the same message in the history, and store the correct
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19595
diff changeset
226 who = me;
8f000de5f9de Do not duplicate the same message in the history, and store the correct
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19595
diff changeset
227 }
21253
121075afcdbc Show alias in restored conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
228
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
229 msg = g_new0(PurpleConversationMessage, 1);
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
230 PURPLE_DBUS_REGISTER_POINTER(msg, PurpleConversationMessage);
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
231 msg->who = g_strdup(who);
21253
121075afcdbc Show alias in restored conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
232 msg->alias = g_strdup(alias);
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
233 msg->flags = flags;
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
234 msg->what = g_strdup(message);
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
235 msg->when = when;
20422
49be7bdacd56 Contactize the message history when re-attaching the pidgin ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20420
diff changeset
236 msg->conv = conv;
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
237
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
238 priv->message_history = g_list_prepend(priv->message_history, msg);
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
239 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
240
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
241 static void
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
242 free_conv_message(PurpleConversationMessage *msg)
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
243 {
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
244 g_free(msg->who);
21253
121075afcdbc Show alias in restored conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
245 g_free(msg->alias);
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
246 g_free(msg->what);
19595
acd61f0d6a81 DBus-ify the message history in a conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19593
diff changeset
247 PURPLE_DBUS_UNREGISTER_POINTER(msg);
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
248 g_free(msg);
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
249 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
250
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
251 static void
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
252 message_history_free(GList *list)
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
253 {
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
254 g_list_foreach(list, (GFunc)free_conv_message, NULL);
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
255 g_list_free(list);
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
256 }
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
257
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
258 /**************************************************************************
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
259 * Conversation API
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
260 **************************************************************************/
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
261 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
262 purple_conversation_present(PurpleConversation *conv) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
263 PurpleConversationUiOps *ops;
12624
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
264
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
265 g_return_if_fail(conv != NULL);
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
266
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
267 ops = purple_conversation_get_ui_ops(conv);
12624
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
268 if(ops && ops->present)
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
269 ops->present(conv);
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
270 }
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
271
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
272 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
273 purple_conversation_set_features(PurpleConversation *conv, PurpleConnectionFlags features)
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
274 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
275 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
276
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
277 g_return_if_fail(priv != NULL);
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
278
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
279 priv->features = features;
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
280 purple_conversation_update(conv, PURPLE_CONVERSATION_UPDATE_FEATURES);
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
281 }
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
282
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
283 PurpleConnectionFlags
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
284 purple_conversation_get_features(PurpleConversation *conv)
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
285 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
286 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
287
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
288 g_return_val_if_fail(priv != NULL, 0);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
289
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
290 return priv->features;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
291 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
292
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
293 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
294 purple_conversation_set_ui_ops(PurpleConversation *conv,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
295 PurpleConversationUiOps *ops)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
296 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
297 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
298
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
299 g_return_if_fail(priv != NULL);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
300
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
301 if (priv->ui_ops == ops)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
302 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
303
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
304 if (priv->ui_ops != NULL && priv->ui_ops->destroy_conversation != NULL)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
305 priv->ui_ops->destroy_conversation(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
306
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
307 priv->ui_ops = ops;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
308 }
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
309
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
310 PurpleConversationUiOps *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
311 purple_conversation_get_ui_ops(const PurpleConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
312 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
313 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
314
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
315 g_return_val_if_fail(priv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
316
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
317 return priv->ui_ops;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
318 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
319
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
320 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
321 purple_conversation_set_account(PurpleConversation *conv, PurpleAccount *account)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
322 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
323 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
324
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
325 g_return_if_fail(priv != NULL);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
326
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
327 if (account == purple_conversation_get_account(conv))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
328 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
329
34651
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
330 purple_conversations_update_cache(conv, NULL, account);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
331 priv->account = account;
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
332
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
333 purple_conversation_update(conv, PURPLE_CONVERSATION_UPDATE_ACCOUNT);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
334 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
335
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
336 PurpleAccount *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
337 purple_conversation_get_account(const PurpleConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
338 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
339 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
340
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
341 g_return_val_if_fail(priv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
342
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
343 return priv->account;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
344 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
345
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
346 PurpleConnection *
32698
154e4a2a6287 Our API really shouldn't have a 'gc' in it anymore.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32690
diff changeset
347 purple_conversation_get_connection(const PurpleConversation *conv)
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
348 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
349 PurpleAccount *account;
4425
b2ccc08ed727 [gaim-migrate @ 4700]
Christian Hammond <chipx86@chipx86.com>
parents: 4415
diff changeset
350
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
351 g_return_val_if_fail(conv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
352
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
353 account = purple_conversation_get_account(conv);
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
354
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
355 if (account == NULL)
4425
b2ccc08ed727 [gaim-migrate @ 4700]
Christian Hammond <chipx86@chipx86.com>
parents: 4415
diff changeset
356 return NULL;
b2ccc08ed727 [gaim-migrate @ 4700]
Christian Hammond <chipx86@chipx86.com>
parents: 4415
diff changeset
357
32624
f957ad287bcc Convert code to use the purple_account accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
358 return purple_account_get_connection(account);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
359 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
360
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
361 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
362 purple_conversation_set_title(PurpleConversation *conv, const char *title)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
363 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
364 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
365
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
366 g_return_if_fail(priv != NULL);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
367 g_return_if_fail(title != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
368
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
369 g_free(priv->title);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
370 priv->title = g_strdup(title);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
371
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
372 purple_conversation_update(conv, PURPLE_CONVERSATION_UPDATE_TITLE);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
373 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
374
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
375 const char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
376 purple_conversation_get_title(const PurpleConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
377 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
378 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
379
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
380 g_return_val_if_fail(priv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
381
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
382 return priv->title;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
383 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
384
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
385 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
386 purple_conversation_autoset_title(PurpleConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
387 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
388 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
389 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
390 PurpleChat *chat;
8015
52c74f82aff3 [gaim-migrate @ 8695]
Nathan Walp <nwalp@pidgin.im>
parents: 7947
diff changeset
391 const char *text = NULL, *name;
3799
1a53373deee6 [gaim-migrate @ 3941]
Nathan Walp <nwalp@pidgin.im>
parents: 3790
diff changeset
392
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
393 g_return_if_fail(conv != NULL);
2267
9704c0f60689 [gaim-migrate @ 2277]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2264
diff changeset
394
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
395 account = purple_conversation_get_account(conv);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
396 name = purple_conversation_get_name(conv);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
397
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
398 if (PURPLE_IS_IM_CONVERSATION(conv)) {
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34706
diff changeset
399 if (account && ((b = purple_blist_find_buddy(account, name)) != NULL))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
400 text = purple_buddy_get_contact_alias(b);
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
401 } else if (PURPLE_IS_CHAT_CONVERSATION(conv)) {
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
402 if (account && ((chat = purple_blist_find_chat(account, name)) != NULL))
24955
77727fac30c6 Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents: 24051
diff changeset
403 text = purple_chat_get_name(chat);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
404 }
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
405
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
406 if(text == NULL)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
407 text = name;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
408
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
409 purple_conversation_set_title(conv, text);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
410 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
411
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
412 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
413 purple_conversation_set_name(PurpleConversation *conv, const char *name)
7256
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
414 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
415 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
416
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
417 g_return_if_fail(priv != NULL);
7256
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
418
34651
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
419 purple_conversations_update_cache(conv, name, NULL);
27967
01a64c630e35 More efficient purple_find_conversation_with_account. Closes #9703.
Aman Gupta <aman@tmm1.net>
parents: 27954
diff changeset
420
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
421 g_free(priv->name);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
422 priv->name = g_strdup(name);
7257
599b8494e6ee [gaim-migrate @ 7834]
Christian Hammond <chipx86@chipx86.com>
parents: 7256
diff changeset
423
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
424 purple_conversation_autoset_title(conv);
7256
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
425 }
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
426
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
427 const char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
428 purple_conversation_get_name(const PurpleConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
429 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
430 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
431
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
432 g_return_val_if_fail(priv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
433
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
434 return priv->name;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
435 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
436
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
437 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
438 purple_conversation_set_logging(PurpleConversation *conv, gboolean log)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
439 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
440 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
441
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
442 g_return_if_fail(priv != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
443
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
444 if (priv->logging != log)
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
445 {
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
446 priv->logging = log;
34651
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
447 if (log && priv->logs == NULL)
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
448 open_log(conv);
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
449
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
450 purple_conversation_update(conv, PURPLE_CONVERSATION_UPDATE_LOGGING);
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
451 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
452 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
453
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
454 gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
455 purple_conversation_is_logging(const PurpleConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
456 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
457 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
458
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
459 g_return_val_if_fail(priv != NULL, FALSE);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
460
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
461 return priv->logging;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
462 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
463
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
464 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
465 purple_conversation_close_logs(PurpleConversation *conv)
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
466 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
467 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
468
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
469 g_return_if_fail(priv != NULL);
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
470
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
471 g_list_foreach(priv->logs, (GFunc)purple_log_free, NULL);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
472 g_list_free(priv->logs);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
473 priv->logs = NULL;
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
474 }
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
475
4876
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
476 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
477 purple_conversation_write(PurpleConversation *conv, const char *who,
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
478 const char *message, PurpleMessageFlags flags,
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
479 time_t mtime)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
480 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
481 PurplePluginProtocolInfo *prpl_info = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
482 PurpleConnection *gc = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
483 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
484 PurpleConversationUiOps *ops;
11468
3411c0d7f597 [gaim-migrate @ 13708]
Richard Laager <rlaager@pidgin.im>
parents: 11454
diff changeset
485 const char *alias;
13234
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
486 char *displayed = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
487 PurpleBuddy *b;
13234
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
488 int plugin_return;
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
489 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
490 /* int logging_font_options = 0; */
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
491
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
492 g_return_if_fail(priv != NULL);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
493 g_return_if_fail(message != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
494
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
495 ops = purple_conversation_get_ui_ops(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
496
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
497 account = purple_conversation_get_account(conv);
6496
9833c2665143 [gaim-migrate @ 7011]
Christian Hammond <chipx86@chipx86.com>
parents: 6485
diff changeset
498
9833c2665143 [gaim-migrate @ 7011]
Christian Hammond <chipx86@chipx86.com>
parents: 6485
diff changeset
499 if (account != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
500 gc = purple_account_get_connection(account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
501
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
502 if (PURPLE_IS_CHAT_CONVERSATION(conv) &&
34755
9336815f86b6 Refactored the remaining libpurple to use the initial GObject connection API
Ankit Vani <a@nevitus.org>
parents: 34747
diff changeset
503 (gc != NULL && !g_slist_find(purple_connection_get_active_chats(gc), conv)))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
504 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
505
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
506 if (PURPLE_IS_IM_CONVERSATION(conv) &&
34656
adbcbe04077c Refactored remaining libpurple to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34651
diff changeset
507 !g_list_find(purple_conversations_get_all(), conv))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
508 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
509
13234
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
510 displayed = g_strdup(message);
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
511
19769
9420f2078435 writing-im-msg now receives the conversation name as the who argument if
Richard Laager <rlaager@pidgin.im>
parents: 19674
diff changeset
512 if (who == NULL || *who == '\0')
9420f2078435 writing-im-msg now receives the conversation name as the who argument if
Richard Laager <rlaager@pidgin.im>
parents: 19674
diff changeset
513 who = purple_conversation_get_name(conv);
9420f2078435 writing-im-msg now receives the conversation name as the who argument if
Richard Laager <rlaager@pidgin.im>
parents: 19674
diff changeset
514 alias = who;
9420f2078435 writing-im-msg now receives the conversation name as the who argument if
Richard Laager <rlaager@pidgin.im>
parents: 19674
diff changeset
515
13234
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
516 plugin_return =
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
517 GPOINTER_TO_INT(purple_signal_emit_return_1(
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
518 purple_conversations_get_handle(),
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
519 (PURPLE_IS_IM_CONVERSATION(conv) ? "writing-im-msg" : "writing-chat-msg"),
13234
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
520 account, who, &displayed, conv, flags));
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
521
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
522 if (displayed == NULL)
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
523 return;
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
524
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
525 if (plugin_return) {
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
526 g_free(displayed);
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
527 return;
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
528 }
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
529
9613
cd81e0c76ec0 [gaim-migrate @ 10456]
Kevin Stange <kstange@pidgin.im>
parents: 9607
diff changeset
530 if (account != NULL) {
36366
202c60d1300f Refactored connection, conversation, conversationtypes to use the initial GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 36361
diff changeset
531 prpl_info = purple_find_protocol_info(purple_account_get_protocol_id(account));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
532
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
533 if (PURPLE_IS_IM_CONVERSATION(conv) ||
5350
966c6d4d7bdd [gaim-migrate @ 5726]
Christian Hammond <chipx86@chipx86.com>
parents: 5262
diff changeset
534 !(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) {
966c6d4d7bdd [gaim-migrate @ 5726]
Christian Hammond <chipx86@chipx86.com>
parents: 5262
diff changeset
535
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
536 if (flags & PURPLE_MESSAGE_SEND) {
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34706
diff changeset
537 b = purple_blist_find_buddy(account,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
538 purple_account_get_username(account));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
539
34589
428e92c79631 Renamed purple_account_[get,set]_alias to purple_account[get,set]_private_alias.
Ankit Vani <a@nevitus.org>
parents: 33578
diff changeset
540 if (purple_account_get_private_alias(account) != NULL)
428e92c79631 Renamed purple_account_[get,set]_alias to purple_account[get,set]_private_alias.
Ankit Vani <a@nevitus.org>
parents: 33578
diff changeset
541 alias = purple_account_get_private_alias(account);
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24955
diff changeset
542 else if (b != NULL && !purple_strequal(purple_buddy_get_name(b), purple_buddy_get_contact_alias(b)))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
543 alias = purple_buddy_get_contact_alias(b);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
544 else if (purple_connection_get_display_name(gc) != NULL)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
545 alias = purple_connection_get_display_name(gc);
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
546 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
547 alias = purple_account_get_username(account);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
548 }
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
549 else
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
550 {
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34706
diff changeset
551 b = purple_blist_find_buddy(account, who);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
552
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
553 if (b != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
554 alias = purple_buddy_get_contact_alias(b);
1772
c759c01bd66f [gaim-migrate @ 1782]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1764
diff changeset
555 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
556 }
474
8e9acf2f6c48 [gaim-migrate @ 484]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 473
diff changeset
557 }
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
558
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
559 if (!(flags & PURPLE_MESSAGE_NO_LOG) && purple_conversation_is_logging(conv)) {
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
560 GList *log;
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
561
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
562 log = priv->logs;
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
563 while (log != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
564 purple_log_write((PurpleLog *)log->data, flags, alias, mtime, displayed);
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
565 log = log->next;
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
566 }
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
567 }
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
568
19593
608995889b11 A conversation shouldn't need ui-ops for logging the messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19590
diff changeset
569 if (ops && ops->write_conv)
608995889b11 A conversation shouldn't need ui-ops for logging the messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19590
diff changeset
570 ops->write_conv(conv, who, alias, displayed, flags, mtime);
21253
121075afcdbc Show alias in restored conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
571
121075afcdbc Show alias in restored conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
572 add_message_to_history(conv, who, alias, message, flags, mtime);
13234
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
573
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
574 purple_signal_emit(purple_conversations_get_handle(),
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
575 (PURPLE_IS_IM_CONVERSATION(conv) ? "wrote-im-msg" : "wrote-chat-msg"),
13234
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
576 account, who, displayed, conv, flags);
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
577
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
578 g_free(displayed);
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
579 }
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
580
34648
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
581 void
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
582 purple_conversation_write_message(PurpleConversation *conv, const char *who,
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
583 const char *message, PurpleMessageFlags flags, time_t mtime)
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
584 {
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
585 PurpleConversationClass *klass = NULL;
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
586
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
587 g_return_if_fail(PURPLE_IS_CONVERSATION(conv));
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
588
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
589 klass = PURPLE_CONVERSATION_GET_CLASS(conv);
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
590
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
591 if (klass && klass->write_message)
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
592 klass->write_message(conv, who, message, flags, mtime);
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
593 }
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
594
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
595 void
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
596 purple_conversation_send(PurpleConversation *conv, const char *message)
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
597 {
34651
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
598 purple_conversation_send_with_flags(conv, message, 0);
34648
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
599 }
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
600
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
601 void
34651
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
602 purple_conversation_send_with_flags(PurpleConversation *conv, const char *message,
34648
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
603 PurpleMessageFlags flags)
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
604 {
34651
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
605 g_return_if_fail(conv != NULL);
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
606 g_return_if_fail(message != NULL);
34648
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
607
34651
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
608 common_send(conv, message, flags);
34648
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
609 }
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
610
9260
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
611 gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
612 purple_conversation_has_focus(PurpleConversation *conv)
9260
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
613 {
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
614 gboolean ret = FALSE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
615 PurpleConversationUiOps *ops;
9260
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
616
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
617 g_return_val_if_fail(conv != NULL, FALSE);
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
618
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
619 ops = purple_conversation_get_ui_ops(conv);
9260
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
620
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
621 if (ops != NULL && ops->has_focus != NULL)
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
622 ret = ops->has_focus(conv);
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
623
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
624 return ret;
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
625 }
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
626
7930
3005873ac411 [gaim-migrate @ 8601]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
627 /*
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
628 * TODO: Need to make sure calls to this function happen in the core
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
629 * instead of the UI. That way UIs have less work to do, and the
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
630 * core/UI split is cleaner. Also need to make sure this is called
7930
3005873ac411 [gaim-migrate @ 8601]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
631 * when chats are added/removed from the blist.
3005873ac411 [gaim-migrate @ 8601]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
632 */
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
633 void
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
634 purple_conversation_update(PurpleConversation *conv, PurpleConversationUpdateType type)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
635 {
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
636 g_return_if_fail(conv != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
637
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
638 purple_signal_emit(purple_conversations_get_handle(),
9734
58a18645cbd5 [gaim-migrate @ 10595]
Kevin Stange <kstange@pidgin.im>
parents: 9633
diff changeset
639 "conversation-updated", conv, type);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
640 }
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2979
diff changeset
641
34868
faa5b053f310 Replaced purple_conversation_helper_present_error() with simpler purple_conversation_present_error()
Ankit Vani <a@nevitus.org>
parents: 34787
diff changeset
642 gboolean purple_conversation_present_error(const char *who, PurpleAccount *account, const char *what)
9627
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
643 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
644 PurpleConversation *conv;
9627
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
645
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
646 g_return_val_if_fail(who != NULL, FALSE);
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
647 g_return_val_if_fail(account !=NULL, FALSE);
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
648 g_return_val_if_fail(what != NULL, FALSE);
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
649
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
650 conv = purple_conversations_find_with_account(who, account);
9627
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
651 if (conv != NULL)
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
652 purple_conversation_write(conv, NULL, what, PURPLE_MESSAGE_ERROR, time(NULL));
9627
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
653 else
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
654 return FALSE;
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
655
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
656 return TRUE;
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
657 }
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
658
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
659 static void
34600
3180ebbd06be Added GObject structures, moved things around, renamed functions as GObject methods.
Ankit Vani <a@nevitus.org>
parents: 34599
diff changeset
660 purple_conversation_send_confirm_cb(gpointer *data)
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
661 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
662 PurpleConversation *conv = data[0];
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
663 char *message = data[1];
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
664
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
665 g_free(data);
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
666 common_send(conv, message, 0);
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
667 }
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
668
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
669 void
34600
3180ebbd06be Added GObject structures, moved things around, renamed functions as GObject methods.
Ankit Vani <a@nevitus.org>
parents: 34599
diff changeset
670 purple_conversation_send_confirm(PurpleConversation *conv, const char *message)
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
671 {
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
672 char *text;
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
673 gpointer *data;
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
674 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
675
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
676 g_return_if_fail(priv != NULL);
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
677 g_return_if_fail(message != NULL);
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
678
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
679 if (priv->ui_ops != NULL && priv->ui_ops->send_confirm != NULL)
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
680 {
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
681 priv->ui_ops->send_confirm(conv, message);
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
682 return;
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
683 }
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
684
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
685 text = g_strdup_printf("You are about to send the following message:\n%s", message);
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
686 data = g_new0(gpointer, 2);
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
687 data[0] = conv;
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
688 data[1] = (gpointer)message;
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
689
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
690 purple_request_action(conv, NULL, _("Send Message"), text, 0,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
691 purple_conversation_get_account(conv), NULL, conv,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
692 data, 2,
34600
3180ebbd06be Added GObject structures, moved things around, renamed functions as GObject methods.
Ankit Vani <a@nevitus.org>
parents: 34599
diff changeset
693 _("_Send Message"), G_CALLBACK(purple_conversation_send_confirm_cb),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
694 _("Cancel"), NULL);
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
695 }
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
696
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
697 gboolean
34600
3180ebbd06be Added GObject structures, moved things around, renamed functions as GObject methods.
Ankit Vani <a@nevitus.org>
parents: 34599
diff changeset
698 purple_conversation_custom_smiley_add(PurpleConversation *conv, const char *smile,
12618
b83b6bab0703 [gaim-migrate @ 14954]
Richard Laager <rlaager@pidgin.im>
parents: 12604
diff changeset
699 const char *cksum_type, const char *chksum,
b83b6bab0703 [gaim-migrate @ 14954]
Richard Laager <rlaager@pidgin.im>
parents: 12604
diff changeset
700 gboolean remote)
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
701 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
702 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
703
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
704 g_return_val_if_fail(priv != NULL, FALSE);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
705
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
706 if (smile == NULL || !*smile) {
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
707 return FALSE;
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
708 }
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
709
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
710 /* TODO: check if the icon is in the cache and return false if so */
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
711 /* TODO: add an icon cache (that doesn't suck) */
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
712 if (priv->ui_ops != NULL && priv->ui_ops->custom_smiley_add !=NULL) {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
713 return priv->ui_ops->custom_smiley_add(conv, smile, remote);
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
714 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
715 purple_debug_info("conversation", "Could not find add custom smiley function");
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
716 return FALSE;
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
717 }
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
718
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
719 }
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
720
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
721 void
34600
3180ebbd06be Added GObject structures, moved things around, renamed functions as GObject methods.
Ankit Vani <a@nevitus.org>
parents: 34599
diff changeset
722 purple_conversation_custom_smiley_write(PurpleConversation *conv, const char *smile,
11137
cf40226ddff7 [gaim-migrate @ 13201]
Mark Doliner <markdoliner@pidgin.im>
parents: 11064
diff changeset
723 const guchar *data, gsize size)
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
724 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
725 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
726
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
727 g_return_if_fail(priv != NULL);
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
728 g_return_if_fail(smile != NULL && *smile);
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
729
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
730 if (priv->ui_ops != NULL && priv->ui_ops->custom_smiley_write != NULL)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
731 priv->ui_ops->custom_smiley_write(conv, smile, data, size);
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
732 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
733 purple_debug_info("conversation", "Could not find the smiley write function");
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
734 }
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
735
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
736 void
34600
3180ebbd06be Added GObject structures, moved things around, renamed functions as GObject methods.
Ankit Vani <a@nevitus.org>
parents: 34599
diff changeset
737 purple_conversation_custom_smiley_close(PurpleConversation *conv, const char *smile)
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
738 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
739 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
740
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
741 g_return_if_fail(priv != NULL);
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
742 g_return_if_fail(smile != NULL && *smile);
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
743
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
744 if (priv->ui_ops != NULL && priv->ui_ops->custom_smiley_close != NULL)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
745 priv->ui_ops->custom_smiley_close(conv, smile);
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
746 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
747 purple_debug_info("conversation", "Could not find custom smiley close function");
10526
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
748 }
05b5c6d4090d [gaim-migrate @ 11843]
Tim Ringenbach <marv@pidgin.im>
parents: 10504
diff changeset
749
31397
b50f1cf05a5e Moved the conversation attributes API and the IRC periodic WHO updates to i.p.p.next.minor, where they belong.
Evan Schoenberg <evands@pidgin.im>
parents: 31294
diff changeset
750 GList *
17265
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
751 purple_conversation_get_extended_menu(PurpleConversation *conv)
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
752 {
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
753 GList *menu = NULL;
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
754
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
755 g_return_val_if_fail(conv != NULL, NULL);
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
756
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
757 purple_signal_emit(purple_conversations_get_handle(),
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
758 "conversation-extended-menu", conv, &menu);
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
759 return menu;
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
760 }
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
761
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
762 void purple_conversation_clear_message_history(PurpleConversation *conv)
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
763 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
764 GList *list;
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
765 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
766
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
767 g_return_if_fail(priv != NULL);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
768
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
769 list = priv->message_history;
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
770 message_history_free(list);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
771 priv->message_history = NULL;
31643
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31602
diff changeset
772
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31602
diff changeset
773 purple_signal_emit(purple_conversations_get_handle(),
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31602
diff changeset
774 "cleared-message-history", conv);
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
775 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
776
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
777 GList *purple_conversation_get_message_history(PurpleConversation *conv)
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
778 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
779 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
780
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
781 g_return_val_if_fail(priv != NULL, NULL);
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
782
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
783 return priv->message_history;
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
784 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
785
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
786 const char *purple_conversation_message_get_sender(const PurpleConversationMessage *msg)
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
787 {
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
788 g_return_val_if_fail(msg, NULL);
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
789 return msg->who;
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
790 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
791
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
792 const char *purple_conversation_message_get_message(const PurpleConversationMessage *msg)
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
793 {
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
794 g_return_val_if_fail(msg, NULL);
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
795 return msg->what;
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
796 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
797
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
798 PurpleMessageFlags purple_conversation_message_get_flags(const PurpleConversationMessage *msg)
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
799 {
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
800 g_return_val_if_fail(msg, 0);
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
801 return msg->flags;
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
802 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
803
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
804 time_t purple_conversation_message_get_timestamp(const PurpleConversationMessage *msg)
19590
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
805 {
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
806 g_return_val_if_fail(msg, 0);
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
807 return msg->when;
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
808 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
809
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
810 const char *purple_conversation_message_get_alias(const PurpleConversationMessage *msg)
32690
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
811 {
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
812 g_return_val_if_fail(msg, NULL);
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
813 return msg->alias;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
814 }
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
815
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34620
diff changeset
816 PurpleConversation *purple_conversation_message_get_conversation(const PurpleConversationMessage *msg)
32690
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
817 {
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
818 g_return_val_if_fail(msg, NULL);
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
819 return msg->conv;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
820 }
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
821
34667
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
822 static PurpleConversationMessage *
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
823 purple_conversation_message_copy(PurpleConversationMessage *msg)
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
824 {
34787
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
825 PurpleConversationMessage *newmsg;
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
826
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
827 g_return_val_if_fail(msg != NULL, NULL);
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
828
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
829 newmsg = g_new(PurpleConversationMessage, 1);
34667
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
830 *newmsg = *msg;
34787
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
831 newmsg->who = g_strdup(msg->who);
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
832 newmsg->what = g_strdup(msg->what);
34667
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
833 newmsg->alias = g_strdup(msg->alias);
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
834
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
835 return newmsg;
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
836 }
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
837
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
838 static void
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
839 purple_conversation_message_free(PurpleConversationMessage *msg)
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
840 {
34787
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
841 g_return_if_fail(msg != NULL);
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
842
34667
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
843 g_free(msg->who);
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
844 g_free(msg->what);
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
845 g_free(msg->alias);
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
846
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
847 g_free(msg);
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
848 }
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
849
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
850 GType
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
851 purple_conversation_message_get_type(void)
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
852 {
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
853 static GType type = 0;
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
854
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
855 if (type == 0) {
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
856 type = g_boxed_type_register_static("PurpleConversationMessage",
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
857 (GBoxedCopyFunc)purple_conversation_message_copy,
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
858 (GBoxedFreeFunc)purple_conversation_message_free);
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
859 }
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
860
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
861 return type;
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
862 }
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
863
34681
1b2233f987cb Backed out changeset f39c64847a3d
Ankit Vani <a@nevitus.org>
parents: 34680
diff changeset
864 void purple_conversation_set_ui_data(PurpleConversation *conv, gpointer ui_data)
1b2233f987cb Backed out changeset f39c64847a3d
Ankit Vani <a@nevitus.org>
parents: 34680
diff changeset
865 {
34682
5eed877cb061 Moved ui_data to the object structure, and added back [gs]et_ui_data() methods
Ankit Vani <a@nevitus.org>
parents: 34681
diff changeset
866 g_return_if_fail(conv != NULL);
34681
1b2233f987cb Backed out changeset f39c64847a3d
Ankit Vani <a@nevitus.org>
parents: 34680
diff changeset
867
34682
5eed877cb061 Moved ui_data to the object structure, and added back [gs]et_ui_data() methods
Ankit Vani <a@nevitus.org>
parents: 34681
diff changeset
868 conv->ui_data = ui_data;
34681
1b2233f987cb Backed out changeset f39c64847a3d
Ankit Vani <a@nevitus.org>
parents: 34680
diff changeset
869 }
1b2233f987cb Backed out changeset f39c64847a3d
Ankit Vani <a@nevitus.org>
parents: 34680
diff changeset
870
1b2233f987cb Backed out changeset f39c64847a3d
Ankit Vani <a@nevitus.org>
parents: 34680
diff changeset
871 gpointer purple_conversation_get_ui_data(const PurpleConversation *conv)
1b2233f987cb Backed out changeset f39c64847a3d
Ankit Vani <a@nevitus.org>
parents: 34680
diff changeset
872 {
34682
5eed877cb061 Moved ui_data to the object structure, and added back [gs]et_ui_data() methods
Ankit Vani <a@nevitus.org>
parents: 34681
diff changeset
873 g_return_val_if_fail(conv != NULL, NULL);
34681
1b2233f987cb Backed out changeset f39c64847a3d
Ankit Vani <a@nevitus.org>
parents: 34680
diff changeset
874
34682
5eed877cb061 Moved ui_data to the object structure, and added back [gs]et_ui_data() methods
Ankit Vani <a@nevitus.org>
parents: 34681
diff changeset
875 return conv->ui_data;
34681
1b2233f987cb Backed out changeset f39c64847a3d
Ankit Vani <a@nevitus.org>
parents: 34680
diff changeset
876 }
1b2233f987cb Backed out changeset f39c64847a3d
Ankit Vani <a@nevitus.org>
parents: 34680
diff changeset
877
33578
d6d18b8e3c46 Revert my revision 485b1a932990
Mark Doliner <mark@kingant.net>
parents: 33567
diff changeset
878 gboolean
d6d18b8e3c46 Revert my revision 485b1a932990
Mark Doliner <mark@kingant.net>
parents: 33567
diff changeset
879 purple_conversation_do_command(PurpleConversation *conv, const gchar *cmdline,
d6d18b8e3c46 Revert my revision 485b1a932990
Mark Doliner <mark@kingant.net>
parents: 33567
diff changeset
880 const gchar *markup, gchar **error)
d6d18b8e3c46 Revert my revision 485b1a932990
Mark Doliner <mark@kingant.net>
parents: 33567
diff changeset
881 {
d6d18b8e3c46 Revert my revision 485b1a932990
Mark Doliner <mark@kingant.net>
parents: 33567
diff changeset
882 char *mark = (markup && *markup) ? NULL : g_markup_escape_text(cmdline, -1), *err = NULL;
d6d18b8e3c46 Revert my revision 485b1a932990
Mark Doliner <mark@kingant.net>
parents: 33567
diff changeset
883 PurpleCmdStatus status = purple_cmd_do_command(conv, cmdline, mark ? mark : markup, error ? error : &err);
d6d18b8e3c46 Revert my revision 485b1a932990
Mark Doliner <mark@kingant.net>
parents: 33567
diff changeset
884 g_free(mark);
d6d18b8e3c46 Revert my revision 485b1a932990
Mark Doliner <mark@kingant.net>
parents: 33567
diff changeset
885 g_free(err);
d6d18b8e3c46 Revert my revision 485b1a932990
Mark Doliner <mark@kingant.net>
parents: 33567
diff changeset
886 return (status == PURPLE_CMD_STATUS_OK);
d6d18b8e3c46 Revert my revision 485b1a932990
Mark Doliner <mark@kingant.net>
parents: 33567
diff changeset
887 }
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
888
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
889 /**************************************************************************
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
890 * GObject code
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
891 **************************************************************************/
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
892
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
893 /* GObject Property names */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
894 #define PROP_ACCOUNT_S "account"
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
895 #define PROP_NAME_S "name"
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
896 #define PROP_TITLE_S "title"
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
897 #define PROP_LOGGING_S "logging"
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
898 #define PROP_FEATURES_S "features"
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
899
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
900 /* Set method for GObject properties */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
901 static void
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
902 purple_conversation_set_property(GObject *obj, guint param_id, const GValue *value,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
903 GParamSpec *pspec)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
904 {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
905 PurpleConversation *conv = PURPLE_CONVERSATION(obj);
34663
cf9e572853b2 Assign conversation initialization properties directly
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
906 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
907
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
908 switch (param_id) {
34663
cf9e572853b2 Assign conversation initialization properties directly
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
909 /* account, name and title are assigned directly here as
cf9e572853b2 Assign conversation initialization properties directly
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
910 * purple_im_conversation_new() and purple_chat_conversation_new()
cf9e572853b2 Assign conversation initialization properties directly
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
911 * pass these properties as parameters, and so the conversation hasn't
cf9e572853b2 Assign conversation initialization properties directly
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
912 * finished being set up */
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
913 case PROP_ACCOUNT:
34663
cf9e572853b2 Assign conversation initialization properties directly
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
914 priv->account = g_value_get_object(value);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
915 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
916 case PROP_NAME:
34673
a967ed801b0a freed name and title before setting the property in PurpleConversation
Ankit Vani <a@nevitus.org>
parents: 34668
diff changeset
917 g_free(priv->name);
34663
cf9e572853b2 Assign conversation initialization properties directly
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
918 priv->name = g_strdup(g_value_get_string(value));
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
919 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
920 case PROP_TITLE:
34673
a967ed801b0a freed name and title before setting the property in PurpleConversation
Ankit Vani <a@nevitus.org>
parents: 34668
diff changeset
921 g_free(priv->title);
34663
cf9e572853b2 Assign conversation initialization properties directly
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
922 priv->title = g_strdup(g_value_get_string(value));
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
923 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
924 case PROP_LOGGING:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
925 purple_conversation_set_logging(conv, g_value_get_boolean(value));
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
926 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
927 case PROP_FEATURES:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
928 purple_conversation_set_features(conv, g_value_get_flags(value));
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
929 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
930 default:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
931 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
932 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
933 }
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
934 }
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
935
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
936 /* Get method for GObject properties */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
937 static void
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
938 purple_conversation_get_property(GObject *obj, guint param_id, GValue *value,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
939 GParamSpec *pspec)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
940 {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
941 PurpleConversation *conv = PURPLE_CONVERSATION(obj);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
942
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
943 switch (param_id) {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
944 case PROP_ACCOUNT:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
945 g_value_set_object(value, purple_conversation_get_account(conv));
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
946 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
947 case PROP_NAME:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
948 g_value_set_string(value, purple_conversation_get_name(conv));
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
949 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
950 case PROP_TITLE:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
951 g_value_set_string(value, purple_conversation_get_title(conv));
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
952 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
953 case PROP_LOGGING:
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
954 g_value_set_boolean(value, purple_conversation_is_logging(conv));
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
955 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
956 case PROP_FEATURES:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
957 g_value_set_flags(value, purple_conversation_get_features(conv));
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
958 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
959 default:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
960 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
961 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
962 }
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
963 }
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
964
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
965 /* GObject initialization function */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
966 static void
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
967 purple_conversation_init(GTypeInstance *instance, gpointer klass)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
968 {
34678
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34673
diff changeset
969 PURPLE_DBUS_REGISTER_POINTER(PURPLE_CONVERSATION(instance), PurpleConversation);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
970 }
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
971
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
972 /* Called when done constructing */
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
973 static void
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
974 purple_conversation_constructed(GObject *object)
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
975 {
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
976 PurpleConversation *conv = PURPLE_CONVERSATION(object);
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
977 PurpleAccount *account;
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
978 PurpleConnection *gc;
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
979 PurpleConversationUiOps *ops;
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
980
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
981 parent_class->constructed(object);
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
982
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
983 g_object_get(object, PROP_ACCOUNT_S, &account, NULL);
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
984 gc = purple_account_get_connection(account);
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
985
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
986 /* copy features from the connection. */
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
987 purple_conversation_set_features(conv, purple_connection_get_flags(gc));
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
988
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
989 /* add the conversation to the appropriate lists */
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
990 purple_conversations_add(conv);
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
991
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
992 /* Auto-set the title. */
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
993 purple_conversation_autoset_title(conv);
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
994
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
995 /* Don't move this.. it needs to be one of the last things done otherwise
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
996 * it causes mysterious crashes on my system.
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
997 * -- Gary
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
998 */
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
999 ops = purple_conversations_get_ui_ops();
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1000 purple_conversation_set_ui_ops(conv, ops);
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1001 if (ops != NULL && ops->create_conversation != NULL)
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1002 ops->create_conversation(conv);
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1003
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1004 purple_signal_emit(purple_conversations_get_handle(),
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1005 "conversation-created", conv);
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1006 }
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1007
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1008 /* GObject dispose function */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1009 static void
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1010 purple_conversation_dispose(GObject *object)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1011 {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1012 PurpleConversation *conv = PURPLE_CONVERSATION(object);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1013
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1014 g_return_if_fail(conv != NULL);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1015
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1016 purple_request_close_with_handle(conv);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1017
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1018 /* remove from conversations and im/chats lists prior to emit */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1019 purple_conversations_remove(conv);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1020
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1021 purple_signal_emit(purple_conversations_get_handle(),
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1022 "deleting-conversation", conv);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1023
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1024 purple_conversation_close_logs(conv);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1025 purple_conversation_clear_message_history(conv);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1026
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1027 PURPLE_DBUS_UNREGISTER_POINTER(conv);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1028
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1029 parent_class->dispose(object);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1030 }
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1031
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1032 /* GObject finalize function */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1033 static void
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1034 purple_conversation_finalize(GObject *object)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1035 {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1036 PurpleConversation *conv = PURPLE_CONVERSATION(object);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1037 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
1038 PurpleConversationUiOps *ops = purple_conversation_get_ui_ops(conv);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1039
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1040 g_free(priv->name);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1041 g_free(priv->title);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1042
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1043 priv->name = NULL;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1044 priv->title = NULL;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1045
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1046 if (ops != NULL && ops->destroy_conversation != NULL)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1047 ops->destroy_conversation(conv);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1048
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1049 parent_class->finalize(object);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1050 }
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1051
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1052 /* Class initializer function */
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1053 static void
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1054 purple_conversation_class_init(PurpleConversationClass *klass)
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1055 {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1056 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1057
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1058 parent_class = g_type_class_peek_parent(klass);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1059
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1060 obj_class->dispose = purple_conversation_dispose;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1061 obj_class->finalize = purple_conversation_finalize;
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1062 obj_class->constructed = purple_conversation_constructed;
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1063
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1064 /* Setup properties */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1065 obj_class->get_property = purple_conversation_get_property;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1066 obj_class->set_property = purple_conversation_set_property;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1067
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1068 g_object_class_install_property(obj_class, PROP_ACCOUNT,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1069 g_param_spec_object(PROP_ACCOUNT_S, _("Account"),
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1070 _("The account for the conversation."), PURPLE_TYPE_ACCOUNT,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1071 G_PARAM_READWRITE | G_PARAM_CONSTRUCT)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1072 );
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1073
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1074 g_object_class_install_property(obj_class, PROP_NAME,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1075 g_param_spec_string(PROP_NAME_S, _("Name"),
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1076 _("The name of the conversation."), NULL,
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1077 G_PARAM_READWRITE | G_PARAM_CONSTRUCT)
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1078 );
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1079
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1080 g_object_class_install_property(obj_class, PROP_TITLE,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1081 g_param_spec_string(PROP_TITLE_S, _("Title"),
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1082 _("The title of the conversation."), NULL,
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1083 G_PARAM_READWRITE | G_PARAM_CONSTRUCT)
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1084 );
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1085
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1086 g_object_class_install_property(obj_class, PROP_LOGGING,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1087 g_param_spec_boolean(PROP_LOGGING_S, _("Logging status"),
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1088 _("Whether logging is enabled or not."), FALSE,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1089 G_PARAM_READWRITE)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1090 );
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1091
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1092 g_object_class_install_property(obj_class, PROP_FEATURES,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1093 g_param_spec_flags(PROP_FEATURES_S, _("Connection features"),
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1094 _("The connection features of the conversation."),
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1095 PURPLE_TYPE_CONNECTION_FLAGS, 0,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1096 G_PARAM_READWRITE)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1097 );
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1098
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1099 g_type_class_add_private(klass, sizeof(PurpleConversationPrivate));
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1100 }
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1101
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1102 GType
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1103 purple_conversation_get_type(void)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1104 {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1105 static GType type = 0;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1106
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1107 if(type == 0) {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1108 static const GTypeInfo info = {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1109 sizeof(PurpleConversationClass),
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1110 NULL,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1111 NULL,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1112 (GClassInitFunc)purple_conversation_class_init,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1113 NULL,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1114 NULL,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1115 sizeof(PurpleConversation),
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1116 0,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1117 (GInstanceInitFunc)purple_conversation_init,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1118 NULL,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1119 };
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1120
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1121 type = g_type_register_static(G_TYPE_OBJECT,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1122 "PurpleConversation",
34684
518830707fc8 Made PurpleConversation an abstract class
Ankit Vani <a@nevitus.org>
parents: 34682
diff changeset
1123 &info, G_TYPE_FLAG_ABSTRACT);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1124 }
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1125
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1126 return type;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1127 }

mercurial