Sun, 03 Nov 2024 00:05:44 -0500
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 | } |