libpurple/conversation.c

Fri, 23 May 2014 10:30:53 +0200

author
Tomasz Wasilczyk <twasilczyk@pidgin.im>
date
Fri, 23 May 2014 10:30:53 +0200
changeset 36100
720a07f05cae
parent 36098
4951752ad038
child 36108
69b4fce85ffa
child 37148
50f361d39a1e
permissions
-rw-r--r--

Hide purple_conversation_write, use purple_conversation_write_message or purple_conversation_write_system_message instead

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"
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
23 #include "glibcompat.h"
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
24
34706
02cb08146888 Renamed blist.[ch] to buddylist.[ch]
Ankit Vani <a@nevitus.org>
parents: 34687
diff changeset
25 #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
26 #include "cmds.h"
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
27 #include "conversation.h"
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11137
diff changeset
28 #include "dbus-maybe.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
29 #include "debug.h"
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
30 #include "enums.h"
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5350
diff changeset
31 #include "notify.h"
5539
a13dd0ba205a [gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents: 5436
diff changeset
32 #include "prefs.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
33 #include "prpl.h"
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
34 #include "request.h"
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
35 #include "signals.h"
35744
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
36 #include "smiley-list.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
37 #include "util.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5860
diff changeset
38
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
39 #define PURPLE_CONVERSATION_GET_PRIVATE(obj) \
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
40 (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CONVERSATION, PurpleConversationPrivate))
4241
d2855049753d [gaim-migrate @ 4491]
Ethan Blanton <elb@pidgin.im>
parents: 4228
diff changeset
41
34602
dbe6ee43aaa7 Created conversationtypes.[ch] for PurpleChatConversation and PurpleIMConversation
Ankit Vani <a@nevitus.org>
parents: 34601
diff changeset
42 typedef struct _PurpleConversationPrivate PurpleConversationPrivate;
32613
cc59a239bdb9 Hide struct _PurpleConvChat.
Andrew Victor <andrew.victor@mxit.com>
parents: 32336
diff changeset
43
35460
96946e21fce5 Fix some more gtk-doc warnings till dnssrv
Ankit Vani <a@nevitus.org>
parents: 35307
diff changeset
44 /* General private data for a conversation */
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
45 struct _PurpleConversationPrivate
32614
bd51e25ab7b6 Hide struct _PurpleConvIm.
Andrew Victor <andrew.victor@mxit.com>
parents: 32613
diff changeset
46 {
35460
96946e21fce5 Fix some more gtk-doc warnings till dnssrv
Ankit Vani <a@nevitus.org>
parents: 35307
diff changeset
47 PurpleAccount *account; /* The user using this conversation. */
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
48
35460
96946e21fce5 Fix some more gtk-doc warnings till dnssrv
Ankit Vani <a@nevitus.org>
parents: 35307
diff changeset
49 char *name; /* The name of the conversation. */
96946e21fce5 Fix some more gtk-doc warnings till dnssrv
Ankit Vani <a@nevitus.org>
parents: 35307
diff changeset
50 char *title; /* The window title. */
32615
18515e130606 Hide struct _PurpleConvChatBuddy.
Andrew Victor <andrew.victor@mxit.com>
parents: 32614
diff changeset
51
35460
96946e21fce5 Fix some more gtk-doc warnings till dnssrv
Ankit Vani <a@nevitus.org>
parents: 35307
diff changeset
52 gboolean logging; /* The status of logging. */
32615
18515e130606 Hide struct _PurpleConvChatBuddy.
Andrew Victor <andrew.victor@mxit.com>
parents: 32614
diff changeset
53
35460
96946e21fce5 Fix some more gtk-doc warnings till dnssrv
Ankit Vani <a@nevitus.org>
parents: 35307
diff changeset
54 GList *logs; /* This conversation's logs */
27967
01a64c630e35 More efficient purple_find_conversation_with_account. Closes #9703.
Aman Gupta <aman@tmm1.net>
parents: 27954
diff changeset
55
35460
96946e21fce5 Fix some more gtk-doc warnings till dnssrv
Ankit Vani <a@nevitus.org>
parents: 35307
diff changeset
56 PurpleConversationUiOps *ui_ops; /* UI-specific operations. */
32621
aa5f7a20e0fa Hide struct _PurpleConversation.
Andrew Victor <andrew.victor@mxit.com>
parents: 32615
diff changeset
57
35460
96946e21fce5 Fix some more gtk-doc warnings till dnssrv
Ankit Vani <a@nevitus.org>
parents: 35307
diff changeset
58 PurpleConnectionFlags features; /* The supported features */
96946e21fce5 Fix some more gtk-doc warnings till dnssrv
Ankit Vani <a@nevitus.org>
parents: 35307
diff changeset
59 GList *message_history; /* Message history, as a GList of
34678
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34673
diff changeset
60 PurpleConversationMessage's */
32621
aa5f7a20e0fa Hide struct _PurpleConversation.
Andrew Victor <andrew.victor@mxit.com>
parents: 32615
diff changeset
61
35460
96946e21fce5 Fix some more gtk-doc warnings till dnssrv
Ankit Vani <a@nevitus.org>
parents: 35307
diff changeset
62 PurpleE2eeState *e2ee_state; /* End-to-end encryption state. */
35744
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
63
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
64 /* The list of remote smileys. This should be per-buddy (PurpleBuddy),
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
65 * but we don't have any class for people not on our buddy
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
66 * list (PurpleDude?). So, if we have one, we should switch to it. */
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
67 PurpleSmileyList *remote_smileys;
27967
01a64c630e35 More efficient purple_find_conversation_with_account. Closes #9703.
Aman Gupta <aman@tmm1.net>
parents: 27954
diff changeset
68 };
01a64c630e35 More efficient purple_find_conversation_with_account. Closes #9703.
Aman Gupta <aman@tmm1.net>
parents: 27954
diff changeset
69
35460
96946e21fce5 Fix some more gtk-doc warnings till dnssrv
Ankit Vani <a@nevitus.org>
parents: 35307
diff changeset
70 /*
32690
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
71 * Description of a conversation message
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
72 */
34601
bccb29d7be14 Removed GObject for PurpleConversationMessage, this will be a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34600
diff changeset
73 struct _PurpleConversationMessage
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
74 {
32690
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
75 char *who;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
76 char *what;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
77 PurpleMessageFlags flags;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
78 time_t when;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
79 PurpleConversation *conv;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
80 char *alias;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
81 };
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
82
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
83 /* GObject Property enums */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
84 enum
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
85 {
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
86 PROP_0,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
87 PROP_ACCOUNT,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
88 PROP_NAME,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
89 PROP_TITLE,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
90 PROP_LOGGING,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
91 PROP_FEATURES,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
92 PROP_LAST
27967
01a64c630e35 More efficient purple_find_conversation_with_account. Closes #9703.
Aman Gupta <aman@tmm1.net>
parents: 27954
diff changeset
93 };
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
94
34648
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
95 static GObjectClass *parent_class;
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
96 static GParamSpec *properties[PROP_LAST];
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
97
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
98 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
99 common_send(PurpleConversation *conv, const char *message, PurpleMessageFlags msgflags)
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3789
diff changeset
100 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
101 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
102 PurpleConnection *gc;
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
103 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
36077
b7328f4317c7 Switch purple_serv_chat_send to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36076
diff changeset
104 PurpleMessage *msg;
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
105 char *displayed = NULL, *sent = NULL;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
106 int err = 0;
3790
8f009843ceeb [gaim-migrate @ 3930]
Rob Flynn <gaim@robflynn.com>
parents: 3789
diff changeset
107
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
108 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
109
23440
d20160530c78 Don't use strlen() when we can just check the first character
Mark Doliner <markdoliner@pidgin.im>
parents: 23312
diff changeset
110 if (*message == '\0')
7947
76de4859a53a [gaim-migrate @ 8621]
Mark Doliner <markdoliner@pidgin.im>
parents: 7930
diff changeset
111 return;
76de4859a53a [gaim-migrate @ 8621]
Mark Doliner <markdoliner@pidgin.im>
parents: 7930
diff changeset
112
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
113 account = purple_conversation_get_account(conv);
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
114 g_return_if_fail(PURPLE_IS_ACCOUNT(account));
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
115
34880
cc1f9c302e36 Oops, left bit of the correction pointed out by Richard
Ankit Vani <a@nevitus.org>
parents: 34876
diff changeset
116 gc = purple_account_get_connection(account);
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
117 g_return_if_fail(PURPLE_IS_CONNECTION(gc));
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
118
18087
b56ec2e9dae6 add a PURPLE_MESSAGE_NO_LINKIFY to prevent things from getting linkified
Nathan Walp <nwalp@pidgin.im>
parents: 18068
diff changeset
119 /* 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
120 * explicitly asked to do otheriwse*/
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
121 if (!(msgflags & PURPLE_MESSAGE_INVISIBLE)) {
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 if(msgflags & PURPLE_MESSAGE_NO_LINKIFY)
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
123 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
124 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
125 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
126 }
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
127
34746
dc9c911dbd35 Started GObjectification of PurpleConnection.
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
128 if (displayed && (priv->features & PURPLE_CONNECTION_FLAG_HTML) &&
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
129 !(msgflags & PURPLE_MESSAGE_RAW)) {
12901
85ddd02a44d1 [gaim-migrate @ 15254]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12867
diff changeset
130 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
131 } else
12901
85ddd02a44d1 [gaim-migrate @ 15254]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12867
diff changeset
132 sent = g_strdup(message);
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5103
diff changeset
133
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
134 msgflags |= PURPLE_MESSAGE_SEND;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
135
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
136 if (PURPLE_IS_IM_CONVERSATION(conv)) {
36098
4951752ad038 Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36089
diff changeset
137 msg = purple_message_new_outgoing(
4951752ad038 Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36089
diff changeset
138 purple_conversation_get_name(conv), sent, msgflags);
36076
a0e5b68ff4ef Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35916
diff changeset
139
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
140 purple_signal_emit(purple_conversations_get_handle(), "sending-im-msg",
36079
2e449140fe0b Switch sending-im-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36077
diff changeset
141 account, msg);
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
142
36076
a0e5b68ff4ef Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35916
diff changeset
143 if (!purple_message_is_empty(msg)) {
12216
d80739091a63 [gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12018
diff changeset
144
36076
a0e5b68ff4ef Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35916
diff changeset
145 err = purple_serv_send_im(gc, msg);
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6846
diff changeset
146
36088
4c386387f6f3 Switch purple_conversation_write_message to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36084
diff changeset
147 if ((err > 0) && (displayed != NULL))
4c386387f6f3 Switch purple_conversation_write_message to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36084
diff changeset
148 purple_conversation_write_message(conv, msg);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
149
36081
6764e037a308 Switch sent-im-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36080
diff changeset
150 purple_signal_emit(purple_conversations_get_handle(),
6764e037a308 Switch sent-im-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36080
diff changeset
151 "sent-im-msg", account, msg);
2102
2d024ad2e07b [gaim-migrate @ 2112]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2094
diff changeset
152 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
153 }
35164
da1d08d50e9c Get chat conversation ID only once in common_send
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
154 else if (PURPLE_IS_CHAT_CONVERSATION(conv)) {
da1d08d50e9c Get chat conversation ID only once in common_send
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
155 int id = purple_chat_conversation_get_id(PURPLE_CHAT_CONVERSATION(conv));
36077
b7328f4317c7 Switch purple_serv_chat_send to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36076
diff changeset
156
36098
4951752ad038 Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36089
diff changeset
157 msg = purple_message_new_outgoing(NULL, sent, msgflags);
36077
b7328f4317c7 Switch purple_serv_chat_send to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36076
diff changeset
158
36080
637a1a87c4d3 Switch sending-chat-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36079
diff changeset
159 purple_signal_emit(purple_conversations_get_handle(),
637a1a87c4d3 Switch sending-chat-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36079
diff changeset
160 "sending-chat-msg", account, msg, id);
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
161
36077
b7328f4317c7 Switch purple_serv_chat_send to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36076
diff changeset
162 if (!purple_message_is_empty(msg)) {
b7328f4317c7 Switch purple_serv_chat_send to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36076
diff changeset
163 err = purple_serv_chat_send(gc, id, msg);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
164
36082
247d94c903c3 Switch sent-chat-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36081
diff changeset
165 purple_signal_emit(purple_conversations_get_handle(),
247d94c903c3 Switch sent-chat-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36081
diff changeset
166 "sent-chat-msg", account, msg, id);
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
167 }
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
168 }
1253
f02697a6aada [gaim-migrate @ 1263]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
169
2123
4cfdde0aa3f1 [gaim-migrate @ 2133]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2111
diff changeset
170 if (err < 0) {
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
171 const char *who;
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12902
diff changeset
172 const char *msg;
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
173
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
174 who = purple_conversation_get_name(conv);
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
175
5213
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
176 if (err == -E2BIG) {
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
177 msg = _("Unable to send message: The message is too large.");
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
178
34868
faa5b053f310 Replaced purple_conversation_helper_present_error() with simpler purple_conversation_present_error()
Ankit Vani <a@nevitus.org>
parents: 34787
diff changeset
179 if (!purple_conversation_present_error(who, account, msg)) {
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12902
diff changeset
180 char *msg2 = g_strdup_printf(_("Unable to send message to %s."), who);
34449
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34332
diff changeset
181 purple_notify_error(gc, NULL, msg2,
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34332
diff changeset
182 _("The message is too large."),
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34332
diff changeset
183 purple_request_cpar_from_connection(gc));
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12902
diff changeset
184 g_free(msg2);
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
185 }
5213
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
186 }
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
187 else if (err == -ENOTCONN) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
188 purple_debug(PURPLE_DEBUG_ERROR, "conversation",
5213
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
189 "Not yet connected.\n");
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
190 }
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
191 else {
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
192 msg = _("Unable to send message.");
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
193
34868
faa5b053f310 Replaced purple_conversation_helper_present_error() with simpler purple_conversation_present_error()
Ankit Vani <a@nevitus.org>
parents: 34787
diff changeset
194 if (!purple_conversation_present_error(who, account, msg)) {
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12902
diff changeset
195 char *msg2 = g_strdup_printf(_("Unable to send message to %s."), who);
34449
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34332
diff changeset
196 purple_notify_error(gc, NULL, msg2, NULL,
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34332
diff changeset
197 purple_request_cpar_from_connection(gc));
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12902
diff changeset
198 g_free(msg2);
10132
a11b4c81d70d [gaim-migrate @ 11196]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
199 }
5213
d56ea526b80c [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
200 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
201 }
8076
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
202
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
203 g_free(displayed);
1c3c1ad737e8 [gaim-migrate @ 8775]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
204 g_free(sent);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
205 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
206
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
207 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
208 open_log(PurpleConversation *conv)
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
209 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
210 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
211
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
212 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
213
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
214 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
215 PURPLE_LOG_IM, priv->name, priv->account,
13120
c25222322810 [gaim-migrate @ 15481]
Richard Laager <rlaager@pidgin.im>
parents: 13107
diff changeset
216 conv, time(NULL), NULL));
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
217 }
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
218
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
219 /* 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
220
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
221 static void
21253
121075afcdbc Show alias in restored conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
222 add_message_to_history(PurpleConversation *conv, const char *who, const char *alias,
121075afcdbc Show alias in restored conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
223 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
224 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
225 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
226 PurpleConversationMessage *msg;
22458
42e804b6db56 Kill off some uses of account->gc.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22390
diff changeset
227 PurpleConnection *gc;
42e804b6db56 Kill off some uses of account->gc.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22390
diff changeset
228
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
229 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
230
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
231 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
232
8f000de5f9de Do not duplicate the same message in the history, and store the correct
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19595
diff changeset
233 if (flags & PURPLE_MESSAGE_SEND) {
8f000de5f9de Do not duplicate the same message in the history, and store the correct
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19595
diff changeset
234 const char *me = NULL;
22458
42e804b6db56 Kill off some uses of account->gc.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22390
diff changeset
235 if (gc)
42e804b6db56 Kill off some uses of account->gc.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22390
diff changeset
236 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
237 if (!me)
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
238 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
239 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
240 }
21253
121075afcdbc Show alias in restored conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
241
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
242 msg = g_new0(PurpleConversationMessage, 1);
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
243 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
244 msg->who = g_strdup(who);
21253
121075afcdbc Show alias in restored conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
245 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
246 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
247 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
248 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
249 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
250
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
251 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
252 }
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 static void
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
255 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
256 {
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
257 g_free(msg->who);
21253
121075afcdbc Show alias in restored conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
258 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
259 g_free(msg->what);
19595
acd61f0d6a81 DBus-ify the message history in a conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19593
diff changeset
260 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
261 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
262 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
263
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
264 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
265 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
266 {
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
267 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
268 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
269 }
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
270
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
271 /**************************************************************************
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
272 * Conversation API
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
273 **************************************************************************/
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
274 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
275 purple_conversation_present(PurpleConversation *conv) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
276 PurpleConversationUiOps *ops;
12624
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
277
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
278 g_return_if_fail(PURPLE_IS_CONVERSATION(conv));
12624
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
279
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
280 ops = purple_conversation_get_ui_ops(conv);
12624
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
281 if(ops && ops->present)
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
282 ops->present(conv);
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
283 }
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
284
c1c92f08976b [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12618
diff changeset
285 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
286 purple_conversation_set_features(PurpleConversation *conv, PurpleConnectionFlags features)
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 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
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 g_return_if_fail(priv != NULL);
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
291
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
292 priv->features = features;
35066
f997e5384f79 libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 35058
diff changeset
293
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
294 g_object_notify_by_pspec(G_OBJECT(conv), properties[PROP_FEATURES]);
35066
f997e5384f79 libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 35058
diff changeset
295
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
296 purple_conversation_update(conv, PURPLE_CONVERSATION_UPDATE_FEATURES);
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
297 }
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
298
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
299 PurpleConnectionFlags
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
300 purple_conversation_get_features(PurpleConversation *conv)
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
301 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
302 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
10665
66d468c9f67c [gaim-migrate @ 12205]
Sean Egan <seanegan@pidgin.im>
parents: 10526
diff changeset
303
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
304 g_return_val_if_fail(priv != NULL, 0);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
305
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
306 return priv->features;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
307 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
308
35572
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
309 static PurpleConversationUiOps *
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
310 purple_conversation_ui_ops_copy(PurpleConversationUiOps *ops)
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
311 {
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
312 PurpleConversationUiOps *ops_new;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
313
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
314 g_return_val_if_fail(ops != NULL, NULL);
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
315
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
316 ops_new = g_new(PurpleConversationUiOps, 1);
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
317 *ops_new = *ops;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
318
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
319 return ops_new;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
320 }
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
321
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
322 GType
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
323 purple_conversation_ui_ops_get_type(void)
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
324 {
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
325 static GType type = 0;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
326
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
327 if (type == 0) {
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
328 type = g_boxed_type_register_static("PurpleConversationUiOps",
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
329 (GBoxedCopyFunc)purple_conversation_ui_ops_copy,
35597
7fcfcf147b99 Use g_free as UiOps structures GBoxed free function
Ankit Vani <a@nevitus.org>
parents: 35572
diff changeset
330 (GBoxedFreeFunc)g_free);
35572
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
331 }
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
332
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
333 return type;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
334 }
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
335
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
336 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
337 purple_conversation_set_ui_ops(PurpleConversation *conv,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
338 PurpleConversationUiOps *ops)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
339 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
340 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
341
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
342 g_return_if_fail(priv != NULL);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
343
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
344 if (priv->ui_ops == ops)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
345 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
346
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
347 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
348 priv->ui_ops->destroy_conversation(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
349
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
350 priv->ui_ops = ops;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
351 }
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
352
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
353 PurpleConversationUiOps *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
354 purple_conversation_get_ui_ops(const PurpleConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
355 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
356 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
357
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
358 g_return_val_if_fail(priv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
359
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
360 return priv->ui_ops;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
361 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
362
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
363 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
364 purple_conversation_set_account(PurpleConversation *conv, PurpleAccount *account)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
365 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
366 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
367
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
368 g_return_if_fail(priv != NULL);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
369
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
370 if (account == purple_conversation_get_account(conv))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
371 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
372
35307
2af82f31e6a8 Move (_)purple_conversations_update_cache to internal.h
Ankit Vani <a@nevitus.org>
parents: 35265
diff changeset
373 _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
374 priv->account = account;
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
375
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
376 g_object_notify_by_pspec(G_OBJECT(conv), properties[PROP_ACCOUNT]);
35066
f997e5384f79 libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 35058
diff changeset
377
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
378 purple_conversation_update(conv, PURPLE_CONVERSATION_UPDATE_ACCOUNT);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
379 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
380
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
381 PurpleAccount *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
382 purple_conversation_get_account(const PurpleConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
383 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
384 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
385
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
386 g_return_val_if_fail(priv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
387
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
388 return priv->account;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
389 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
390
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
391 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
392 purple_conversation_get_connection(const PurpleConversation *conv)
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
393 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
394 PurpleAccount *account;
4425
b2ccc08ed727 [gaim-migrate @ 4700]
Christian Hammond <chipx86@chipx86.com>
parents: 4415
diff changeset
395
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
396 g_return_val_if_fail(PURPLE_IS_CONVERSATION(conv), NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
397
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
398 account = purple_conversation_get_account(conv);
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
399
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4481
diff changeset
400 if (account == NULL)
4425
b2ccc08ed727 [gaim-migrate @ 4700]
Christian Hammond <chipx86@chipx86.com>
parents: 4415
diff changeset
401 return NULL;
b2ccc08ed727 [gaim-migrate @ 4700]
Christian Hammond <chipx86@chipx86.com>
parents: 4415
diff changeset
402
32624
f957ad287bcc Convert code to use the purple_account accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
403 return purple_account_get_connection(account);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
404 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
405
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
406 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
407 purple_conversation_set_title(PurpleConversation *conv, const char *title)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
408 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
409 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
410
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
411 g_return_if_fail(priv != NULL);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
412 g_return_if_fail(title != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
413
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
414 g_free(priv->title);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
415 priv->title = g_strdup(title);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
416
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
417 g_object_notify_by_pspec(G_OBJECT(conv), properties[PROP_TITLE]);
35066
f997e5384f79 libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 35058
diff changeset
418
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
419 purple_conversation_update(conv, PURPLE_CONVERSATION_UPDATE_TITLE);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
420 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
421
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
422 const char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
423 purple_conversation_get_title(const PurpleConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
424 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
425 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
426
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
427 g_return_val_if_fail(priv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
428
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
429 return priv->title;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
430 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
431
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
432 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
433 purple_conversation_autoset_title(PurpleConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
434 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
435 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
436 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
437 PurpleChat *chat;
8015
52c74f82aff3 [gaim-migrate @ 8695]
Nathan Walp <nwalp@pidgin.im>
parents: 7947
diff changeset
438 const char *text = NULL, *name;
3799
1a53373deee6 [gaim-migrate @ 3941]
Nathan Walp <nwalp@pidgin.im>
parents: 3790
diff changeset
439
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
440 g_return_if_fail(PURPLE_IS_CONVERSATION(conv));
2267
9704c0f60689 [gaim-migrate @ 2277]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2264
diff changeset
441
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
442 account = purple_conversation_get_account(conv);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
443 name = purple_conversation_get_name(conv);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
444
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
445 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
446 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
447 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
448 } 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
449 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
450 text = purple_chat_get_name(chat);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
451 }
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11552
diff changeset
452
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10104
diff changeset
453 if(text == NULL)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
454 text = name;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
455
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
456 purple_conversation_set_title(conv, text);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
457 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
458
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
459 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
460 purple_conversation_set_name(PurpleConversation *conv, const char *name)
7256
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
461 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
462 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
463
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
464 g_return_if_fail(priv != NULL);
7256
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
465
35307
2af82f31e6a8 Move (_)purple_conversations_update_cache to internal.h
Ankit Vani <a@nevitus.org>
parents: 35265
diff changeset
466 _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
467
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
468 g_free(priv->name);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
469 priv->name = g_strdup(name);
27967
01a64c630e35 More efficient purple_find_conversation_with_account. Closes #9703.
Aman Gupta <aman@tmm1.net>
parents: 27954
diff changeset
470
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
471 g_object_notify_by_pspec(G_OBJECT(conv), properties[PROP_NAME]);
7257
599b8494e6ee [gaim-migrate @ 7834]
Christian Hammond <chipx86@chipx86.com>
parents: 7256
diff changeset
472
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
473 purple_conversation_autoset_title(conv);
35012
e07a9b9c6bda Cleaned up properties and added g_object_notify calls for PurpleConnection and PurpleConversation's
Ankit Vani <a@nevitus.org>
parents: 34986
diff changeset
474 purple_conversation_update(conv, PURPLE_CONVERSATION_UPDATE_NAME);
7256
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
475 }
311c8febfc92 [gaim-migrate @ 7833]
Christian Hammond <chipx86@chipx86.com>
parents: 7125
diff changeset
476
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
477 const char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
478 purple_conversation_get_name(const PurpleConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
479 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
480 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
481
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
482 g_return_val_if_fail(priv != NULL, NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
483
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
484 return priv->name;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
485 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
486
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
487 void
34481
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
488 purple_conversation_set_e2ee_state(PurpleConversation *conv,
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
489 PurpleE2eeState *state)
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
490 {
35047
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
491 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
492
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
493 g_return_if_fail(priv != NULL);
34481
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
494
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
495 if (state != NULL && purple_e2ee_state_get_provider(state) !=
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
496 purple_e2ee_provider_get_main())
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
497 {
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
498 purple_debug_error("conversation",
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
499 "This is not the main e2ee provider");
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
500
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
501 return;
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
502 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
503
35916
96593c46d85c Finch-OTR: display e2ee state in conv title
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
504 if (state == priv->e2ee_state)
96593c46d85c Finch-OTR: display e2ee state in conv title
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
505 return;
96593c46d85c Finch-OTR: display e2ee state in conv title
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
506
34486
054505210944 E2EE: clean up API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34483
diff changeset
507 if (state)
054505210944 E2EE: clean up API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34483
diff changeset
508 purple_e2ee_state_ref(state);
35047
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
509 purple_e2ee_state_unref(priv->e2ee_state);
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
510 priv->e2ee_state = state;
34481
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
511
35047
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
512 purple_conversation_update(conv, PURPLE_CONVERSATION_UPDATE_E2EE);
34481
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
513 }
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
514
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
515 PurpleE2eeState *
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
516 purple_conversation_get_e2ee_state(PurpleConversation *conv)
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
517 {
35047
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
518 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
34481
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
519 PurpleE2eeProvider *provider;
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
520
35047
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
521 g_return_val_if_fail(priv != NULL, NULL);
34481
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
522
35047
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
523 if (priv->e2ee_state == NULL)
34486
054505210944 E2EE: clean up API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34483
diff changeset
524 return NULL;
054505210944 E2EE: clean up API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34483
diff changeset
525
34481
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
526 provider = purple_e2ee_provider_get_main();
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
527 if (provider == NULL)
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
528 return NULL;
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
529
35047
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
530 if (purple_e2ee_state_get_provider(priv->e2ee_state) != provider) {
34481
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
531 purple_debug_warning("conversation",
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
532 "e2ee state has invalid provider set");
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
533 return NULL;
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
534 }
25c373adf8de E2EE: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34449
diff changeset
535
35047
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
536 return priv->e2ee_state;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
537 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
538
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
539 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
540 purple_conversation_set_logging(PurpleConversation *conv, gboolean log)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
541 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
542 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
543
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
544 g_return_if_fail(priv != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
545
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
546 if (priv->logging != log)
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
547 {
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
548 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
549 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
550 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
551
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
552 g_object_notify_by_pspec(G_OBJECT(conv), properties[PROP_LOGGING]);
35066
f997e5384f79 libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 35058
diff changeset
553
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
554 purple_conversation_update(conv, PURPLE_CONVERSATION_UPDATE_LOGGING);
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
555 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
556 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
557
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
558 gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
559 purple_conversation_is_logging(const PurpleConversation *conv)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
560 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
561 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
562
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
563 g_return_val_if_fail(priv != NULL, FALSE);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
564
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
565 return priv->logging;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
566 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
567
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
568 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
569 purple_conversation_close_logs(PurpleConversation *conv)
11672
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
570 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
571 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
572
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
573 g_return_if_fail(priv != NULL);
4876
b6ec886c8c77 [gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents: 4818
diff changeset
574
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
575 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
576 g_list_free(priv->logs);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
577 priv->logs = NULL;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
578 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
579
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
580 void
36100
720a07f05cae Hide purple_conversation_write, use purple_conversation_write_message or purple_conversation_write_system_message instead
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36098
diff changeset
581 _purple_conversation_write_common(PurpleConversation *conv, const char *who,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
582 const char *message, PurpleMessageFlags flags,
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
583 time_t mtime)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
584 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
585 PurplePluginProtocolInfo *prpl_info = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
586 PurpleConnection *gc = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
587 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
588 PurpleConversationUiOps *ops;
11468
3411c0d7f597 [gaim-migrate @ 13708]
Richard Laager <rlaager@pidgin.im>
parents: 11454
diff changeset
589 const char *alias;
13234
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
590 char *displayed = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
591 PurpleBuddy *b;
13234
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
592 int plugin_return;
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
593 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
594 /* int logging_font_options = 0; */
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
595
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
596 g_return_if_fail(priv != NULL);
5677
2cce4c8654e9 [gaim-migrate @ 6095]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
597 g_return_if_fail(message != NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
598
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
599 ops = purple_conversation_get_ui_ops(conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
600
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
601 account = purple_conversation_get_account(conv);
6496
9833c2665143 [gaim-migrate @ 7011]
Christian Hammond <chipx86@chipx86.com>
parents: 6485
diff changeset
602
9833c2665143 [gaim-migrate @ 7011]
Christian Hammond <chipx86@chipx86.com>
parents: 6485
diff changeset
603 if (account != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
604 gc = purple_account_get_connection(account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
605
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
606 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
607 (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
608 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
609
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
610 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
611 !g_list_find(purple_conversations_get_all(), conv))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
612 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
613
13234
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
614 displayed = g_strdup(message);
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
615
19769
9420f2078435 writing-im-msg now receives the conversation name as the who argument if
Richard Laager <rlaager@pidgin.im>
parents: 19674
diff changeset
616 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
617 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
618 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
619
13234
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
620 plugin_return =
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
621 GPOINTER_TO_INT(purple_signal_emit_return_1(
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
622 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
623 (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
624 account, who, &displayed, conv, flags));
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
625
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
626 if (displayed == NULL)
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
627 return;
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
628
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
629 if (plugin_return) {
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
630 g_free(displayed);
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
631 return;
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
632 }
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
633
9613
cd81e0c76ec0 [gaim-migrate @ 10456]
Kevin Stange <kstange@pidgin.im>
parents: 9607
diff changeset
634 if (account != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
635 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_find_prpl(purple_account_get_protocol_id(account)));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
636
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
637 if (PURPLE_IS_IM_CONVERSATION(conv) ||
5350
966c6d4d7bdd [gaim-migrate @ 5726]
Christian Hammond <chipx86@chipx86.com>
parents: 5262
diff changeset
638 !(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) {
966c6d4d7bdd [gaim-migrate @ 5726]
Christian Hammond <chipx86@chipx86.com>
parents: 5262
diff changeset
639
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
640 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
641 b = purple_blist_find_buddy(account,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
642 purple_account_get_username(account));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
643
34589
428e92c79631 Renamed purple_account_[get,set]_alias to purple_account[get,set]_private_alias.
Ankit Vani <a@nevitus.org>
parents: 33578
diff changeset
644 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
645 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
646 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
647 alias = purple_buddy_get_contact_alias(b);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
648 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
649 alias = purple_connection_get_display_name(gc);
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
650 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
651 alias = purple_account_get_username(account);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
652 }
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
653 else
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
654 {
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34706
diff changeset
655 b = purple_blist_find_buddy(account, who);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
656
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
657 if (b != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
658 alias = purple_buddy_get_contact_alias(b);
1772
c759c01bd66f [gaim-migrate @ 1782]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1764
diff changeset
659 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
660 }
474
8e9acf2f6c48 [gaim-migrate @ 484]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 473
diff changeset
661 }
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
662
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
663 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
664 GList *log;
018c70c8134c [gaim-migrate @ 13958]
Richard Laager <rlaager@pidgin.im>
parents: 11671
diff changeset
665
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
666 log = priv->logs;
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
667 while (log != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
668 purple_log_write((PurpleLog *)log->data, flags, alias, mtime, displayed);
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
669 log = log->next;
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
670 }
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
671 }
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
672
19593
608995889b11 A conversation shouldn't need ui-ops for logging the messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19590
diff changeset
673 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
674 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
675
121075afcdbc Show alias in restored conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
676 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
677
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
678 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
679 (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
680 account, who, displayed, conv, flags);
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
681
1d8e569b2053 [gaim-migrate @ 15598]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13120
diff changeset
682 g_free(displayed);
66
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
683 }
cf3be86d0b63 [gaim-migrate @ 76]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
684
34648
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
685 void
36088
4c386387f6f3 Switch purple_conversation_write_message to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36084
diff changeset
686 purple_conversation_write_message(PurpleConversation *conv, PurpleMessage *msg)
34648
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
687 {
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
688 PurpleConversationClass *klass = NULL;
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
689
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
690 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
691
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
692 klass = PURPLE_CONVERSATION_GET_CLASS(conv);
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
693
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
694 if (klass && klass->write_message)
36088
4c386387f6f3 Switch purple_conversation_write_message to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36084
diff changeset
695 klass->write_message(conv, msg);
34648
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
696 }
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
697
36084
2172bd6dad3e Add purple_conversation_write_system_message
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36082
diff changeset
698 void purple_conversation_write_system_message(PurpleConversation *conv,
2172bd6dad3e Add purple_conversation_write_system_message
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36082
diff changeset
699 const gchar *message, PurpleMessageFlags flags)
2172bd6dad3e Add purple_conversation_write_system_message
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36082
diff changeset
700 {
36100
720a07f05cae Hide purple_conversation_write, use purple_conversation_write_message or purple_conversation_write_system_message instead
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36098
diff changeset
701 _purple_conversation_write_common(conv, NULL, message,
36084
2172bd6dad3e Add purple_conversation_write_system_message
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36082
diff changeset
702 flags | PURPLE_MESSAGE_SYSTEM, time(NULL));
2172bd6dad3e Add purple_conversation_write_system_message
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36082
diff changeset
703 }
2172bd6dad3e Add purple_conversation_write_system_message
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36082
diff changeset
704
34648
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
705 void
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
706 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
707 {
34651
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
708 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
709 }
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
710
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
711 void
34651
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
712 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
713 PurpleMessageFlags flags)
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
714 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
715 g_return_if_fail(PURPLE_IS_CONVERSATION(conv));
34651
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
716 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
717
34651
88c104a20f4b Refactored the PurpleConversation subclasses and subsystem to use the GObject conversation API.
Ankit Vani <a@nevitus.org>
parents: 34649
diff changeset
718 common_send(conv, message, flags);
34648
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
719 }
a6587d8cf907 Added missing API implementations to PurpleConversation and subclasses
Ankit Vani <a@nevitus.org>
parents: 34646
diff changeset
720
9260
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
721 gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
722 purple_conversation_has_focus(PurpleConversation *conv)
9260
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
723 {
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
724 gboolean ret = FALSE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
725 PurpleConversationUiOps *ops;
9260
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
726
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
727 g_return_val_if_fail(PURPLE_IS_CONVERSATION(conv), FALSE);
9260
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
728
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
729 ops = purple_conversation_get_ui_ops(conv);
9260
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
730
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
731 if (ops != NULL && ops->has_focus != NULL)
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
732 ret = ops->has_focus(conv);
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
733
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
734 return ret;
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
735 }
82d7b380220a [gaim-migrate @ 10059]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9251
diff changeset
736
7930
3005873ac411 [gaim-migrate @ 8601]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
737 /*
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8158
diff changeset
738 * 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
739 * 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
740 * 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
741 * when chats are added/removed from the blist.
3005873ac411 [gaim-migrate @ 8601]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
742 */
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
743 void
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
744 purple_conversation_update(PurpleConversation *conv, PurpleConversationUpdateType type)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
745 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
746 g_return_if_fail(PURPLE_IS_CONVERSATION(conv));
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
747
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
748 purple_signal_emit(purple_conversations_get_handle(),
9734
58a18645cbd5 [gaim-migrate @ 10595]
Kevin Stange <kstange@pidgin.im>
parents: 9633
diff changeset
749 "conversation-updated", conv, type);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
750 }
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2979
diff changeset
751
34868
faa5b053f310 Replaced purple_conversation_helper_present_error() with simpler purple_conversation_present_error()
Ankit Vani <a@nevitus.org>
parents: 34787
diff changeset
752 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
753 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
754 PurpleConversation *conv;
9627
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
755
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
756 g_return_val_if_fail(who != NULL, FALSE);
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
757 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), FALSE);
9627
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
758 g_return_val_if_fail(what != NULL, FALSE);
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
759
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
760 conv = purple_conversations_find_with_account(who, account);
9627
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
761 if (conv != NULL)
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
762 purple_conversation_write_system_message(conv, what, PURPLE_MESSAGE_ERROR);
9627
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
763 else
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
764 return FALSE;
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
765
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
766 return TRUE;
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
767 }
4a7636442f25 [gaim-migrate @ 10471]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
768
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
769 static void
34600
3180ebbd06be Added GObject structures, moved things around, renamed functions as GObject methods.
Ankit Vani <a@nevitus.org>
parents: 34599
diff changeset
770 purple_conversation_send_confirm_cb(gpointer *data)
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
771 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
772 PurpleConversation *conv = data[0];
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
773 char *message = data[1];
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
774
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
775 g_free(data);
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
776 common_send(conv, message, 0);
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
777 }
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
778
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
779 void
34600
3180ebbd06be Added GObject structures, moved things around, renamed functions as GObject methods.
Ankit Vani <a@nevitus.org>
parents: 34599
diff changeset
780 purple_conversation_send_confirm(PurpleConversation *conv, const char *message)
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
781 {
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
782 char *text;
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
783 gpointer *data;
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
784 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
785
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
786 g_return_if_fail(priv != NULL);
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
787 g_return_if_fail(message != NULL);
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
788
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
789 if (priv->ui_ops != NULL && priv->ui_ops->send_confirm != NULL)
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
790 {
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
791 priv->ui_ops->send_confirm(conv, message);
14582
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
792 return;
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
793 }
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
794
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
795 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
796 data = g_new0(gpointer, 2);
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
797 data[0] = conv;
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
798 data[1] = (gpointer)message;
ae974395b9da [gaim-migrate @ 17240]
Lars T. Mikkelsen
parents: 14254
diff changeset
799
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
800 purple_request_action(conv, NULL, _("Send Message"), text, 0,
34331
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34322
diff changeset
801 purple_request_cpar_from_account(
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34322
diff changeset
802 purple_conversation_get_account(conv)),
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34322
diff changeset
803 data, 2, _("_Send Message"),
34945
54af0dd9faa5 Fixed build errors
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
804 G_CALLBACK(purple_conversation_send_confirm_cb), _("Cancel"), NULL);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
805 }
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
806
17265
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
807 GList *
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
808 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
809 {
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
810 GList *menu = NULL;
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
811
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
812 g_return_val_if_fail(PURPLE_IS_CONVERSATION(conv), NULL);
17265
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
813
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
814 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
815 "conversation-extended-menu", conv, &menu);
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
816 return menu;
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
817 }
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
818
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
819 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
820 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
821 GList *list;
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
822 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
823
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
824 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
825
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
826 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
827 message_history_free(list);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
828 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
829
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31602
diff changeset
830 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
831 "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
832 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
833
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
834 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
835 {
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
836 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
837
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
838 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
839
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
840 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
841 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
842
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
843 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
844 {
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
845 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
846 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
847 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
848
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
849 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
850 {
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
851 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
852 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
853 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
854
34620
e49aa67344e1 Renamed PurpleConversationMessageFlags back to PurpleMessageFlags.
Ankit Vani <a@nevitus.org>
parents: 34602
diff changeset
855 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
856 {
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
857 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
858 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
859 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
860
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
861 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
862 {
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
863 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
864 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
865 }
cf4e3e71bbc0 Store message history in a conversation, and provide API to access the history.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19118
diff changeset
866
34599
0b1b22f5e2ec Begun GObjectification of PurpleConversation.
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
867 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
868 {
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
869 g_return_val_if_fail(msg, NULL);
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
870 return msg->alias;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
871 }
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
872
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34620
diff changeset
873 PurpleConversation *purple_conversation_message_get_conversation(const PurpleConversationMessage *msg)
32690
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
874 {
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
875 g_return_val_if_fail(msg, NULL);
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
876 return msg->conv;
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
877 }
ec1fca0a6b5d Hide struct _PurpleConvMessage.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
878
34667
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
879 static PurpleConversationMessage *
35599
8dd8c949add3 Use free_conv_message as PurpleConversationMessage's GBoxed free function
Ankit Vani <a@nevitus.org>
parents: 35597
diff changeset
880 copy_conv_message(PurpleConversationMessage *msg)
34667
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
881 {
34787
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
882 PurpleConversationMessage *newmsg;
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
883
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
884 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
885
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
886 newmsg = g_new(PurpleConversationMessage, 1);
35599
8dd8c949add3 Use free_conv_message as PurpleConversationMessage's GBoxed free function
Ankit Vani <a@nevitus.org>
parents: 35597
diff changeset
887 PURPLE_DBUS_REGISTER_POINTER(newmsg, PurpleConversationMessage);
8dd8c949add3 Use free_conv_message as PurpleConversationMessage's GBoxed free function
Ankit Vani <a@nevitus.org>
parents: 35597
diff changeset
888
34667
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
889 *newmsg = *msg;
34787
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
890 newmsg->who = g_strdup(msg->who);
d736bcb6c5a1 Check for NULL value in GBoxed functions
Ankit Vani <a@nevitus.org>
parents: 34755
diff changeset
891 newmsg->what = g_strdup(msg->what);
34667
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
892 newmsg->alias = g_strdup(msg->alias);
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
893
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
894 return newmsg;
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
895 }
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
896
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
897 GType
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
898 purple_conversation_message_get_type(void)
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
899 {
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
900 static GType type = 0;
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
901
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
902 if (type == 0) {
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
903 type = g_boxed_type_register_static("PurpleConversationMessage",
35599
8dd8c949add3 Use free_conv_message as PurpleConversationMessage's GBoxed free function
Ankit Vani <a@nevitus.org>
parents: 35597
diff changeset
904 (GBoxedCopyFunc)copy_conv_message,
8dd8c949add3 Use free_conv_message as PurpleConversationMessage's GBoxed free function
Ankit Vani <a@nevitus.org>
parents: 35597
diff changeset
905 (GBoxedFreeFunc)free_conv_message);
34667
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
906 }
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
907
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
908 return type;
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
909 }
56e06ab47188 Made PurpleConversationMessage a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34663
diff changeset
910
32253
99ecf637808b Add accessor functions purple_conversation_get_ui_data() and purple_conversation_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 31937
diff changeset
911 void purple_conversation_set_ui_data(PurpleConversation *conv, gpointer ui_data)
99ecf637808b Add accessor functions purple_conversation_get_ui_data() and purple_conversation_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 31937
diff changeset
912 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
913 g_return_if_fail(PURPLE_IS_CONVERSATION(conv));
32253
99ecf637808b Add accessor functions purple_conversation_get_ui_data() and purple_conversation_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 31937
diff changeset
914
99ecf637808b Add accessor functions purple_conversation_get_ui_data() and purple_conversation_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 31937
diff changeset
915 conv->ui_data = ui_data;
99ecf637808b Add accessor functions purple_conversation_get_ui_data() and purple_conversation_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 31937
diff changeset
916 }
99ecf637808b Add accessor functions purple_conversation_get_ui_data() and purple_conversation_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 31937
diff changeset
917
32256
620e4580252a These pointers should rather be marked const.
Andrew Victor <andrew.victor@mxit.com>
parents: 32253
diff changeset
918 gpointer purple_conversation_get_ui_data(const PurpleConversation *conv)
32253
99ecf637808b Add accessor functions purple_conversation_get_ui_data() and purple_conversation_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 31937
diff changeset
919 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
920 g_return_val_if_fail(PURPLE_IS_CONVERSATION(conv), NULL);
32253
99ecf637808b Add accessor functions purple_conversation_get_ui_data() and purple_conversation_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 31937
diff changeset
921
99ecf637808b Add accessor functions purple_conversation_get_ui_data() and purple_conversation_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 31937
diff changeset
922 return conv->ui_data;
99ecf637808b Add accessor functions purple_conversation_get_ui_data() and purple_conversation_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 31937
diff changeset
923 }
99ecf637808b Add accessor functions purple_conversation_get_ui_data() and purple_conversation_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 31937
diff changeset
924
17266
d4dc6a9ca244 New function purple_conversation_do_command. This is almost like
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17265
diff changeset
925 gboolean
d4dc6a9ca244 New function purple_conversation_do_command. This is almost like
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17265
diff changeset
926 purple_conversation_do_command(PurpleConversation *conv, const gchar *cmdline,
d4dc6a9ca244 New function purple_conversation_do_command. This is almost like
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17265
diff changeset
927 const gchar *markup, gchar **error)
d4dc6a9ca244 New function purple_conversation_do_command. This is almost like
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17265
diff changeset
928 {
d4dc6a9ca244 New function purple_conversation_do_command. This is almost like
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17265
diff changeset
929 char *mark = (markup && *markup) ? NULL : g_markup_escape_text(cmdline, -1), *err = NULL;
d4dc6a9ca244 New function purple_conversation_do_command. This is almost like
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17265
diff changeset
930 PurpleCmdStatus status = purple_cmd_do_command(conv, cmdline, mark ? mark : markup, error ? error : &err);
d4dc6a9ca244 New function purple_conversation_do_command. This is almost like
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17265
diff changeset
931 g_free(mark);
17267
f653ad9f7ad9 Plug a possible memory leak.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17266
diff changeset
932 g_free(err);
17266
d4dc6a9ca244 New function purple_conversation_do_command. This is almost like
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17265
diff changeset
933 return (status == PURPLE_CMD_STATUS_OK);
d4dc6a9ca244 New function purple_conversation_do_command. This is almost like
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17265
diff changeset
934 }
17265
fd5b0ca330a3 New api function purple_conversation_get_extended_menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17155
diff changeset
935
34321
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
936 gssize
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
937 purple_conversation_get_max_message_size(PurpleConversation *conv)
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
938 {
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
939 PurplePlugin *prpl;
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
940 PurplePluginProtocolInfo *prpl_info;
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
941
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
942 g_return_val_if_fail(PURPLE_IS_CONVERSATION(conv), 0);
34321
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
943
34322
39acbde408f3 Fix compilation error
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34321
diff changeset
944 prpl = purple_connection_get_prpl(
39acbde408f3 Fix compilation error
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34321
diff changeset
945 purple_conversation_get_connection(conv));
34321
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
946 g_return_val_if_fail(prpl != NULL, 0);
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
947
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
948 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
949 g_return_val_if_fail(prpl_info != NULL, 0);
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
950
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
951 if (!PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl_info, get_max_message_size))
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
952 return 0;
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
953
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
954 return prpl_info->get_max_message_size(conv);
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
955 }
f60fcab02bd4 Reconsidered characters count callback for prpl API: make it per-conversation and distinguish infinite from undefined
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33578
diff changeset
956
35838
64f331a1eaa0 Drop remote smileys in favor of remote images
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35811
diff changeset
957 PurpleSmiley *
35744
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
958 purple_conversation_add_remote_smiley(PurpleConversation *conv,
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
959 const gchar *shortcut)
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
960 {
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
961 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
962 PurpleSmiley *smiley;
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
963
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
964 g_return_val_if_fail(priv != NULL, NULL);
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
965 g_return_val_if_fail(shortcut != NULL, NULL);
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
966 g_return_val_if_fail(shortcut[0] != '\0', NULL);
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
967
35755
d91c44b4a8e6 Remote smileys: correctly handle failed smileys
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35753
diff changeset
968 if (priv->remote_smileys == NULL) {
35744
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
969 priv->remote_smileys = purple_smiley_list_new();
35755
d91c44b4a8e6 Remote smileys: correctly handle failed smileys
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35753
diff changeset
970 g_object_set(priv->remote_smileys,
d91c44b4a8e6 Remote smileys: correctly handle failed smileys
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35753
diff changeset
971 "drop-failed-remotes", TRUE, NULL);
d91c44b4a8e6 Remote smileys: correctly handle failed smileys
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35753
diff changeset
972 }
35744
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
973
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
974 smiley = purple_smiley_list_get_by_shortcut(
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
975 priv->remote_smileys, shortcut);
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
976
35746
e4a656378516 Remote smileys: partial implementation with XMPP
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
977 /* smiley was already added */
e4a656378516 Remote smileys: partial implementation with XMPP
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
978 if (smiley)
e4a656378516 Remote smileys: partial implementation with XMPP
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
979 return NULL;
e4a656378516 Remote smileys: partial implementation with XMPP
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
980
35838
64f331a1eaa0 Drop remote smileys in favor of remote images
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35811
diff changeset
981 smiley = purple_smiley_new_remote(shortcut);
35746
e4a656378516 Remote smileys: partial implementation with XMPP
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
982
35838
64f331a1eaa0 Drop remote smileys in favor of remote images
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35811
diff changeset
983 if (!purple_smiley_list_add(priv->remote_smileys, smiley)) {
35746
e4a656378516 Remote smileys: partial implementation with XMPP
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
984 purple_debug_error("conversation", "failed adding remote "
e4a656378516 Remote smileys: partial implementation with XMPP
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
985 "smiley to the list");
35838
64f331a1eaa0 Drop remote smileys in favor of remote images
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35811
diff changeset
986 g_object_unref(smiley);
35746
e4a656378516 Remote smileys: partial implementation with XMPP
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
987 return NULL;
e4a656378516 Remote smileys: partial implementation with XMPP
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
988 }
e4a656378516 Remote smileys: partial implementation with XMPP
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
989
e4a656378516 Remote smileys: partial implementation with XMPP
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
990 /* priv->remote_smileys holds the only one ref */
35838
64f331a1eaa0 Drop remote smileys in favor of remote images
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35811
diff changeset
991 g_object_unref(smiley);
64f331a1eaa0 Drop remote smileys in favor of remote images
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35811
diff changeset
992 return smiley;
35744
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
993 }
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
994
35838
64f331a1eaa0 Drop remote smileys in favor of remote images
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35811
diff changeset
995 PurpleSmiley *
35762
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
996 purple_conversation_get_remote_smiley(PurpleConversation *conv,
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
997 const gchar *shortcut)
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
998 {
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
999 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
1000
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
1001 g_return_val_if_fail(priv != NULL, NULL);
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
1002 g_return_val_if_fail(shortcut != NULL, NULL);
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
1003 g_return_val_if_fail(shortcut[0] != '\0', NULL);
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
1004
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
1005 if (priv->remote_smileys == NULL)
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
1006 return NULL;
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
1007
35838
64f331a1eaa0 Drop remote smileys in favor of remote images
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35811
diff changeset
1008 return purple_smiley_list_get_by_shortcut(
35762
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
1009 priv->remote_smileys, shortcut);
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
1010 }
a062d17b15e7 Remote smileys: receive them with MSN
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35756
diff changeset
1011
35744
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
1012 PurpleSmileyList *
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
1013 purple_conversation_get_remote_smileys(PurpleConversation *conv)
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
1014 {
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
1015 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
1016
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
1017 g_return_val_if_fail(priv != NULL, NULL);
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
1018
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
1019 return priv->remote_smileys;
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
1020 }
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
1021
34964f8d43fe Remote smileys: initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35599
diff changeset
1022
34646
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 * GObject code
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1025 **************************************************************************/
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 /* Set method for GObject properties */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1028 static void
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1029 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
1030 GParamSpec *pspec)
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1031 {
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1032 PurpleConversation *conv = PURPLE_CONVERSATION(obj);
34663
cf9e572853b2 Assign conversation initialization properties directly
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
1033 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
1034
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1035 switch (param_id) {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1036 case PROP_ACCOUNT:
34663
cf9e572853b2 Assign conversation initialization properties directly
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
1037 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
1038 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1039 case PROP_NAME:
34673
a967ed801b0a freed name and title before setting the property in PurpleConversation
Ankit Vani <a@nevitus.org>
parents: 34668
diff changeset
1040 g_free(priv->name);
34663
cf9e572853b2 Assign conversation initialization properties directly
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
1041 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
1042 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1043 case PROP_TITLE:
34673
a967ed801b0a freed name and title before setting the property in PurpleConversation
Ankit Vani <a@nevitus.org>
parents: 34668
diff changeset
1044 g_free(priv->title);
34663
cf9e572853b2 Assign conversation initialization properties directly
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
1045 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
1046 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1047 case PROP_LOGGING:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1048 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
1049 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1050 case PROP_FEATURES:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1051 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
1052 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1053 default:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1054 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
1055 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1056 }
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1057 }
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1058
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1059 /* Get method for GObject properties */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1060 static void
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1061 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
1062 GParamSpec *pspec)
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1063 {
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1064 PurpleConversation *conv = PURPLE_CONVERSATION(obj);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1065
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1066 switch (param_id) {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1067 case PROP_ACCOUNT:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1068 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
1069 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1070 case PROP_NAME:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1071 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
1072 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1073 case PROP_TITLE:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1074 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
1075 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1076 case PROP_LOGGING:
34649
4a0ec0fff2e1 Refactored PurpleConversation base object to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34648
diff changeset
1077 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
1078 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1079 case PROP_FEATURES:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1080 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
1081 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1082 default:
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1083 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
1084 break;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1085 }
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1086 }
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1087
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1088 /* Called when done constructing */
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1089 static void
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1090 purple_conversation_constructed(GObject *object)
5858
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1091 {
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1092 PurpleConversation *conv = PURPLE_CONVERSATION(object);
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1093 PurpleAccount *account;
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1094 PurpleConnection *gc;
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1095 PurpleConversationUiOps *ops;
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30706
diff changeset
1096
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1097 parent_class->constructed(object);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1098
35012
e07a9b9c6bda Cleaned up properties and added g_object_notify calls for PurpleConnection and PurpleConversation's
Ankit Vani <a@nevitus.org>
parents: 34986
diff changeset
1099 g_object_get(object, "account", &account, NULL);
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1100 gc = purple_account_get_connection(account);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1101
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1102 /* copy features from the connection. */
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1103 purple_conversation_set_features(conv, purple_connection_get_flags(gc));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1104
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1105 /* 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
1106 purple_conversations_add(conv);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1107
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1108 /* Auto-set the title. */
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1109 purple_conversation_autoset_title(conv);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1110
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1111 /* 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
1112 * 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
1113 * -- Gary
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1114 */
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1115 ops = purple_conversations_get_ui_ops();
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1116 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
1117 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
1118 ops->create_conversation(conv);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1119
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1120 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
1121 "conversation-created", conv);
22920
6681f6f71dfc applied changes from feb2303b4209e0eeb4e20beaf151b1e4368c4e03
Evan Schoenberg <evands@pidgin.im>
parents: 22918
diff changeset
1122
34923
416a7736a401 Unref and free everything recieved from g_object_get
Ankit Vani <a@nevitus.org>
parents: 34905
diff changeset
1123 g_object_unref(account);
5858
1bc64d957067 [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5776
diff changeset
1124 }
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1125
34986
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1126 /* GObject finalize function */
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1127 static void
34986
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1128 purple_conversation_finalize(GObject *object)
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1129 {
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1130 PurpleConversation *conv = PURPLE_CONVERSATION(object);
34986
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1131 PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1132 PurpleConversationUiOps *ops = purple_conversation_get_ui_ops(conv);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30706
diff changeset
1133
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1134 purple_request_close_with_handle(conv);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1135
35047
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
1136 purple_e2ee_state_unref(priv->e2ee_state);
cf8ca70094ff Merged default branch
Ankit Vani <a@nevitus.org>
parents: 35012 34488
diff changeset
1137 priv->e2ee_state = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1138
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1139 /* 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
1140 purple_conversations_remove(conv);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1141
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1142 purple_signal_emit(purple_conversations_get_handle(),
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1143 "deleting-conversation", conv);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1144
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1145 purple_conversation_close_logs(conv);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1146 purple_conversation_clear_message_history(conv);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1147
34986
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1148 if (ops != NULL && ops->destroy_conversation != NULL)
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1149 ops->destroy_conversation(conv);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1150
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1151 g_free(priv->name);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1152 g_free(priv->title);
22920
6681f6f71dfc applied changes from feb2303b4209e0eeb4e20beaf151b1e4368c4e03
Evan Schoenberg <evands@pidgin.im>
parents: 22918
diff changeset
1153
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1154 priv->name = NULL;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1155 priv->title = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1156
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1157 parent_class->finalize(object);
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1158 }
19904
8abf4c2056eb Keep the message history in PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
1159
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1160 /* Class initializer function */
34687
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1161 static void
aebc4dd321bf Use GObject constructed for PurpleConversation, PurpleIMConversation and PurpleChatConversation
Ankit Vani <a@nevitus.org>
parents: 34684
diff changeset
1162 purple_conversation_class_init(PurpleConversationClass *klass)
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1163 {
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1164 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1165
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1166 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
1167
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1168 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
1169 obj_class->constructed = purple_conversation_constructed;
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1170
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1171 /* Setup properties */
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1172 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
1173 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
1174
35085
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1175 g_type_class_add_private(klass, sizeof(PurpleConversationPrivate));
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1176
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1177 properties[PROP_ACCOUNT] = g_param_spec_object("account", "Account",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35047
diff changeset
1178 "The account for the conversation.", PURPLE_TYPE_ACCOUNT,
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1179 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1180
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1181 properties[PROP_NAME] = g_param_spec_string("name", "Name",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35047
diff changeset
1182 "The name of the conversation.", NULL,
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1183 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1184
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1185 properties[PROP_TITLE] = g_param_spec_string("title", "Title",
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1186 "The title of the conversation.", NULL,
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1187 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1188
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1189 properties[PROP_LOGGING] = g_param_spec_boolean("logging", "Logging status",
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1190 "Whether logging is enabled or not.", FALSE,
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1191 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1192
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1193 properties[PROP_FEATURES] = g_param_spec_flags("features",
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1194 "Connection features",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35047
diff changeset
1195 "The connection features of the conversation.",
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1196 PURPLE_TYPE_CONNECTION_FLAGS, 0,
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1197 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1198
35085
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1199 g_object_class_install_properties(obj_class, PROP_LAST, properties);
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6478
diff changeset
1200 }
19904
8abf4c2056eb Keep the message history in PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
1201
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1202 GType
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1203 purple_conversation_get_type(void)
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1204 {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1205 static GType type = 0;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1206
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1207 if(type == 0) {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1208 static const GTypeInfo info = {
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1209 sizeof(PurpleConversationClass),
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1210 NULL,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1211 NULL,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1212 (GClassInitFunc)purple_conversation_class_init,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1213 NULL,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1214 NULL,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1215 sizeof(PurpleConversation),
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1216 0,
34986
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1217 NULL,
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1218 NULL,
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1219 };
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1220
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1221 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
1222 "PurpleConversation",
34684
518830707fc8 Made PurpleConversation an abstract class
Ankit Vani <a@nevitus.org>
parents: 34682
diff changeset
1223 &info, G_TYPE_FLAG_ABSTRACT);
34646
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1224 }
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1225
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1226 return type;
e7f4631e93f7 Begun adding GObject code to conversation sources
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
1227 }

mercurial