pidgin/gtksavedstatuses.h

Fri, 05 Mar 2021 03:31:29 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Fri, 05 Mar 2021 03:31:29 -0600
changeset 40810
28d50eece92d
parent 40502
875489636847
child 41087
4fc5b0ddf55e
permissions
-rw-r--r--

Create a PidginAvatar widget.

This does everything the existing code does, but trying to integrate right now
is kind of difficult. The plan is to use this in a new PidginInfoPane I have
started, but that change got very large so I just packed it into the end of
the existing info pane.

The only things that are not implement right now, are making menu items
insensitive and that's because we need to figure out a better want to handle
custom avatars for users.

Testing Done:
Ran locally.

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

20147
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
1 /* pidgin
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
2 *
15572
e069b22c1fc4 headers to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
3 * Pidgin is the legal property of its developers, whose names are too numerous
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
5 * source distribution.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
6 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
10 * (at your option) any later version.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
11 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
15 * GNU General Public License for more details.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
16 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16254
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
20 */
35487
494f09f7f331 Move section blocks inside inclusion guards -- otherwise g-ir-scanner yells
Ankit Vani <a@nevitus.org>
parents: 35451
diff changeset
21
40502
875489636847 pidgin.h phase3: create pidgin.h and force its usage
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
22 #if !defined(PIDGIN_GLOBAL_HEADER_INSIDE) && !defined(PIDGIN_COMPILATION)
875489636847 pidgin.h phase3: create pidgin.h and force its usage
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
23 # error "only <pidgin.h> may be included directly"
875489636847 pidgin.h phase3: create pidgin.h and force its usage
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
24 #endif
875489636847 pidgin.h phase3: create pidgin.h and force its usage
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
25
35487
494f09f7f331 Move section blocks inside inclusion guards -- otherwise g-ir-scanner yells
Ankit Vani <a@nevitus.org>
parents: 35451
diff changeset
26 #ifndef _PIDGINSAVEDSTATUSES_H_
494f09f7f331 Move section blocks inside inclusion guards -- otherwise g-ir-scanner yells
Ankit Vani <a@nevitus.org>
parents: 35451
diff changeset
27 #define _PIDGINSAVEDSTATUSES_H_
35451
206524351826 Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents: 35416
diff changeset
28 /**
206524351826 Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents: 35416
diff changeset
29 * SECTION:gtksavedstatuses
206524351826 Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents: 35416
diff changeset
30 * @section_id: pidgin-gtksavedstatuses
206524351826 Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents: 35416
diff changeset
31 * @short_description: <filename>gtksavedstatuses.h</filename>
206524351826 Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents: 35416
diff changeset
32 * @title: Saved Status Editor UI
206524351826 Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents: 35416
diff changeset
33 */
206524351826 Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents: 35416
diff changeset
34
40360
e21f3bbcc2a5 Update all of the pidgin code to include purple.h
Gary Kramlich <grim@reaperworld.com>
parents: 38744
diff changeset
35 #include <purple.h>
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
36
32790
b95c7c504118 Add G_BEGIN/END_DECLS to Pidgin public headers, most of which did
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20147
diff changeset
37 G_BEGIN_DECLS
b95c7c504118 Add G_BEGIN/END_DECLS to Pidgin public headers, most of which did
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20147
diff changeset
38
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
39 /**
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
40 * pidgin_status_window_show:
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
41 *
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
42 * Shows the status window.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
43 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
44 void pidgin_status_window_show(void);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
45
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
46 /**
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
47 * pidgin_status_window_hide:
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
48 *
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
49 * Hides the status window.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
50 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
51 void pidgin_status_window_hide(void);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
52
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
53 /**
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
54 * pidgin_status_editor_show:
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
55 * @edit: %TRUE if we want to edit an existing saved
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
56 * status or %FALSE to create a new one. You
13176
df549de66219 [gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
57 * can not edit transient statuses--they don't
df549de66219 [gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
58 * have titles. If you want to edit a transient
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
59 * status, set this to %FALSE and seed the dialog
13176
df549de66219 [gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
60 * with the transient status using the status
df549de66219 [gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
61 * parameter to this function.
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
62 * @status: If edit is %TRUE then this should be a
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15572
diff changeset
63 * pointer to the PurpleSavedStatus to edit.
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
64 * If edit is %FALSE then this can be NULL,
13176
df549de66219 [gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
65 * or you can pass in a saved status to
df549de66219 [gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
66 * seed the initial values of the new status.
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
67 *
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
68 * Shows a status editor (used for adding a new saved status or
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
69 * editing an already existing saved status).
10421
34797f8b5742 [gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
70 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15572
diff changeset
71 void pidgin_status_editor_show(gboolean edit, PurpleSavedStatus *status);
10421
34797f8b5742 [gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
72
34797f8b5742 [gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
73 /**
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
74 * pidgin_status_menu:
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
75 * @status: The default saved_status to show as 'selected'
38744
48a376346964 Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents: 37094
diff changeset
76 * @callback: (scope call): The callback to call when the selection changes
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
77 *
13014
fa17f785b6fe [gaim-migrate @ 15367]
Mark Doliner <markdoliner@pidgin.im>
parents: 12245
diff changeset
78 * Creates a dropdown menu of saved statuses and calls a callback
fa17f785b6fe [gaim-migrate @ 15367]
Mark Doliner <markdoliner@pidgin.im>
parents: 12245
diff changeset
79 * when one is selected
fa17f785b6fe [gaim-migrate @ 15367]
Mark Doliner <markdoliner@pidgin.im>
parents: 12245
diff changeset
80 *
38744
48a376346964 Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents: 37094
diff changeset
81 * Returns: (transfer full): The menu widget
13014
fa17f785b6fe [gaim-migrate @ 15367]
Mark Doliner <markdoliner@pidgin.im>
parents: 12245
diff changeset
82 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15572
diff changeset
83 GtkWidget *pidgin_status_menu(PurpleSavedStatus *status, GCallback callback);
13014
fa17f785b6fe [gaim-migrate @ 15367]
Mark Doliner <markdoliner@pidgin.im>
parents: 12245
diff changeset
84
fa17f785b6fe [gaim-migrate @ 15367]
Mark Doliner <markdoliner@pidgin.im>
parents: 12245
diff changeset
85 /**
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
86 * pidgin_status_get_handle:
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
87 *
13014
fa17f785b6fe [gaim-migrate @ 15367]
Mark Doliner <markdoliner@pidgin.im>
parents: 12245
diff changeset
88 * Returns the GTK+ status handle.
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
89 *
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
90 * Returns: The handle to the GTK+ status system.
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
91 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
92 void *pidgin_status_get_handle(void);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
93
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
94 /**
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
95 * pidgin_status_init:
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
96 *
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
97 * Initializes the GTK+ status system.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
98 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
99 void pidgin_status_init(void);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
100
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
101 /**
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
102 * pidgin_status_uninit:
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
103 *
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
104 * Uninitializes the GTK+ status system.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
105 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
106 void pidgin_status_uninit(void);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
107
32790
b95c7c504118 Add G_BEGIN/END_DECLS to Pidgin public headers, most of which did
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20147
diff changeset
108 G_END_DECLS
b95c7c504118 Add G_BEGIN/END_DECLS to Pidgin public headers, most of which did
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20147
diff changeset
109
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
110 #endif /* _PIDGINSAVEDSTATUSES_H_ */

mercurial