libpurple/purplecontactinfo.c

Sun, 14 Apr 2024 01:14:59 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sun, 14 Apr 2024 01:14:59 -0500
changeset 42725
ceb13f1de2d2
parent 42624
931b9adb4ab5
child 42767
8cf1d11b59c1
permissions
-rw-r--r--

Remove PurpleBuddy

PurpleContactInfo was created long ago to replace this, it is now its time!

Testing Done:
Ran the turtles.

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

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;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
41
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
42 char *name_for_display;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43
42312
7d6f0b8b6e77 Use PurpleAvatar for PurplePerson and PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42257
diff changeset
44 PurpleAvatar *avatar;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46 PurplePresence *presence;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 PurpleTags *tags;
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
49
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
50 PurplePerson *person;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
51
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
52 PurpleContactInfoPermission permission;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
53 } PurpleContactInfoPrivate;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55 enum {
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56 PROP_0,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 PROP_ID,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 PROP_USERNAME,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 PROP_DISPLAY_NAME,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60 PROP_ALIAS,
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
61 PROP_COLOR,
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
62 PROP_EMAIL,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
63 PROP_PHONE_NUMBER,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
64 PROP_TIME_ZONE,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
65 PROP_NOTE,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 PROP_AVATAR,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 PROP_PRESENCE,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 PROP_TAGS,
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
69 PROP_PERSON,
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
70 PROP_PERMISSION,
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
71 PROP_SID,
42596
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
72 PROP_FAVORITE,
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
73 PROP_NAME_FOR_DISPLAY,
42584
687260353985 Make signal and property enums and initializers consistent
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42583
diff changeset
74 N_PROPERTIES,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 };
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
77
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
78 enum {
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
79 SIG_PRESENCE_CHANGED,
42581
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
80 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
81 N_SIGNALS,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
82 };
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
83 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
84
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
85 G_DEFINE_TYPE_WITH_PRIVATE(PurpleContactInfo, purple_contact_info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
86 G_TYPE_OBJECT)
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
87
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 /******************************************************************************
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
89 * Helpers
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
90 *****************************************************************************/
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
91 static void
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
92 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
93 PurpleContactInfoPrivate *priv = NULL;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
94 const char *name_for_display = NULL;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
95
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
96 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
97
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
98 /* 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
99 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
100 name_for_display = priv->alias;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
101 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
102
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
103 /* 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
104 * alias of that PurplePerson.
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(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
107 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
108
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
109 if(!purple_strempty(alias)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
110 name_for_display = alias;
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 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
113
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
114 /* 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
115 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
116 name_for_display = priv->display_name;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
117 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
118
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
119 /* 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
120 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
121 name_for_display = priv->username;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
122 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
123
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
124 /* 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
125 if(name_for_display == NULL) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
126 name_for_display = priv->id;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
127 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
128
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
129 if(!purple_strequal(name_for_display, priv->name_for_display)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
130 /* If we have a new name for display, free the old one, dup the new one
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
131 * into the struct, and then emit the notify signal.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
132 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
133 g_free(priv->name_for_display);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
134 priv->name_for_display = g_strdup(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 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
137 properties[PROP_NAME_FOR_DISPLAY]);
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 }
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 /******************************************************************************
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
142 * Callbacks
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
143 *****************************************************************************/
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
144 static void
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
145 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
146 G_GNUC_UNUSED GParamSpec *pspec,
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
147 gpointer data)
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
148 {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
149 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
150 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
151
42115
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 * 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
154 * 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
155 */
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
156 static void
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
157 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
158 gpointer data)
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
159 {
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
160 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
161 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
162 source, pspec);
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
163 }
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
164
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
165 /******************************************************************************
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
166 * GObject Implementation
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
167 *****************************************************************************/
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
168 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
169 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
170 GParamSpec *pspec)
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
171 {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
172 PurpleContactInfo *info = PURPLE_CONTACT_INFO(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
173
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
174 switch(param_id) {
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
175 case PROP_ID:
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_id(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_USERNAME:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
179 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
180 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
181 case PROP_DISPLAY_NAME:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
182 g_value_set_string(value,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
183 purple_contact_info_get_display_name(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
184 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
185 case PROP_ALIAS:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
186 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
187 break;
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
188 case PROP_COLOR:
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
189 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
190 break;
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
191 case PROP_EMAIL:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
192 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
193 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
194 case PROP_PHONE_NUMBER:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
195 g_value_set_string(value,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
196 purple_contact_info_get_phone_number(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_TIME_ZONE:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
199 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
200 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
201 case PROP_NOTE:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
202 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
203 break;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
204 case PROP_AVATAR:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
205 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
206 break;
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;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
229 default:
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
230 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
231 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
232 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
233 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
234
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
235 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
236 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
237 const GValue *value, GParamSpec *pspec)
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
238 {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
239 PurpleContactInfo *info = PURPLE_CONTACT_INFO(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
240
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
241 switch(param_id) {
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
242 case PROP_ID:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
243 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
244 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
245 case PROP_USERNAME:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
246 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
247 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
248 case PROP_DISPLAY_NAME:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
249 purple_contact_info_set_display_name(info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
250 g_value_get_string(value));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
251 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
252 case PROP_ALIAS:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
253 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
254 break;
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
255 case PROP_COLOR:
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
256 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
257 break;
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
258 case PROP_EMAIL:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
259 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
260 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
261 case PROP_PHONE_NUMBER:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
262 purple_contact_info_set_phone_number(info,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
263 g_value_get_string(value));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
264 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
265 case PROP_TIME_ZONE:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
266 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
267 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
268 case PROP_NOTE:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
269 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
270 break;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
271 case PROP_AVATAR:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
272 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
273 break;
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
274 case PROP_PERSON:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
275 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
276 break;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
277 case PROP_PERMISSION:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
278 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
279 break;
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
280 case PROP_SID:
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
281 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
282 break;
42596
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
283 case PROP_FAVORITE:
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
284 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
285 break;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
286 default:
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
287 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
288 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
289 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
290 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
291
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
292 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
293 purple_contact_info_dispose(GObject *obj) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
294 PurpleContactInfo *info = PURPLE_CONTACT_INFO(obj);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
295 PurpleContactInfoPrivate *priv = NULL;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
296
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
297 priv = purple_contact_info_get_instance_private(info);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
298
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
299 g_clear_object(&priv->avatar);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
300 g_clear_object(&priv->presence);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
301 g_clear_object(&priv->tags);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
302 g_clear_object(&priv->person);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
303
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
304 G_OBJECT_CLASS(purple_contact_info_parent_class)->dispose(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
305 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
306
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
307 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
308 purple_contact_info_finalize(GObject *obj) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
309 PurpleContactInfo *info = PURPLE_CONTACT_INFO(obj);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
310 PurpleContactInfoPrivate *priv = NULL;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
311
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
312 priv = purple_contact_info_get_instance_private(info);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
313
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
314 g_clear_pointer(&priv->id, g_free);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
315 g_clear_pointer(&priv->username, g_free);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
316 g_clear_pointer(&priv->display_name, g_free);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
317 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
318 g_clear_pointer(&priv->color, g_free);
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
319 g_clear_pointer(&priv->email, g_free);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
320 g_clear_pointer(&priv->phone_number, g_free);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
321 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
322 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
323 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
324 g_clear_pointer(&priv->name_for_display, g_free);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
325
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
326 G_OBJECT_CLASS(purple_contact_info_parent_class)->finalize(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
327 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
328
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
329 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
330 purple_contact_info_constructed(GObject *obj) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
331 PurpleContactInfo *info = NULL;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
332 PurpleContactInfoPrivate *priv = NULL;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
333
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
334 G_OBJECT_CLASS(purple_contact_info_parent_class)->constructed(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
335
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
336 info = PURPLE_CONTACT_INFO(obj);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
337 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
338
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
339 if(purple_strempty(priv->id)) {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
340 purple_contact_info_set_id(info, NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
341 }
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
342
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
343 purple_contact_info_update_name_for_display(info);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
344 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
345
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
346 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
347 purple_contact_info_init(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
348 PurpleContactInfoPrivate *priv = NULL;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
349
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
350 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
351
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
352 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
353
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
354 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
355 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
356 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
357 info, 0);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
358 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
359
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
360 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
361 purple_contact_info_class_init(PurpleContactInfoClass *klass) {
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
362 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
363
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
364 obj_class->constructed = purple_contact_info_constructed;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
365 obj_class->dispose = purple_contact_info_dispose;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
366 obj_class->finalize = purple_contact_info_finalize;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
367 obj_class->get_property = purple_contact_info_get_property;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
368 obj_class->set_property = purple_contact_info_set_property;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
369
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
370 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
371 * PurpleContactInfo:id:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
372 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
373 * The protocol specific id for the contact.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
374 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
375 * Since: 3.0
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
376 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
377 properties[PROP_ID] = g_param_spec_string(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
378 "id", "id",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
379 "The id of the contact",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
380 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
381 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
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 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
384 * PurpleContactInfo:username:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
385 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
386 * 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
387 * 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
388 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
389 * Since: 3.0
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 properties[PROP_USERNAME] = g_param_spec_string(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
392 "username", "username",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
393 "The username of the contact",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
394 NULL,
41961
0da91f053305 Make PurpleAccount subclass PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
395 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
396
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
397 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
398 * PurpleContactInfo:display-name:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
399 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
400 * 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
401 * the contact is representing and controlled via the protocol plugin.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
402 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
403 * Since: 3.0
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
404 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
405 properties[PROP_DISPLAY_NAME] = g_param_spec_string(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
406 "display-name", "display-name",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
407 "The display name of the contact",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
408 NULL,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
409 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
410
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
411 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
412 * PurpleContactInfo:alias:
41739
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 * 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
415 * may be used by the protocol if it allows for aliasing.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
416 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
417 * Since: 3.0
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
418 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
419 properties[PROP_ALIAS] = g_param_spec_string(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
420 "alias", "alias",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
421 "The alias of the contact.",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
422 NULL,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
423 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
424
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
425 /**
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
426 * PurpleContactInfo:color:
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
427 *
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
428 * 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
429 * 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
430 * 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
431 * highlight/branding color.
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
432 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
433 * Since: 3.0
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
434 */
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
435 properties[PROP_COLOR] = g_param_spec_string(
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
436 "color", "color",
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
437 "The color to use when rendering the contact.",
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
438 NULL,
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
439 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
440
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
441 /**
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
442 * PurpleContactInfo:email:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
443 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
444 * 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
445 * 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
446 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
447 * Since: 3.0
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
448 */
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
449 properties[PROP_EMAIL] = g_param_spec_string(
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
450 "email", "email",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
451 "The primary email address for the contact.",
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(
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
464 "phone-number", "phone-number",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
465 "The primary phone number for the contact.",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
466 NULL,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
467 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
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 /**
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
470 * PurpleContactInfo:time-zone:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
471 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
472 * 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
473 * protocol and should only be read by others.
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
474 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
475 * Since: 3.0
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
476 */
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
477 properties[PROP_TIME_ZONE] = g_param_spec_boxed(
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
478 "time-zone", "time-zone",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
479 "The time zone for the contact.",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
480 G_TYPE_TIME_ZONE,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
481 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
482
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 * PurpleContactInfo:note:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
485 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
486 * 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
487 * 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
488 * track of.
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
489 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
490 * Since: 3.0
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
491 */
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
492 properties[PROP_NOTE] = g_param_spec_string(
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
493 "note", "note",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
494 "A note for the contact.",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
495 NULL,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
496 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
497
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
498 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
499 * PurpleContactInfo:avatar:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
500 *
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
501 * 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
502 * protocol and should only be read by others.
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
503 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
504 * Since: 3.0
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
505 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
506 properties[PROP_AVATAR] = g_param_spec_object(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
507 "avatar", "avatar",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
508 "The avatar of the contact",
42312
7d6f0b8b6e77 Use PurpleAvatar for PurplePerson and PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42257
diff changeset
509 PURPLE_TYPE_AVATAR,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
510 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
511
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
512 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
513 * PurpleContactInfo:presence:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
514 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
515 * The [class@Purple.Presence] for this contact. This is typically
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
516 * controlled by the protocol and should only be read by others.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
517 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
518 * Since: 3.0
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
519 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
520 properties[PROP_PRESENCE] = g_param_spec_object(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
521 "presence", "presence",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
522 "The presence of the contact",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
523 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
524 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
525
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
526 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
527 * PurpleContactInfo:tags:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
528 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
529 * The [class@Purple.Tags] for this contact.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
530 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
531 * Since: 3.0
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 properties[PROP_TAGS] = g_param_spec_object(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
534 "tags", "tags",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
535 "The tags for the contact",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
536 PURPLE_TYPE_TAGS,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
537 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
538
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
539 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
540 * PurpleContactInfo:person:
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
541 *
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
542 * 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
543 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
544 * Since: 3.0
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
545 */
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
546 properties[PROP_PERSON] = g_param_spec_object(
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
547 "person", "person",
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
548 "The person this contact belongs to.",
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
549 PURPLE_TYPE_PERSON,
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
550 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
551
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
552 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
553 * PurpleContactInfo:permission:
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
554 *
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
555 * The permission level for the contact.
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
556 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
557 * Since: 3.0
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
558 */
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
559 properties[PROP_PERMISSION] = g_param_spec_enum(
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
560 "permission", "permission",
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
561 "The permission level of the contact",
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
562 PURPLE_TYPE_CONTACT_INFO_PERMISSION,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
563 PURPLE_CONTACT_INFO_PERMISSION_UNSET,
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
564 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
565
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
566 /**
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
567 * PurpleContactInfo:sid:
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
568 *
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
569 * 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
570 * contact.
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
571 *
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
572 * 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
573 * `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
574 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
575 * Since: 3.0
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
576 */
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
577 properties[PROP_SID] = g_param_spec_string(
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
578 "sid", "sid",
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
579 "The secondary id for the contact.",
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
580 NULL,
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
581 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
582
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
583 /**
42596
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
584 * PurpleContactInfo:favorite:
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
585 *
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
586 * 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
587 *
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
588 * Since: 3.0
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
589 */
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
590 properties[PROP_FAVORITE] = g_param_spec_boolean(
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
591 "favorite", "favorite",
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
592 "Whether or not this is a favorite contact.",
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
593 FALSE,
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
594 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
595
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
596 /**
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
597 * PurpleContactInfo:name-for-display:
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
598 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
599 * 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
600 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
601 * 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
602 * that if it is set.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
603 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
604 * 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
605 * [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
606 * returned if it is set.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
607 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
608 * 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
609 * list:
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
610 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
611 * * [property@Purple.ContactInfo:display-name]
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
612 * * [property@Purple.ContactInfo:username]
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
613 * * [property@Purple.ContactInfo:id]
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
614 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
615 * Since: 3.0
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
616 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
617 properties[PROP_NAME_FOR_DISPLAY] = g_param_spec_string(
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
618 "name-for-display", "name-for-display",
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
619 "The name that should be displayed for the contact info",
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
620 NULL,
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
621 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
622
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
623 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
624
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
625 /**
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
626 * PurpleContactInfo::presence-changed:
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
627 * @info: The instance.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
628 * @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
629 * @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
630 *
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
631 * 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
632 * 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
633 *
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
634 * 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
635 * 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
636 * 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
637 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
638 * 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
639 */
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
640 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
641 "presence-changed",
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
642 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
643 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
644 NULL,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
645 NULL,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
646 NULL,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
647 NULL,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
648 G_TYPE_NONE,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
649 2,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
650 PURPLE_TYPE_PRESENCE,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
651 G_TYPE_PARAM);
42581
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
652
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
653 /**
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
654 * PurpleContactInfo::populate-menu:
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
655 * @info: The instance.
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
656 * @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
657 *
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
658 * 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
659 * 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
660 *
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
661 * 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
662 * 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
663 * pleases.
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
664 *
42583
8a8c571eb98c Add a propagation signal for populate-menu to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
665 * Since: 3.0
42581
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
666 */
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
667 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
668 "populate-menu",
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
669 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
670 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
671 NULL,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
672 NULL,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
673 NULL,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
674 NULL,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
675 G_TYPE_NONE,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
676 1,
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
677 BIRB_TYPE_ACTION_MENU);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
678 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
679
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
680 /******************************************************************************
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
681 * Public API
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
682 *****************************************************************************/
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
683 PurpleContactInfo *
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
684 purple_contact_info_new(const gchar *id) {
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
685 return g_object_new(
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
686 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
687 "id", id,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
688 NULL);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
689 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
690
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
691 const gchar *
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
692 purple_contact_info_get_id(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
693 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
694
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
695 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
696
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
697 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
698
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
699 return priv->id;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
700 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
701
41920
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
702 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
703 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
704 PurpleContactInfoPrivate *priv = NULL;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
705 gboolean changed = FALSE;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
706
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
707 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
708
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
709 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
710
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
711 changed = !purple_strequal(priv->id, id);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
712
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
713 g_free(priv->id);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
714 priv->id = g_strdup(id);
41920
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
715
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
716 if(changed) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
717 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
718
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
719 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
720
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
721 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
722
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
723 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
724 }
41920
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
725 }
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
726
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
727 const gchar *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
728 purple_contact_info_get_username(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
729 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
730
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
731 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
732
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
733 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
734
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
735 return priv->username;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
736 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
737
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
738 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
739 purple_contact_info_set_username(PurpleContactInfo *info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
740 const gchar *username)
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
741 {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
742 PurpleContactInfoPrivate *priv = NULL;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
743 gboolean changed = FALSE;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
744
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
745 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
746
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
747 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
748
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
749 changed = !purple_strequal(priv->username, username);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
750
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
751 g_free(priv->username);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
752 priv->username = g_strdup(username);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
753
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
754 if(changed) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
755 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
756
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
757 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
758
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
759 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
760
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
761 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
762 }
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
763 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
764
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
765 const gchar *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
766 purple_contact_info_get_display_name(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
767 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
768
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
769 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
770
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
771 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
772
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
773 return priv->display_name;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
774 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
775
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
776 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
777 purple_contact_info_set_display_name(PurpleContactInfo *info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
778 const gchar *display_name)
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
779 {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
780 PurpleContactInfoPrivate *priv = NULL;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
781 gboolean changed = FALSE;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
782
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
783 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
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 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
786
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
787 changed = !purple_strequal(priv->display_name, display_name);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
788
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
789 g_free(priv->display_name);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
790 priv->display_name = g_strdup(display_name);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
791
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
792 if(changed) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
793 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
794
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
795 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
796
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
797 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
798
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
799 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
800 }
41739
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
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
803 const gchar *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
804 purple_contact_info_get_alias(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
805 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
806
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
807 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
808
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
809 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
810
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
811 return priv->alias;
41739
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
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
814 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
815 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
816 PurpleContactInfoPrivate *priv = NULL;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
817 gboolean changed = FALSE;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
818
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
819 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
820
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
821 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
822
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
823 changed = !purple_strequal(priv->alias, alias);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
824
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
825 g_free(priv->alias);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
826 priv->alias = g_strdup(alias);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
827
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
828 if(changed) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
829 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
830
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
831 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
832
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
833 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
834
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
835 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
836 }
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
837 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
838
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
839 const char *
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
840 purple_contact_info_get_color(PurpleContactInfo *info) {
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
841 PurpleContactInfoPrivate *priv = NULL;
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 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
844
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
845 priv = purple_contact_info_get_instance_private(info);
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 return priv->color;
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
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
850 void
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
851 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
852 PurpleContactInfoPrivate *priv = NULL;
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 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
855
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
856 priv = purple_contact_info_get_instance_private(info);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
857
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
858 if(!purple_strequal(priv->color, color)) {
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
859 g_free(priv->color);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
860 priv->color = g_strdup(color);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
861
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
862 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
863 }
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
864 }
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
865
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
866 const char *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
867 purple_contact_info_get_email(PurpleContactInfo *info) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
868 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
869
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
870 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
871
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
872 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
873
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
874 return priv->email;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
875 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
876
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
877 void
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
878 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
879 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
880
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
881 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
882
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
883 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
884
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
885 if(!purple_strequal(priv->email, email)) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
886 g_free(priv->email);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
887 priv->email = g_strdup(email);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
888
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
889 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
890 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
891 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
892
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
893 const char *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
894 purple_contact_info_get_phone_number(PurpleContactInfo *info) {
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_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
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
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
901 return priv->phone_number;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
902 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
903
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
904 void
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
905 purple_contact_info_set_phone_number(PurpleContactInfo *info,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
906 const char *phone_number)
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
907 {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
908 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
909
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
910 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
911
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
912 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
913
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
914 if(!purple_strequal(priv->phone_number, phone_number)) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
915 g_free(priv->phone_number);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
916 priv->phone_number = g_strdup(phone_number);
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 g_object_notify_by_pspec(G_OBJECT(info),
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
919 properties[PROP_PHONE_NUMBER]);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
920 }
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
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
923 GTimeZone *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
924 purple_contact_info_get_time_zone(PurpleContactInfo *info) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
925 PurpleContactInfoPrivate *priv = NULL;
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 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
928
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
929 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
930
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
931 return priv->time_zone;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
932 }
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 void
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
935 purple_contact_info_set_time_zone(PurpleContactInfo *info,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
936 GTimeZone *time_zone)
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 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
939 GTimeZone *old = NULL;
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 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
942
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
943 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
944 old = priv->time_zone;
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 priv->time_zone = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
947 if(time_zone != NULL) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
948 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
949 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
950
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
951 if(old != NULL) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
952 g_time_zone_unref(old);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
953 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
954
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
955 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
956 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
957
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
958 const char *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
959 purple_contact_info_get_note(PurpleContactInfo *info) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
960 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
961
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
962 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
963
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
964 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
965
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
966 return priv->note;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
967 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
968
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
969 void
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
970 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
971 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
972
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
973 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
974
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
975 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
976
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
977 if(!purple_strequal(priv->note, note)) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
978 g_free(priv->note);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
979 priv->note = g_strdup(note);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
980
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
981 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
982 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
983 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
984
42312
7d6f0b8b6e77 Use PurpleAvatar for PurplePerson and PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42257
diff changeset
985 PurpleAvatar *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
986 purple_contact_info_get_avatar(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
987 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
988
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
989 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
990
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
991 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
992
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
993 return priv->avatar;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
994 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
995
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
996 void
42312
7d6f0b8b6e77 Use PurpleAvatar for PurplePerson and PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42257
diff changeset
997 purple_contact_info_set_avatar(PurpleContactInfo *info, PurpleAvatar *avatar) {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
998 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
999
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1000 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1001
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1002 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1003
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1004 if(g_set_object(&priv->avatar, avatar)) {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1005 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_AVATAR]);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1006 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1007 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1008
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1009 PurplePresence *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1010 purple_contact_info_get_presence(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1011 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1012
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1013 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
1014
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1015 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1016
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1017 return priv->presence;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1018 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1019
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1020 PurpleTags *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1021 purple_contact_info_get_tags(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1022 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1023
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1024 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
1025
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1026 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1027
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1028 return priv->tags;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1029 }
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1030
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1031 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1032 purple_contact_info_set_person(PurpleContactInfo *info, PurplePerson *person) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1033 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1034
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1035 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
1036
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1037 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1038
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1039 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
1040 /* 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
1041 * signal.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1042 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1043 if(PURPLE_IS_PERSON(priv->person)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1044 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
1045 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
1046 info, 0);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1047 }
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 /* 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
1050 * name-for-display property.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1051 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1052 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
1053
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1054 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_PERSON]);
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1055
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1056 /* Update the name-for-display property */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1057 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
1058
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1059 g_object_thaw_notify(G_OBJECT(info));
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1060 }
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1061 }
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1062
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1063 PurplePerson *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1064 purple_contact_info_get_person(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1065 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1066
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1067 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
1068
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1069 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1070
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1071 return priv->person;
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1072 }
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1073
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1074 PurpleContactInfoPermission
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1075 purple_contact_info_get_permission(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1076 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1077
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1078 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
1079 PURPLE_CONTACT_INFO_PERMISSION_UNSET);
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1080
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1081 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1082
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1083 return priv->permission;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1084 }
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1085
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1086 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1087 purple_contact_info_set_permission(PurpleContactInfo *info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1088 PurpleContactInfoPermission permission)
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1089 {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1090 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1091
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1092 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
1093
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1094 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1095
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1096 priv->permission = 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 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
1099 }
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1100
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1101 const char *
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1102 purple_contact_info_get_sid(PurpleContactInfo *info) {
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1103 PurpleContactInfoPrivate *priv = NULL;
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1104
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1105 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
1106
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1107 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
1108
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1109 return priv->sid;
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1110 }
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1111
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1112 void
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1113 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
1114 PurpleContactInfoPrivate *priv = NULL;
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1115
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1116 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
1117
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1118 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
1119
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1120 if(!purple_strequal(priv->sid, sid)) {
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1121 g_free(priv->sid);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1122 priv->sid = g_strdup(sid);
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_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
1125 }
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1126 }
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1127
42596
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1128 gboolean
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1129 purple_contact_info_get_favorite(PurpleContactInfo *info) {
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1130 PurpleContactInfoPrivate *priv = NULL;
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1131
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1132 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
1133
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1134 priv = purple_contact_info_get_instance_private(info);
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1135
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1136 return priv->favorite;
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1137 }
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 void
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1140 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
1141 PurpleContactInfoPrivate *priv = NULL;
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 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
1144
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1145 priv = purple_contact_info_get_instance_private(info);
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1146
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1147 if(priv->favorite != favorite) {
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1148 priv->favorite = favorite;
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 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
1151 }
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1152 }
b64b96f3b781 Add a favorite property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
1153
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1154 const char *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1155 purple_contact_info_get_name_for_display(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1156 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1157
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1158 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
1159
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1160 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1161
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1162 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
1163 }
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1164
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1165 int
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1166 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
1167 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
1168 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
1169 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
1170 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
1171
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1172 /* 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
1173 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
1174 return -1;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1175 } 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
1176 return 1;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1177 } 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
1178 return 0;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1179 }
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1180
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1181 /* 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
1182 person_a = purple_contact_info_get_person(a);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1183 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
1184
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1185 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
1186 return -1;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1187 } 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
1188 return 1;
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
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1191 /* 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
1192 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
1193 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
1194
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1195 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
1196 }
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1197
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1198 gboolean
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1199 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
1200 PurpleContactInfoPrivate *priv = NULL;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1201
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1202 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
1203
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1204 if(purple_strempty(needle)) {
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1205 return TRUE;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1206 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1207
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1208 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
1209
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1210 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
1211 if(purple_strmatches(needle, priv->username)) {
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1212 return TRUE;
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 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1215
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1216 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
1217 if(purple_strmatches(needle, priv->alias)) {
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1218 return TRUE;
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 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1221
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1222 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
1223 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
1224 return TRUE;
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 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1227
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1228 /* Nothing matched, so return FALSE. */
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1229 return FALSE;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1230 }
42581
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1231
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1232 BirbActionMenu *
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1233 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
1234 BirbActionMenu *menu = NULL;
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1235
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1236 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
1237
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1238 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
1239
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1240 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
1241
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1242 return menu;
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42324
diff changeset
1243 }

mercurial