libpurple/purplebadgemanager.h

Mon, 30 Jun 2025 14:22:13 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Mon, 30 Jun 2025 14:22:13 -0500
changeset 43269
1523eab3b5a0
parent 43076
6b0210915ee3
permissions
-rw-r--r--

Update the flatpak to gnome 48 and to the matching birb version

The birb version was missed here when it was updated.

Testing Done:
Built the flatpak with the instructions in the readme.

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

43076
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * source distribution.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 * This library is free software; you can redistribute it and/or modify it
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * under the terms of the GNU General Public License as published by the Free
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * Software Foundation; either version 2 of the License, or (at your option)
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * any later version.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 * This library is distributed in the hope that it will be useful, but WITHOUT
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 * more details.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License along with
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 * this library; if not, see <https://www.gnu.org/licenses/>.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 */
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 #if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION)
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24 # error "only <purple.h> may be included directly"
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25 #endif
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27 #ifndef PURPLE_BADGE_MANAGER_H
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28 #define PURPLE_BADGE_MANAGER_H
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30 #include <glib.h>
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32 #include "purplebadge.h"
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 G_BEGIN_DECLS
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36 #define PURPLE_TYPE_BADGE_MANAGER (purple_badge_manager_get_type())
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38 /**
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39 * PurpleBadgeManager:
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41 * A cache for badges.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 * This can be used to reuse badges where necessary without having to create a
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44 * new instance every time.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46 * Since: 3.0
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47 */
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 PURPLE_AVAILABLE_IN_3_0
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49 G_DECLARE_FINAL_TYPE(PurpleBadgeManager, purple_badge_manager,
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 PURPLE, BADGE_MANAGER, GObject)
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 /**
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53 * purple_badge_manager_add:
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54 * @manager: The instance.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55 * @badge: (transfer none): The badge to add.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 * Adds @badge to @manager.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 * Returns: %TRUE if @badge was not already added to @manager.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 * Since: 3.0
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62 */
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 PURPLE_AVAILABLE_IN_3_0
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64 gboolean purple_badge_manager_add(PurpleBadgeManager *manager, PurpleBadge *badge);
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 /**
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 * purple_badge_manager_new:
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 * Creates a new badge manager.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 * A badge manager is just a runtime cache to help protocols and plugins by
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 * holding onto an instance which can be referenced instead of having to always
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 * create a new instance.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 * Returns: (transfer full): The new instance.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
77 * Since: 3.0
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 */
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79 PURPLE_AVAILABLE_IN_3_0
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80 PurpleBadgeManager *purple_badge_manager_new(void);
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82 /**
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83 * purple_badge_manager_get_default:
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85 * Gets the default instance of #PurpleBadgeManager.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
87 * This instance can be used for any of the API including connecting to
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 * signals.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
90 * Returns: (transfer none): The default instance.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92 * Since: 3.0
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
93 */
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94 PURPLE_AVAILABLE_IN_3_0
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95 PurpleBadgeManager *purple_badge_manager_get_default(void);
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97 /**
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
98 * purple_badge_manager_find:
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
99 * @manager: The instance.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
100 * @id: The identifier of the badge.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
102 * Looks for badge with the given id.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
103 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
104 * Returns: (transfer none) (nullable): The [class@PurpleBadge] if found.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
105 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
106 * Since: 3.0
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
107 */
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
108 PURPLE_AVAILABLE_IN_3_0
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
109 PurpleBadge *purple_badge_manager_find(PurpleBadgeManager *manager, const char *id);
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
110
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
111 /**
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
112 * purple_badge_manager_remove:
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
113 * @manager: The instance.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
114 * @id: The identifier of the badge.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
115 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
116 * Removes a badge with the given identifier.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
117 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
118 * Returns: %TRUE if @badge was found and removed.
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
119 *
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
120 * Since: 3.0
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
121 */
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
122 PURPLE_AVAILABLE_IN_3_0
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
123 gboolean purple_badge_manager_remove(PurpleBadgeManager *manager, const char *id);
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
124
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
125 G_END_DECLS
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
126
6b0210915ee3 Create PurpleBadgeManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
127 #endif /* PURPLE_BADGE_MANAGER_H */

mercurial