libpurple/purplepresence.c

Thu, 24 Apr 2025 21:42:59 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 24 Apr 2025 21:42:59 -0500
changeset 43241
e41969a43e42
parent 43240
0dd5d0ab4908
permissions
-rw-r--r--

Add Purple.Contact.is_own_account

This checks to see if a Purple.Contact shares the Purple.ContactInfo with the
account it is tied to.

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

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

40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
1 /*
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
2 * Purple - Internet Messaging Library
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
4 *
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
7 * source distribution.
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
8 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
9 * This library is free software; you can redistribute it and/or modify it
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
10 * under the terms of the GNU General Public License as published by the Free
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
11 * Software Foundation; either version 2 of the License, or (at your option)
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
12 * any later version.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
13 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
14 * This library is distributed in the hope that it will be useful, but WITHOUT
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
16 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
17 * more details.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
18 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
19 * You should have received a copy of the GNU General Public License along with
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
20 * this library; if not, see <https://www.gnu.org/licenses/>.
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
21 */
40441
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
22
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
23 #include <glib/gi18n-lib.h>
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
24
42747
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
25 #include <birb.h>
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
26
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
27 #include "purplepresence.h"
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
28
34846
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34840
diff changeset
29 #include "debug.h"
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
30 #include "purpleenums.h"
42725
ceb13f1de2d2 Remove PurpleBuddy
Gary Kramlich <grim@reaperworld.com>
parents: 42705
diff changeset
31 #include "util.h"
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
32
42747
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
33 struct _PurplePresence {
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
34 GObject parent;
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
35
42071
a719f0f3c600 Convert idle_time in PurplePresence to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 42051
diff changeset
36 GDateTime *idle_time;
41963
d140e4f6bb02 Move the PurplePresence::login-time property from time_t to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 41740
diff changeset
37 GDateTime *login_time;
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
38
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
39 PurplePresencePrimitive primitive;
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
40 char *message;
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
41 char *emoji;
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
42 gboolean mobile;
42310
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
43 gboolean notifications_disabled;
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
44 };
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
45
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
46 enum {
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
47 PROP_0,
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
48 PROP_IDLE,
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
49 PROP_IDLE_TIME,
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
50 PROP_LOGIN_TIME,
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
51 PROP_PRIMITIVE,
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
52 PROP_MESSAGE,
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
53 PROP_EMOJI,
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
54 PROP_MOBILE,
42310
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
55 PROP_NOTIFICATIONS_DISABLED,
42584
687260353985 Make signal and property enums and initializers consistent
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42509
diff changeset
56 N_PROPERTIES,
34846
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34840
diff changeset
57 };
42584
687260353985 Make signal and property enums and initializers consistent
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42509
diff changeset
58 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
39538
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
59
43240
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
60 enum {
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
61 SIG_PRIMITIVE_CHANGED,
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
62 N_SIGNALS,
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
63 };
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
64 static guint signals[N_SIGNALS] = {0, };
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
65
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
66 /******************************************************************************
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
67 * GObject Implementation
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
68 *****************************************************************************/
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
69 G_DEFINE_FINAL_TYPE(PurplePresence, purple_presence, G_TYPE_OBJECT)
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
70
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
71 static void
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
72 purple_presence_set_property(GObject *obj, guint param_id, const GValue *value,
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
73 GParamSpec *pspec)
34836
289bc0df25bb API changes for PurplePresence. See details.
Ankit Vani <a@nevitus.org>
parents: 34834
diff changeset
74 {
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
75 PurplePresence *presence = PURPLE_PRESENCE(obj);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
76
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
77 switch (param_id) {
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
78 case PROP_IDLE:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
79 purple_presence_set_idle(presence, g_value_get_boolean(value));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
80 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
81 case PROP_IDLE_TIME:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
82 purple_presence_set_idle_time(presence, g_value_get_boxed(value));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
83 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
84 case PROP_LOGIN_TIME:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
85 purple_presence_set_login_time(presence, g_value_get_boxed(value));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
86 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
87 case PROP_PRIMITIVE:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
88 purple_presence_set_primitive(presence, g_value_get_enum(value));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
89 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
90 case PROP_MESSAGE:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
91 purple_presence_set_message(presence, g_value_get_string(value));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
92 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
93 case PROP_EMOJI:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
94 purple_presence_set_emoji(presence, g_value_get_string(value));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
95 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
96 case PROP_MOBILE:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
97 purple_presence_set_mobile(presence, g_value_get_boolean(value));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
98 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
99 case PROP_NOTIFICATIONS_DISABLED:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
100 purple_presence_set_notifications_disabled(presence,
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
101 g_value_get_boolean(value));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
102 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
103 default:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
104 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
105 break;
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
106 }
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
107 }
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
108
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
109 static void
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
110 purple_presence_get_property(GObject *obj, guint param_id, GValue *value,
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
111 GParamSpec *pspec)
34846
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34840
diff changeset
112 {
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
113 PurplePresence *presence = PURPLE_PRESENCE(obj);
39538
00ee7c55cd54 Re-group presence type definitions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39435
diff changeset
114
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
115 switch (param_id) {
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
116 case PROP_IDLE:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
117 g_value_set_boolean(value, purple_presence_is_idle(presence));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
118 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
119 case PROP_IDLE_TIME:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
120 g_value_set_boxed(value, purple_presence_get_idle_time(presence));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
121 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
122 case PROP_LOGIN_TIME:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
123 g_value_set_boxed(value, purple_presence_get_login_time(presence));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
124 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
125 case PROP_PRIMITIVE:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
126 g_value_set_enum(value, purple_presence_get_primitive(presence));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
127 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
128 case PROP_MESSAGE:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
129 g_value_set_string(value, purple_presence_get_message(presence));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
130 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
131 case PROP_EMOJI:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
132 g_value_set_string(value, purple_presence_get_emoji(presence));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
133 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
134 case PROP_MOBILE:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
135 g_value_set_boolean(value, purple_presence_get_mobile(presence));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
136 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
137 case PROP_NOTIFICATIONS_DISABLED:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
138 g_value_set_boolean(value,
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
139 purple_presence_get_notifications_disabled(presence));
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
140 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
141 default:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
142 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
143 break;
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
144 }
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
145 }
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
146
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
147 static void
42705
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
148 purple_presence_init(G_GNUC_UNUSED PurplePresence *presence) {
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
149 }
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
150
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
151 static void
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
152 purple_presence_finalize(GObject *obj) {
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
153 PurplePresence *presence = PURPLE_PRESENCE(obj);
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
154
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
155 g_clear_pointer(&presence->idle_time, g_date_time_unref);
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
156 g_clear_pointer(&presence->login_time, g_date_time_unref);
42071
a719f0f3c600 Convert idle_time in PurplePresence to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 42051
diff changeset
157
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
158 g_clear_pointer(&presence->message, g_free);
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
159 g_clear_pointer(&presence->emoji, g_free);
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
160
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
161 G_OBJECT_CLASS(purple_presence_parent_class)->finalize(obj);
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
162 }
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
163
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
164 static void
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
165 purple_presence_class_init(PurplePresenceClass *klass) {
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
166 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
167
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
168 obj_class->get_property = purple_presence_get_property;
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
169 obj_class->set_property = purple_presence_set_property;
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
170 obj_class->finalize = purple_presence_finalize;
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
171
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
172 /**
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
173 * PurplePresence:idle:
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
174 *
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
175 * Whether or not the presence is in an idle state.
42432
59c8baad6549 Add some missing since tags and other documentation for presences
Gary Kramlich <grim@reaperworld.com>
parents: 42310
diff changeset
176 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
177 * Since: 3.0
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
178 */
42747
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
179 properties[PROP_IDLE] = g_param_spec_boolean(
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
180 "idle", NULL, NULL,
42747
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
181 FALSE,
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
182 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
34846
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34840
diff changeset
183
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
184 /**
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
185 * PurplePresence:idle-time:
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
186 *
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
187 * The time when the presence went idle.
42432
59c8baad6549 Add some missing since tags and other documentation for presences
Gary Kramlich <grim@reaperworld.com>
parents: 42310
diff changeset
188 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
189 * Since: 3.0
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
190 */
42071
a719f0f3c600 Convert idle_time in PurplePresence to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 42051
diff changeset
191 properties[PROP_IDLE_TIME] = g_param_spec_boxed(
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
192 "idle-time", NULL, NULL,
42747
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
193 G_TYPE_DATE_TIME,
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
194 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
195
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
196 /**
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
197 * PurplePresence:login-time:
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
198 *
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
199 * The login-time of the presence.
42432
59c8baad6549 Add some missing since tags and other documentation for presences
Gary Kramlich <grim@reaperworld.com>
parents: 42310
diff changeset
200 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
201 * Since: 3.0
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
202 */
41963
d140e4f6bb02 Move the PurplePresence::login-time property from time_t to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 41740
diff changeset
203 properties[PROP_LOGIN_TIME] = g_param_spec_boxed(
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
204 "login-time", NULL, NULL,
41963
d140e4f6bb02 Move the PurplePresence::login-time property from time_t to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 41740
diff changeset
205 G_TYPE_DATE_TIME,
d140e4f6bb02 Move the PurplePresence::login-time property from time_t to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 41740
diff changeset
206 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
39435
b30e04a71ecf Use G_DEFINE_TYPE_WITH_PRIVATE for Purple*Presence.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
207
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
208 /**
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
209 * PurplePresence:primitive:
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
210 *
42705
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
211 * The [enum@Purple.PresencePrimitive] for this presence.
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
212 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
213 * Since: 3.0
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
214 */
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
215 properties[PROP_PRIMITIVE] = g_param_spec_enum(
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
216 "primitive", NULL, NULL,
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
217 PURPLE_TYPE_PRESENCE_PRIMITIVE,
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
218 PURPLE_PRESENCE_PRIMITIVE_OFFLINE,
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
219 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
220
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
221 /**
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
222 * PurplePresence:message:
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
223 *
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
224 * The status message of the presence.
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
225 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
226 * Since: 3.0
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
227 */
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
228 properties[PROP_MESSAGE] = g_param_spec_string(
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
229 "message", NULL, NULL,
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
230 NULL,
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
231 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
232
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
233 /**
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
234 * PurplePresence:emoji:
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
235 *
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
236 * The emoji or mood of the presence.
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
237 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
238 * Since: 3.0
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
239 */
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
240 properties[PROP_EMOJI] = g_param_spec_string(
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
241 "emoji", NULL, NULL,
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
242 NULL,
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
243 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
244
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
245 /**
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
246 * PurplePresence:mobile:
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
247 *
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
248 * Whether or not the presence is on a mobile device.
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
249 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
250 * Since: 3.0
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
251 */
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
252 properties[PROP_MOBILE] = g_param_spec_boolean(
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
253 "mobile", NULL, NULL,
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
254 FALSE,
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
255 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
256
42310
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
257 /**
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
258 * PurplePresence:notifications-disabled:
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
259 *
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
260 * Whether or not the presence has notifications disabled.
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
261 *
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
262 * Some protocols, like Slack, allow users to set an available schedule. By
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
263 * default it displays that the user has notifications turned off outside
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
264 * of that schedule.
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
265 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
266 * Since: 3.0
42310
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
267 */
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
268 properties[PROP_NOTIFICATIONS_DISABLED] = g_param_spec_boolean(
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
269 "notifications-disabled", NULL, NULL,
42310
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
270 FALSE,
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
271 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
272
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
273 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
43240
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
274
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
275 /**
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
276 * PurplePresence::primitive-changed:
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
277 * @presence: the instance
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
278 * @new_primitive: the new primitive
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
279 * @old_primitive: the old primitive
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
280 *
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
281 * This is emitted when the [property@Presence:primitive] property has
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
282 * changed.
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
283 *
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
284 * Since: 3.0
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
285 */
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
286 signals[SIG_PRIMITIVE_CHANGED] = g_signal_new_class_handler(
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
287 "primitive-changed",
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
288 G_OBJECT_CLASS_TYPE(klass),
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
289 G_SIGNAL_RUN_LAST,
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
290 NULL,
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
291 NULL,
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
292 NULL,
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
293 NULL,
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
294 G_TYPE_NONE,
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
295 2,
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
296 PURPLE_TYPE_PRESENCE_PRIMITIVE,
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
297 PURPLE_TYPE_PRESENCE_PRIMITIVE);
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
298 }
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
299
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
300 /******************************************************************************
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
301 * Public API
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
302 *****************************************************************************/
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
303 PurplePresence *
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
304 purple_presence_new(void) {
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
305 return g_object_new(PURPLE_TYPE_PRESENCE, NULL);
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
306 }
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
307
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
308 void
42747
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
309 purple_presence_set_idle_time(PurplePresence *presence, GDateTime *idle_time) {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
310 g_return_if_fail(PURPLE_IS_PRESENCE(presence));
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
311
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
312 if(birb_date_time_set(&presence->idle_time, idle_time)) {
42747
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
313 GObject *obj = G_OBJECT(presence);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
314
42747
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
315 g_object_freeze_notify(obj);
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
316 g_object_notify_by_pspec(obj, properties[PROP_IDLE]);
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
317 g_object_notify_by_pspec(obj, properties[PROP_IDLE_TIME]);
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
318 g_object_thaw_notify(obj);
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
319 }
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
320 }
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
321
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
322 void
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
323 purple_presence_set_idle(PurplePresence *presence, gboolean idle) {
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
324 GDateTime *idle_time = NULL;
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
325
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
326 g_return_if_fail(PURPLE_IS_PRESENCE(presence));
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
327
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
328 if(idle) {
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
329 idle_time = g_date_time_new_now_local();
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
330 }
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
331
42747
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
332 purple_presence_set_idle_time(presence, idle_time);
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
333
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
334 g_clear_pointer(&idle_time, g_date_time_unref);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
335 }
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
336
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
337 void
41963
d140e4f6bb02 Move the PurplePresence::login-time property from time_t to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 41740
diff changeset
338 purple_presence_set_login_time(PurplePresence *presence, GDateTime *login_time)
d140e4f6bb02 Move the PurplePresence::login-time property from time_t to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 41740
diff changeset
339 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
340 g_return_if_fail(PURPLE_IS_PRESENCE(presence));
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
341
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
342 if(birb_date_time_set(&presence->login_time, login_time)) {
42747
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
343 g_object_notify_by_pspec(G_OBJECT(presence),
801025bad2e1 Make PurplePresence final and other clean ups
Gary Kramlich <grim@reaperworld.com>
parents: 42725
diff changeset
344 properties[PROP_LOGIN_TIME]);
41963
d140e4f6bb02 Move the PurplePresence::login-time property from time_t to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 41740
diff changeset
345 }
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
346 }
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
347
42705
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
348 gboolean
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
349 purple_presence_is_available(PurplePresence *presence) {
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
350 g_return_val_if_fail(PURPLE_IS_PRESENCE(presence), FALSE);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
351
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
352 return (presence->primitive == PURPLE_PRESENCE_PRIMITIVE_AVAILABLE);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
353 }
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
354
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
355 gboolean
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
356 purple_presence_is_online(PurplePresence *presence) {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
357 g_return_val_if_fail(PURPLE_IS_PRESENCE(presence), FALSE);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
358
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
359 switch(presence->primitive) {
42705
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
360 case PURPLE_PRESENCE_PRIMITIVE_AVAILABLE:
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
361 case PURPLE_PRESENCE_PRIMITIVE_IDLE:
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
362 case PURPLE_PRESENCE_PRIMITIVE_INVISIBLE:
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
363 case PURPLE_PRESENCE_PRIMITIVE_AWAY:
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
364 case PURPLE_PRESENCE_PRIMITIVE_DO_NOT_DISTURB:
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
365 case PURPLE_PRESENCE_PRIMITIVE_STREAMING:
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
366 return TRUE;
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
367 case PURPLE_PRESENCE_PRIMITIVE_OFFLINE:
e78a46048ae7 Remove the old status API
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
368 default:
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
369 return FALSE;
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
370 }
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
371 }
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
372
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
373 gboolean
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
374 purple_presence_is_idle(PurplePresence *presence) {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
375 g_return_val_if_fail(PURPLE_IS_PRESENCE(presence), FALSE);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
376
40575
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
377 if(!purple_presence_is_online(presence)) {
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
378 return FALSE;
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
379 }
b82c365e04e8 Rename presence.[ch] to purplepresence.[ch], fix some docs, and other tweaks.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
380
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
381 return (presence->idle_time != NULL);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
382 }
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
383
42071
a719f0f3c600 Convert idle_time in PurplePresence to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 42051
diff changeset
384 GDateTime *
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
385 purple_presence_get_idle_time(PurplePresence *presence) {
42071
a719f0f3c600 Convert idle_time in PurplePresence to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 42051
diff changeset
386 g_return_val_if_fail(PURPLE_IS_PRESENCE(presence), NULL);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
387
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
388 return presence->idle_time;
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
389 }
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
390
41963
d140e4f6bb02 Move the PurplePresence::login-time property from time_t to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 41740
diff changeset
391 GDateTime *
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
392 purple_presence_get_login_time(PurplePresence *presence) {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
393 g_return_val_if_fail(PURPLE_IS_PRESENCE(presence), 0);
34834
f45f0745da61 Started GObjectification of PurplePresence.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
394
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
395 return presence->login_time;
34846
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34840
diff changeset
396 }
41740
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
397
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
398 int
41740
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
399 purple_presence_compare(PurplePresence *presence1, PurplePresence *presence2) {
42270
1bdd57a0c0d1 Propagate notify signals from the priority contact of a person
Gary Kramlich <grim@reaperworld.com>
parents: 42200
diff changeset
400 PurplePresencePrimitive primitive1 = PURPLE_PRESENCE_PRIMITIVE_OFFLINE;
1bdd57a0c0d1 Propagate notify signals from the priority contact of a person
Gary Kramlich <grim@reaperworld.com>
parents: 42200
diff changeset
401 PurplePresencePrimitive primitive2 = PURPLE_PRESENCE_PRIMITIVE_OFFLINE;
42071
a719f0f3c600 Convert idle_time in PurplePresence to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 42051
diff changeset
402 GDateTime *idle1 = NULL;
a719f0f3c600 Convert idle_time in PurplePresence to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 42051
diff changeset
403 GDateTime *idle2 = NULL;
41740
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
404
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
405 if(presence1 == presence2) {
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
406 return 0;
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
407 } else if (presence1 == NULL) {
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
408 return 1;
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
409 } else if (presence2 == NULL) {
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
410 return -1;
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
411 }
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
412
42270
1bdd57a0c0d1 Propagate notify signals from the priority contact of a person
Gary Kramlich <grim@reaperworld.com>
parents: 42200
diff changeset
413 primitive1 = purple_presence_get_primitive(presence1);
1bdd57a0c0d1 Propagate notify signals from the priority contact of a person
Gary Kramlich <grim@reaperworld.com>
parents: 42200
diff changeset
414 primitive2 = purple_presence_get_primitive(presence2);
1bdd57a0c0d1 Propagate notify signals from the priority contact of a person
Gary Kramlich <grim@reaperworld.com>
parents: 42200
diff changeset
415
1bdd57a0c0d1 Propagate notify signals from the priority contact of a person
Gary Kramlich <grim@reaperworld.com>
parents: 42200
diff changeset
416 if(primitive1 != PURPLE_PRESENCE_PRIMITIVE_OFFLINE &&
1bdd57a0c0d1 Propagate notify signals from the priority contact of a person
Gary Kramlich <grim@reaperworld.com>
parents: 42200
diff changeset
417 primitive2 == PURPLE_PRESENCE_PRIMITIVE_OFFLINE)
41740
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
418 {
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
419 return -1;
42270
1bdd57a0c0d1 Propagate notify signals from the priority contact of a person
Gary Kramlich <grim@reaperworld.com>
parents: 42200
diff changeset
420 } else if(primitive1 == PURPLE_PRESENCE_PRIMITIVE_OFFLINE &&
1bdd57a0c0d1 Propagate notify signals from the priority contact of a person
Gary Kramlich <grim@reaperworld.com>
parents: 42200
diff changeset
421 primitive2 != PURPLE_PRESENCE_PRIMITIVE_OFFLINE)
41740
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
422 {
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
423 return 1;
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
424 }
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
425
42071
a719f0f3c600 Convert idle_time in PurplePresence to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 42051
diff changeset
426 idle1 = purple_presence_get_idle_time(presence1);
a719f0f3c600 Convert idle_time in PurplePresence to GDateTime
Gary Kramlich <grim@reaperworld.com>
parents: 42051
diff changeset
427 idle2 = purple_presence_get_idle_time(presence2);
41740
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
428
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
429 return birb_date_time_compare(idle1, idle2);
41740
d8fcd2907c3d Add purple_presence_compare
Gary Kramlich <grim@reaperworld.com>
parents: 40575
diff changeset
430 }
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
431
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
432 PurplePresencePrimitive
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
433 purple_presence_get_primitive(PurplePresence *presence) {
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
434 g_return_val_if_fail(PURPLE_IS_PRESENCE(presence),
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
435 PURPLE_PRESENCE_PRIMITIVE_OFFLINE);
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
436
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
437 return presence->primitive;
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
438 }
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
439
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
440 void
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
441 purple_presence_set_primitive(PurplePresence *presence,
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
442 PurplePresencePrimitive primitive)
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
443 {
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
444 g_return_if_fail(PURPLE_IS_PRESENCE(presence));
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
445
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
446 if(presence->primitive != primitive) {
43240
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
447 PurplePresencePrimitive old = presence->primitive;
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
448
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
449 presence->primitive = primitive;
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
450
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
451 g_object_notify_by_pspec(G_OBJECT(presence),
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
452 properties[PROP_PRIMITIVE]);
43240
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
453
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
454 g_signal_emit(G_OBJECT(presence), signals[SIG_PRIMITIVE_CHANGED], 0,
0dd5d0ab4908 Add Purple.Presence.primitive-changed signal
Gary Kramlich <grim@reaperworld.com>
parents: 42997
diff changeset
455 presence->primitive, old);
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
456 }
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
457 }
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
458
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
459 const char *
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
460 purple_presence_get_message(PurplePresence *presence) {
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
461 g_return_val_if_fail(PURPLE_IS_PRESENCE(presence), NULL);
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
462
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
463 return presence->message;
42051
18adb1710a54 Add read-only properties for primitive and message to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 41963
diff changeset
464 }
42173
50558d740eff Add purple_presence_primitive_to_string for easier display
Gary Kramlich <grim@reaperworld.com>
parents: 42071
diff changeset
465
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
466 void
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
467 purple_presence_set_message(PurplePresence *presence, const char *message) {
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
468 g_return_if_fail(PURPLE_IS_PRESENCE(presence));
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
469
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42748
diff changeset
470 if(g_set_str(&presence->message, message)) {
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
471 g_object_notify_by_pspec(G_OBJECT(presence), properties[PROP_MESSAGE]);
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
472 }
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
473 }
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
474
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
475 const char *
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
476 purple_presence_get_emoji(PurplePresence *presence) {
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
477 g_return_val_if_fail(PURPLE_IS_PRESENCE(presence), NULL);
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
478
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
479 return presence->emoji;
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
480 }
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
481
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
482 void
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
483 purple_presence_set_emoji(PurplePresence *presence, const char *emoji) {
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
484 g_return_if_fail(PURPLE_IS_PRESENCE(presence));
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
485
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42748
diff changeset
486 if(g_set_str(&presence->emoji, emoji)) {
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
487 g_object_notify_by_pspec(G_OBJECT(presence), properties[PROP_EMOJI]);
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
488 }
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
489 }
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
490
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
491 gboolean
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
492 purple_presence_get_mobile(PurplePresence *presence) {
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
493 g_return_val_if_fail(PURPLE_IS_PRESENCE(presence), FALSE);
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
494
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
495 return presence->mobile;
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
496 }
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
497
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
498 void
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
499 purple_presence_set_mobile(PurplePresence *presence, gboolean mobile) {
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
500 g_return_if_fail(PURPLE_IS_PRESENCE(presence));
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
501
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
502 if(presence->mobile != mobile) {
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
503 presence->mobile = mobile;
42177
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
504
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
505 g_object_notify_by_pspec(G_OBJECT(presence), properties[PROP_MOBILE]);
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
506 }
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
507 }
d5722fdbdf86 Add "new-status" properties to PurplePresence with fallbacks were applicable
Gary Kramlich <grim@reaperworld.com>
parents: 42173
diff changeset
508
42310
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
509 gboolean
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
510 purple_presence_get_notifications_disabled(PurplePresence *presence) {
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
511 g_return_val_if_fail(PURPLE_IS_PRESENCE(presence), FALSE);
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
512
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
513 return presence->notifications_disabled;
42310
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
514 }
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
515
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
516 void
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
517 purple_presence_set_notifications_disabled(PurplePresence *presence,
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
518 gboolean notifications_disabled)
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
519 {
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
520 g_return_if_fail(PURPLE_IS_PRESENCE(presence));
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
521
42748
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
522 if(presence->notifications_disabled != notifications_disabled) {
939814cb9972 Remove the private data from PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42747
diff changeset
523 presence->notifications_disabled = notifications_disabled;
42310
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
524
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
525 g_object_notify_by_pspec(G_OBJECT(presence),
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
526 properties[PROP_NOTIFICATIONS_DISABLED]);
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
527 }
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
528 }
eea341b0d614 Add a notifications-disabled property to PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents: 42270
diff changeset
529
42173
50558d740eff Add purple_presence_primitive_to_string for easier display
Gary Kramlich <grim@reaperworld.com>
parents: 42071
diff changeset
530 const char *
50558d740eff Add purple_presence_primitive_to_string for easier display
Gary Kramlich <grim@reaperworld.com>
parents: 42071
diff changeset
531 purple_presence_primitive_to_string(PurplePresencePrimitive primitive) {
50558d740eff Add purple_presence_primitive_to_string for easier display
Gary Kramlich <grim@reaperworld.com>
parents: 42071
diff changeset
532 switch(primitive) {
42859
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
533 case PURPLE_PRESENCE_PRIMITIVE_OFFLINE:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
534 return _("Offline");
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
535 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
536 case PURPLE_PRESENCE_PRIMITIVE_AVAILABLE:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
537 return _("Available");
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
538 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
539 case PURPLE_PRESENCE_PRIMITIVE_IDLE:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
540 return _("Idle");
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
541 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
542 case PURPLE_PRESENCE_PRIMITIVE_INVISIBLE:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
543 return _("Invisible");
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
544 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
545 case PURPLE_PRESENCE_PRIMITIVE_AWAY:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
546 return _("Away");
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
547 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
548 case PURPLE_PRESENCE_PRIMITIVE_DO_NOT_DISTURB:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
549 return _("Do not disturb");
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
550 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
551 case PURPLE_PRESENCE_PRIMITIVE_STREAMING:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
552 return _("Streaming");
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
553 break;
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
554 default:
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
555 return _("Unknown");
939cdcccf5ae Modernize PurplePresence and its unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
556 break;
42173
50558d740eff Add purple_presence_primitive_to_string for easier display
Gary Kramlich <grim@reaperworld.com>
parents: 42071
diff changeset
557 }
50558d740eff Add purple_presence_primitive_to_string for easier display
Gary Kramlich <grim@reaperworld.com>
parents: 42071
diff changeset
558 }

mercurial