libpurple/blistnodetypes.c

Sun, 01 Sep 2013 00:38:40 +0530

author
Ankit Vani <a@nevitus.org>
date
Sun, 01 Sep 2013 00:38:40 +0530
branch
soc.2013.gobjectification.plugins
changeset 36626
18fc361b3704
parent 36623
caaadef03507
child 36637
9b0109ae118d
permissions
-rw-r--r--

Renamed purple_find_protocol_info to purple_protocols_find

34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1 /*
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
2 * purple
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
3 *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
6 * source distribution.
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
7 *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
11 * (at your option) any later version.
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
12 *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
16 * GNU General Public License for more details.
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
17 *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
21 *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
22 */
34721
ad8974e1a268 Added includes and finished up blistnodetypes.c
Ankit Vani <a@nevitus.org>
parents: 34720
diff changeset
23 #include "internal.h"
ad8974e1a268 Added includes and finished up blistnodetypes.c
Ankit Vani <a@nevitus.org>
parents: 34720
diff changeset
24 #include "dbus-maybe.h"
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
25 #include "debug.h"
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
26
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
27 #define PURPLE_BUDDY_GET_PRIVATE(obj) \
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_BUDDY, PurpleBuddyPrivate))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
29
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
30 /** @copydoc _PurpleBuddyPrivate */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
31 typedef struct _PurpleBuddyPrivate PurpleBuddyPrivate;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
32
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
33 #define PURPLE_CONTACT_GET_PRIVATE(obj) \
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
34 (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CONTACT, PurpleContactPrivate))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
35
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
36 /** @copydoc _PurpleContactPrivate */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
37 typedef struct _PurpleContactPrivate PurpleContactPrivate;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
38
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
39 #define PURPLE_GROUP_GET_PRIVATE(obj) \
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
40 (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_GROUP, PurpleGroupPrivate))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
41
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
42 /** @copydoc _PurpleGroupPrivate */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
43 typedef struct _PurpleGroupPrivate PurpleGroupPrivate;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
44
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
45 #define PURPLE_CHAT_GET_PRIVATE(obj) \
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
46 (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CHAT, PurpleChatPrivate))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
47
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
48 /** @copydoc _PurpleChatPrivate */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
49 typedef struct _PurpleChatPrivate PurpleChatPrivate;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
50
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
51 /**************************************************************************/
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
52 /* Private data */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
53 /**************************************************************************/
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
54 /** Private data for a buddy. */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
55 struct _PurpleBuddyPrivate {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
56 char *name; /**< The name of the buddy. */
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
57 char *local_alias; /**< The user-set alias of the buddy */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
58 char *server_alias; /**< The server-specified alias of the buddy.
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
59 (i.e. MSN "Friendly Names") */
34744
fca907f6d892 Better text for reminder to subclass PurpleBuddy in protocols
Ankit Vani <a@nevitus.org>
parents: 34743
diff changeset
60 void *proto_data; /**< This allows the prpl to associate
fca907f6d892 Better text for reminder to subclass PurpleBuddy in protocols
Ankit Vani <a@nevitus.org>
parents: 34743
diff changeset
61 whatever data it wants with a buddy
fca907f6d892 Better text for reminder to subclass PurpleBuddy in protocols
Ankit Vani <a@nevitus.org>
parents: 34743
diff changeset
62 TODO Remove this field. Protocols should
fca907f6d892 Better text for reminder to subclass PurpleBuddy in protocols
Ankit Vani <a@nevitus.org>
parents: 34743
diff changeset
63 subclass PurpleBuddy and store
fca907f6d892 Better text for reminder to subclass PurpleBuddy in protocols
Ankit Vani <a@nevitus.org>
parents: 34743
diff changeset
64 their data as they see fit. */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
65 PurpleBuddyIcon *icon; /**< The buddy icon. */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
66 PurpleAccount *account; /**< the account this buddy belongs to */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
67 PurplePresence *presence; /**< Presense information of the buddy */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
68 PurpleMediaCaps media_caps; /**< The media capabilities of the buddy. */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
69 };
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
70
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
71 /* Buddy property enums */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
72 enum
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
73 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
74 BUDDY_PROP_0,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
75 BUDDY_PROP_NAME,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
76 BUDDY_PROP_LOCAL_ALIAS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
77 BUDDY_PROP_SERVER_ALIAS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
78 BUDDY_PROP_ICON,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
79 BUDDY_PROP_ACCOUNT,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
80 BUDDY_PROP_PRESENCE,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
81 BUDDY_PROP_MEDIA_CAPS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
82 BUDDY_PROP_LAST
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
83 };
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
84
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
85 /** Private data for a contact */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
86 struct _PurpleContactPrivate {
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
87 char *alias; /**< The user-set alias of the contact */
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
88 PurpleBuddy *priority_buddy; /**< The "top" buddy for this contact */
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
89 gboolean priority_valid; /**< Is priority valid? */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
90 };
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
91
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
92 /* Contact property enums */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
93 enum
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
94 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
95 CONTACT_PROP_0,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
96 CONTACT_PROP_ALIAS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
97 CONTACT_PROP_PRIORITY_BUDDY,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
98 CONTACT_PROP_LAST
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
99 };
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
100
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
101 /** Private data for a group */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
102 struct _PurpleGroupPrivate {
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
103 char *name; /**< The name of this group. */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
104 };
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
105
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
106 /* Group property enums */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
107 enum
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
108 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
109 GROUP_PROP_0,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
110 GROUP_PROP_NAME,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
111 GROUP_PROP_LAST
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
112 };
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
113
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
114 /** Private data for a chat node */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
115 struct _PurpleChatPrivate {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
116 char *alias; /**< The display name of this chat. */
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
117 PurpleAccount *account; /**< The account this chat is attached to */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
118 GHashTable *components; /**< the stuff the protocol needs to know to join
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
119 the chat */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
120 };
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
121
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
122 /* Chat property enums */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
123 enum
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
124 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
125 CHAT_PROP_0,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
126 CHAT_PROP_ALIAS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
127 CHAT_PROP_ACCOUNT,
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
128 CHAT_PROP_COMPONENTS,
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
129 CHAT_PROP_LAST
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
130 };
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
131
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
132 static PurpleBlistNode *blistnode_parent_class;
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
133 static PurpleCountingNode *counting_parent_class;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
134
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
135 static gboolean
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
136 purple_strings_are_different(const char *one, const char *two)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
137 {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
138 return !((one && two && g_utf8_collate(one, two) == 0) ||
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
139 ((one == NULL || *one == '\0') && (two == NULL || *two == '\0')));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
140 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
141
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
142 PurpleBlistNode *_purple_blist_get_last_child(PurpleBlistNode *node);
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
143
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
144 /**************************************************************************/
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
145 /* Buddy API */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
146 /**************************************************************************/
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
147
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
148 void
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
149 purple_buddy_set_icon(PurpleBuddy *buddy, PurpleBuddyIcon *icon)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
150 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
151 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
152 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
153
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
154 g_return_if_fail(priv != NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
155
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
156 if (priv->icon != icon)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
157 {
34831
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
158 purple_buddy_icon_unref(priv->icon);
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
159 priv->icon = (icon != NULL ? purple_buddy_icon_ref(icon) : NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
160 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
161
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
162 purple_signal_emit(purple_blist_get_handle(), "buddy-icon-changed", buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
163
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
164 if (ops && ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
165 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
166 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
167
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
168 PurpleBuddyIcon *
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
169 purple_buddy_get_icon(const PurpleBuddy *buddy)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
170 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
171 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
172
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
173 g_return_val_if_fail(priv != NULL, NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
174
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
175 return priv->icon;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
176 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
177
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
178 PurpleAccount *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
179 purple_buddy_get_account(const PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
180 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
181 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
182
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
183 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
184
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
185 return priv->account;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
186 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
187
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
188 void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
189 purple_buddy_set_name(PurpleBuddy *buddy, const char *name)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
190 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
191 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
192 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
193
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
194 g_return_if_fail(priv != NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
195
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
196 purple_blist_update_buddies_cache(buddy, name);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
197
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
198 g_free(priv->name);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
199 priv->name = purple_utf8_strip_unprintables(name);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
200
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
201 if (ops) {
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
202 if (ops->save_node)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
203 ops->save_node(PURPLE_BLIST_NODE(buddy));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
204 if (ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
205 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
206 }
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
207 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
208
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
209 const char *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
210 purple_buddy_get_name(const PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
211 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
212 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
213
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
214 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
215
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
216 return priv->name;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
217 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
218
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
219 gpointer
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
220 purple_buddy_get_protocol_data(const PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
221 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
222 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
223
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
224 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
225
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
226 return priv->proto_data;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
227 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
228
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
229 void
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
230 purple_buddy_set_protocol_data(PurpleBuddy *buddy, gpointer data)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
231 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
232 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
233
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
234 g_return_if_fail(priv != NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
235
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
236 priv->proto_data = data;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
237 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
238
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
239 const char *purple_buddy_get_alias_only(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
240 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
241 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
242
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
243 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
244
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
245 if ((priv->local_alias != NULL) && (*priv->local_alias != '\0')) {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
246 return priv->local_alias;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
247 } else if ((priv->server_alias != NULL) &&
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
248 (*priv->server_alias != '\0')) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
249
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
250 return priv->server_alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
251 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
252
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
253 return NULL;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
254 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
255
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
256 const char *purple_buddy_get_contact_alias(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
257 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
258 PurpleContact *c;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
259 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
260
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
261 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
262
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
263 /* Search for an alias for the buddy. In order of precedence: */
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
264 /* The local buddy alias */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
265 if (priv->local_alias != NULL)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
266 return priv->local_alias;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
267
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
268 /* The contact alias */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
269 c = purple_buddy_get_contact(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
270 if ((c != NULL) && (purple_contact_get_alias(c) != NULL))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
271 return purple_contact_get_alias(c);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
272
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
273 /* The server alias */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
274 if ((priv->server_alias) && (*priv->server_alias))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
275 return priv->server_alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
276
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
277 /* The buddy's user name (i.e. no alias) */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
278 return priv->name;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
279 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
280
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
281 const char *purple_buddy_get_alias(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
282 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
283 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
284
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
285 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
286
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
287 /* Search for an alias for the buddy. In order of precedence: */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
288 /* The buddy alias */
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
289 if (priv->local_alias != NULL)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
290 return priv->local_alias;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
291
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
292 /* The server alias */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
293 if ((priv->server_alias) && (*priv->server_alias))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
294 return priv->server_alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
295
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
296 /* The buddy's user name (i.e. no alias) */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
297 return priv->name;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
298 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
299
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
300 void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
301 purple_buddy_set_local_alias(PurpleBuddy *buddy, const char *alias)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
302 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
303 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
304 PurpleIMConversation *im;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
305 char *old_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
306 char *new_alias = NULL;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
307 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
308
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
309 g_return_if_fail(buddy != NULL);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
310
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
311 if ((alias != NULL) && (*alias != '\0'))
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
312 new_alias = purple_utf8_strip_unprintables(alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
313
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
314 if (!purple_strings_are_different(priv->local_alias, new_alias)) {
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
315 g_free(new_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
316 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
317 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
318
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
319 old_alias = priv->local_alias;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
320
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
321 if ((new_alias != NULL) && (*new_alias != '\0'))
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
322 priv->local_alias = new_alias;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
323 else {
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
324 priv->local_alias = NULL;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
325 g_free(new_alias); /* could be "\0" */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
326 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
327
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
328 if (ops && ops->save_node)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
329 ops->save_node(PURPLE_BLIST_NODE(buddy));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
330
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
331 if (ops && ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
332 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
333
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
334 im = purple_conversations_find_im_with_account(priv->name,
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
335 priv->account);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
336 if (im)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
337 purple_conversation_autoset_title(PURPLE_CONVERSATION(im));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
338
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
339 purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased",
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
340 buddy, old_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
341 g_free(old_alias);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
342 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
343
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
344 const char *purple_buddy_get_local_alias(PurpleBuddy *buddy)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
345 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
346 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
347
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
348 g_return_val_if_fail(priv != NULL, NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
349
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
350 return priv->local_alias;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
351 }
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
352
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
353 void
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
354 purple_buddy_set_server_alias(PurpleBuddy *buddy, const char *alias)
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
355 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
356 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
357 PurpleIMConversation *im;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
358 char *old_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
359 char *new_alias = NULL;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
360 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
361
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
362 g_return_if_fail(priv != NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
363
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
364 if ((alias != NULL) && (*alias != '\0') && g_utf8_validate(alias, -1, NULL))
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
365 new_alias = purple_utf8_strip_unprintables(alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
366
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
367 if (!purple_strings_are_different(priv->server_alias, new_alias)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
368 g_free(new_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
369 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
370 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
371
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
372 old_alias = priv->server_alias;
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
373
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
374 if ((new_alias != NULL) && (*new_alias != '\0'))
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
375 priv->server_alias = new_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
376 else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
377 priv->server_alias = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
378 g_free(new_alias); /* could be "\0"; */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
379 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
380
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
381 if (ops) {
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
382 if (ops->save_node)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
383 ops->save_node(PURPLE_BLIST_NODE(buddy));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
384 if (ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
385 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
386 }
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
387
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
388 im = purple_conversations_find_im_with_account(priv->name,
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
389 priv->account);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
390 if (im)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
391 purple_conversation_autoset_title(PURPLE_CONVERSATION(im));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
392
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
393 purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased",
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
394 buddy, old_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
395 g_free(old_alias);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
396 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
397
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
398 const char *purple_buddy_get_server_alias(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
399 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
400 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
401
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
402 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
403
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
404 if ((priv->server_alias) && (*priv->server_alias))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
405 return priv->server_alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
406
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
407 return NULL;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
408 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
409
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
410 PurpleContact *purple_buddy_get_contact(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
411 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
412 g_return_val_if_fail(buddy != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
413
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
414 return PURPLE_CONTACT(PURPLE_BLIST_NODE(buddy)->parent);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
415 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
416
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
417 PurplePresence *purple_buddy_get_presence(const PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
418 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
419 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
420
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
421 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
422
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
423 return priv->presence;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
424 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
425
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
426 void
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34727
diff changeset
427 purple_buddy_update_status(PurpleBuddy *buddy, PurpleStatus *old_status)
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
428 {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
429 PurpleStatus *status;
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
430 PurpleBlistNode *cnode;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
431 PurpleContact *contact;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
432 PurpleCountingNode *contact_counter, *group_counter;
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
433 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
434 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
435
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
436 g_return_if_fail(priv != NULL);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
437
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
438 status = purple_presence_get_active_status(priv->presence);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
439
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
440 purple_debug_info("blist", "Updating buddy status for %s (%s)\n",
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
441 priv->name, purple_account_get_protocol_name(priv->account));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
442
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
443 if (purple_status_is_online(status) &&
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
444 !purple_status_is_online(old_status)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
445
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
446 purple_signal_emit(purple_blist_get_handle(), "buddy-signed-on", buddy);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
447
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
448 cnode = PURPLE_BLIST_NODE(buddy)->parent;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
449 contact = PURPLE_CONTACT(cnode);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
450 contact_counter = PURPLE_COUNTING_NODE(contact);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
451 group_counter = PURPLE_COUNTING_NODE(cnode->parent);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
452
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
453 purple_counting_node_change_online_count(contact_counter, +1);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
454 if (purple_counting_node_get_online_count(contact_counter) == 1)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
455 purple_counting_node_change_online_count(group_counter, +1);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
456 } else if (!purple_status_is_online(status) &&
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
457 purple_status_is_online(old_status)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
458
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
459 purple_blist_node_set_int(PURPLE_BLIST_NODE(buddy), "last_seen", time(NULL));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
460 purple_signal_emit(purple_blist_get_handle(), "buddy-signed-off", buddy);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
461
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
462 cnode = PURPLE_BLIST_NODE(buddy)->parent;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
463 contact = PURPLE_CONTACT(cnode);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
464 contact_counter = PURPLE_COUNTING_NODE(contact);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
465 group_counter = PURPLE_COUNTING_NODE(cnode->parent);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
466
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
467 purple_counting_node_change_online_count(contact_counter, -1);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
468 if (purple_counting_node_get_online_count(contact_counter) == 0)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
469 purple_counting_node_change_online_count(group_counter, -1);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
470 } else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
471 purple_signal_emit(purple_blist_get_handle(),
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
472 "buddy-status-changed", buddy, old_status,
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
473 status);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
474 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
475
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
476 /*
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
477 * This function used to only call the following two functions if one of
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
478 * the above signals had been triggered, but that's not good, because
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
479 * if someone's away message changes and they don't go from away to back
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
480 * to away then no signal is triggered.
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
481 *
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
482 * It's a safe assumption that SOMETHING called this function. PROBABLY
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
483 * because something, somewhere changed. Calling the stuff below
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
484 * certainly won't hurt anything. Unless you're on a K6-2 300.
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
485 */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
486 purple_contact_invalidate_priority_buddy(purple_buddy_get_contact(buddy));
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
487
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
488 if (ops && ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
489 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
490 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
491
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
492 PurpleMediaCaps purple_buddy_get_media_caps(const PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
493 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
494 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
495
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
496 g_return_val_if_fail(priv != NULL, 0);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
497
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
498 return priv->media_caps;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
499 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
500
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
501 void purple_buddy_set_media_caps(PurpleBuddy *buddy, PurpleMediaCaps media_caps)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
502 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
503 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
504
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
505 g_return_if_fail(priv != NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
506
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
507 priv->media_caps = media_caps;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
508 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
509
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
510 PurpleGroup *purple_buddy_get_group(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
511 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
512 g_return_val_if_fail(buddy != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
513
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
514 if (PURPLE_BLIST_NODE(buddy)->parent == NULL)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
515 return NULL;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
516
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
517 return PURPLE_GROUP(PURPLE_BLIST_NODE(buddy)->parent->parent);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
518 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
519
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
520 /**************************************************************************
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
521 * GObject code for PurpleBuddy
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
522 **************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
523
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
524 /* GObject Property names */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
525 #define BUDDY_PROP_NAME_S "name"
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
526 #define BUDDY_PROP_LOCAL_ALIAS_S "local-alias"
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
527 #define BUDDY_PROP_SERVER_ALIAS_S "server-alias"
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
528 #define BUDDY_PROP_ICON_S "icon"
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
529 #define BUDDY_PROP_ACCOUNT_S "account"
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
530 #define BUDDY_PROP_PRESENCE_S "presence"
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
531 #define BUDDY_PROP_MEDIA_CAPS_S "media-caps"
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
532
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
533 /* Set method for GObject properties */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
534 static void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
535 purple_buddy_set_property(GObject *obj, guint param_id, const GValue *value,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
536 GParamSpec *pspec)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
537 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
538 PurpleBuddy *buddy = PURPLE_BUDDY(obj);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
539 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
540
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
541 switch (param_id) {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
542 case BUDDY_PROP_NAME:
34742
ad53075d1f42 Set construction strings directly
Ankit Vani <a@nevitus.org>
parents: 34737
diff changeset
543 priv->name = purple_utf8_strip_unprintables(g_value_get_string(value));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
544 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
545 case BUDDY_PROP_LOCAL_ALIAS:
34742
ad53075d1f42 Set construction strings directly
Ankit Vani <a@nevitus.org>
parents: 34737
diff changeset
546 priv->local_alias = purple_utf8_strip_unprintables(g_value_get_string(value));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
547 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
548 case BUDDY_PROP_SERVER_ALIAS:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
549 purple_buddy_set_server_alias(buddy, g_value_get_string(value));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
550 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
551 case BUDDY_PROP_ICON:
34831
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
552 purple_buddy_set_icon(buddy, g_value_get_pointer(value));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
553 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
554 case BUDDY_PROP_ACCOUNT:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
555 priv->account = g_value_get_object(value);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
556 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
557 case BUDDY_PROP_MEDIA_CAPS:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
558 purple_buddy_set_media_caps(buddy, g_value_get_enum(value));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
559 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
560 default:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
561 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
562 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
563 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
564 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
565
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
566 /* Get method for GObject properties */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
567 static void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
568 purple_buddy_get_property(GObject *obj, guint param_id, GValue *value,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
569 GParamSpec *pspec)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
570 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
571 PurpleBuddy *buddy = PURPLE_BUDDY(obj);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
572
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
573 switch (param_id) {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
574 case BUDDY_PROP_NAME:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
575 g_value_set_string(value, purple_buddy_get_name(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
576 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
577 case BUDDY_PROP_LOCAL_ALIAS:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
578 g_value_set_string(value, purple_buddy_get_local_alias(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
579 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
580 case BUDDY_PROP_SERVER_ALIAS:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
581 g_value_set_string(value, purple_buddy_get_server_alias(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
582 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
583 case BUDDY_PROP_ICON:
34831
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
584 g_value_set_pointer(value, purple_buddy_get_icon(buddy));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
585 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
586 case BUDDY_PROP_ACCOUNT:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
587 g_value_set_object(value, purple_buddy_get_account(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
588 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
589 case BUDDY_PROP_PRESENCE:
34836
289bc0df25bb API changes for PurplePresence. See details.
Ankit Vani <a@nevitus.org>
parents: 34833
diff changeset
590 g_value_set_object(value, purple_buddy_get_presence(buddy));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
591 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
592 case BUDDY_PROP_MEDIA_CAPS:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
593 g_value_set_enum(value, purple_buddy_get_media_caps(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
594 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
595 default:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
596 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
597 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
598 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
599 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
600
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
601 /* GObject initialization function */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
602 static void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
603 purple_buddy_init(GTypeInstance *instance, gpointer klass)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
604 {
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
605 PURPLE_DBUS_REGISTER_POINTER(PURPLE_BUDDY(instance), PurpleBuddy);
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
606 }
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
607
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
608 /* Called when done constructing */
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
609 static void
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
610 purple_buddy_constructed(GObject *object)
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
611 {
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
612 PurpleBuddy *buddy = PURPLE_BUDDY(object);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
613 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
614 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
615
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
616 G_OBJECT_CLASS(blistnode_parent_class)->constructed(object);
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
617
34844
e341dbc04539 Refactored plugins, account, blistnodetypes to use the GObject presence API
Ankit Vani <a@nevitus.org>
parents: 34838
diff changeset
618 priv->presence = PURPLE_PRESENCE(purple_buddy_presence_new(buddy));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
619 purple_presence_set_status_active(priv->presence, "offline", TRUE);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
620
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
621 if (ops && ops->new_node)
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
622 ops->new_node((PurpleBlistNode *)buddy);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
623 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
624
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
625 /* GObject dispose function */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
626 static void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
627 purple_buddy_dispose(GObject *object)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
628 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
629 PurpleBuddy *buddy = PURPLE_BUDDY(object);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
630 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36365
diff changeset
631 PurpleProtocol *protocol;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
632
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
633 /*
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
634 * Tell the owner PRPL that we're about to free the buddy so it
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
635 * can free proto_data
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
636 */
36626
18fc361b3704 Renamed purple_find_protocol_info to purple_protocols_find
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
637 protocol = purple_protocols_find(purple_account_get_protocol_id(priv->account));
36610
3d99b9c0bf90 Refactored account, blist, buddyicon, connection, conversation, presence to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 36606
diff changeset
638 if (protocol)
36606
9fe2d65fe1a7 Use the purple_protocol_iface_* API instead of protocol->function()
Ankit Vani <a@nevitus.org>
parents: 36555
diff changeset
639 purple_protocol_iface_buddy_free(protocol, buddy);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
640
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
641 /* Delete the node */
34831
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
642 purple_buddy_icon_unref(priv->icon);
34838
c53c8be87d39 Global replaces for to update codebase to use GObject PurplePresence API
Ankit Vani <a@nevitus.org>
parents: 34836
diff changeset
643 g_object_unref(priv->presence);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
644
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
645 PURPLE_DBUS_UNREGISTER_POINTER(buddy);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
646
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
647 G_OBJECT_CLASS(blistnode_parent_class)->dispose(object);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
648 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
649
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
650 /* GObject finalize function */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
651 static void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
652 purple_buddy_finalize(GObject *object)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
653 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
654 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(object);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
655
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
656 g_free(priv->name);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
657 g_free(priv->local_alias);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
658 g_free(priv->server_alias);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
659
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
660 G_OBJECT_CLASS(blistnode_parent_class)->finalize(object);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
661 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
662
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
663 /* Class initializer function */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
664 static void purple_buddy_class_init(PurpleBuddyClass *klass)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
665 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
666 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
667
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
668 blistnode_parent_class = g_type_class_peek_parent(klass);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
669
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
670 obj_class->dispose = purple_buddy_dispose;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
671 obj_class->finalize = purple_buddy_finalize;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
672
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
673 /* Setup properties */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
674 obj_class->get_property = purple_buddy_get_property;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
675 obj_class->set_property = purple_buddy_set_property;
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
676 obj_class->constructed = purple_buddy_constructed;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
677
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
678 g_object_class_install_property(obj_class, BUDDY_PROP_NAME,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
679 g_param_spec_string(BUDDY_PROP_NAME_S, _("Name"),
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
680 _("The name of the buddy."), NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
681 G_PARAM_READWRITE | G_PARAM_CONSTRUCT)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
682 );
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
683
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
684 g_object_class_install_property(obj_class, BUDDY_PROP_LOCAL_ALIAS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
685 g_param_spec_string(BUDDY_PROP_LOCAL_ALIAS_S, _("Local alias"),
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
686 _("Local alias of thee buddy."), NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
687 G_PARAM_READWRITE | G_PARAM_CONSTRUCT)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
688 );
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
689
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
690 g_object_class_install_property(obj_class, BUDDY_PROP_SERVER_ALIAS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
691 g_param_spec_string(BUDDY_PROP_SERVER_ALIAS_S, _("Server alias"),
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
692 _("Server-side alias of the buddy."), NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
693 G_PARAM_READWRITE)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
694 );
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
695
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
696 g_object_class_install_property(obj_class, BUDDY_PROP_ICON,
34831
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
697 g_param_spec_pointer(BUDDY_PROP_ICON_S, _("Buddy icon"),
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
698 _("The icon for the buddy."),
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
699 G_PARAM_READWRITE)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
700 );
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
701
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
702 g_object_class_install_property(obj_class, BUDDY_PROP_ACCOUNT,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
703 g_param_spec_object(BUDDY_PROP_ACCOUNT_S, _("Account"),
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
704 _("The account for the buddy."), PURPLE_TYPE_ACCOUNT,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
705 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
706 );
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
707
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
708 g_object_class_install_property(obj_class, BUDDY_PROP_PRESENCE,
34836
289bc0df25bb API changes for PurplePresence. See details.
Ankit Vani <a@nevitus.org>
parents: 34833
diff changeset
709 g_param_spec_object(BUDDY_PROP_PRESENCE_S, _("Presence"),
289bc0df25bb API changes for PurplePresence. See details.
Ankit Vani <a@nevitus.org>
parents: 34833
diff changeset
710 _("The status information for the buddy."), PURPLE_TYPE_PRESENCE,
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
711 G_PARAM_READABLE)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
712 );
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
713
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
714 g_object_class_install_property(obj_class, BUDDY_PROP_MEDIA_CAPS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
715 g_param_spec_enum(BUDDY_PROP_MEDIA_CAPS_S, _("Media capabilities"),
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
716 _("The media capabilities of the buddy."),
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
717 PURPLE_MEDIA_TYPE_CAPS, PURPLE_MEDIA_CAPS_NONE,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
718 G_PARAM_READWRITE)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
719 );
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
720
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
721 g_type_class_add_private(klass, sizeof(PurpleBuddyPrivate));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
722 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
723
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
724 GType
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
725 purple_buddy_get_type(void)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
726 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
727 static GType type = 0;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
728
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
729 if(type == 0) {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
730 static const GTypeInfo info = {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
731 sizeof(PurpleBuddyClass),
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
732 NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
733 NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
734 (GClassInitFunc)purple_buddy_class_init,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
735 NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
736 NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
737 sizeof(PurpleBuddy),
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
738 0,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
739 (GInstanceInitFunc)purple_buddy_init,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
740 NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
741 };
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
742
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
743 type = g_type_register_static(PURPLE_TYPE_BLIST_NODE,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
744 "PurpleBuddy",
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
745 &info, 0);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
746 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
747
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
748 return type;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
749 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
750
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
751 PurpleBuddy *
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
752 purple_buddy_new(PurpleAccount *account, const char *name, const char *alias)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
753 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
754 g_return_val_if_fail(account != NULL, NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
755 g_return_val_if_fail(name != NULL, NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
756
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
757 return g_object_new(PURPLE_TYPE_BUDDY,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
758 BUDDY_PROP_ACCOUNT_S, account,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
759 BUDDY_PROP_NAME_S, name,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
760 BUDDY_PROP_LOCAL_ALIAS_S, alias,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
761 NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
762 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
763
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
764 /**************************************************************************/
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
765 /* Contact API */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
766 /**************************************************************************/
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
767
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
768 static void
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
769 purple_contact_compute_priority_buddy(PurpleContact *contact)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
770 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
771 PurpleBlistNode *bnode;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
772 PurpleBuddy *new_priority = NULL;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
773 PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
774
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
775 g_return_if_fail(priv != NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
776
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
777 priv->priority_buddy = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
778 for (bnode = PURPLE_BLIST_NODE(contact)->child;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
779 bnode != NULL;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
780 bnode = bnode->next)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
781 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
782 PurpleBuddy *buddy;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
783
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
784 if (!PURPLE_IS_BUDDY(bnode))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
785 continue;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
786
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
787 buddy = PURPLE_BUDDY(bnode);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
788 if (new_priority == NULL)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
789 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
790 new_priority = buddy;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
791 continue;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
792 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
793
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
794 if (purple_account_is_connected(purple_buddy_get_account(buddy)))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
795 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
796 int cmp = 1;
34721
ad8974e1a268 Added includes and finished up blistnodetypes.c
Ankit Vani <a@nevitus.org>
parents: 34720
diff changeset
797 if (purple_account_is_connected(purple_buddy_get_account(new_priority)))
34846
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34844
diff changeset
798 cmp = purple_buddy_presence_compare(
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34844
diff changeset
799 PURPLE_BUDDY_PRESENCE(purple_buddy_get_presence(new_priority)),
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34844
diff changeset
800 PURPLE_BUDDY_PRESENCE(purple_buddy_get_presence(buddy)));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
801
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
802 if (cmp > 0 || (cmp == 0 &&
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
803 purple_prefs_get_bool("/purple/contact/last_match")))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
804 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
805 new_priority = buddy;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
806 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
807 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
808 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
809
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
810 priv->priority_buddy = new_priority;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
811 priv->priority_valid = TRUE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
812 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
813
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
814 PurpleGroup *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
815 purple_contact_get_group(const PurpleContact *contact)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
816 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
817 g_return_val_if_fail(contact, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
818
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
819 return PURPLE_GROUP(PURPLE_BLIST_NODE(contact)->parent);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
820 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
821
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
822 void
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
823 purple_contact_set_alias(PurpleContact *contact, const char *alias)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
824 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
825 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
826 PurpleIMConversation *im;
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
827 PurpleBlistNode *bnode;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
828 char *old_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
829 char *new_alias = NULL;
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
830 PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
831
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
832 g_return_if_fail(priv != NULL);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
833
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
834 if ((alias != NULL) && (*alias != '\0'))
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
835 new_alias = purple_utf8_strip_unprintables(alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
836
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
837 if (!purple_strings_are_different(priv->alias, new_alias)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
838 g_free(new_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
839 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
840 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
841
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
842 old_alias = priv->alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
843
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
844 if ((new_alias != NULL) && (*new_alias != '\0'))
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
845 priv->alias = new_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
846 else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
847 priv->alias = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
848 g_free(new_alias); /* could be "\0" */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
849 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
850
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
851 if (ops) {
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
852 if (ops->save_node)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
853 ops->save_node(PURPLE_BLIST_NODE(contact));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
854 if (ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
855 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(contact));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
856 }
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
857
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
858 for(bnode = PURPLE_BLIST_NODE(contact)->child; bnode != NULL; bnode = bnode->next)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
859 {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
860 PurpleBuddy *buddy = PURPLE_BUDDY(bnode);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
861
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
862 im = purple_conversations_find_im_with_account(purple_buddy_get_name(buddy),
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
863 purple_buddy_get_account(buddy));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
864 if (im)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
865 purple_conversation_autoset_title(PURPLE_CONVERSATION(im));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
866 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
867
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
868 purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased",
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
869 contact, old_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
870 g_free(old_alias);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
871 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
872
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
873 const char *purple_contact_get_alias(PurpleContact* contact)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
874 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
875 PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
876
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
877 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
878
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
879 if (priv->alias)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
880 return priv->alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
881
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
882 return purple_buddy_get_alias(purple_contact_get_priority_buddy(contact));
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
883 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
884
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
885 gboolean purple_contact_on_account(PurpleContact *c, PurpleAccount *account)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
886 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
887 PurpleBlistNode *bnode, *cnode = (PurpleBlistNode *) c;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
888
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
889 g_return_val_if_fail(c != NULL, FALSE);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
890 g_return_val_if_fail(account != NULL, FALSE);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
891
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
892 for (bnode = cnode->child; bnode; bnode = bnode->next) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
893 PurpleBuddy *buddy;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
894
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
895 if (! PURPLE_IS_BUDDY(bnode))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
896 continue;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
897
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
898 buddy = (PurpleBuddy *)bnode;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
899 if (purple_buddy_get_account(buddy) == account)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
900 return TRUE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
901 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
902 return FALSE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
903 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
904
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
905 void purple_contact_invalidate_priority_buddy(PurpleContact *contact)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
906 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
907 PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
908
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
909 g_return_if_fail(priv != NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
910
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
911 priv->priority_valid = FALSE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
912 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
913
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
914 PurpleBuddy *purple_contact_get_priority_buddy(PurpleContact *contact)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
915 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
916 PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
917
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
918 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
919
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
920 if (!priv->priority_valid)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
921 purple_contact_compute_priority_buddy(contact);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
922
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
923 return priv->priority_buddy;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
924 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
925
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
926 void purple_contact_merge(PurpleContact *source, PurpleBlistNode *node)
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
927 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
928 PurpleBlistNode *sourcenode = (PurpleBlistNode*)source;
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
929 PurpleBlistNode *prev, *cur, *next;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
930 PurpleContact *target;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
931
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
932 g_return_if_fail(source != NULL);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
933 g_return_if_fail(node != NULL);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
934
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
935 if (PURPLE_IS_CONTACT(node)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
936 target = (PurpleContact *)node;
34767
38a5613c3e26 Prepended functions private to a subsystem but used over multiple files by underscore
Ankit Vani <a@nevitus.org>
parents: 34744
diff changeset
937 prev = _purple_blist_get_last_child(node);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
938 } else if (PURPLE_IS_BUDDY(node)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
939 target = (PurpleContact *)node->parent;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
940 prev = node;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
941 } else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
942 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
943 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
944
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
945 if (source == target || !target)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
946 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
947
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
948 next = sourcenode->child;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
949
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
950 while (next) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
951 cur = next;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
952 next = cur->next;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
953 if (PURPLE_IS_BUDDY(cur)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
954 purple_blist_add_buddy((PurpleBuddy *)cur, target, NULL, prev);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
955 prev = cur;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
956 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
957 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
958 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
959
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
960 /**************************************************************************
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
961 * GObject code for PurpleContact
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
962 **************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
963
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
964 /* GObject Property names */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
965 #define CONTACT_PROP_ALIAS_S "alias"
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
966 #define CONTACT_PROP_PRIORITY_BUDDY_S "priority-buddy"
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
967
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
968 /* Set method for GObject properties */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
969 static void
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
970 purple_contact_set_property(GObject *obj, guint param_id, const GValue *value,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
971 GParamSpec *pspec)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
972 {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
973 PurpleContact *contact = PURPLE_CONTACT(obj);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
974
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
975 switch (param_id) {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
976 case CONTACT_PROP_ALIAS:
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
977 purple_contact_set_alias(contact, g_value_get_string(value));
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
978 break;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
979 default:
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
980 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
981 break;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
982 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
983 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
984
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
985 /* Get method for GObject properties */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
986 static void
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
987 purple_contact_get_property(GObject *obj, guint param_id, GValue *value,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
988 GParamSpec *pspec)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
989 {
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
990 PurpleContact *contact = PURPLE_CONTACT(obj);
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
991 PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
992
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
993 switch (param_id) {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
994 case CONTACT_PROP_ALIAS:
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
995 g_value_set_string(value, priv->alias);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
996 break;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
997 case CONTACT_PROP_PRIORITY_BUDDY:
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
998 g_value_set_object(value, purple_contact_get_priority_buddy(contact));
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
999 break;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1000 default:
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1001 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1002 break;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1003 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1004 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1005
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1006 /* GObject initialization function */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1007 static void
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1008 purple_contact_init(GTypeInstance *instance, gpointer klass)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1009 {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1010 PurpleContact *contact = PURPLE_CONTACT(instance);
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1011 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1012
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1013 if (ops && ops->new_node)
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1014 ops->new_node(PURPLE_BLIST_NODE(contact));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1015
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1016 PURPLE_DBUS_REGISTER_POINTER(contact, PurpleContact);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1017 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1018
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1019 /* GObject dispose function */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1020 static void
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1021 purple_contact_dispose(GObject *object)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1022 {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1023 PURPLE_DBUS_UNREGISTER_POINTER(object);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1024
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1025 G_OBJECT_CLASS(counting_parent_class)->dispose(object);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1026 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1027
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1028 /* GObject finalize function */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1029 static void
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1030 purple_contact_finalize(GObject *object)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1031 {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1032 g_free(PURPLE_CONTACT_GET_PRIVATE(object)->alias);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1033
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1034 G_OBJECT_CLASS(counting_parent_class)->finalize(object);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1035 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1036
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1037 /* Class initializer function */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1038 static void purple_contact_class_init(PurpleContactClass *klass)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1039 {
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1040 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1041
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1042 counting_parent_class = g_type_class_peek_parent(klass);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1043
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1044 obj_class->dispose = purple_contact_dispose;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1045 obj_class->finalize = purple_contact_finalize;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1046
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1047 /* Setup properties */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1048 obj_class->get_property = purple_contact_get_property;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1049 obj_class->set_property = purple_contact_set_property;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1050
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1051 g_object_class_install_property(obj_class, CONTACT_PROP_ALIAS,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1052 g_param_spec_string(CONTACT_PROP_ALIAS_S, _("Alias"),
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1053 _("The alias for the contact."), NULL,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1054 G_PARAM_READWRITE)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1055 );
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1056
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1057 g_object_class_install_property(obj_class, CONTACT_PROP_PRIORITY_BUDDY,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1058 g_param_spec_object(CONTACT_PROP_PRIORITY_BUDDY_S,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1059 _("Priority buddy"), _("The priority buddy of the contact."),
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1060 PURPLE_TYPE_BUDDY, G_PARAM_READABLE)
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1061 );
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1062
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1063 g_type_class_add_private(klass, sizeof(PurpleContactPrivate));
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1064 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1065
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1066 GType
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1067 purple_contact_get_type(void)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1068 {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1069 static GType type = 0;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1070
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1071 if(type == 0) {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1072 static const GTypeInfo info = {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1073 sizeof(PurpleContactClass),
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1074 NULL,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1075 NULL,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1076 (GClassInitFunc)purple_contact_class_init,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1077 NULL,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1078 NULL,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1079 sizeof(PurpleContact),
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1080 0,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1081 (GInstanceInitFunc)purple_contact_init,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1082 NULL,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1083 };
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1084
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1085 type = g_type_register_static(PURPLE_TYPE_COUNTING_NODE,
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1086 "PurpleContact",
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1087 &info, 0);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1088 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1089
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1090 return type;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1091 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1092
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1093 PurpleContact *
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1094 purple_contact_new(void)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1095 {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1096 return g_object_new(PURPLE_TYPE_CONTACT, NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1097 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1098
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1099 /**************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1100 /* Chat API */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1101 /**************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1102
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1103 const char *purple_chat_get_name(PurpleChat *chat)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1104 {
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1105 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1106
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1107 g_return_val_if_fail(priv != NULL, NULL);
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1108
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1109 if ((priv->alias != NULL) && (*priv->alias != '\0'))
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1110 return priv->alias;
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1111
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1112 return purple_chat_get_name_only(chat);
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1113 }
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1114
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1115 const char *purple_chat_get_name_only(PurpleChat *chat)
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1116 {
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1117 char *ret = NULL;
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36365
diff changeset
1118 PurpleProtocol *protocol = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1119 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1120
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1121 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1122
36626
18fc361b3704 Renamed purple_find_protocol_info to purple_protocols_find
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
1123 protocol = purple_protocols_find(purple_account_get_protocol_id(priv->account));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1124
36620
c76013b145f4 Added PURPLE_PROTOCOL_IMPLEMENTS(protocol,func) to check if a protocol implements a function
Ankit Vani <a@nevitus.org>
parents: 36610
diff changeset
1125 if (PURPLE_PROTOCOL_IMPLEMENTS(protocol, chat_info)) {
36555
fc17a4351e63 Replaced struct proto_chat_entry with PurpleProtocolChatEntry
Ankit Vani <a@nevitus.org>
parents: 36544
diff changeset
1126 PurpleProtocolChatEntry *pce;
36606
9fe2d65fe1a7 Use the purple_protocol_iface_* API instead of protocol->function()
Ankit Vani <a@nevitus.org>
parents: 36555
diff changeset
1127 GList *parts = purple_protocol_iface_chat_info(protocol, purple_account_get_connection(priv->account));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1128 pce = parts->data;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1129 ret = g_hash_table_lookup(priv->components, pce->identifier);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1130 g_list_foreach(parts, (GFunc)g_free, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1131 g_list_free(parts);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1132 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1133
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1134 return ret;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1135 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1136
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1137 void
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1138 purple_chat_set_alias(PurpleChat *chat, const char *alias)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1139 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1140 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1141 char *old_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1142 char *new_alias = NULL;
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1143 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1144
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1145 g_return_if_fail(priv != NULL);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1146
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1147 if ((alias != NULL) && (*alias != '\0'))
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1148 new_alias = purple_utf8_strip_unprintables(alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1149
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1150 if (!purple_strings_are_different(priv->alias, new_alias)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1151 g_free(new_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1152 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1153 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1154
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1155 old_alias = priv->alias;
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1156
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1157 if ((new_alias != NULL) && (*new_alias != '\0'))
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1158 priv->alias = new_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1159 else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1160 priv->alias = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1161 g_free(new_alias); /* could be "\0" */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1162 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1163
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1164 if (ops) {
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1165 if (ops->save_node)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1166 ops->save_node(PURPLE_BLIST_NODE(chat));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1167 if (ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1168 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(chat));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1169 }
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1170
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1171 purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased",
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1172 chat, old_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1173 g_free(old_alias);
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1174 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1175
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1176 PurpleGroup *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1177 purple_chat_get_group(PurpleChat *chat)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1178 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1179 g_return_val_if_fail(chat != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1180
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1181 return PURPLE_GROUP(PURPLE_BLIST_NODE(chat)->parent);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1182 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1183
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1184 PurpleAccount *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1185 purple_chat_get_account(PurpleChat *chat)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1186 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1187 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1188
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1189 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1190
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1191 return priv->account;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1192 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1193
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1194 GHashTable *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1195 purple_chat_get_components(PurpleChat *chat)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1196 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1197 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1198
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1199 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1200
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1201 return priv->components;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1202 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1203
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1204 /**************************************************************************
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1205 * GObject code for PurpleChat
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1206 **************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1207
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1208 /* GObject Property names */
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1209 #define CHAT_PROP_ALIAS_S "alias"
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1210 #define CHAT_PROP_ACCOUNT_S "account"
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1211 #define CHAT_PROP_COMPONENTS_S "components"
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1212
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1213 /* Set method for GObject properties */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1214 static void
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1215 purple_chat_set_property(GObject *obj, guint param_id, const GValue *value,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1216 GParamSpec *pspec)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1217 {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1218 PurpleChat *chat = PURPLE_CHAT(obj);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1219 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1220
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1221 switch (param_id) {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1222 case CHAT_PROP_ALIAS:
34742
ad53075d1f42 Set construction strings directly
Ankit Vani <a@nevitus.org>
parents: 34737
diff changeset
1223 priv->alias = purple_utf8_strip_unprintables(g_value_get_string(value));
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1224 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1225 case CHAT_PROP_ACCOUNT:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1226 priv->account = g_value_get_object(value);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1227 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1228 case CHAT_PROP_COMPONENTS:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1229 priv->components = g_value_get_pointer(value);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1230 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1231 default:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1232 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1233 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1234 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1235 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1236
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1237 /* Get method for GObject properties */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1238 static void
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1239 purple_chat_get_property(GObject *obj, guint param_id, GValue *value,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1240 GParamSpec *pspec)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1241 {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1242 PurpleChat *chat = PURPLE_CHAT(obj);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1243 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1244
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1245 switch (param_id) {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1246 case CHAT_PROP_ALIAS:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1247 g_value_set_string(value, priv->alias);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1248 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1249 case CHAT_PROP_ACCOUNT:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1250 g_value_set_object(value, purple_chat_get_account(chat));
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1251 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1252 case CHAT_PROP_COMPONENTS:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1253 g_value_set_pointer(value, purple_chat_get_components(chat));
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1254 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1255 default:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1256 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1257 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1258 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1259 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1260
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1261 /* GObject initialization function */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1262 static void
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1263 purple_chat_init(GTypeInstance *instance, gpointer klass)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1264 {
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1265 PURPLE_DBUS_REGISTER_POINTER(PURPLE_CHAT(instance), PurpleChat);
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1266 }
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1267
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1268 /* Called when done constructing */
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1269 static void
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1270 purple_chat_constructed(GObject *object)
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1271 {
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1272 PurpleChat *chat = PURPLE_CHAT(object);
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1273 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1274
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1275 G_OBJECT_CLASS(blistnode_parent_class)->constructed(object);
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1276
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1277 if (ops != NULL && ops->new_node != NULL)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1278 ops->new_node(PURPLE_BLIST_NODE(chat));
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1279 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1280
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1281 /* GObject dispose function */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1282 static void
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1283 purple_chat_dispose(GObject *object)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1284 {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1285 PURPLE_DBUS_UNREGISTER_POINTER(object);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1286
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1287 G_OBJECT_CLASS(blistnode_parent_class)->dispose(object);
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1288 }
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1289
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1290 /* GObject finalize function */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1291 static void
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1292 purple_chat_finalize(GObject *object)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1293 {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1294 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(object);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1295
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1296 g_free(priv->alias);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1297 g_hash_table_destroy(priv->components);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1298
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1299 G_OBJECT_CLASS(blistnode_parent_class)->finalize(object);
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1300 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1301
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1302 /* Class initializer function */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1303 static void purple_chat_class_init(PurpleChatClass *klass)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1304 {
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1305 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1306
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1307 blistnode_parent_class = g_type_class_peek_parent(klass);
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1308
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1309 obj_class->dispose = purple_chat_dispose;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1310 obj_class->finalize = purple_chat_finalize;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1311
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1312 /* Setup properties */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1313 obj_class->get_property = purple_chat_get_property;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1314 obj_class->set_property = purple_chat_set_property;
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1315 obj_class->constructed = purple_chat_constructed;
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1316
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1317 g_object_class_install_property(obj_class, CHAT_PROP_ALIAS,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1318 g_param_spec_string(CHAT_PROP_ALIAS_S, _("Alias"),
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1319 _("The alias for the chat."), NULL,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1320 G_PARAM_READWRITE | G_PARAM_CONSTRUCT)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1321 );
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1322
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1323 g_object_class_install_property(obj_class, CHAT_PROP_ACCOUNT,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1324 g_param_spec_object(CHAT_PROP_ACCOUNT_S, _("Account"),
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1325 _("The account that the chat belongs to."), PURPLE_TYPE_ACCOUNT,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1326 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1327 );
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1328
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1329 g_object_class_install_property(obj_class, CHAT_PROP_COMPONENTS,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1330 g_param_spec_pointer(CHAT_PROP_COMPONENTS_S, _("Components"),
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1331 _("The protocol components of the chat."),
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1332 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1333 );
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1334
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1335 g_type_class_add_private(klass, sizeof(PurpleChatPrivate));
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1336 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1337
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1338 GType
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1339 purple_chat_get_type(void)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1340 {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1341 static GType type = 0;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1342
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1343 if(type == 0) {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1344 static const GTypeInfo info = {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1345 sizeof(PurpleChatClass),
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1346 NULL,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1347 NULL,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1348 (GClassInitFunc)purple_chat_class_init,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1349 NULL,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1350 NULL,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1351 sizeof(PurpleChat),
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1352 0,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1353 (GInstanceInitFunc)purple_chat_init,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1354 NULL,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1355 };
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1356
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1357 type = g_type_register_static(PURPLE_TYPE_BLIST_NODE,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1358 "PurpleChat",
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1359 &info, 0);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1360 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1361
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1362 return type;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1363 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1364
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1365 PurpleChat *
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1366 purple_chat_new(PurpleAccount *account, const char *alias, GHashTable *components)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1367 {
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1368 g_return_val_if_fail(account != NULL, NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1369 g_return_val_if_fail(components != NULL, NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1370
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1371 return g_object_new(PURPLE_TYPE_CHAT,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1372 CHAT_PROP_ACCOUNT_S, account,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1373 CHAT_PROP_ALIAS_S, alias,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1374 CHAT_PROP_COMPONENTS_S, components,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1375 NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1376 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1377
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1378 /**************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1379 /* Group API */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1380 /**************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1381
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1382 GSList *purple_group_get_accounts(PurpleGroup *group)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1383 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1384 GSList *l = NULL;
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1385 PurpleBlistNode *gnode, *cnode, *bnode;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1386
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1387 gnode = (PurpleBlistNode *)group;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1388
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1389 for (cnode = gnode->child; cnode; cnode = cnode->next) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1390 if (PURPLE_IS_CHAT(cnode)) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1391 if (!g_slist_find(l, purple_chat_get_account(PURPLE_CHAT(cnode))))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1392 l = g_slist_append(l, purple_chat_get_account(PURPLE_CHAT(cnode)));
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1393 } else if (PURPLE_IS_CONTACT(cnode)) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1394 for (bnode = cnode->child; bnode; bnode = bnode->next) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1395 if (PURPLE_IS_BUDDY(bnode)) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1396 if (!g_slist_find(l, purple_buddy_get_account(PURPLE_BUDDY(bnode))))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1397 l = g_slist_append(l, purple_buddy_get_account(PURPLE_BUDDY(bnode)));
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1398 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1399 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1400 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1401 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1402
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1403 return l;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1404 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1405
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1406 gboolean purple_group_on_account(PurpleGroup *g, PurpleAccount *account)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1407 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1408 PurpleBlistNode *cnode;
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1409 for (cnode = ((PurpleBlistNode *)g)->child; cnode; cnode = cnode->next) {
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1410 if (PURPLE_IS_CONTACT(cnode)) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1411 if(purple_contact_on_account((PurpleContact *) cnode, account))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1412 return TRUE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1413 } else if (PURPLE_IS_CHAT(cnode)) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1414 PurpleChat *chat = (PurpleChat *)cnode;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1415 if ((!account && purple_account_is_connected(purple_chat_get_account(chat)))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1416 || purple_chat_get_account(chat) == account)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1417 return TRUE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1418 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1419 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1420 return FALSE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1421 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1422
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1423 /*
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1424 * TODO: If merging, prompt the user if they want to merge.
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1425 */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1426 void purple_group_set_name(PurpleGroup *source, const char *name)
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1427 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1428 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1429 PurpleGroup *dest;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1430 gchar *old_name;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1431 gchar *new_name;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1432 GList *moved_buddies = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1433 GSList *accts;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1434 PurpleGroupPrivate *priv = PURPLE_GROUP_GET_PRIVATE(source);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1435
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1436 g_return_if_fail(priv != NULL);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1437 g_return_if_fail(name != NULL);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1438
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1439 new_name = purple_utf8_strip_unprintables(name);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1440
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1441 if (*new_name == '\0' || purple_strequal(new_name, priv->name)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1442 g_free(new_name);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1443 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1444 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1445
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34727
diff changeset
1446 dest = purple_blist_find_group(new_name);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1447 if (dest != NULL && purple_utf8_strcasecmp(priv->name,
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1448 PURPLE_GROUP_GET_PRIVATE(dest)->name) != 0) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1449 /* We're merging two groups */
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1450 PurpleBlistNode *prev, *child, *next;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1451
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1452 prev = _purple_blist_get_last_child((PurpleBlistNode*)dest);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1453 child = PURPLE_BLIST_NODE(source)->child;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1454
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1455 /*
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1456 * TODO: This seems like a dumb way to do this... why not just
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1457 * append all children from the old group to the end of the new
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1458 * one? PRPLs might be expecting to receive an add_buddy() for
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1459 * each moved buddy...
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1460 */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1461 while (child)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1462 {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1463 next = child->next;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1464 if (PURPLE_IS_CONTACT(child)) {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1465 PurpleBlistNode *bnode;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1466 purple_blist_add_contact((PurpleContact *)child, dest, prev);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1467 for (bnode = child->child; bnode != NULL; bnode = bnode->next) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1468 purple_blist_add_buddy((PurpleBuddy *)bnode, (PurpleContact *)child,
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1469 NULL, bnode->prev);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1470 moved_buddies = g_list_append(moved_buddies, bnode);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1471 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1472 prev = child;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1473 } else if (PURPLE_IS_CHAT(child)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1474 purple_blist_add_chat((PurpleChat *)child, dest, prev);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1475 prev = child;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1476 } else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1477 purple_debug(PURPLE_DEBUG_ERROR, "blist",
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1478 "Unknown child type in group %s\n", priv->name);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1479 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1480 child = next;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1481 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1482
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1483 /* Make a copy of the old group name and then delete the old group */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1484 old_name = g_strdup(priv->name);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1485 purple_blist_remove_group(source);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1486 source = dest;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1487 g_free(new_name);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1488 } else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1489 /* A simple rename */
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1490 PurpleBlistNode *cnode, *bnode;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1491
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1492 /* Build a GList of all buddies in this group */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1493 for (cnode = PURPLE_BLIST_NODE(source)->child; cnode != NULL; cnode = cnode->next) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1494 if (PURPLE_IS_CONTACT(cnode))
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1495 for (bnode = cnode->child; bnode != NULL; bnode = bnode->next)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1496 moved_buddies = g_list_append(moved_buddies, bnode);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1497 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1498
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
1499 purple_blist_update_groups_cache(source, new_name);
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
1500
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1501 old_name = priv->name;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1502 priv->name = new_name;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1503 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1504
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1505 /* Save our changes */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1506 if (ops && ops->save_node)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1507 ops->save_node(PURPLE_BLIST_NODE(source));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1508
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1509 /* Update the UI */
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1510 if (ops && ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1511 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(source));
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1512
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1513 /* Notify all PRPLs */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1514 /* TODO: Is this condition needed? Seems like it would always be TRUE */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1515 if(old_name && !purple_strequal(priv->name, old_name)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1516 for (accts = purple_group_get_accounts(source); accts; accts = g_slist_remove(accts, accts->data)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1517 PurpleAccount *account = accts->data;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1518 PurpleConnection *gc = NULL;
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36365
diff changeset
1519 PurpleProtocol *protocol = NULL;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1520 GList *l = NULL, *buddies = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1521
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1522 gc = purple_account_get_connection(account);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1523
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1524 if(gc)
36623
caaadef03507 Renamed purple_connection_get_protocol_info() to purple_connection_get_protocol()
Ankit Vani <a@nevitus.org>
parents: 36620
diff changeset
1525 protocol = purple_connection_get_protocol(gc);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1526
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36365
diff changeset
1527 if(!protocol)
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1528 continue;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1529
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1530 for(l = moved_buddies; l; l = l->next) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1531 PurpleBuddy *buddy = PURPLE_BUDDY(l->data);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1532
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1533 if(buddy && purple_buddy_get_account(buddy) == account)
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1534 buddies = g_list_append(buddies, (PurpleBlistNode *)buddy);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1535 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1536
36620
c76013b145f4 Added PURPLE_PROTOCOL_IMPLEMENTS(protocol,func) to check if a protocol implements a function
Ankit Vani <a@nevitus.org>
parents: 36610
diff changeset
1537 if(PURPLE_PROTOCOL_IMPLEMENTS(protocol, rename_group)) {
36606
9fe2d65fe1a7 Use the purple_protocol_iface_* API instead of protocol->function()
Ankit Vani <a@nevitus.org>
parents: 36555
diff changeset
1538 purple_protocol_iface_rename_group(protocol, gc, old_name, source, buddies);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1539 } else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1540 GList *cur, *groups = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1541
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1542 /* Make a list of what the groups each buddy is in */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1543 for(cur = buddies; cur; cur = cur->next) {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1544 PurpleBlistNode *node = (PurpleBlistNode *)cur->data;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1545 groups = g_list_prepend(groups, node->parent->parent);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1546 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1547
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1548 purple_account_remove_buddies(account, buddies, groups);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1549 g_list_free(groups);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1550 purple_account_add_buddies(account, buddies, NULL);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1551 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1552
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1553 g_list_free(buddies);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1554 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1555 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1556 g_list_free(moved_buddies);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1557 g_free(old_name);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1558 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1559
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1560 const char *purple_group_get_name(PurpleGroup *group)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1561 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1562 PurpleGroupPrivate *priv = PURPLE_GROUP_GET_PRIVATE(group);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1563
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1564 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1565
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1566 return priv->name;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1567 }
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1568
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1569 /**************************************************************************
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1570 * GObject code for PurpleGroup
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1571 **************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1572
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1573 /* GObject Property names */
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1574 #define GROUP_PROP_NAME_S "name"
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1575
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1576 /* Set method for GObject properties */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1577 static void
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1578 purple_group_set_property(GObject *obj, guint param_id, const GValue *value,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1579 GParamSpec *pspec)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1580 {
34742
ad53075d1f42 Set construction strings directly
Ankit Vani <a@nevitus.org>
parents: 34737
diff changeset
1581 PurpleGroupPrivate *priv = PURPLE_GROUP_GET_PRIVATE(obj);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1582
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1583 switch (param_id) {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1584 case GROUP_PROP_NAME:
34742
ad53075d1f42 Set construction strings directly
Ankit Vani <a@nevitus.org>
parents: 34737
diff changeset
1585 priv->name = purple_utf8_strip_unprintables(g_value_get_string(value));
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1586 break;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1587 default:
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1588 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1589 break;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1590 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1591 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1592
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1593 /* Get method for GObject properties */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1594 static void
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1595 purple_group_get_property(GObject *obj, guint param_id, GValue *value,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1596 GParamSpec *pspec)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1597 {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1598 PurpleGroup *group = PURPLE_GROUP(obj);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1599
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1600 switch (param_id) {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1601 case GROUP_PROP_NAME:
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1602 g_value_set_string(value, purple_group_get_name(group));
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1603 break;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1604 default:
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1605 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1606 break;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1607 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1608 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1609
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1610 /* GObject initialization function */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1611 static void
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1612 purple_group_init(GTypeInstance *instance, gpointer klass)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1613 {
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1614 PURPLE_DBUS_REGISTER_POINTER(PURPLE_GROUP(instance), PurpleGroup);
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1615 }
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1616
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1617 /* Called when done constructing */
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1618 static void
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1619 purple_group_constructed(GObject *object)
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1620 {
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1621 PurpleGroup *group = PURPLE_GROUP(object);
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1622 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1623
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1624 G_OBJECT_CLASS(counting_parent_class)->constructed(object);
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1625
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1626 if (ops && ops->new_node)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1627 ops->new_node(PURPLE_BLIST_NODE(group));
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1628 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1629
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1630 /* GObject dispose function */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1631 static void
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1632 purple_group_dispose(GObject *object)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1633 {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1634 PURPLE_DBUS_UNREGISTER_POINTER(object);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1635
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1636 G_OBJECT_CLASS(counting_parent_class)->dispose(object);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1637 }
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1638
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1639 /* GObject finalize function */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1640 static void
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1641 purple_group_finalize(GObject *object)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1642 {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1643 g_free(PURPLE_GROUP_GET_PRIVATE(object)->name);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1644
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1645 G_OBJECT_CLASS(counting_parent_class)->finalize(object);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1646 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1647
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1648 /* Class initializer function */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1649 static void purple_group_class_init(PurpleGroupClass *klass)
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1650 {
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1651 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1652
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1653 counting_parent_class = g_type_class_peek_parent(klass);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1654
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1655 obj_class->dispose = purple_group_dispose;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1656 obj_class->finalize = purple_group_finalize;
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1657 obj_class->constructed = purple_group_constructed;
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1658
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1659 /* Setup properties */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1660 obj_class->get_property = purple_group_get_property;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1661 obj_class->set_property = purple_group_set_property;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1662
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1663 g_object_class_install_property(obj_class, GROUP_PROP_NAME,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1664 g_param_spec_string(GROUP_PROP_NAME_S, _("Name"),
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1665 _("Name of the group."), NULL,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1666 G_PARAM_READWRITE | G_PARAM_CONSTRUCT)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1667 );
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1668
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1669 g_type_class_add_private(klass, sizeof(PurpleGroupPrivate));
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1670 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1671
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1672 GType
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1673 purple_group_get_type(void)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1674 {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1675 static GType type = 0;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1676
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1677 if(type == 0) {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1678 static const GTypeInfo info = {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1679 sizeof(PurpleGroupClass),
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1680 NULL,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1681 NULL,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1682 (GClassInitFunc)purple_group_class_init,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1683 NULL,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1684 NULL,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1685 sizeof(PurpleGroup),
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1686 0,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1687 (GInstanceInitFunc)purple_group_init,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1688 NULL,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1689 };
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1690
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1691 type = g_type_register_static(PURPLE_TYPE_COUNTING_NODE,
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1692 "PurpleGroup",
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1693 &info, 0);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1694 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1695
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1696 return type;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1697 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1698
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1699 PurpleGroup *
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1700 purple_group_new(const char *name)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1701 {
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1702 PurpleGroup *group;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1703
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1704 g_return_val_if_fail(name != NULL, NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1705 g_return_val_if_fail(*name != '\0', NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1706
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34727
diff changeset
1707 group = purple_blist_find_group(name);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1708 if (group != NULL)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1709 return group;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1710
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1711 return g_object_new(PURPLE_TYPE_GROUP, GROUP_PROP_NAME_S, name, NULL);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1712 }

mercurial