pidgin/prefs/pidginprefs.h

Tue, 21 Feb 2023 21:41:53 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 21 Feb 2023 21:41:53 -0600
changeset 42072
606edc665dc2
parent 41397
91e5ee47f5a1
child 42192
82dbf36ac6db
permissions
-rw-r--r--

Display the preferences window as a singleton from the application

This is how we handle displaying other dialogs and apparently the preferences
window just got missed. We also make it transient for whatever window is active
which means it won't fill an entire cell in a tiling window manager.

Testing Done:
Opened the preferences dialog in i3 and verified it was no longer a full tile and that everything worked as expected.

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

41397
91e5ee47f5a1 Cleanup pidgin prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41197
diff changeset
1 /*
91e5ee47f5a1 Cleanup pidgin prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41197
diff changeset
2 * Pidgin - Internet Messenger
91e5ee47f5a1 Cleanup pidgin prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41197
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
15572
e069b22c1fc4 headers to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
5 * Pidgin is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7987
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7987
diff changeset
7 * source distribution.
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 *
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * (at your option) any later version.
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 *
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * GNU General Public License for more details.
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 *
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
41397
91e5ee47f5a1 Cleanup pidgin prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41197
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 */
35487
494f09f7f331 Move section blocks inside inclusion guards -- otherwise g-ir-scanner yells
Ankit Vani <a@nevitus.org>
parents: 35451
diff changeset
22
40502
875489636847 pidgin.h phase3: create pidgin.h and force its usage
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
23 #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
24 # 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
25 #endif
875489636847 pidgin.h phase3: create pidgin.h and force its usage
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
26
40886
198bf5bc58ce Move Pidgin preferences code into a subdirectory.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40502
diff changeset
27 #ifndef PIDGIN_PREFS_H
198bf5bc58ce Move Pidgin preferences code into a subdirectory.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40502
diff changeset
28 #define PIDGIN_PREFS_H
35451
206524351826 Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents: 35416
diff changeset
29
41397
91e5ee47f5a1 Cleanup pidgin prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41197
diff changeset
30 #include <glib.h>
40360
e21f3bbcc2a5 Update all of the pidgin code to include purple.h
Gary Kramlich <grim@reaperworld.com>
parents: 40330
diff changeset
31 #include <purple.h>
41397
91e5ee47f5a1 Cleanup pidgin prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41197
diff changeset
32 #include <gtk/gtk.h>
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33
32790
b95c7c504118 Add G_BEGIN/END_DECLS to Pidgin public headers, most of which did
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32438
diff changeset
34 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: 32438
diff changeset
35
39178
53a96425ffc0 Start switching Preferences dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38744
diff changeset
36 #define PIDGIN_TYPE_PREFS_WINDOW (pidgin_prefs_window_get_type())
41397
91e5ee47f5a1 Cleanup pidgin prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41197
diff changeset
37 G_DECLARE_FINAL_TYPE(PidginPrefsWindow, pidgin_prefs_window, PIDGIN,
91e5ee47f5a1 Cleanup pidgin prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41197
diff changeset
38 PREFS_WINDOW, GtkDialog)
39178
53a96425ffc0 Start switching Preferences dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38744
diff changeset
39
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
40 /**
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
41 * pidgin_prefs_init:
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
42 *
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
43 * Initializes all UI-specific preferences.
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
44 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
45 void pidgin_prefs_init(void);
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
46
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
47 /**
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
48 * pidgin_prefs_checkbox:
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
49 * @title: The text to be displayed as the checkbox label
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
50 * @key: The key of the purple bool pref that will be represented by the checkbox
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
51 * @page: The page to which the new checkbox will be added
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
52 *
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
53 * Add a new checkbox for a boolean preference
38744
48a376346964 Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents: 37094
diff changeset
54 *
48a376346964 Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents: 37094
diff changeset
55 * Returns: (transfer full): The new checkbox
7976
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7931
diff changeset
56 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
57 GtkWidget *pidgin_prefs_checkbox(const char *title, const char *key,
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7978
diff changeset
58 GtkWidget *page);
7976
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7931
diff changeset
59
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7931
diff changeset
60 /**
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
61 * pidgin_prefs_labeled_spin_button:
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
62 * @page: The page to which the spin button will be added
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
63 * @title: The text to be displayed as the spin button label
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
64 * @key: The key of the int pref that will be represented by the spin button
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
65 * @min: The minimum value of the spin button
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
66 * @max: The maximum value of the spin button
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
67 * @sg: If not NULL, the size group to which the spin button will be added
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
68 *
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
69 * Add a new spin button representing an int preference
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
70 *
38744
48a376346964 Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents: 37094
diff changeset
71 * Returns: (transfer full): An hbox containing both the label and the spinner. Can be
48a376346964 Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents: 37094
diff changeset
72 * used to set the widgets to sensitive or insensitive based on the
48a376346964 Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents: 37094
diff changeset
73 * value of a checkbox.
7976
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7931
diff changeset
74 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
75 GtkWidget *pidgin_prefs_labeled_spin_button(GtkWidget *page,
10367
7bd4802cff7d [gaim-migrate @ 11586]
Kevin Stange <kstange@pidgin.im>
parents: 10207
diff changeset
76 const gchar *title, const char *key, int min, int max, GtkSizeGroup *sg);
7976
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7931
diff changeset
77
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7931
diff changeset
78 /**
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
79 * pidgin_prefs_dropdown:
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
80 * @page: The page to which the dropdown will be added
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
81 * @title: The text to be displayed as the dropdown label
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
82 * @type: The type of preference to be stored in the generated dropdown
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
83 * @key: The key of the pref that will be represented by the dropdown
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
84 * @...: The choices to be added to the dropdown, choices should be
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
85 * paired as label/value
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
86 *
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
87 * Add a new dropdown representing a preference of the specified type
38744
48a376346964 Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents: 37094
diff changeset
88 *
48a376346964 Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents: 37094
diff changeset
89 * Returns: (transfer full): The new dropdown.
7976
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7931
diff changeset
90 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
91 GtkWidget *pidgin_prefs_dropdown(GtkWidget *page, const gchar *title,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15572
diff changeset
92 PurplePrefType type, const char *key, ...);
7976
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7931
diff changeset
93
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7931
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_prefs_dropdown_from_list:
35393
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
96 * @page: The page to which the dropdown will be added
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
97 * @title: The text to be displayed as the dropdown label
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
98 * @type: The type of preference to be stored in the dropdown
00f876b129bc Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents: 32790
diff changeset
99 * @key: The key of the pref that will be represented by the dropdown
40330
5311cf2ae115 Replace PurpleNamedValue with PurpleKeyValuePair in GTK-Doc comments
qarkai <qarkai@gmail.com>
parents: 40326
diff changeset
100 * @menuitems: (element-type PurpleKeyValuePair): The choices to be added to the dropdown, choices should
38744
48a376346964 Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents: 37094
diff changeset
101 * be paired as label/value
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
102 *
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
103 * Add a new dropdown representing a preference of the specified type
38744
48a376346964 Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents: 37094
diff changeset
104 *
48a376346964 Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents: 37094
diff changeset
105 * Returns: (transfer full): The new dropdown.
7976
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7931
diff changeset
106 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
107 GtkWidget *pidgin_prefs_dropdown_from_list(GtkWidget *page,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15572
diff changeset
108 const gchar * title, PurplePrefType type, const char *key,
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7978
diff changeset
109 GList *menuitems);
7976
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7931
diff changeset
110
8905
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
111 /**
35416
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
112 * pidgin_prefs_update_old:
35c615531b2a Convert docs from doxygen to gtk-doc format for gtkdebug to gtksmiley
Ankit Vani <a@nevitus.org>
parents: 35393
diff changeset
113 *
8905
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
114 * Rename legacy prefs and delete some that no longer exist.
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
115 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
116 void pidgin_prefs_update_old(void);
8905
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
117
32790
b95c7c504118 Add G_BEGIN/END_DECLS to Pidgin public headers, most of which did
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32438
diff changeset
118 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: 32438
diff changeset
119
40886
198bf5bc58ce Move Pidgin preferences code into a subdirectory.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40502
diff changeset
120 #endif /* PIDGIN_PREFS_H */

mercurial