libpurple/purplecontactinfo.c

Thu, 07 Aug 2025 21:40:13 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 07 Aug 2025 21:40:13 -0500
changeset 43302
e7b0bbfec5d5
parent 43301
0e43dc8462e8
permissions
-rw-r--r--

Add an avatar-for-display property to Purple.ContactInfo

Testing Done:
Ran the tests under valgrind and called in the turtles.

Reviewed at https://reviews.imfreedom.org/r/4086/

41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
7 * source distribution.
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
9 * This library is free software; you can redistribute it and/or modify it
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
10 * under the terms of the GNU General Public License as published by the Free
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
11 * Software Foundation; either version 2 of the License, or (at your option)
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
12 * any later version.
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
14 * This library is distributed in the hope that it will be useful, but WITHOUT
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
16 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
17 * more details.
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
18 *
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
19 * You should have received a copy of the GNU General Public License along with
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
20 * this library; if not, see <https://www.gnu.org/licenses/>.
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
23 #include "purplecontactinfo.h"
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
25 #include "purpleenums.h"
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
26 #include "util.h"
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
27
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
28 typedef struct {
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
29 char *id;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
31 char *username;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
32 char *display_name;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
33 char *alias;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
34 char *color;
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
35 char *email;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
36 char *phone_number;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
37 GTimeZone *time_zone;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
38 char *note;
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
39 char *sid;
42596
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
40 gboolean favorite;
43232
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
41 gboolean external;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
42
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
43 char *name_for_display;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44
43301
0e43dc8462e8 Replace Purple.Avatar with Purple.Image
Gary Kramlich <grim@reaperworld.com>
parents: 43232
diff changeset
45 PurpleImage *avatar;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47 PurplePresence *presence;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49 PurpleTags *tags;
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
50
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
51 PurplePerson *person;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
52
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
53 PurpleContactInfoPermission permission;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
54 } PurpleContactInfoPrivate;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56 enum {
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 PROP_0,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 PROP_ID,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 PROP_USERNAME,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60 PROP_DISPLAY_NAME,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 PROP_ALIAS,
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
62 PROP_COLOR,
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
63 PROP_EMAIL,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
64 PROP_PHONE_NUMBER,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
65 PROP_TIME_ZONE,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
66 PROP_NOTE,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 PROP_AVATAR,
43302
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
68 PROP_AVATAR_FOR_DISPLAY,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 PROP_PRESENCE,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 PROP_TAGS,
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
71 PROP_PERSON,
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
72 PROP_PERMISSION,
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
73 PROP_SID,
42596
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
74 PROP_FAVORITE,
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
75 PROP_NAME_FOR_DISPLAY,
43232
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
76 PROP_EXTERNAL,
42584
687260353985 Make signal and property enums and initializers consistent
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42583
diff changeset
77 N_PROPERTIES,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 };
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
81 enum {
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
82 SIG_PRESENCE_CHANGED,
42581
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
83 SIG_POPULATE_MENU,
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
84 N_SIGNALS,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
85 };
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
86 static guint signals[N_SIGNALS] = {0, };
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
87
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
88 G_DEFINE_TYPE_WITH_PRIVATE(PurpleContactInfo, purple_contact_info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
89 G_TYPE_OBJECT)
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
90
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91 /******************************************************************************
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
92 * Helpers
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
93 *****************************************************************************/
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
94 static void
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
95 purple_contact_info_update_name_for_display(PurpleContactInfo *info) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
96 PurpleContactInfoPrivate *priv = NULL;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
97 const char *name_for_display = NULL;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
98
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
99 priv = purple_contact_info_get_instance_private(info);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
100
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
101 /* If the info has an alias set, use it. */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
102 if(name_for_display == NULL && !purple_strempty(priv->alias)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
103 name_for_display = priv->alias;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
104 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
105
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
106 /* If info is associated with a PurplePerson that has an alias set, use the
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
107 * alias of that PurplePerson.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
108 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
109 if(name_for_display == NULL && priv->person != NULL) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
110 const char *alias = purple_person_get_alias(priv->person);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
111
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
112 if(!purple_strempty(alias)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
113 name_for_display = alias;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
114 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
115 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
116
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
117 /* If the info has a display name set, use it. */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
118 if(name_for_display == NULL && !purple_strempty(priv->display_name)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
119 name_for_display = priv->display_name;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
120 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
121
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
122 /* Fallback to the username if that is set. */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
123 if(name_for_display == NULL && !purple_strempty(priv->username)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
124 name_for_display = priv->username;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
125 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
126
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
127 /* Finally, in a last ditch effort, use the id of the info. */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
128 if(name_for_display == NULL) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
129 name_for_display = priv->id;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
130 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
131
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42624
diff changeset
132 if(g_set_str(&priv->name_for_display, name_for_display)) {
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
133 g_object_notify_by_pspec(G_OBJECT(info),
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
134 properties[PROP_NAME_FOR_DISPLAY]);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
135 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
136 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
137
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
138 /******************************************************************************
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
139 * Callbacks
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
140 *****************************************************************************/
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
141 static void
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
142 purple_contact_info_person_alias_changed_cb(G_GNUC_UNUSED GObject *obj,
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
143 G_GNUC_UNUSED GParamSpec *pspec,
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
144 gpointer data)
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
145 {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
146 purple_contact_info_update_name_for_display(data);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
147 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
148
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
149 /*
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
150 * This is a notify callback on the presence for a contact info, it is used
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
151 * to emit the presence-changed signal.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
152 */
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
153 static void
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
154 purple_contact_info_presence_notify_cb(GObject *source, GParamSpec *pspec,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
155 gpointer data)
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
156 {
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
157 g_signal_emit(data, signals[SIG_PRESENCE_CHANGED],
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
158 g_param_spec_get_name_quark(pspec),
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
159 source, pspec);
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
160 }
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
161
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
162 /******************************************************************************
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
163 * GObject Implementation
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
164 *****************************************************************************/
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
165 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
166 purple_contact_info_get_property(GObject *obj, guint param_id, GValue *value,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
167 GParamSpec *pspec)
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
168 {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
169 PurpleContactInfo *info = PURPLE_CONTACT_INFO(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
170
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
171 switch(param_id) {
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
172 case PROP_ID:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
173 g_value_set_string(value, purple_contact_info_get_id(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
174 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
175 case PROP_USERNAME:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
176 g_value_set_string(value, purple_contact_info_get_username(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
177 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
178 case PROP_DISPLAY_NAME:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
179 g_value_set_string(value,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
180 purple_contact_info_get_display_name(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
181 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
182 case PROP_ALIAS:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
183 g_value_set_string(value, purple_contact_info_get_alias(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
184 break;
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
185 case PROP_COLOR:
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
186 g_value_set_string(value, purple_contact_info_get_color(info));
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
187 break;
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
188 case PROP_EMAIL:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
189 g_value_set_string(value, purple_contact_info_get_email(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
190 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
191 case PROP_PHONE_NUMBER:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
192 g_value_set_string(value,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
193 purple_contact_info_get_phone_number(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
194 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
195 case PROP_TIME_ZONE:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
196 g_value_set_boxed(value, purple_contact_info_get_time_zone(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
197 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
198 case PROP_NOTE:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
199 g_value_set_string(value, purple_contact_info_get_note(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
200 break;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
201 case PROP_AVATAR:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
202 g_value_set_object(value, purple_contact_info_get_avatar(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
203 break;
43302
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
204 case PROP_AVATAR_FOR_DISPLAY:
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
205 g_value_set_object(value, purple_contact_info_get_avatar_for_display(info));
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
206 break;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
207 case PROP_PRESENCE:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
208 g_value_set_object(value, purple_contact_info_get_presence(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
209 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
210 case PROP_TAGS:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
211 g_value_set_object(value, purple_contact_info_get_tags(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
212 break;
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
213 case PROP_PERSON:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
214 g_value_set_object(value, purple_contact_info_get_person(info));
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
215 break;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
216 case PROP_PERMISSION:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
217 g_value_set_enum(value, purple_contact_info_get_permission(info));
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
218 break;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
219 case PROP_NAME_FOR_DISPLAY:
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
220 g_value_set_string(value,
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
221 purple_contact_info_get_name_for_display(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
222 break;
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
223 case PROP_SID:
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
224 g_value_set_string(value, purple_contact_info_get_sid(info));
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
225 break;
42596
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
226 case PROP_FAVORITE:
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
227 g_value_set_boolean(value, purple_contact_info_get_favorite(info));
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
228 break;
43232
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
229 case PROP_EXTERNAL:
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
230 g_value_set_boolean(value, purple_contact_info_get_external(info));
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
231 break;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
232 default:
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
233 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
234 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
235 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
236 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
237
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
238 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
239 purple_contact_info_set_property(GObject *obj, guint param_id,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
240 const GValue *value, GParamSpec *pspec)
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
241 {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
242 PurpleContactInfo *info = PURPLE_CONTACT_INFO(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
243
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
244 switch(param_id) {
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
245 case PROP_ID:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
246 purple_contact_info_set_id(info, g_value_get_string(value));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
247 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
248 case PROP_USERNAME:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
249 purple_contact_info_set_username(info, g_value_get_string(value));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
250 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
251 case PROP_DISPLAY_NAME:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
252 purple_contact_info_set_display_name(info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
253 g_value_get_string(value));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
254 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
255 case PROP_ALIAS:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
256 purple_contact_info_set_alias(info, g_value_get_string(value));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
257 break;
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
258 case PROP_COLOR:
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
259 purple_contact_info_set_color(info, g_value_get_string(value));
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
260 break;
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
261 case PROP_EMAIL:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
262 purple_contact_info_set_email(info, g_value_get_string(value));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
263 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
264 case PROP_PHONE_NUMBER:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
265 purple_contact_info_set_phone_number(info,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
266 g_value_get_string(value));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
267 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
268 case PROP_TIME_ZONE:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
269 purple_contact_info_set_time_zone(info, g_value_get_boxed(value));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
270 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
271 case PROP_NOTE:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
272 purple_contact_info_set_note(info, g_value_get_string(value));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
273 break;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
274 case PROP_AVATAR:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
275 purple_contact_info_set_avatar(info, g_value_get_object(value));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
276 break;
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
277 case PROP_PERSON:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
278 purple_contact_info_set_person(info, g_value_get_object(value));
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
279 break;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
280 case PROP_PERMISSION:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
281 purple_contact_info_set_permission(info, g_value_get_enum(value));
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
282 break;
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
283 case PROP_SID:
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
284 purple_contact_info_set_sid(info, g_value_get_string(value));
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
285 break;
42596
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
286 case PROP_FAVORITE:
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
287 purple_contact_info_set_favorite(info, g_value_get_boolean(value));
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
288 break;
43232
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
289 case PROP_EXTERNAL:
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
290 purple_contact_info_set_external(info, g_value_get_boolean(value));
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
291 break;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
292 default:
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
293 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
294 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
295 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
296 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
297
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
298 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
299 purple_contact_info_dispose(GObject *obj) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
300 PurpleContactInfo *info = PURPLE_CONTACT_INFO(obj);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
301 PurpleContactInfoPrivate *priv = NULL;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
302
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
303 priv = purple_contact_info_get_instance_private(info);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
304
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
305 g_clear_object(&priv->avatar);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
306 g_clear_object(&priv->presence);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
307 g_clear_object(&priv->tags);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
308 g_clear_object(&priv->person);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
309
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
310 G_OBJECT_CLASS(purple_contact_info_parent_class)->dispose(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
311 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
312
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
313 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
314 purple_contact_info_finalize(GObject *obj) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
315 PurpleContactInfo *info = PURPLE_CONTACT_INFO(obj);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
316 PurpleContactInfoPrivate *priv = NULL;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
317
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
318 priv = purple_contact_info_get_instance_private(info);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
319
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
320 g_clear_pointer(&priv->id, g_free);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
321 g_clear_pointer(&priv->username, g_free);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
322 g_clear_pointer(&priv->display_name, g_free);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
323 g_clear_pointer(&priv->alias, g_free);
42063
34db408e4e3c fix memory leak in purple_contact_info
Markus Fischer <ivanhoe@fiscari.de>
parents: 42060
diff changeset
324 g_clear_pointer(&priv->color, g_free);
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
325 g_clear_pointer(&priv->email, g_free);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
326 g_clear_pointer(&priv->phone_number, g_free);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
327 g_clear_pointer(&priv->time_zone, g_time_zone_unref);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
328 g_clear_pointer(&priv->note, g_free);
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
329 g_clear_pointer(&priv->sid, g_free);
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
330 g_clear_pointer(&priv->name_for_display, g_free);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
331
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
332 G_OBJECT_CLASS(purple_contact_info_parent_class)->finalize(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
333 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
334
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
335 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
336 purple_contact_info_constructed(GObject *obj) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
337 PurpleContactInfo *info = NULL;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
338 PurpleContactInfoPrivate *priv = NULL;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
339
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
340 G_OBJECT_CLASS(purple_contact_info_parent_class)->constructed(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
341
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
342 info = PURPLE_CONTACT_INFO(obj);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
343 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
344
42624
931b9adb4ab5 Add the CONSTRUCT flag to PurpleContactInfo:id as we need it set in the constructor
Gary Kramlich <grim@reaperworld.com>
parents: 42596
diff changeset
345 if(purple_strempty(priv->id)) {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
346 purple_contact_info_set_id(info, NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
347 }
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
348
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
349 purple_contact_info_update_name_for_display(info);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
350 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
351
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
352 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
353 purple_contact_info_init(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
354 PurpleContactInfoPrivate *priv = NULL;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
355
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
356 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
357
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
358 priv->tags = purple_tags_new();
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
359
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
360 priv->presence = g_object_new(PURPLE_TYPE_PRESENCE, NULL);
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
361 g_signal_connect_object(priv->presence, "notify",
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
362 G_CALLBACK(purple_contact_info_presence_notify_cb),
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
363 info, 0);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
364 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
365
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
366 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
367 purple_contact_info_class_init(PurpleContactInfoClass *klass) {
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
368 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
369
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
370 obj_class->constructed = purple_contact_info_constructed;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
371 obj_class->dispose = purple_contact_info_dispose;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
372 obj_class->finalize = purple_contact_info_finalize;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
373 obj_class->get_property = purple_contact_info_get_property;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
374 obj_class->set_property = purple_contact_info_set_property;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
375
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
376 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
377 * PurpleContactInfo:id:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
378 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
379 * The protocol specific id for the contact.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
380 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
381 * Since: 3.0
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
382 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
383 properties[PROP_ID] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
384 "id", NULL, NULL,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
385 NULL,
42624
931b9adb4ab5 Add the CONSTRUCT flag to PurpleContactInfo:id as we need it set in the constructor
Gary Kramlich <grim@reaperworld.com>
parents: 42596
diff changeset
386 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
387
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
388 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
389 * PurpleContactInfo:username:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
390 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
391 * The username for this contact. In rare cases this can change, like when
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
392 * a user changes their "nick" on IRC which is their user name.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
393 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
394 * Since: 3.0
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
395 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
396 properties[PROP_USERNAME] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
397 "username", NULL, NULL,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
398 NULL,
41961
0da91f053305 Make PurpleAccount subclass PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
399 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
400
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
401 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
402 * PurpleContactInfo:display-name:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
403 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
404 * The display name for this contact. This is generally set by the person
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
405 * the contact is representing and controlled via the protocol plugin.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
406 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
407 * Since: 3.0
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
408 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
409 properties[PROP_DISPLAY_NAME] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
410 "display-name", NULL, NULL,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
411 NULL,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
412 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
413
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
414 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
415 * PurpleContactInfo:alias:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
416 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
417 * The alias for this contact. This is controlled by the libpurple user and
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
418 * may be used by the protocol if it allows for aliasing.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
419 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
420 * Since: 3.0
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
421 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
422 properties[PROP_ALIAS] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
423 "alias", NULL, NULL,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
424 NULL,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
425 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
426
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
427 /**
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
428 * PurpleContactInfo:color:
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
429 *
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
430 * The color for this contact. This is an RGB hex code that user interfaces
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
431 * can use when rendering the contact. This may also be controlled via a
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
432 * protocol plugin in the event that the protocol allows people to set a
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
433 * highlight/branding color.
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
434 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
435 * Since: 3.0
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
436 */
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
437 properties[PROP_COLOR] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
438 "color", NULL, NULL,
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
439 NULL,
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
440 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
441
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
442 /**
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
443 * PurpleContactInfo:email:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
444 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
445 * The primary email address for the contact. This may also be controlled
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
446 * via a protocol plugin in the event that the protocol makes it available.
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
447 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
448 * Since: 3.0
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
449 */
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
450 properties[PROP_EMAIL] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
451 "email", NULL, NULL,
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
452 NULL,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
453 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
454
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
455 /**
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
456 * PurpleContactInfo:phone-number:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
457 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
458 * The primary phone number for the contact. This may also be set via a
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
459 * protocol plugin in the event that the protocol knows it.
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
460 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
461 * Since: 3.0
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
462 */
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
463 properties[PROP_PHONE_NUMBER] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
464 "phone-number", NULL, NULL,
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
465 NULL,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
466 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
467
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
468 /**
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
469 * PurpleContactInfo:time-zone:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
470 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
471 * The time zone for this contact. This is typically controlled by the
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
472 * protocol and should only be read by others.
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
473 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
474 * Since: 3.0
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
475 */
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
476 properties[PROP_TIME_ZONE] = g_param_spec_boxed(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
477 "time-zone", NULL, NULL,
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
478 G_TYPE_TIME_ZONE,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
479 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
480
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
481 /**
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
482 * PurpleContactInfo:note:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
483 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
484 * A note for this contact. Many protocols will allow you to set a note on
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
485 * a contact and store it server side. This property is where that is kept
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
486 * track of.
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
487 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
488 * Since: 3.0
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
489 */
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
490 properties[PROP_NOTE] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
491 "note", NULL, NULL,
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
492 NULL,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
493 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
494
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
495 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
496 * PurpleContactInfo:avatar:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
497 *
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
498 * The avatar for this contact. This is typically controlled by the
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
499 * protocol and should only be read by others.
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
500 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
501 * Since: 3.0
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
502 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
503 properties[PROP_AVATAR] = g_param_spec_object(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
504 "avatar", NULL, NULL,
43301
0e43dc8462e8 Replace Purple.Avatar with Purple.Image
Gary Kramlich <grim@reaperworld.com>
parents: 43232
diff changeset
505 PURPLE_TYPE_IMAGE,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
506 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
507
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
508 /**
43302
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
509 * PurpleContactInfo:avatar-for-display:
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
510 *
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
511 * The avatar that should be displayed for this contact info.
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
512 *
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
513 * Since: 3.0
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
514 */
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
515 properties[PROP_AVATAR_FOR_DISPLAY] = g_param_spec_object(
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
516 "avatar-for-display", NULL, NULL,
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
517 PURPLE_TYPE_IMAGE,
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
518 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
519
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
520 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
521 * PurpleContactInfo:presence:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
522 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
523 * The [class@Purple.Presence] for this contact. This is typically
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
524 * controlled by the protocol and should only be read by others.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
525 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
526 * Since: 3.0
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
527 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
528 properties[PROP_PRESENCE] = g_param_spec_object(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
529 "presence", NULL, NULL,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
530 PURPLE_TYPE_PRESENCE,
41771
c5877e2c93f2 Create and add PurpleContacts to the manager when purple_buddy_new is called
Gary Kramlich <grim@reaperworld.com>
parents: 41759
diff changeset
531 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
532
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
533 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
534 * PurpleContactInfo:tags:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
535 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
536 * The [class@Purple.Tags] for this contact.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
537 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
538 * Since: 3.0
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
539 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
540 properties[PROP_TAGS] = g_param_spec_object(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
541 "tags", NULL, NULL,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
542 PURPLE_TYPE_TAGS,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
543 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
544
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
545 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
546 * PurpleContactInfo:person:
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
547 *
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
548 * The [class@Purple.Person] that this contact belongs to.
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
549 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
550 * Since: 3.0
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
551 */
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
552 properties[PROP_PERSON] = g_param_spec_object(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
553 "person", NULL, NULL,
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
554 PURPLE_TYPE_PERSON,
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
555 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
556
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
557 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
558 * PurpleContactInfo:permission:
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
559 *
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
560 * The permission level for the contact.
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
561 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
562 * Since: 3.0
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
563 */
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
564 properties[PROP_PERMISSION] = g_param_spec_enum(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
565 "permission", NULL, NULL,
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
566 PURPLE_TYPE_CONTACT_INFO_PERMISSION,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
567 PURPLE_CONTACT_INFO_PERMISSION_UNSET,
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
568 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
569
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
570 /**
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
571 * PurpleContactInfo:sid:
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
572 *
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
573 * The sid, or secondary id, is an additional identifier field for a
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
574 * contact.
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
575 *
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
576 * This could be used to hold the `ident` for an IRC contact, the
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
577 * `resource` for an XMPP contact, or something similar.
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
578 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
579 * Since: 3.0
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
580 */
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
581 properties[PROP_SID] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
582 "sid", NULL, NULL,
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
583 NULL,
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
584 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
585
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
586 /**
42596
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
587 * PurpleContactInfo:favorite:
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
588 *
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
589 * Whether or not the contact info has been marked as a favorite or stared.
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
590 *
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
591 * Since: 3.0
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
592 */
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
593 properties[PROP_FAVORITE] = g_param_spec_boolean(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
594 "favorite", NULL, NULL,
42596
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
595 FALSE,
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
596 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
597
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
598 /**
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
599 * PurpleContactInfo:name-for-display:
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
600 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
601 * The name that the user interface should display for this contact info.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
602 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
603 * This will first check [property@Purple.ContactInfo:alias] and return
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
604 * that if it is set.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
605 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
606 * Next, if the [property@Purple.ContactInfo:person] points to a valid
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
607 * [class@Purple.Person], the alias of [class@Purple.Person] will be
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
608 * returned if it is set.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
609 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
610 * Otherwise, this will be set to the first set property from the following
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
611 * list:
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
612 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
613 * * [property@Purple.ContactInfo:display-name]
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
614 * * [property@Purple.ContactInfo:username]
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
615 * * [property@Purple.ContactInfo:id]
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
616 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
617 * Since: 3.0
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
618 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
619 properties[PROP_NAME_FOR_DISPLAY] = g_param_spec_string(
43071
071588186662 Remove nick and blurb from libpurple properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42932
diff changeset
620 "name-for-display", NULL, NULL,
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
621 NULL,
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
622 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
623
43232
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
624 /**
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
625 * PurpleContactInfo:external:
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
626 *
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
627 * Whether or not the contact is an external contact.
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
628 *
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
629 * Some chat networks like Microsoft Teams and Slack have a concept of
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
630 * external contacts that are not members of the organization but can
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
631 * access some portion of the network. This flag represents that.
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
632 *
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
633 * Since: 3.0
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
634 */
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
635 properties[PROP_EXTERNAL] = g_param_spec_boolean(
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
636 "external", NULL, NULL,
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
637 FALSE,
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
638 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
639
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
640 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
641
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
642 /**
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
643 * PurpleContactInfo::presence-changed:
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
644 * @info: The instance.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
645 * @presence: The presence that was changed.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
646 * @pspec: The [class@GObject.ParamSpec] for the property that changed.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
647 *
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
648 * This is a propagation of the notify signal from @presence. This means
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
649 * that your callback will be called when anything in the presence changes.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
650 *
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
651 * This also supports details, so you can specify the signal name as
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
652 * something like `presence-changed::message` and your callback will only
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
653 * be called when the message property of @presence has been changed.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
654 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
655 * Since: 3.0
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
656 */
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
657 signals[SIG_PRESENCE_CHANGED] = g_signal_new_class_handler(
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
658 "presence-changed",
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
659 G_OBJECT_CLASS_TYPE(klass),
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
660 G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
661 NULL,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
662 NULL,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
663 NULL,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
664 NULL,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
665 G_TYPE_NONE,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
666 2,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
667 PURPLE_TYPE_PRESENCE,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
668 G_TYPE_PARAM);
42581
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
669
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
670 /**
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
671 * PurpleContactInfo::populate-menu:
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
672 * @info: The instance.
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
673 * @menu: The [class@Birb.ActionMenu] to be displayed.
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
674 *
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
675 * Emitted in response to [method@PurpleContactInfo.get_menu] being called,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
676 * so that plugins can add additional items to @menu.
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
677 *
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
678 * The user interface is responsible for displaying @menu which means it
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
679 * can add additional items, hide items, and lay them out however it
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
680 * pleases.
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
681 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
682 * Since: 3.0
42581
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
683 */
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
684 signals[SIG_POPULATE_MENU] = g_signal_new_class_handler(
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
685 "populate-menu",
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
686 G_OBJECT_CLASS_TYPE(klass),
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
687 G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
688 NULL,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
689 NULL,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
690 NULL,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
691 NULL,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
692 G_TYPE_NONE,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
693 1,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
694 BIRB_TYPE_ACTION_MENU);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
695 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
696
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
697 /******************************************************************************
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
698 * Public API
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
699 *****************************************************************************/
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
700 PurpleContactInfo *
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
701 purple_contact_info_new(const gchar *id) {
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
702 return g_object_new(
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
703 PURPLE_TYPE_CONTACT_INFO,
41759
1ecc0512e714 Make purple_contact_new take the id instead of the username.
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
704 "id", id,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
705 NULL);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
706 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
707
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
708 const gchar *
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
709 purple_contact_info_get_id(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
710 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
711
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
712 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
713
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
714 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
715
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
716 return priv->id;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
717 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
718
41920
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
719 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
720 purple_contact_info_set_id(PurpleContactInfo *info, const gchar *id) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
721 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
722
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
723 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41920
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
724
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
725 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
726
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42624
diff changeset
727 if(g_set_str(&priv->id, id)) {
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
728 g_object_freeze_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
729
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
730 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_ID]);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
731
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
732 purple_contact_info_update_name_for_display(info);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
733
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
734 g_object_thaw_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
735 }
41920
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
736 }
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
737
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
738 const gchar *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
739 purple_contact_info_get_username(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
740 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
741
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
742 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
743
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
744 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
745
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
746 return priv->username;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
747 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
748
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
749 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
750 purple_contact_info_set_username(PurpleContactInfo *info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
751 const gchar *username)
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
752 {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
753 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
754
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
755 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
756
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
757 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
758
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42624
diff changeset
759 if(g_set_str(&priv->username, username)) {
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
760 g_object_freeze_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
761
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
762 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_USERNAME]);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
763
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
764 purple_contact_info_update_name_for_display(info);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
765
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
766 g_object_thaw_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
767 }
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
768 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
769
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
770 const gchar *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
771 purple_contact_info_get_display_name(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
772 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
773
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
774 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
775
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
776 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
777
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
778 return priv->display_name;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
779 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
780
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
781 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
782 purple_contact_info_set_display_name(PurpleContactInfo *info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
783 const gchar *display_name)
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
784 {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
785 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
786
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
787 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
788
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
789 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
790
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42624
diff changeset
791 if(g_set_str(&priv->display_name, display_name)) {
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
792 g_object_freeze_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
793
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
794 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_DISPLAY_NAME]);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
795
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
796 purple_contact_info_update_name_for_display(info);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
797
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
798 g_object_thaw_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
799 }
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
800 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
801
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
802 const gchar *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
803 purple_contact_info_get_alias(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
804 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
805
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
806 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
807
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
808 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
809
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
810 return priv->alias;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
811 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
812
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
813 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
814 purple_contact_info_set_alias(PurpleContactInfo *info, const gchar *alias) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
815 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
816
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
817 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
818
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
819 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
820
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42624
diff changeset
821 if(g_set_str(&priv->alias, alias)) {
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
822 g_object_freeze_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
823
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
824 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_ALIAS]);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
825
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
826 purple_contact_info_update_name_for_display(info);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
827
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
828 g_object_thaw_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
829 }
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
830 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
831
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
832 const char *
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
833 purple_contact_info_get_color(PurpleContactInfo *info) {
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
834 PurpleContactInfoPrivate *priv = NULL;
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
835
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
836 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
837
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
838 priv = purple_contact_info_get_instance_private(info);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
839
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
840 return priv->color;
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
841 }
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
842
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
843 void
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
844 purple_contact_info_set_color(PurpleContactInfo *info, const char *color) {
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
845 PurpleContactInfoPrivate *priv = NULL;
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
846
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
847 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
848
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
849 priv = purple_contact_info_get_instance_private(info);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
850
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42624
diff changeset
851 if(g_set_str(&priv->color, color)) {
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
852 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_COLOR]);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
853 }
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
854 }
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
855
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
856 const char *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
857 purple_contact_info_get_email(PurpleContactInfo *info) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
858 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
859
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
860 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
861
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
862 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
863
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
864 return priv->email;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
865 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
866
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
867 void
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
868 purple_contact_info_set_email(PurpleContactInfo *info, const char *email) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
869 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
870
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
871 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
872
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
873 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
874
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42624
diff changeset
875 if(g_set_str(&priv->email, email)) {
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
876 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_EMAIL]);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
877 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
878 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
879
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
880 const char *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
881 purple_contact_info_get_phone_number(PurpleContactInfo *info) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
882 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
883
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
884 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
885
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
886 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
887
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
888 return priv->phone_number;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
889 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
890
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
891 void
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
892 purple_contact_info_set_phone_number(PurpleContactInfo *info,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
893 const char *phone_number)
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
894 {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
895 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
896
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
897 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
898
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
899 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
900
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42624
diff changeset
901 if(g_set_str(&priv->phone_number, phone_number)) {
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
902 g_object_notify_by_pspec(G_OBJECT(info),
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
903 properties[PROP_PHONE_NUMBER]);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
904 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
905 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
906
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
907 GTimeZone *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
908 purple_contact_info_get_time_zone(PurpleContactInfo *info) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
909 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
910
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
911 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
912
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
913 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
914
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
915 return priv->time_zone;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
916 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
917
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
918 void
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
919 purple_contact_info_set_time_zone(PurpleContactInfo *info,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
920 GTimeZone *time_zone)
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
921 {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
922 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
923 GTimeZone *old = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
924
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
925 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
926
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
927 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
928 old = priv->time_zone;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
929
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
930 priv->time_zone = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
931 if(time_zone != NULL) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
932 priv->time_zone = g_time_zone_ref(time_zone);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
933 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
934
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
935 if(old != NULL) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
936 g_time_zone_unref(old);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
937 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
938
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
939 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_TIME_ZONE]);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
940 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
941
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
942 const char *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
943 purple_contact_info_get_note(PurpleContactInfo *info) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
944 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
945
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
946 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
947
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
948 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
949
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
950 return priv->note;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
951 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
952
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
953 void
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
954 purple_contact_info_set_note(PurpleContactInfo *info, const char *note) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
955 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
956
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
957 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
958
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
959 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
960
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42624
diff changeset
961 if(g_set_str(&priv->note, note)) {
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
962 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_NOTE]);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
963 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
964 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
965
43301
0e43dc8462e8 Replace Purple.Avatar with Purple.Image
Gary Kramlich <grim@reaperworld.com>
parents: 43232
diff changeset
966 PurpleImage *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
967 purple_contact_info_get_avatar(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
968 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
969
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
970 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
971
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
972 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
973
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
974 return priv->avatar;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
975 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
976
43302
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
977 PurpleImage *
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
978 purple_contact_info_get_avatar_for_display(PurpleContactInfo *info) {
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
979 PurpleContactInfoPrivate *priv = NULL;
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
980 PurpleImage *candidate = NULL;
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
981
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
982 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
983
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
984 priv = purple_contact_info_get_instance_private(info);
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
985
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
986 if(PURPLE_IS_PERSON(priv->person)) {
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
987 candidate = purple_person_get_avatar_for_display(priv->person);
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
988 }
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
989
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
990 if(!PURPLE_IS_IMAGE(candidate)) {
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
991 candidate = priv->avatar;
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
992 }
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
993
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
994 return candidate;
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
995 }
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
996
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
997 void
43301
0e43dc8462e8 Replace Purple.Avatar with Purple.Image
Gary Kramlich <grim@reaperworld.com>
parents: 43232
diff changeset
998 purple_contact_info_set_avatar(PurpleContactInfo *info, PurpleImage *avatar) {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
999 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1000
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1001 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1002
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1003 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1004
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1005 if(g_set_object(&priv->avatar, avatar)) {
43302
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
1006 GObject *obj = G_OBJECT(info);
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
1007
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
1008 g_object_freeze_notify(obj);
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
1009 g_object_notify_by_pspec(obj, properties[PROP_AVATAR]);
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
1010 g_object_notify_by_pspec(obj, properties[PROP_AVATAR_FOR_DISPLAY]);
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
1011 g_object_thaw_notify(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1012 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1013 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1014
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1015 PurplePresence *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1016 purple_contact_info_get_presence(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1017 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1018
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1019 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1020
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1021 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1022
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1023 return priv->presence;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1024 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1025
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1026 PurpleTags *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1027 purple_contact_info_get_tags(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1028 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1029
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1030 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1031
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1032 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1033
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1034 return priv->tags;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1035 }
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1036
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1037 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1038 purple_contact_info_set_person(PurpleContactInfo *info, PurplePerson *person) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1039 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1040
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1041 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1042
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1043 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1044
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1045 if(g_set_object(&priv->person, person)) {
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1046 /* If we got a new person, we need to connect to the notify::alias
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1047 * signal.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1048 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1049 if(PURPLE_IS_PERSON(priv->person)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1050 g_signal_connect_object(priv->person, "notify::alias",
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1051 G_CALLBACK(purple_contact_info_person_alias_changed_cb),
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1052 info, 0);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1053 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1054
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1055 /* Freeze notifications as the person update could change the
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1056 * name-for-display property.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1057 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1058 g_object_freeze_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1059
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1060 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_PERSON]);
43302
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
1061 g_object_notify_by_pspec(G_OBJECT(info),
e7b0bbfec5d5 Add an avatar-for-display property to Purple.ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 43301
diff changeset
1062 properties[PROP_AVATAR_FOR_DISPLAY]);
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1063
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1064 /* Update the name-for-display property */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1065 purple_contact_info_update_name_for_display(info);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1066
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1067 g_object_thaw_notify(G_OBJECT(info));
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1068 }
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1069 }
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1070
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1071 PurplePerson *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1072 purple_contact_info_get_person(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1073 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1074
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1075 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1076
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1077 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1078
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1079 return priv->person;
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1080 }
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1081
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1082 PurpleContactInfoPermission
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1083 purple_contact_info_get_permission(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1084 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1085
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1086 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info),
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1087 PURPLE_CONTACT_INFO_PERMISSION_UNSET);
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1088
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1089 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1090
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1091 return priv->permission;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1092 }
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1093
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1094 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1095 purple_contact_info_set_permission(PurpleContactInfo *info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1096 PurpleContactInfoPermission permission)
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1097 {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1098 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1099
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1100 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1101
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1102 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1103
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1104 priv->permission = permission;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1105
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1106 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_PERMISSION]);
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1107 }
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1108
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1109 const char *
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1110 purple_contact_info_get_sid(PurpleContactInfo *info) {
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1111 PurpleContactInfoPrivate *priv = NULL;
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1112
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1113 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1114
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1115 priv = purple_contact_info_get_instance_private(info);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1116
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1117 return priv->sid;
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1118 }
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1119
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1120 void
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1121 purple_contact_info_set_sid(PurpleContactInfo *info, const char *sid) {
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1122 PurpleContactInfoPrivate *priv = NULL;
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1123
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1124 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1125
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1126 priv = purple_contact_info_get_instance_private(info);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1127
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42624
diff changeset
1128 if(g_set_str(&priv->sid, sid)) {
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1129 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_SID]);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1130 }
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1131 }
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1132
42596
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1133 gboolean
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1134 purple_contact_info_get_favorite(PurpleContactInfo *info) {
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1135 PurpleContactInfoPrivate *priv = NULL;
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1136
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1137 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), FALSE);
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1138
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1139 priv = purple_contact_info_get_instance_private(info);
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1140
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1141 return priv->favorite;
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1142 }
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1143
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1144 void
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1145 purple_contact_info_set_favorite(PurpleContactInfo *info, gboolean favorite) {
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1146 PurpleContactInfoPrivate *priv = NULL;
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1147
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1148 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1149
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1150 priv = purple_contact_info_get_instance_private(info);
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1151
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1152 if(priv->favorite != favorite) {
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1153 priv->favorite = favorite;
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1154
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1155 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_FAVORITE]);
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1156 }
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1157 }
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1158
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1159 const char *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1160 purple_contact_info_get_name_for_display(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1161 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1162
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1163 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1164
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1165 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1166
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1167 return priv->name_for_display;
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1168 }
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1169
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1170 int
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1171 purple_contact_info_compare(PurpleContactInfo *a, PurpleContactInfo *b) {
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1172 PurplePerson *person_a = NULL;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1173 PurplePerson *person_b = NULL;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1174 const char *name_a = NULL;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1175 const char *name_b = NULL;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1176
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1177 /* Check for NULL values. */
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1178 if(a != NULL && b == NULL) {
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1179 return -1;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1180 } else if(a == NULL && b != NULL) {
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1181 return 1;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1182 } else if(a == NULL && b == NULL) {
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1183 return 0;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1184 }
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1185
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1186 /* Check if the contacts have persons associated with them. */
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1187 person_a = purple_contact_info_get_person(a);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1188 person_b = purple_contact_info_get_person(b);
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1189
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1190 if(person_a != NULL && person_b == NULL) {
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1191 return -1;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1192 } else if(person_a == NULL && person_b != NULL) {
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1193 return 1;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1194 }
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1195
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1196 /* Finally get the names for the displaying and compare those. */
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1197 name_a = purple_contact_info_get_name_for_display(a);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1198 name_b = purple_contact_info_get_name_for_display(b);
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1199
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1200 return purple_utf8_strcasecmp(name_a, name_b);
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1201 }
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1202
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1203 gboolean
42932
766a92094ed2 Add Purple.ContactInfo.equal method
Markus Fischer <ivanhoe@fiscari.de>
parents: 42767
diff changeset
1204 purple_contact_info_equal(PurpleContactInfo *a, PurpleContactInfo *b) {
766a92094ed2 Add Purple.ContactInfo.equal method
Markus Fischer <ivanhoe@fiscari.de>
parents: 42767
diff changeset
1205 return purple_contact_info_compare(a, b) == 0;
766a92094ed2 Add Purple.ContactInfo.equal method
Markus Fischer <ivanhoe@fiscari.de>
parents: 42767
diff changeset
1206 }
766a92094ed2 Add Purple.ContactInfo.equal method
Markus Fischer <ivanhoe@fiscari.de>
parents: 42767
diff changeset
1207
766a92094ed2 Add Purple.ContactInfo.equal method
Markus Fischer <ivanhoe@fiscari.de>
parents: 42767
diff changeset
1208 gboolean
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1209 purple_contact_info_matches(PurpleContactInfo *info, const char *needle) {
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1210 PurpleContactInfoPrivate *priv = NULL;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1211
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1212 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), FALSE);
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1213
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1214 if(purple_strempty(needle)) {
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1215 return TRUE;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1216 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1217
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1218 priv = purple_contact_info_get_instance_private(info);
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1219
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1220 if(!purple_strempty(priv->username)) {
42060
d55b605fdafb Add purple_strmatches and move purple_person_matches and purple_contact_info_matches to it
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
1221 if(purple_strmatches(needle, priv->username)) {
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1222 return TRUE;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1223 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1224 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1225
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1226 if(!purple_strempty(priv->alias)) {
42060
d55b605fdafb Add purple_strmatches and move purple_person_matches and purple_contact_info_matches to it
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
1227 if(purple_strmatches(needle, priv->alias)) {
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1228 return TRUE;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1229 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1230 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1231
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1232 if(!purple_strempty(priv->display_name)) {
42060
d55b605fdafb Add purple_strmatches and move purple_person_matches and purple_contact_info_matches to it
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
1233 if(purple_strmatches(needle, priv->display_name)) {
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1234 return TRUE;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1235 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1236 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1237
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1238 /* Nothing matched, so return FALSE. */
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1239 return FALSE;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1240 }
42581
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1241
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1242 BirbActionMenu *
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1243 purple_contact_info_get_menu(PurpleContactInfo *info) {
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1244 BirbActionMenu *menu = NULL;
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1245
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1246 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1247
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1248 menu = birb_action_menu_new();
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1249
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1250 g_signal_emit(info, signals[SIG_POPULATE_MENU], 0, menu);
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1251
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1252 return menu;
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1253 }
43232
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1254
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1255 gboolean
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1256 purple_contact_info_get_external(PurpleContactInfo *info) {
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1257 PurpleContactInfoPrivate *priv = NULL;
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1258
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1259 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), FALSE);
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1260
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1261 priv = purple_contact_info_get_instance_private(info);
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1262
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1263 return priv->external;
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1264 }
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1265
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1266 void
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1267 purple_contact_info_set_external(PurpleContactInfo *info, gboolean external) {
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1268 PurpleContactInfoPrivate *priv = NULL;
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1269
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1270 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1271
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1272 priv = purple_contact_info_get_instance_private(info);
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1273 if(priv->external != external) {
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1274 priv->external = external;
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1275
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1276 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_EXTERNAL]);
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1277 }
bb2ea3a628c2 Add Purple.ContactInfo:external for tracking external contacts
Gary Kramlich <grim@reaperworld.com>
parents: 43071
diff changeset
1278 }

mercurial