libpurple/purpleperson.h

Tue, 05 Sep 2023 00:05:12 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 05 Sep 2023 00:05:12 -0500
changeset 42312
7d6f0b8b6e77
parent 42309
52571584c0ae
child 42338
2548eb61acc9
permissions
-rw-r--r--

Use PurpleAvatar for PurplePerson and PurpleContactInfo

I'm not sure why we didn't do this earlier, but it's done now.

Testing Done:
Connected a demo account and verified all of its icons showed up in the contact list.

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

41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * This program is free software; you can redistribute it and/or modify
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * it under the terms of the GNU General Public License as published by
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * the Free Software Foundation; either version 2 of the License, or
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 * (at your option) any later version.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * This program is distributed in the hope that it will be useful,
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 * GNU General Public License for more details.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * along with this program; if not, see <https://www.gnu.org/licenses/>.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 */
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 #if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION)
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 # error "only <pidgin.h> may be included directly"
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 #endif
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 #ifndef PURPLE_PERSON_H
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24 #define PURPLE_PERSON_H
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26 #include <glib.h>
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27 #include <glib-object.h>
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28
42312
7d6f0b8b6e77 Use PurpleAvatar for PurplePerson and PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42309
diff changeset
29 #include <libpurple/purpleavatar.h>
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30 #include <libpurple/purpletags.h>
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32 G_BEGIN_DECLS
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 #define PURPLE_TYPE_PERSON (purple_person_get_type())
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35 G_DECLARE_FINAL_TYPE(PurplePerson, purple_person, PURPLE, PERSON, GObject)
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
37 #include <libpurple/purplecontactinfo.h>
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41749
diff changeset
38
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39 /**
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40 * PurplePerson:
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41 *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
42 * A collection of [class@Purple.ContactInfo] that contains a user selectable
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
43 * custom avatar and alias.
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 * Since: 3.0.0
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46 */
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 /**
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49 * purple_person_new:
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51 * Creates a new [class@Purple.Person].
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53 * Returns: (transfer full): The new instance.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55 * Since: 3.0.0
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56 */
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 PurplePerson *purple_person_new(void);
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 /**
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60 * purple_person_get_id:
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 * @person: The instance.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 * Gets the id of @person. This is created internally and is read-only.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 * Returns: The id of @person.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 * Since: 3.0.0
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 */
42309
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
69 const char *purple_person_get_id(PurplePerson *person);
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 /**
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 * purple_person_get_alias:
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 * @person: The instance.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 * Gets the alias of @person that was set by the libpurple user.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
77 * This will be %NULL if no alias is set.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79 * Returns: (nullable): The alias of @person or %NULL.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81 * Since: 3.0.0
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82 */
42309
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
83 const char *purple_person_get_alias(PurplePerson *person);
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85 /**
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86 * purple_person_set_alias:
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
87 * @person: The instance.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 * @alias: (nullable): The new alias.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
90 * Sets the alias of @person to @alias.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92 * This should only be called in direct response to a user interaction to set a
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
93 * custom alias. Protocol plugins should only be setting the alias of
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94 * [class@Purple.Contact].
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96 * If @alias is %NULL, then the previous alias is cleared.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
98 * Since: 3.0.0
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
99 */
42309
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
100 void purple_person_set_alias(PurplePerson *person, const char *alias);
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
102 /**
42054
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
103 * purple_person_get_avatar_for_display:
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
104 * @person: The instance.
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
105 *
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
106 * Gets the avatar that should be displayed for @person. If @person has an
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
107 * avatar set, it will be returned, otherwise this will fallback to the value
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
108 * of [property@Purple.ContactInfo:avatar] for
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
109 * [property@Purple.Person:priority-contact-info].
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
110 *
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
111 * Returns: (transfer none) (nullable): The avatar to display.
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
112 *
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
113 * Since: 3.0.0
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
114 */
42312
7d6f0b8b6e77 Use PurpleAvatar for PurplePerson and PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42309
diff changeset
115 PurpleAvatar *purple_person_get_avatar_for_display(PurplePerson *person);
42054
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
116
7aa77854392d Add a property and accessor for getting the avatar to display for a PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42053
diff changeset
117 /**
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
118 * purple_person_get_avatar:
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
119 * @person: The instance.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
120 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
121 * Gets the avatar of @person or %NULL if no avatar is set.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
122 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
123 * Returns: (transfer none) (nullable): The avatar for @person.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
124 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
125 * Since: 3.0.0
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
126 */
42312
7d6f0b8b6e77 Use PurpleAvatar for PurplePerson and PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42309
diff changeset
127 PurpleAvatar *purple_person_get_avatar(PurplePerson *person);
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
128
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
129 /**
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
130 * purple_person_set_avatar:
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
131 * @person: The instance.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
132 * @avatar: (nullable): The new avatar.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
133 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
134 * Sets the avatar of @person to @avatar. If @avatar is %NULL then the previous
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
135 * avatar is cleared.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
136 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
137 * This should only be called in direct response to a user interaction to set a
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
138 * custom avatar. Protocol plugins should only be setting the avatars of
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
139 * [class@Purple.Contact].
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
140 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
141 * Since: 3.0.0
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
142 */
42312
7d6f0b8b6e77 Use PurpleAvatar for PurplePerson and PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42309
diff changeset
143 void purple_person_set_avatar(PurplePerson *person, PurpleAvatar *avatar);
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
144
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
145 /**
42309
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
146 * purple_person_get_color:
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
147 * @person: The instance.
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
148 *
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
149 * Gets the custom color that has been set for this person.
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
150 *
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
151 * Returns: (nullable): The custom color or %NULL if one is not set.
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
152 *
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
153 * Since: 3.0.0
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
154 */
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
155 const char *purple_person_get_color(PurplePerson *person);
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
156
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
157 /**
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
158 * purple_person_set_color:
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
159 * @person: The instance.
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
160 * @color: (nullable): The new color.
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
161 *
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
162 * Sets the custom color of @person to @color. If @color is %NULL the custom
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
163 * color is removed.
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
164 *
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
165 * Since: 3.0.0
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
166 */
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
167 void purple_person_set_color(PurplePerson *person, const char *color);
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
168
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
169 /**
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
170 * purple_person_get_color_for_display:
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
171 * @person: The instance.
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
172 *
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
173 * Gets the color that should be used for @person. If [property@Person:color]
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
174 * is set that will be returned, otherwise the result of
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
175 * [method@ContactInfo.get_color] on the priority contact will be returned.
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
176 *
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
177 * Returns: The color to display for @person.
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
178 *
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
179 * Since: 3.0.0
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
180 */
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
181 const char *purple_person_get_color_for_display(PurplePerson *person);
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
182
52571584c0ae Add color and color-for-display properties to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
183 /**
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
184 * purple_person_get_tags:
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
185 * @person: The instance.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
186 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
187 * Gets the [class@Purple.Tags] instance for @person.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
188 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
189 * Returns: (transfer none): The tags for @person.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
190 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
191 * Since: 3.0.0
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
192 */
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
193 PurpleTags *purple_person_get_tags(PurplePerson *person);
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
194
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
195 /**
42053
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
196 * purple_person_get_name_for_display:
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
197 * @person: The instance.
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
198 *
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
199 * Gets the name that should be displayed for @person. See
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
200 * [property@Purple.Person:name-for-display] for more information.
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
201 *
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
202 * Returns: (transfer none): The name to display for @person.
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
203 *
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
204 * Since: 3.0.0
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
205 */
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
206 const char *purple_person_get_name_for_display(PurplePerson *person);
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
207
742efe62e610 Add a name-for-display property to PurplePerson
Gary Kramlich <grim@reaperworld.com>
parents: 41975
diff changeset
208 /**
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
209 * purple_person_add_contact:
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
210 * @person: The instance.
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
211 * @info: The [class@Purple.ContactInfo] to add.
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
212 *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
213 * Adds @info to @person.
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
214 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
215 * Duplicate contacts are currently allowed, but that may change at a later
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
216 * time.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
217 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
218 * Since: 3.0.0
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
219 */
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
220 void purple_person_add_contact_info(PurplePerson *person, PurpleContactInfo *info);
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
221
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
222 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
223 * purple_person_remove_contact_info:
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
224 * @person: The instance.
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
225 * @info: The [class@Purple.ContactInfo] to remove.
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
226 *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
227 * Removes @info from @person.
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
228 *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
229 * Returns: %TRUE if @info was found and removed otherwise %FALSE.
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
230 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
231 * Since: 3.0.0
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
232 */
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
233 gboolean purple_person_remove_contact_info(PurplePerson *person, PurpleContactInfo *info);
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
234
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
235 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
236 * purple_person_get_priority_contact_info:
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
237 * @person: The instance.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
238 *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
239 * Gets the contact info for the most available contact info in @person.
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
240 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
241 * Returns: (transfer none) (nullable): The priority contact or %NULL if
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
242 * @person does not have any contacts.
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
243 *
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
244 * Since: 3.0.0
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
245 */
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
246 PurpleContactInfo *purple_person_get_priority_contact_info(PurplePerson *person);
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
247
41975
3ef645de21e7 Add tracking of PurplePerson's to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
248 /*
3ef645de21e7 Add tracking of PurplePerson's to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
249 * purple_person_has_contacts:
3ef645de21e7 Add tracking of PurplePerson's to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
250 * @person: The instance.
3ef645de21e7 Add tracking of PurplePerson's to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
251 *
3ef645de21e7 Add tracking of PurplePerson's to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
252 * Gets whether or not @person has any contacts.
3ef645de21e7 Add tracking of PurplePerson's to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
253 *
3ef645de21e7 Add tracking of PurplePerson's to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
254 * Returns: %TRUE if @person has at least one contact, otherwise %FALSE.
3ef645de21e7 Add tracking of PurplePerson's to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
255 *
3ef645de21e7 Add tracking of PurplePerson's to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
256 * Since: 3.0.0
3ef645de21e7 Add tracking of PurplePerson's to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
257 */
3ef645de21e7 Add tracking of PurplePerson's to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
258 gboolean purple_person_has_contacts(PurplePerson *person);
3ef645de21e7 Add tracking of PurplePerson's to PurpleContactManager
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
259
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
260 /**
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
261 * purple_person_matches:
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
262 * @person: The instance.
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
263 * @needle: (nullable): The string to match on.
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
264 *
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
265 * Checks if the alias matches @needle. This also checks @needle against
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
266 * [method@Purple.ContactInfo.matches] for each [class@Purple.ContactInfo] that
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
267 * @person is tracking.
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
268 *
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
269 * If @needle is %NULL or empty string, %TRUE will be returned.
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
270 *
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
271 * Returns: %TRUE if @person matches @needle in any way.
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
272 *
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
273 * Since: 3.0.0
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
274 */
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
275 gboolean purple_person_matches(PurplePerson *person, const char *needle);
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42054
diff changeset
276
41749
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
277 G_END_DECLS
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
278
c22448f50d5d Create PurplePerson.
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
279 #endif /* PURPLE_PERSON_H */

mercurial