Thu, 17 Apr 2025 23:29:23 -0500
Fix EionRobb's avatar
This was broken in /r/3967.
Testing Done:
Connected a demo account and verified his avatar was working.
Reviewed at https://reviews.imfreedom.org/r/3976/
|
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 | } |