Tue, 21 Feb 2023 21:41:53 -0600
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 | 4 | * |
| 15572 | 5 | * Pidgin is the legal property of its developers, whose names are too numerous |
| 8046 | 6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 7 | * source distribution. | |
| 5530 | 8 | * |
| 9 | * This program is free software; you can redistribute it and/or modify | |
| 10 | * it under the terms of the GNU General Public License as published by | |
| 11 | * the Free Software Foundation; either version 2 of the License, or | |
| 12 | * (at your option) any later version. | |
| 13 | * | |
| 14 | * This program is distributed in the hope that it will be useful, | |
| 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 17 | * GNU General Public License for more details. | |
| 18 | * | |
| 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 | 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 | 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 | 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 | 43 | * Initializes all UI-specific preferences. |
| 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 | 46 | |
| 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 | 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 | 58 | GtkWidget *page); |
| 7976 | 59 | |
| 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 | 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 | 76 | const gchar *title, const char *key, int min, int max, GtkSizeGroup *sg); |
| 7976 | 77 | |
| 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 | 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 | 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 | 92 | PurplePrefType type, const char *key, ...); |
| 7976 | 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_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 | 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 | 108 | const gchar * title, PurplePrefType type, const char *key, |
| 7987 | 109 | GList *menuitems); |
| 7976 | 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 */ |