Fri, 05 Mar 2021 03:31:29 -0600
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 | 2 | * |
| 15572 | 3 | * Pidgin is the legal property of its developers, whose names are too numerous |
| 10418 | 4 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 5 | * source distribution. | |
| 6 | * | |
| 7 | * This program is free software; you can redistribute it and/or modify | |
| 8 | * it under the terms of the GNU General Public License as published by | |
| 9 | * the Free Software Foundation; either version 2 of the License, or | |
| 10 | * (at your option) any later version. | |
| 11 | * | |
| 12 | * This program is distributed in the hope that it will be useful, | |
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 15 | * GNU General Public License for more details. | |
| 16 | * | |
| 17 | * You should have received a copy of the GNU General Public License | |
| 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 | 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 | 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 | 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 | 42 | * Shows the status window. |
| 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 | 45 | |
| 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 | 49 | * Hides the status window. |
| 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 | 52 | |
| 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 | 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 | 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 | 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 | 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 | 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 | 93 | |
| 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 | 97 | * Initializes the GTK+ status system. |
| 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 | 100 | |
| 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 | 104 | * Uninitializes the GTK+ status system. |
| 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 | 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_ */ |