libpurple/presence.h

Fri, 14 Feb 2020 01:49:34 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Fri, 14 Feb 2020 01:49:34 -0600
branch
use-after-free
changeset 40286
ca45e74fb1ee
parent 40215
f7cf821e15de
child 40474
1341be8e3402
permissions
-rw-r--r--

closing merged branch

34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1 /*
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
2 * purple
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
3 *
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
6 * source distribution.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
7 *
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
11 * (at your option) any later version.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
12 *
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
16 * GNU General Public License for more details.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
17 *
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
21 */
35487
494f09f7f331 Move section blocks inside inclusion guards -- otherwise g-ir-scanner yells
Ankit Vani <a@nevitus.org>
parents: 35486
diff changeset
22
39659
e4dfb99b0cef Fix libpurple header guards using reserved names.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39539
diff changeset
23 #ifndef PURPLE_PRESENCE_H
e4dfb99b0cef Fix libpurple header guards using reserved names.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39539
diff changeset
24 #define PURPLE_PRESENCE_H
35440
467bb21b82a1 Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents: 35397
diff changeset
25 /**
467bb21b82a1 Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents: 35397
diff changeset
26 * SECTION:presence
467bb21b82a1 Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents: 35397
diff changeset
27 * @section_id: libpurple-presence
467bb21b82a1 Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents: 35397
diff changeset
28 * @short_description: <filename>presence.h</filename>
35444
a4ece5a5565a Use upper-case first letters
Ankit Vani <a@nevitus.org>
parents: 35440
diff changeset
29 * @title: Presence Objects API
35440
467bb21b82a1 Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents: 35397
diff changeset
30 *
467bb21b82a1 Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents: 35397
diff changeset
31 * This file contains the presence base type, account presence, and buddy
467bb21b82a1 Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents: 35397
diff changeset
32 * presence API.
467bb21b82a1 Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents: 35397
diff changeset
33 */
467bb21b82a1 Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents: 35397
diff changeset
34
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
35 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
36 * PurplePresence:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
37 *
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
38 * A PurplePresence is like a collection of PurpleStatuses (plus some
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
39 * other random info). For any buddy, or for any one of your accounts,
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
40 * or for any person with which you're chatting, you may know various
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
41 * amounts of information. This information is all contained in
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
42 * one PurplePresence. If one of your buddies is away and idle,
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
43 * then the presence contains the PurpleStatus for their awayness,
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
44 * and it contains their current idle time. PurplePresences are
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
45 * never saved to disk. The information they contain is only relevant
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
46 * for the current PurpleSession.
34836
289bc0df25bb API changes for PurplePresence. See details.
Ankit Vani <a@nevitus.org>
parents: 34834
diff changeset
47 *
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
48 * Note: When a presence is destroyed with the last g_object_unref(), all
34836
289bc0df25bb API changes for PurplePresence. See details.
Ankit Vani <a@nevitus.org>
parents: 34834
diff changeset
49 * statuses added to this list will be destroyed along with the presence.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
50 */
39539
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
51 typedef struct _PurplePresence PurplePresence;
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
52
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
53 #include "account.h"
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
54 #include "buddylist.h"
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
55 #include "status.h"
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
56
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
57 /**
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
58 * PurplePresenceClass:
35462
901dfa763f15 Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents: 35444
diff changeset
59 * @update_idle: Updates the logs and the UI when the idle state or time of the
901dfa763f15 Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents: 35444
diff changeset
60 * presence changes.
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
61 *
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
62 * Base class for all #PurplePresence's
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
63 */
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
64 struct _PurplePresenceClass {
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
65 GObjectClass parent_class;
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
66
34846
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34841
diff changeset
67 void (*update_idle)(PurplePresence *presence, gboolean old_idle);
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34841
diff changeset
68
35024
eb3afb7643ce Added /*< private >*/ for padding members, clean them up and add missing ones
Ankit Vani <a@nevitus.org>
parents: 34852
diff changeset
69 /*< private >*/
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
70 void (*_purple_reserved1)(void);
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
71 void (*_purple_reserved2)(void);
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
72 void (*_purple_reserved3)(void);
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
73 void (*_purple_reserved4)(void);
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
74 };
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
75
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
76 G_BEGIN_DECLS
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
77
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
78 /**************************************************************************/
35472
474e26199560 Removed @name
Ankit Vani <a@nevitus.org>
parents: 35462
diff changeset
79 /* PurplePresence API */
34836
289bc0df25bb API changes for PurplePresence. See details.
Ankit Vani <a@nevitus.org>
parents: 34834
diff changeset
80 /**************************************************************************/
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
81
39539
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
82 #define PURPLE_TYPE_PRESENCE purple_presence_get_type()
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
83
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
84 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
85 * purple_presence_get_type:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
86 *
35462
901dfa763f15 Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents: 35444
diff changeset
87 * Returns: The #GType for the #PurplePresence object.
34841
8ebf4cfff9e4 Added the boilerplate GObject header code for presences
Ankit Vani <a@nevitus.org>
parents: 34840
diff changeset
88 */
39539
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
89 G_DECLARE_DERIVABLE_TYPE(PurplePresence, purple_presence, PURPLE,
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
90 PRESENCE, GObject)
34841
8ebf4cfff9e4 Added the boilerplate GObject header code for presences
Ankit Vani <a@nevitus.org>
parents: 34840
diff changeset
91
8ebf4cfff9e4 Added the boilerplate GObject header code for presences
Ankit Vani <a@nevitus.org>
parents: 34840
diff changeset
92 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
93 * purple_presence_set_status_active:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
94 * @presence: The presence.
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
95 * @status_id: The ID of the status.
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
96 * @active: The active state.
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
97 *
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
98 * Sets the active state of a status in a presence.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
99 *
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
100 * Only independent statuses can be set unactive. Normal statuses can only
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
101 * be set active, so if you wish to disable a status, set another
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
102 * non-independent status to active, or use purple_presence_switch_status().
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
103 */
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
104 void purple_presence_set_status_active(PurplePresence *presence,
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
105 const char *status_id, gboolean active);
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
106
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
107 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
108 * purple_presence_switch_status:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
109 * @presence: The presence.
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
110 * @status_id: The status ID to switch to.
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
111 *
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
112 * Switches the active status in a presence.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
113 *
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
114 * This is similar to purple_presence_set_status_active(), except it won't
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
115 * activate independent statuses.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
116 */
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
117 void purple_presence_switch_status(PurplePresence *presence,
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
118 const char *status_id);
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
119
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
120 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
121 * purple_presence_set_idle:
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
122 * @presence: The presence.
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
123 * @idle: The idle state.
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
124 * @idle_time: The idle time, if @idle is TRUE. This
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
125 * is the time at which the user became idle,
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
126 * in seconds since the epoch. If this value is
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
127 * unknown then 0 should be used.
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
128 *
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
129 * Sets the idle state and time on a presence.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
130 */
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
131 void purple_presence_set_idle(PurplePresence *presence, gboolean idle,
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
132 time_t idle_time);
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
133
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
134 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
135 * purple_presence_set_login_time:
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
136 * @presence: The presence.
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
137 * @login_time: The login time.
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
138 *
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
139 * Sets the login time on a presence.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
140 */
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
141 void purple_presence_set_login_time(PurplePresence *presence, time_t login_time);
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
142
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
143 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
144 * purple_presence_get_statuses:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
145 * @presence: The presence.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
146 *
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
147 * Returns all the statuses in a presence.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
148 *
38716
b9bed228745a Add many libpurple element-type annotations.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37094
diff changeset
149 * Returns: (element-type PurpleStatus) (transfer none): The statuses.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
150 */
39435
b30e04a71ecf Use G_DEFINE_TYPE_WITH_PRIVATE for Purple*Presence.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38716
diff changeset
151 GList *purple_presence_get_statuses(PurplePresence *presence);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
152
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
153 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
154 * purple_presence_get_status:
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
155 * @presence: The presence.
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
156 * @status_id: The ID of the status.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
157 *
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
158 * Returns the status with the specified ID from a presence.
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
159 *
39738
14d425a528ad Add missing transfer annotations.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39659
diff changeset
160 * Returns: (transfer none): The status if found, or %NULL.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
161 */
39435
b30e04a71ecf Use G_DEFINE_TYPE_WITH_PRIVATE for Purple*Presence.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38716
diff changeset
162 PurpleStatus *purple_presence_get_status(PurplePresence *presence,
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
163 const char *status_id);
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
164
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
165 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
166 * purple_presence_get_active_status:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
167 * @presence: The presence.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
168 *
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
169 * Returns the active exclusive status from a presence.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
170 *
39738
14d425a528ad Add missing transfer annotations.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39659
diff changeset
171 * Returns: (transfer none): The active exclusive status.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
172 */
39435
b30e04a71ecf Use G_DEFINE_TYPE_WITH_PRIVATE for Purple*Presence.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38716
diff changeset
173 PurpleStatus *purple_presence_get_active_status(PurplePresence *presence);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
174
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
175 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
176 * purple_presence_is_available:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
177 * @presence: The presence.
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
178 *
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
179 * Returns whether or not a presence is available.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
180 *
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
181 * Available presences are online and possibly invisible, but not away or idle.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
182 *
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
183 * Returns: TRUE if the presence is available, or FALSE otherwise.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
184 */
39435
b30e04a71ecf Use G_DEFINE_TYPE_WITH_PRIVATE for Purple*Presence.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38716
diff changeset
185 gboolean purple_presence_is_available(PurplePresence *presence);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
186
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
187 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
188 * purple_presence_is_online:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
189 * @presence: The presence.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
190 *
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
191 * Returns whether or not a presence is online.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
192 *
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
193 * Returns: TRUE if the presence is online, or FALSE otherwise.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
194 */
39435
b30e04a71ecf Use G_DEFINE_TYPE_WITH_PRIVATE for Purple*Presence.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38716
diff changeset
195 gboolean purple_presence_is_online(PurplePresence *presence);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
196
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
197 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
198 * purple_presence_is_status_active:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
199 * @presence: The presence.
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
200 * @status_id: The ID of the status.
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
201 *
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
202 * Returns whether or not a status in a presence is active.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
203 *
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
204 * A status is active if itself or any of its sub-statuses are active.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
205 *
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
206 * Returns: TRUE if the status is active, or FALSE.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
207 */
39435
b30e04a71ecf Use G_DEFINE_TYPE_WITH_PRIVATE for Purple*Presence.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38716
diff changeset
208 gboolean purple_presence_is_status_active(PurplePresence *presence,
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
209 const char *status_id);
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
210
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
211 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
212 * purple_presence_is_status_primitive_active:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
213 * @presence: The presence.
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
214 * @primitive: The status primitive.
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
215 *
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
216 * Returns whether or not a status with the specified primitive type
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
217 * in a presence is active.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
218 *
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
219 * A status is active if itself or any of its sub-statuses are active.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
220 *
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
221 * Returns: TRUE if the status is active, or FALSE.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
222 */
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
223 gboolean purple_presence_is_status_primitive_active(
39435
b30e04a71ecf Use G_DEFINE_TYPE_WITH_PRIVATE for Purple*Presence.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38716
diff changeset
224 PurplePresence *presence, PurpleStatusPrimitive primitive);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
225
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
226 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
227 * purple_presence_is_idle:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
228 * @presence: The presence.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
229 *
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
230 * Returns whether or not a presence is idle.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
231 *
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
232 * Returns: TRUE if the presence is idle, or FALSE otherwise.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
233 * If the presence is offline (purple_presence_is_online()
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
234 * returns FALSE) then FALSE is returned.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
235 */
39435
b30e04a71ecf Use G_DEFINE_TYPE_WITH_PRIVATE for Purple*Presence.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38716
diff changeset
236 gboolean purple_presence_is_idle(PurplePresence *presence);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
237
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
238 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
239 * purple_presence_get_idle_time:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
240 * @presence: The presence.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
241 *
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
242 * Returns the presence's idle time.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
243 *
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
244 * Returns: The presence's idle time.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
245 */
39435
b30e04a71ecf Use G_DEFINE_TYPE_WITH_PRIVATE for Purple*Presence.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38716
diff changeset
246 time_t purple_presence_get_idle_time(PurplePresence *presence);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
247
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
248 /**
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
249 * purple_presence_get_login_time:
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
250 * @presence: The presence.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
251 *
35397
31fa3a1aeff5 Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents: 35394
diff changeset
252 * Returns the presence's login time.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
253 *
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
254 * Returns: The presence's login time.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
255 */
39435
b30e04a71ecf Use G_DEFINE_TYPE_WITH_PRIVATE for Purple*Presence.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38716
diff changeset
256 time_t purple_presence_get_login_time(PurplePresence *presence);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
257
39538
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
258 /**************************************************************************/
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
259 /* PurpleAccountPresence API */
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
260 /**************************************************************************/
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
261
39539
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
262 #define PURPLE_TYPE_ACCOUNT_PRESENCE (purple_account_presence_get_type())
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
263
39538
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
264 /**
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
265 * purple_account_presence_get_type:
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
266 *
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
267 * Returns: The #GType for the #PurpleAccountPresence object.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
268 */
39539
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
269 G_DECLARE_FINAL_TYPE(PurpleAccountPresence, purple_account_presence,
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
270 PURPLE, ACCOUNT_PRESENCE, PurplePresence)
39538
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
271
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
272 /**
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
273 * purple_account_presence_new:
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
274 * @account: The account to associate with the presence.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
275 *
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
276 * Creates a presence for an account.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
277 *
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
278 * Returns: The new presence.
40215
f7cf821e15de Replace a bunch of entries in ChangeLog.API entries with Since annotations
Gary Kramlich <grim@reaperworld.com>
parents: 39738
diff changeset
279 *
f7cf821e15de Replace a bunch of entries in ChangeLog.API entries with Since annotations
Gary Kramlich <grim@reaperworld.com>
parents: 39738
diff changeset
280 * Since: 3.0.0
39538
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
281 */
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
282 PurpleAccountPresence *purple_account_presence_new(PurpleAccount *account);
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
283
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
284 /**
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
285 * purple_account_presence_get_account:
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
286 * @presence: The presence.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
287 *
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
288 * Returns an account presence's account.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
289 *
39738
14d425a528ad Add missing transfer annotations.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39659
diff changeset
290 * Returns: (transfer none): The presence's account.
39538
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
291 */
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
292 PurpleAccount *purple_account_presence_get_account(PurpleAccountPresence *presence);
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
293
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
294 /**************************************************************************/
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
295 /* PurpleBuddyPresence API */
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
296 /**************************************************************************/
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
297
39539
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
298 #define PURPLE_TYPE_BUDDY_PRESENCE (purple_buddy_presence_get_type())
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
299
39538
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
300 /**
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
301 * purple_buddy_presence_get_type:
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
302 *
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
303 * Returns: The #GType for the #PurpleBuddyPresence object.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
304 */
39539
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
305 G_DECLARE_FINAL_TYPE(PurpleBuddyPresence, purple_buddy_presence, PURPLE,
f221f88ff0b0 Use G_DECLARE* for Purple*Presence types.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39538
diff changeset
306 BUDDY_PRESENCE, PurplePresence)
39538
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
307
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
308 /**
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
309 * purple_buddy_presence_new:
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
310 * @buddy: The buddy to associate with the presence.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
311 *
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
312 * Creates a presence for a buddy.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
313 *
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
314 * Returns: The new presence.
40215
f7cf821e15de Replace a bunch of entries in ChangeLog.API entries with Since annotations
Gary Kramlich <grim@reaperworld.com>
parents: 39738
diff changeset
315 *
f7cf821e15de Replace a bunch of entries in ChangeLog.API entries with Since annotations
Gary Kramlich <grim@reaperworld.com>
parents: 39738
diff changeset
316 * Since: 3.0.0
39538
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
317 */
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
318 PurpleBuddyPresence *purple_buddy_presence_new(PurpleBuddy *buddy);
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
319
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
320 /**
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
321 * purple_buddy_presence_get_buddy:
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
322 * @presence: The presence.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
323 *
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
324 * Returns the buddy presence's buddy.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
325 *
39738
14d425a528ad Add missing transfer annotations.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39659
diff changeset
326 * Returns: (transfer none): The presence's buddy.
39538
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
327 */
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
328 PurpleBuddy *purple_buddy_presence_get_buddy(PurpleBuddyPresence *presence);
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
329
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
330 /**
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
331 * purple_buddy_presence_compare:
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
332 * @buddy_presence1: The first presence.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
333 * @buddy_presence2: The second presence.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
334 *
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
335 * Compares two buddy presences for availability.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
336 *
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
337 * Returns: -1 if @buddy_presence1 is more available than @buddy_presence2.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
338 * 0 if @buddy_presence1 is equal to @buddy_presence2.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
339 * 1 if @buddy_presence1 is less available than @buddy_presence2.
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
340 */
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
341 gint purple_buddy_presence_compare(PurpleBuddyPresence *buddy_presence1,
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
342 PurpleBuddyPresence *buddy_presence2);
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
343
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
344 G_END_DECLS
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
345
39659
e4dfb99b0cef Fix libpurple header guards using reserved names.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39539
diff changeset
346 #endif /* PURPLE_PRESENCE_H */

mercurial