libpurple/purplesavedpresence.c

Tue, 25 Apr 2023 00:46:17 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 25 Apr 2023 00:46:17 -0500
changeset 42207
7c16e3b1cce8
child 42226
f44497b3f5d9
permissions
-rw-r--r--

Create PurpleSavedPresence for saving the users presences

Testing Done:
Ran the unit tests.

Bugs closed: PIDGIN-17795

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

42207
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * purple
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * source distribution.
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * (at your option) any later version.
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 * GNU General Public License for more details.
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 */
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 #include <glib/gi18n-lib.h>
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25 #include "purpleenums.h"
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26 #include "purplesavedpresence.h"
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27 #include "util.h"
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29 struct _PurpleSavedPresence {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30 GObject parent;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32 GDateTime *last_used;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 guint use_count;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35 char *name;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 PurplePresencePrimitive primitive;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38 char *message;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39 char *emoji;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40 };
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42 enum {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 PROP_0,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44 PROP_LAST_USED,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 PROP_USE_COUNT,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46 PROP_NAME,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47 PROP_PRIMITIVE,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 PROP_MESSAGE,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49 PROP_EMOJI,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 N_PROPERTIES
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51 };
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 static GParamSpec *properties[N_PROPERTIES];
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54 G_DEFINE_TYPE(PurpleSavedPresence, purple_saved_presence, G_TYPE_OBJECT)
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56 /******************************************************************************
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 * GObject Implementation
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 *****************************************************************************/
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 static void
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60 purple_saved_presence_set_property(GObject *obj, guint param_id,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 const GValue *value, GParamSpec *pspec)
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62 {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 PurpleSavedPresence *presence = PURPLE_SAVED_PRESENCE(obj);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 switch(param_id) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 case PROP_LAST_USED:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 purple_saved_presence_set_last_used(presence,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 g_value_get_boxed(value));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 case PROP_USE_COUNT:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 purple_saved_presence_set_use_count(presence,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 g_value_get_uint(value));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74 case PROP_NAME:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 purple_saved_presence_set_name(presence,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 g_value_get_string(value));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
77 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 case PROP_PRIMITIVE:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79 purple_saved_presence_set_primitive(presence,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80 g_value_get_enum(value));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82 case PROP_MESSAGE:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83 purple_saved_presence_set_message(presence,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84 g_value_get_string(value));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86 case PROP_EMOJI:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
87 purple_saved_presence_set_emoji(presence,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 g_value_get_string(value));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
90 default:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
93 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96 static void
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97 purple_saved_presence_get_property(GObject *obj, guint param_id, GValue *value,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
98 GParamSpec *pspec)
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
99 {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
100 PurpleSavedPresence *presence = PURPLE_SAVED_PRESENCE(obj);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
102 switch(param_id) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
103 case PROP_LAST_USED:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
104 g_value_set_boxed(value,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
105 purple_saved_presence_get_last_used(presence));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
106 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
107 case PROP_USE_COUNT:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
108 g_value_set_uint(value,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
109 purple_saved_presence_get_use_count(presence));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
110 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
111 case PROP_NAME:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
112 g_value_set_string(value,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
113 purple_saved_presence_get_name(presence));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
114 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
115 case PROP_PRIMITIVE:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
116 g_value_set_enum(value,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
117 purple_saved_presence_get_primitive(presence));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
118 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
119 case PROP_MESSAGE:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
120 g_value_set_string(value,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
121 purple_saved_presence_get_message(presence));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
122 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
123 case PROP_EMOJI:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
124 g_value_set_string(value,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
125 purple_saved_presence_get_emoji(presence));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
126 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
127 default:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
128 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
129 break;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
130 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
131 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
132
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
133 static void
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
134 purple_saved_presence_init(G_GNUC_UNUSED PurpleSavedPresence *presence) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
135 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
136
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
137 static void
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
138 purple_saved_presence_finalize(GObject *obj) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
139 PurpleSavedPresence *presence = PURPLE_SAVED_PRESENCE(obj);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
140
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
141 g_clear_pointer(&presence->last_used, g_date_time_unref);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
142
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
143 g_clear_pointer(&presence->name, g_free);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
144 g_clear_pointer(&presence->message, g_free);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
145 g_clear_pointer(&presence->emoji, g_free);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
146
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
147 G_OBJECT_CLASS(purple_saved_presence_parent_class)->finalize(obj);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
148 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
149
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
150 static void
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
151 purple_saved_presence_class_init(PurpleSavedPresenceClass *klass) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
152 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
153
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
154 obj_class->get_property = purple_saved_presence_get_property;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
155 obj_class->set_property = purple_saved_presence_set_property;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
156 obj_class->finalize = purple_saved_presence_finalize;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
157
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
158 /**
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
159 * PurpleSavedPresence:last-used:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
160 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
161 * The [struct@GLib.DateTime] when this saved presence was last used.
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
162 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
163 * Since: 3.0.0
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
164 */
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
165 properties[PROP_LAST_USED] = g_param_spec_boxed(
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
166 "last-used", "last-used",
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
167 "The time this presence was last used.",
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
168 G_TYPE_DATE_TIME,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
169 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
170
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
171 /**
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
172 * PurpleSavedPresence:use-count:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
173 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
174 * The number of times this saved presence has been used.
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
175 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
176 * Since: 3.0.0
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
177 */
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
178 properties[PROP_USE_COUNT] = g_param_spec_uint(
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
179 "use-count", "use-count",
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
180 "The number of times this saved presence has been used.",
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
181 0, G_MAXUINT, 0,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
182 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
183
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
184 /**
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
185 * PurpleSavedPresence:name:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
186 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
187 * The name of the saved presence.
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
188 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
189 * Since: 3.0.0
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
190 */
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
191 properties[PROP_NAME] = g_param_spec_string(
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
192 "name", "name",
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
193 "The name of this saved presence.",
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
194 NULL,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
195 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
196
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
197 /**
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
198 * PurpleSavedPresence:primitive:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
199 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
200 * The [enum@Purple.StatusPrimitive] for this saved presence.
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
201 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
202 * Since: 3.0.0
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
203 */
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
204 properties[PROP_PRIMITIVE] = g_param_spec_enum(
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
205 "primitive", "primitive",
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
206 "The primitive for this saved presence.",
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
207 PURPLE_TYPE_PRESENCE_PRIMITIVE,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
208 PURPLE_PRESENCE_PRIMITIVE_OFFLINE,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
209 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
210
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
211 /**
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
212 * PurpleSavedPresence:message:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
213 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
214 * The status message of this saved presence.
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
215 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
216 * Since: 3.0.0
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
217 */
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
218 properties[PROP_MESSAGE] = g_param_spec_string(
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
219 "message", "message",
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
220 "The status message of this saved presence.",
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
221 NULL,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
222 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
223
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
224 /**
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
225 * PurpleSavedPresence:emoji:
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
226 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
227 * The emoji or mood of the presence.
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
228 *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
229 * Since: 3.0.0
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
230 */
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
231 properties[PROP_EMOJI] = g_param_spec_string(
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
232 "emoji", "emoji",
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
233 "The emoji for this saved presence.",
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
234 NULL,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
235 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
236
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
237 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
238 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
239
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
240 /******************************************************************************
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
241 * Public API
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
242 *****************************************************************************/
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
243 PurpleSavedPresence *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
244 purple_saved_presence_new(void) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
245 return g_object_new(PURPLE_TYPE_SAVED_PRESENCE, NULL);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
246 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
247
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
248 GDateTime *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
249 purple_saved_presence_get_last_used(PurpleSavedPresence *presence) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
250 g_return_val_if_fail(PURPLE_IS_SAVED_PRESENCE(presence), NULL);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
251
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
252 return presence->last_used;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
253 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
254
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
255 void
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
256 purple_saved_presence_set_last_used(PurpleSavedPresence *presence,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
257 GDateTime *last_used)
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
258 {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
259 g_return_if_fail(PURPLE_IS_SAVED_PRESENCE(presence));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
260
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
261 if(presence->last_used != last_used) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
262 g_clear_pointer(&presence->last_used, g_date_time_unref);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
263 if(last_used != NULL) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
264 presence->last_used = g_date_time_ref(last_used);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
265 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
266
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
267 g_object_notify_by_pspec(G_OBJECT(presence),
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
268 properties[PROP_LAST_USED]);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
269 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
270 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
271
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
272 guint
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
273 purple_saved_presence_get_use_count(PurpleSavedPresence *presence) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
274 g_return_val_if_fail(PURPLE_IS_SAVED_PRESENCE(presence), 0);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
275
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
276 return presence->use_count;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
277 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
278
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
279 void
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
280 purple_saved_presence_set_use_count(PurpleSavedPresence *presence,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
281 guint use_count)
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
282 {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
283 g_return_if_fail(PURPLE_IS_SAVED_PRESENCE(presence));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
284
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
285 if(presence->use_count != use_count) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
286 presence->use_count = use_count;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
287
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
288 g_object_notify_by_pspec(G_OBJECT(presence),
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
289 properties[PROP_USE_COUNT]);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
290 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
291 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
292
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
293 const char *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
294 purple_saved_presence_get_name(PurpleSavedPresence *presence) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
295 g_return_val_if_fail(PURPLE_IS_SAVED_PRESENCE(presence), NULL);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
296
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
297 return presence->name;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
298 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
299
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
300 void
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
301 purple_saved_presence_set_name(PurpleSavedPresence *presence,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
302 const char *name)
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
303 {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
304 g_return_if_fail(PURPLE_IS_SAVED_PRESENCE(presence));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
305
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
306 if(!purple_strequal(presence->name, name)) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
307 g_free(presence->name);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
308 presence->name = g_strdup(name);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
309
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
310 g_object_notify_by_pspec(G_OBJECT(presence), properties[PROP_NAME]);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
311 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
312 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
313
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
314 PurplePresencePrimitive
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
315 purple_saved_presence_get_primitive(PurpleSavedPresence *presence) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
316 g_return_val_if_fail(PURPLE_IS_SAVED_PRESENCE(presence),
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
317 PURPLE_PRESENCE_PRIMITIVE_OFFLINE);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
318
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
319 return presence->primitive;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
320 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
321
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
322 void
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
323 purple_saved_presence_set_primitive(PurpleSavedPresence *presence,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
324 PurplePresencePrimitive primitive)
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
325 {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
326 g_return_if_fail(PURPLE_IS_SAVED_PRESENCE(presence));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
327
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
328 if(presence->primitive != primitive) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
329 presence->primitive = primitive;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
330
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
331 g_object_notify_by_pspec(G_OBJECT(presence),
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
332 properties[PROP_PRIMITIVE]);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
333 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
334 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
335
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
336 const char *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
337 purple_saved_presence_get_message(PurpleSavedPresence *presence) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
338 g_return_val_if_fail(PURPLE_IS_SAVED_PRESENCE(presence), NULL);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
339
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
340 return presence->message;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
341 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
342
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
343 void
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
344 purple_saved_presence_set_message(PurpleSavedPresence *presence,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
345 const char *message)
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
346 {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
347 g_return_if_fail(PURPLE_IS_SAVED_PRESENCE(presence));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
348
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
349 if(!purple_strequal(presence->message, message)) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
350 g_free(presence->message);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
351 presence->message = g_strdup(message);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
352
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
353 g_object_notify_by_pspec(G_OBJECT(presence), properties[PROP_MESSAGE]);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
354 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
355 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
356
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
357 const char *
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
358 purple_saved_presence_get_emoji(PurpleSavedPresence *presence) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
359 g_return_val_if_fail(PURPLE_IS_SAVED_PRESENCE(presence), NULL);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
360
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
361 return presence->emoji;
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
362 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
363
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
364 void
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
365 purple_saved_presence_set_emoji(PurpleSavedPresence *presence,
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
366 const char *emoji)
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
367 {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
368 g_return_if_fail(PURPLE_IS_SAVED_PRESENCE(presence));
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
369
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
370 if(!purple_strequal(presence->emoji, emoji)) {
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
371 g_free(presence->emoji);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
372 presence->emoji = g_strdup(emoji);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
373
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
374 g_object_notify_by_pspec(G_OBJECT(presence), properties[PROP_EMOJI]);
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
375 }
7c16e3b1cce8 Create PurpleSavedPresence for saving the users presences
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
376 }

mercurial