pidgin/pidginpresenceicon.c

Sun, 03 Nov 2024 00:05:44 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sun, 03 Nov 2024 00:05:44 -0500
changeset 43045
308e8d0ce68c
parent 42767
8cf1d11b59c1
child 43072
a59a119b74f5
permissions
-rw-r--r--

remove purple3-url-handler.desktop.in.in

The application that did the launching was removed long ago. Also this should
be implemented by the user interfaces and they might provide separate files to
groups schemas as well.

Testing Done:
Called in the turtles.

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

40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Pidgin - Internet Messenger
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * Pidgin is the legal property of its developers, whose names are too numerous
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * source distribution.
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 *
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * (at your option) any later version.
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 *
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 * GNU General Public License for more details.
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 *
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 */
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 #include "pidgin/pidginpresenceicon.h"
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24
41027
aa0e688f2f46 Add a bunch of icon name utility functions
Gary Kramlich <grim@reaperworld.com>
parents: 40652
diff changeset
25 #include "pidgin/pidginiconname.h"
40652
0006f8158d6e Extract pidgin_presence_get_icon_name from PidginPresenceIcon so others can use it.
Gary Kramlich <grim@reaperworld.com>
parents: 40604
diff changeset
26
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27 struct _PidginPresenceIcon {
41355
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
28 GtkBox parent;
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
29
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
30 GtkWidget *icon;
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32 PurplePresence *presence;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 gchar *fallback;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 };
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36 enum {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 PROP_0,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38 PROP_PRESENCE,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39 PROP_FALLBACK,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40 PROP_ICON_SIZE,
42584
687260353985 Make signal and property enums and initializers consistent
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42575
diff changeset
41 N_PROPERTIES,
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42 };
42584
687260353985 Make signal and property enums and initializers consistent
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42575
diff changeset
43 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44
42575
580339aa47cc Make sure all of the final types in pidgin are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42537
diff changeset
45 G_DEFINE_FINAL_TYPE(PidginPresenceIcon, pidgin_presence_icon, GTK_TYPE_BOX)
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47 /******************************************************************************
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 * Implementation
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49 *****************************************************************************/
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 static void
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51 pidgin_presence_icon_update(PidginPresenceIcon *icon) {
40652
0006f8158d6e Extract pidgin_presence_get_icon_name from PidginPresenceIcon so others can use it.
Gary Kramlich <grim@reaperworld.com>
parents: 40604
diff changeset
52 const gchar *icon_name = NULL;
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53
41027
aa0e688f2f46 Add a bunch of icon name utility functions
Gary Kramlich <grim@reaperworld.com>
parents: 40652
diff changeset
54 icon_name = pidgin_icon_name_from_presence(icon->presence, icon->fallback);
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55
41545
b02de51a738e Update PidginPresenceIcon for GTK4
Gary Kramlich <grim@reaperworld.com>
parents: 41479
diff changeset
56 gtk_image_set_from_icon_name(GTK_IMAGE(icon->icon), icon_name);
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 static void
41947
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41545
diff changeset
60 pidgin_presence_icon_active_status_changed_cb(G_GNUC_UNUSED GObject *obj,
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41545
diff changeset
61 G_GNUC_UNUSED GParamSpec *pspec,
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62 gpointer data)
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64 pidgin_presence_icon_update(PIDGIN_PRESENCE_ICON(data));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 /******************************************************************************
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 * GObject Implementation
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 *****************************************************************************/
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 static void
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 pidgin_presence_icon_get_property(GObject *obj, guint param_id, GValue *value,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 GParamSpec *pspec)
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74 PidginPresenceIcon *icon = PIDGIN_PRESENCE_ICON(obj);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 switch(param_id) {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
77 case PROP_PRESENCE:
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 g_value_set_object(value, pidgin_presence_icon_get_presence(icon));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79 break;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80 case PROP_FALLBACK:
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81 g_value_set_string(value, pidgin_presence_icon_get_fallback(icon));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82 break;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83 case PROP_ICON_SIZE:
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84 g_value_set_enum(value, pidgin_presence_icon_get_icon_size(icon));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85 break;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86 default:
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
87 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 break;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
90 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92 static void
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
93 pidgin_presence_icon_set_property(GObject *obj, guint param_id,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94 const GValue *value, GParamSpec *pspec)
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95 {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96 PidginPresenceIcon *icon = PIDGIN_PRESENCE_ICON(obj);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
98 switch(param_id) {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
99 case PROP_PRESENCE:
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
100 pidgin_presence_icon_set_presence(icon, g_value_get_object(value));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101 break;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
102 case PROP_FALLBACK:
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
103 pidgin_presence_icon_set_fallback(icon, g_value_get_string(value));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
104 break;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
105 case PROP_ICON_SIZE:
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
106 pidgin_presence_icon_set_icon_size(icon, g_value_get_enum(value));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
107 break;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
108 default:
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
109 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
110 break;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
111 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
112 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
113
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
114 static void
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
115 pidgin_presence_icon_finalize(GObject *obj) {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
116 PidginPresenceIcon *icon = PIDGIN_PRESENCE_ICON(obj);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
117
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
118 g_clear_object(&icon->presence);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
119 g_clear_pointer(&icon->fallback, g_free);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
120
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
121 G_OBJECT_CLASS(pidgin_presence_icon_parent_class)->finalize(obj);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
122 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
123
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
124 static void
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
125 pidgin_presence_icon_init(PidginPresenceIcon *presenceicon) {
41355
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
126 gtk_widget_init_template(GTK_WIDGET(presenceicon));
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
127 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
128
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
129 static void
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
130 pidgin_presence_icon_class_init(PidginPresenceIconClass *klass) {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
131 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
41355
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
132 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
133
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
134 obj_class->finalize = pidgin_presence_icon_finalize;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
135 obj_class->get_property = pidgin_presence_icon_get_property;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
136 obj_class->set_property = pidgin_presence_icon_set_property;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
137
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
138 /**
41479
3d2e114380f6 Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41355
diff changeset
139 * PidginPresenceIcon:presence:
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
140 *
41479
3d2e114380f6 Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41355
diff changeset
141 * The presence that this icon will be representing.
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
142 */
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
143 properties[PROP_PRESENCE] = g_param_spec_object(
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
144 "presence", "presence",
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
145 "The presence that this icon is representing",
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
146 PURPLE_TYPE_PRESENCE,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
147 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
148
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
149 /**
41479
3d2e114380f6 Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41355
diff changeset
150 * PidginPresenceIcon:fallback:
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
151 *
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
152 * The name of the icon to use as a fallback when no presence is set.
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
153 */
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
154 properties[PROP_FALLBACK] = g_param_spec_string(
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
155 "fallback", "fallback",
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
156 "The name of the icon to use as a fallback",
42537
323123b137f4 Fix the default fallback icon name for PidginPresenceIcon
Gary Kramlich <grim@reaperworld.com>
parents: 41947
diff changeset
157 "pidgin-user-invisible",
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
158 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
159
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
160 /**
41479
3d2e114380f6 Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41355
diff changeset
161 * PidginPresenceIcon:icon-size:
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
162 *
41479
3d2e114380f6 Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41355
diff changeset
163 * The size of the icon that should be used.
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
164 */
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
165 properties[PROP_ICON_SIZE] = g_param_spec_enum(
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
166 "icon-size", "icon-size",
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
167 "The GtkIconSize to use",
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
168 GTK_TYPE_ICON_SIZE,
41545
b02de51a738e Update PidginPresenceIcon for GTK4
Gary Kramlich <grim@reaperworld.com>
parents: 41479
diff changeset
169 GTK_ICON_SIZE_NORMAL,
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
170 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
171
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
172 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
41355
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
173
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
174 gtk_widget_class_set_template_from_resource(
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
175 widget_class,
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
176 "/im/pidgin/Pidgin3/presenceicon.ui"
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
177 );
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
178
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
179 gtk_widget_class_bind_template_child(widget_class, PidginPresenceIcon,
cb48a8dd1bfc Re-subclass PidginPresenceIcon onto GtkBox as GtkImage is final in Gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41027
diff changeset
180 icon);
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
181 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
182
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
183 /******************************************************************************
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
184 * Public API
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
185 *****************************************************************************/
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
186 GtkWidget *
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
187 pidgin_presence_icon_new(PurplePresence *presence, const gchar *fallback,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
188 GtkIconSize icon_size)
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
189 {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
190 return g_object_new(
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
191 PIDGIN_TYPE_PRESENCE_ICON,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
192 "presence", presence,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
193 "fallback", fallback,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
194 "icon_size", icon_size,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
195 NULL);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
196 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
197
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
198 PurplePresence *
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
199 pidgin_presence_icon_get_presence(PidginPresenceIcon *icon) {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
200 g_return_val_if_fail(PIDGIN_IS_PRESENCE_ICON(icon), NULL);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
201
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
202 return icon->presence;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
203 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
204
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
205 void
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
206 pidgin_presence_icon_set_presence(PidginPresenceIcon *icon,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
207 PurplePresence *presence)
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
208 {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
209 PurplePresence *old = NULL;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
210
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
211 g_return_if_fail(PIDGIN_IS_PRESENCE_ICON(icon));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
212
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
213 /* We only want to disconnect signal handlers if the presence was changed,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
214 * but to do that, we need to keep a reference to the old presence.
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
215 */
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
216 if(PURPLE_IS_PRESENCE(icon->presence)) {
40604
cd55d0fc0f81 Fix some more new warnings.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40601
diff changeset
217 old = g_object_ref(icon->presence);
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
218 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
219
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
220 if(g_set_object(&icon->presence, presence)) {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
221 if(G_IS_OBJECT(old)) {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
222 /* If we previously had a presence, disconnect our signal handlers.
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
223 */
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
224 g_signal_handlers_disconnect_by_data(old, icon);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
225 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
226
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
227 if(PURPLE_IS_PRESENCE(icon->presence)) {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
228 g_signal_connect(icon->presence, "notify::active-status",
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
229 G_CALLBACK(pidgin_presence_icon_active_status_changed_cb),
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
230 icon);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
231 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
232
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
233 g_object_freeze_notify(G_OBJECT(icon));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
234
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
235 pidgin_presence_icon_update(icon);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
236
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
237 g_object_notify_by_pspec(G_OBJECT(icon), properties[PROP_PRESENCE]);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
238
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
239 g_object_thaw_notify(G_OBJECT(icon));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
240 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
241
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
242 g_clear_object(&old);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
243 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
244
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
245 const gchar *
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
246 pidgin_presence_icon_get_fallback(PidginPresenceIcon *icon) {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
247 g_return_val_if_fail(PIDGIN_IS_PRESENCE_ICON(icon), NULL);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
248
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
249 return icon->fallback;
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
250 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
251
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
252 void
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
253 pidgin_presence_icon_set_fallback(PidginPresenceIcon *icon,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
254 const gchar *fallback)
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
255 {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
256 g_return_if_fail(PIDGIN_IS_PRESENCE_ICON(icon));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
257 g_return_if_fail(fallback != NULL);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
258
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42584
diff changeset
259 if(g_set_str(&icon->fallback, fallback)) {
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42584
diff changeset
260 g_object_freeze_notify(G_OBJECT(icon));
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
261
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42584
diff changeset
262 pidgin_presence_icon_update(icon);
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
263
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42584
diff changeset
264 g_object_notify_by_pspec(G_OBJECT(icon), properties[PROP_FALLBACK]);
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
265
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42584
diff changeset
266 g_object_thaw_notify(G_OBJECT(icon));
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42584
diff changeset
267 }
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
268 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
269
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
270 GtkIconSize
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
271 pidgin_presence_icon_get_icon_size(PidginPresenceIcon *icon) {
41545
b02de51a738e Update PidginPresenceIcon for GTK4
Gary Kramlich <grim@reaperworld.com>
parents: 41479
diff changeset
272 g_return_val_if_fail(PIDGIN_IS_PRESENCE_ICON(icon), GTK_ICON_SIZE_INHERIT);
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
273
41545
b02de51a738e Update PidginPresenceIcon for GTK4
Gary Kramlich <grim@reaperworld.com>
parents: 41479
diff changeset
274 return gtk_image_get_icon_size(GTK_IMAGE(icon->icon));
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
275 }
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
276
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
277 void
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
278 pidgin_presence_icon_set_icon_size(PidginPresenceIcon *icon,
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
279 GtkIconSize icon_size)
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
280 {
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
281 g_return_if_fail(PIDGIN_IS_PRESENCE_ICON(icon));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
282
41545
b02de51a738e Update PidginPresenceIcon for GTK4
Gary Kramlich <grim@reaperworld.com>
parents: 41479
diff changeset
283 gtk_image_set_icon_size(GTK_IMAGE(icon->icon), icon_size);
40601
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
284
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
285 g_object_freeze_notify(G_OBJECT(icon));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
286
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
287 pidgin_presence_icon_update(icon);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
288
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
289 g_object_notify_by_pspec(G_OBJECT(icon), properties[PROP_ICON_SIZE]);
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
290
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
291 g_object_thaw_notify(G_OBJECT(icon));
228284223862 Create PidginPresenceIcon that displays the correct icon for its bound PurplePresence
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
292 }

mercurial