pidgin/pidginstatusdisplay.h

Mon, 03 Apr 2023 23:09:36 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Mon, 03 Apr 2023 23:09:36 -0500
changeset 42198
4df23def5fe0
child 42465
b7d530551c1b
permissions
-rw-r--r--

Add a widget for displaying statuses

It can display either primitives or saved statuses.

Then use the widget in the status manager and the status editor.

Testing Done:
Edited a status, and confirmed that the list of status primitives were all shown
Opened the status manager, and confirmed that the saved status' primitive in the manager changed as expected after editing the status.

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

42198
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
1 /*
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
2 * Pidgin - Internet Messenger
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
4 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
5 * Pidgin is the legal property of its developers, whose names are too numerous
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
7 * source distribution.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
8 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
12 * (at your option) any later version.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
13 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
17 * GNU General Public License for more details.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
18 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
21 */
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
22
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
23 #if !defined(PIDGIN_GLOBAL_HEADER_INSIDE) && !defined(PIDGIN_COMPILATION)
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
24 # error "only <pidgin.h> may be included directly"
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
25 #endif
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
26
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
27 #ifndef PIDGIN_STATUS_DISPLAY_H
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
28 #define PIDGIN_STATUS_DISPLAY_H
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
29
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
30 #include <gtk/gtk.h>
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
31
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
32 #include <purple.h>
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
33
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
34 G_BEGIN_DECLS
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
35
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
36 #define PIDGIN_TYPE_STATUS_DISPLAY (pidgin_status_display_get_type())
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
37 G_DECLARE_FINAL_TYPE(PidginStatusDisplay, pidgin_status_display,
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
38 PIDGIN, STATUS_DISPLAY, GtkBox)
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
39
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
40 /**
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
41 * pidgin_status_display_new:
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
42 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
43 * Creates a display for a status.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
44 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
45 * Returns: (transfer full): The status display.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
46 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
47 * Since: 3.0.0
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
48 */
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
49 GtkWidget *pidgin_status_display_new(void);
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
50
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
51 /**
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
52 * pidgin_status_display_new_for_primitive:
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
53 * @primitive: The status primitive to display.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
54 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
55 * Creates a display for a status primitive.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
56 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
57 * Returns: (transfer full): The status display.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
58 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
59 * Since: 3.0.0
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
60 */
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
61 GtkWidget *pidgin_status_display_new_for_primitive(PurpleStatusPrimitive primitive);
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
62
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
63 /**
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
64 * pidgin_status_display_new_for_saved_status:
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
65 * @status: The status to display.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
66 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
67 * Creates a display for a saved status.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
68 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
69 * Returns: (transfer full): The status display.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
70 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
71 * Since: 3.0.0
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
72 */
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
73 GtkWidget *pidgin_status_display_new_for_saved_status(PurpleSavedStatus *status);
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
74
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
75 /**
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
76 * pidgin_status_display_get_primitive:
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
77 * @display: The display.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
78 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
79 * Gets the currently displayed status primitive.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
80 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
81 * Returns: (transfer none): Returns the [type@Purple.StatusPrimitive] that is
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
82 * currently displayed.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
83 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
84 * Since: 3.0.0
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
85 */
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
86 PurpleStatusPrimitive pidgin_status_display_get_primitive(PidginStatusDisplay *display);
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
87
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
88 /**
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
89 * pidgin_status_display_set_primitive:
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
90 * @display: The display.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
91 * @primitive: The status primitive to display.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
92 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
93 * Sets the currently displayed status primitive.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
94 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
95 * If a saved status was previously set, it will be unset.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
96 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
97 * Since: 3.0.0
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
98 */
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
99 void pidgin_status_display_set_primitive(PidginStatusDisplay *display, PurpleStatusPrimitive primitive);
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
100
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
101 /**
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
102 * pidgin_status_display_get_saved_status:
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
103 * @display: The display.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
104 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
105 * Gets the currently displayed saved status.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
106 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
107 * Returns: (transfer none): Returns the [type@Purple.SavedStatus] that is
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
108 * currently displayed.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
109 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
110 * Since: 3.0.0
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
111 */
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
112 PurpleSavedStatus *pidgin_status_display_get_saved_status(PidginStatusDisplay *display);
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
113
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
114 /**
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
115 * pidgin_status_display_set_saved_status:
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
116 * @display: The display.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
117 * @status: The saved status to display.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
118 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
119 * Sets the currently displayed saved status.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
120 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
121 * If a status primitive was previously set, it will be unset.
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
122 *
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
123 * Since: 3.0.0
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
124 */
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
125 void pidgin_status_display_set_saved_status(PidginStatusDisplay *display, PurpleSavedStatus *status);
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
126
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
127 G_END_DECLS
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
128
4df23def5fe0 Add a widget for displaying statuses
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
129 #endif /* PIDGIN_STATUS_DISPLAY_H */

mercurial