pidgin/pidginbadges.c

Wed, 01 Jan 2025 15:32:28 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Wed, 01 Jan 2025 15:32:28 -0600
changeset 43120
a7fd7e06c486
parent 43083
54ca24fedfd9
permissions
-rw-r--r--

Prepare for the 2.90.1 release

Testing Done:
Ran `meson dist`

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

43083
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Pidgin - Internet Messenger
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * Pidgin is the legal property of its developers, whose names are too numerous
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * source distribution.
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 *
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * (at your option) any later version.
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 *
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 * GNU General Public License for more details.
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 *
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 */
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22 #include <glib/gi18n-lib.h>
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24 #include <gtk/gtk.h>
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26 #include "pidginbadges.h"
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28 struct _PidginBadges {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29 AdwBin parent;
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31 PurpleBadges *badges;
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 GtkSliceListModel *model;
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 };
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36 enum {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 PROP_0,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38 PROP_BADGES,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39 N_PROPERTIES,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40 };
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 /******************************************************************************
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44 * GObject implementation
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 *****************************************************************************/
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46 G_DEFINE_FINAL_TYPE(PidginBadges, pidgin_badges, ADW_TYPE_BIN)
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 static void
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49 pidgin_badges_get_property(GObject *object, guint prop_id, GValue *value,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 GParamSpec *pspec)
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51 {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 PidginBadges *badges = PIDGIN_BADGES(object);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54 switch (prop_id) {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55 case PROP_BADGES:
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56 g_value_set_object(value, pidgin_badges_get_badges(badges));
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 break;
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 default:
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60 break;
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 }
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62 }
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64 static void
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 pidgin_badges_set_property(GObject *object, guint prop_id, const GValue *value,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 GParamSpec *pspec)
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 PidginBadges *badges = PIDGIN_BADGES(object);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 switch (prop_id) {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 case PROP_BADGES:
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 pidgin_badges_set_badges(badges, g_value_get_object(value));
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 break;
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74 default:
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 break;
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
77 }
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 }
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80 static void
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81 pidgin_badges_finalize(GObject *obj) {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82 PidginBadges *badges = PIDGIN_BADGES(obj);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84 g_clear_object(&badges->badges);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86 G_OBJECT_CLASS(pidgin_badges_parent_class)->finalize(obj);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
87 }
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89 static void
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
90 pidgin_badges_class_init(PidginBadgesClass *klass) {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
93
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94 /* Properties */
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95 obj_class->get_property = pidgin_badges_get_property;
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96 obj_class->set_property = pidgin_badges_set_property;
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97 obj_class->finalize = pidgin_badges_finalize;
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
98
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
99 /**
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
100 * PidginBadges:badges:
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101 *
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
102 * The badges that are being displayed.
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
103 *
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
104 * Since: 3.0
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
105 */
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
106 properties[PROP_BADGES] = g_param_spec_object(
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
107 "badges", NULL, NULL,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
108 PURPLE_TYPE_BADGES,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
109 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
110
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
111 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
112
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
113 /* Widget template */
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
114 gtk_widget_class_set_template_from_resource(widget_class,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
115 "/im/pidgin/Pidgin3/badges.ui");
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
116
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
117 gtk_widget_class_bind_template_child(widget_class, PidginBadges,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
118 model);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
119 }
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
120
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
121 static void
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
122 pidgin_badges_init(PidginBadges *badges) {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
123 gtk_widget_init_template(GTK_WIDGET(badges));
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
124 }
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
125
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
126 /******************************************************************************
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
127 * Public API
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
128 *****************************************************************************/
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
129 GtkWidget *
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
130 pidgin_badges_new(PurpleBadges *badges) {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
131 return g_object_new(PIDGIN_TYPE_BADGES,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
132 "badges", badges,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
133 NULL);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
134 }
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
135
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
136 PurpleBadges *
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
137 pidgin_badges_get_badges(PidginBadges *badges) {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
138 g_return_val_if_fail(PIDGIN_IS_BADGES(badges), NULL);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
139
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
140 return badges->badges;
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
141 }
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
142
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
143 void
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
144 pidgin_badges_set_badges(PidginBadges *pidgin_badges,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
145 PurpleBadges *purple_badges)
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
146 {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
147 g_return_if_fail(PIDGIN_IS_BADGES(pidgin_badges));
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
148
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
149 if(g_set_object(&pidgin_badges->badges, purple_badges)) {
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
150 gtk_slice_list_model_set_model(pidgin_badges->model,
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
151 G_LIST_MODEL(purple_badges));
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
152
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
153 g_object_notify_by_pspec(G_OBJECT(pidgin_badges),
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
154 properties[PROP_BADGES]);
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
155 }
54ca24fedfd9 Implement the Pidgin.Badges widget and use it in conversation member list
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
156 }

mercurial