Wed, 15 Jun 2016 04:59:21 -0300
Add PurplePrefsUiOps API from instantbird
This allows overriding the prefs.xml storage with anything else.
The instantbird version had fewer methods, things like add_string_list or
rename_boolean_toggle which are rarely used in libpurple and that instantbird
just removed from their fork.
The add_observer and remove_observer methods are not implemented yet.
| 5441 | 1 | /** |
| 2 | * @file prefs.h Prefs API | |
|
10066
606927534c36
[gaim-migrate @ 11041]
Mark Doliner <markdoliner@pidgin.im>
parents:
9713
diff
changeset
|
3 | * @ingroup core |
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
4 | */ |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
5 | |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
6 | /* purple |
| 5441 | 7 | * |
| 15884 | 8 | * Purple is the legal property of its developers, whose names are too numerous |
| 8046 | 9 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 10 | * source distribution. | |
| 5441 | 11 | * |
| 12 | * This program is free software; you can redistribute it and/or modify | |
| 13 | * it under the terms of the GNU General Public License as published by | |
| 14 | * the Free Software Foundation; either version 2 of the License, or | |
| 15 | * (at your option) any later version. | |
| 16 | * | |
| 17 | * This program is distributed in the hope that it will be useful, | |
| 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 20 | * GNU General Public License for more details. | |
| 21 | * | |
| 22 | * You should have received a copy of the GNU General Public License | |
| 23 | * 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:
18814
diff
changeset
|
24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 5441 | 25 | * |
| 26 | */ | |
| 15884 | 27 | #ifndef _PURPLE_PREFS_H_ |
| 28 | #define _PURPLE_PREFS_H_ | |
| 5441 | 29 | |
|
5638
53e752c88ea1
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5561
diff
changeset
|
30 | #include <glib.h> |
|
53e752c88ea1
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5561
diff
changeset
|
31 | |
| 5441 | 32 | /** |
|
25631
2506d2a66c9f
Document the PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, and
Etan Reisner <deryni@pidgin.im>
parents:
23129
diff
changeset
|
33 | * Preference data types. |
| 5441 | 34 | */ |
| 15884 | 35 | typedef enum _PurplePrefType |
| 5441 | 36 | { |
|
25631
2506d2a66c9f
Document the PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, and
Etan Reisner <deryni@pidgin.im>
parents:
23129
diff
changeset
|
37 | PURPLE_PREF_NONE, /**< No type. */ |
|
2506d2a66c9f
Document the PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, and
Etan Reisner <deryni@pidgin.im>
parents:
23129
diff
changeset
|
38 | PURPLE_PREF_BOOLEAN, /**< Boolean. */ |
|
2506d2a66c9f
Document the PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, and
Etan Reisner <deryni@pidgin.im>
parents:
23129
diff
changeset
|
39 | PURPLE_PREF_INT, /**< Integer. */ |
|
2506d2a66c9f
Document the PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, and
Etan Reisner <deryni@pidgin.im>
parents:
23129
diff
changeset
|
40 | PURPLE_PREF_STRING, /**< String. */ |
|
2506d2a66c9f
Document the PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, and
Etan Reisner <deryni@pidgin.im>
parents:
23129
diff
changeset
|
41 | PURPLE_PREF_STRING_LIST, /**< List of strings. */ |
|
2506d2a66c9f
Document the PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, and
Etan Reisner <deryni@pidgin.im>
parents:
23129
diff
changeset
|
42 | PURPLE_PREF_PATH, /**< Path. */ |
|
2506d2a66c9f
Document the PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, and
Etan Reisner <deryni@pidgin.im>
parents:
23129
diff
changeset
|
43 | PURPLE_PREF_PATH_LIST /**< List of paths. */ |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
44 | |
| 15884 | 45 | } PurplePrefType; |
| 5441 | 46 | |
| 47 | /** | |
|
21427
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
48 | * The type of callbacks for preference changes. |
|
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
49 | * |
|
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
50 | * @param name the name of the preference which has changed. |
|
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
51 | * @param type the type of the preferenced named @a name |
|
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
52 | * @param val the new value of the preferencs; should be cast to the correct |
|
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
53 | * type. For instance, to recover the value of a #PURPLE_PREF_INT |
|
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
54 | * preference, use <tt>GPOINTER_TO_INT(val)</tt>. Alternatively, |
|
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
55 | * just call purple_prefs_get_int(), purple_prefs_get_string_list() |
|
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
56 | * etc. |
|
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
57 | * @param data Arbitrary data specified when the callback was connected with |
|
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
58 | * purple_prefs_connect_callback(). |
|
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
59 | * |
|
fad701d9ba43
Document PurplePrefCallback.
Will Thompson <resiak@pidgin.im>
parents:
21054
diff
changeset
|
60 | * @see purple_prefs_connect_callback() |
| 5441 | 61 | */ |
| 15884 | 62 | typedef void (*PurplePrefCallback) (const char *name, PurplePrefType type, |
|
12816
5f93e09fa9a6
[gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents:
12712
diff
changeset
|
63 | gconstpointer val, gpointer data); |
| 5441 | 64 | |
|
37749
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
65 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
66 | /** @copydoc _PurplePrefsUiOps */ |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
67 | typedef struct _PurplePrefsUiOps PurplePrefsUiOps; |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
68 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
69 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
70 | /** Prefs UI operations |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
71 | */ |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
72 | struct _PurplePrefsUiOps |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
73 | { |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
74 | void (*add_none)(const char *name); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
75 | void (*add_bool)(const char *name, gboolean value); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
76 | void (*add_int)(const char *name, int value); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
77 | void (*add_string)(const char *name, const char *value); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
78 | void (*add_string_list)(const char *name, GList *value); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
79 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
80 | void (*set_bool)(const char *name, gboolean value); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
81 | void (*set_int)(const char *name, int value); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
82 | void (*set_string)(const char *name, const char *value); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
83 | void (*set_string_list)(const char *name, GList *value); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
84 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
85 | gboolean (*get_bool)(const char *name); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
86 | int (*get_int)(const char *name); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
87 | const char *(*get_string)(const char *name); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
88 | GList *(*get_string_list)(const char *name); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
89 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
90 | PurplePrefType (*get_type)(const char *name); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
91 | GList *(*get_children_names)(const char *name); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
92 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
93 | gboolean (*exists)(const char *name); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
94 | void (*remove)(const char *name); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
95 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
96 | void (*rename)(const char *oldname, const char *newname); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
97 | void (*rename_boolean_toggle)(const char *oldname, const char *newname); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
98 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
99 | gboolean (*load)(void); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
100 | void (*save)(void); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
101 | void (*schedule_save)(void); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
102 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
103 | void *(*add_observer)(const char *name, gpointer data); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
104 | void (*remove_observer)(const char *name, void *observer); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
105 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
106 | void (*_purple_reserved1)(void); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
107 | void (*_purple_reserved2)(void); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
108 | void (*_purple_reserved3)(void); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
109 | void (*_purple_reserved4)(void); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
110 | void (*_purple_reserved5)(void); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
111 | }; |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
112 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
113 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
114 | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
115 | #ifdef __cplusplus |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
116 | extern "C" { |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
117 | #endif |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
118 | |
| 5441 | 119 | /**************************************************************************/ |
|
37749
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
120 | /** @name UI Registration Functions */ |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
121 | /**************************************************************************/ |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
122 | /*@{*/ |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
123 | /** |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
124 | * Sets the UI operations structure to be used for preferences. |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
125 | * |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
126 | * @param ops The UI operations structure. |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
127 | */ |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
128 | void purple_prefs_set_ui_ops(PurplePrefsUiOps *ops); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
129 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
130 | /** |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
131 | * Returns the UI operations structure used for preferences. |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
132 | * |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
133 | * @return The UI operations structure in use. |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
134 | */ |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
135 | PurplePrefsUiOps *purple_prefs_get_ui_ops(void); |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
136 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
137 | /*@}*/ |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
138 | |
|
2e00aa78cb1f
Add PurplePrefsUiOps API from instantbird
dx <dx@dxzone.com.ar>
parents:
29267
diff
changeset
|
139 | /**************************************************************************/ |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
23129
diff
changeset
|
140 | /** @name Prefs API |
|
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
23129
diff
changeset
|
141 | Preferences are named according to a directory-like structure. |
|
17436
a3e9be0f17ef
- Added a description of preference grouping to the Prefs API code
William Ehlhardt <williamehlhardt@gmail.com>
parents:
15884
diff
changeset
|
142 | Example: "/plugins/core/potato/is_from_idaho" (probably a boolean) */ |
| 5441 | 143 | /**************************************************************************/ |
| 144 | /*@{*/ | |
| 145 | ||
| 146 | /** | |
|
10443
aa7dcc1c796a
[gaim-migrate @ 11703]
Mark Doliner <markdoliner@pidgin.im>
parents:
10087
diff
changeset
|
147 | * Returns the prefs subsystem handle. |
|
aa7dcc1c796a
[gaim-migrate @ 11703]
Mark Doliner <markdoliner@pidgin.im>
parents:
10087
diff
changeset
|
148 | * |
|
aa7dcc1c796a
[gaim-migrate @ 11703]
Mark Doliner <markdoliner@pidgin.im>
parents:
10087
diff
changeset
|
149 | * @return The prefs subsystem handle. |
|
aa7dcc1c796a
[gaim-migrate @ 11703]
Mark Doliner <markdoliner@pidgin.im>
parents:
10087
diff
changeset
|
150 | */ |
| 15884 | 151 | void *purple_prefs_get_handle(void); |
|
10443
aa7dcc1c796a
[gaim-migrate @ 11703]
Mark Doliner <markdoliner@pidgin.im>
parents:
10087
diff
changeset
|
152 | |
|
aa7dcc1c796a
[gaim-migrate @ 11703]
Mark Doliner <markdoliner@pidgin.im>
parents:
10087
diff
changeset
|
153 | /** |
| 5441 | 154 | * Initialize core prefs |
| 155 | */ | |
| 15884 | 156 | void purple_prefs_init(void); |
| 5441 | 157 | |
| 158 | /** | |
| 8235 | 159 | * Uninitializes the prefs subsystem. |
| 160 | */ | |
| 15884 | 161 | void purple_prefs_uninit(void); |
| 8235 | 162 | |
| 163 | /** | |
| 5441 | 164 | * Add a new typeless pref. |
| 165 | * | |
| 166 | * @param name The name of the pref | |
| 167 | */ | |
| 15884 | 168 | void purple_prefs_add_none(const char *name); |
| 5441 | 169 | |
| 170 | /** | |
| 171 | * Add a new boolean pref. | |
| 172 | * | |
| 173 | * @param name The name of the pref | |
| 174 | * @param value The initial value to set | |
| 175 | */ | |
| 15884 | 176 | void purple_prefs_add_bool(const char *name, gboolean value); |
| 5441 | 177 | |
| 178 | /** | |
| 179 | * Add a new integer pref. | |
| 180 | * | |
| 181 | * @param name The name of the pref | |
| 182 | * @param value The initial value to set | |
| 183 | */ | |
| 15884 | 184 | void purple_prefs_add_int(const char *name, int value); |
| 5441 | 185 | |
| 186 | /** | |
| 187 | * Add a new string pref. | |
| 188 | * | |
| 189 | * @param name The name of the pref | |
| 190 | * @param value The initial value to set | |
| 191 | */ | |
| 15884 | 192 | void purple_prefs_add_string(const char *name, const char *value); |
| 5441 | 193 | |
| 194 | /** | |
| 5561 | 195 | * Add a new string list pref. |
| 196 | * | |
| 197 | * @param name The name of the pref | |
| 198 | * @param value The initial value to set | |
|
21054
6a5d95fe1c8a
Add notes about how the value argument to the
Etan Reisner <deryni@pidgin.im>
parents:
20940
diff
changeset
|
199 | * @note This function takes a copy of the strings in the value list. The list |
|
6a5d95fe1c8a
Add notes about how the value argument to the
Etan Reisner <deryni@pidgin.im>
parents:
20940
diff
changeset
|
200 | * itself and original copies of the strings are up to the caller to |
|
6a5d95fe1c8a
Add notes about how the value argument to the
Etan Reisner <deryni@pidgin.im>
parents:
20940
diff
changeset
|
201 | * free. |
| 5561 | 202 | */ |
| 15884 | 203 | void purple_prefs_add_string_list(const char *name, GList *value); |
| 5561 | 204 | |
| 205 | /** | |
| 15370 | 206 | * Add a new path pref. |
| 207 | * | |
| 208 | * @param name The name of the pref | |
| 209 | * @param value The initial value to set | |
| 210 | */ | |
| 15884 | 211 | void purple_prefs_add_path(const char *name, const char *value); |
| 15370 | 212 | |
| 213 | /** | |
| 214 | * Add a new path list pref. | |
| 215 | * | |
| 216 | * @param name The name of the pref | |
| 217 | * @param value The initial value to set | |
|
21054
6a5d95fe1c8a
Add notes about how the value argument to the
Etan Reisner <deryni@pidgin.im>
parents:
20940
diff
changeset
|
218 | * @note This function takes a copy of the strings in the value list. The list |
|
6a5d95fe1c8a
Add notes about how the value argument to the
Etan Reisner <deryni@pidgin.im>
parents:
20940
diff
changeset
|
219 | * itself and original copies of the strings are up to the caller to |
|
6a5d95fe1c8a
Add notes about how the value argument to the
Etan Reisner <deryni@pidgin.im>
parents:
20940
diff
changeset
|
220 | * free. |
| 15370 | 221 | */ |
| 15884 | 222 | void purple_prefs_add_path_list(const char *name, GList *value); |
| 15370 | 223 | |
| 224 | ||
| 225 | /** | |
| 5441 | 226 | * Remove a pref. |
| 227 | * | |
| 228 | * @param name The name of the pref | |
| 229 | */ | |
| 15884 | 230 | void purple_prefs_remove(const char *name); |
| 5441 | 231 | |
| 232 | /** | |
| 6693 | 233 | * Rename a pref |
| 234 | * | |
| 235 | * @param oldname The old name of the pref | |
| 236 | * @param newname The new name for the pref | |
| 237 | */ | |
| 15884 | 238 | void purple_prefs_rename(const char *oldname, const char *newname); |
| 6693 | 239 | |
| 240 | /** | |
| 8705 | 241 | * Rename a boolean pref, toggling it's value |
| 242 | * | |
| 243 | * @param oldname The old name of the pref | |
| 244 | * @param newname The new name for the pref | |
| 245 | */ | |
| 15884 | 246 | void purple_prefs_rename_boolean_toggle(const char *oldname, const char *newname); |
| 8705 | 247 | |
| 248 | /** | |
| 5441 | 249 | * Remove all prefs. |
| 250 | */ | |
| 15884 | 251 | void purple_prefs_destroy(void); |
| 5441 | 252 | |
| 253 | /** | |
| 254 | * Set raw pref value | |
| 255 | * | |
| 256 | * @param name The name of the pref | |
| 257 | * @param value The value to set | |
|
29266
6bbb2f3d7ade
Mark this function as deprecated because I really don't know what
Mark Doliner <markdoliner@pidgin.im>
parents:
27805
diff
changeset
|
258 | * |
|
6bbb2f3d7ade
Mark this function as deprecated because I really don't know what
Mark Doliner <markdoliner@pidgin.im>
parents:
27805
diff
changeset
|
259 | * @deprecated We're not really sure what purpose this function serves, so it |
|
6bbb2f3d7ade
Mark this function as deprecated because I really don't know what
Mark Doliner <markdoliner@pidgin.im>
parents:
27805
diff
changeset
|
260 | * will be removed in 3.0.0. Preferences values set using this |
|
6bbb2f3d7ade
Mark this function as deprecated because I really don't know what
Mark Doliner <markdoliner@pidgin.im>
parents:
27805
diff
changeset
|
261 | * function aren't serialized to prefs.xml, which could be |
|
6bbb2f3d7ade
Mark this function as deprecated because I really don't know what
Mark Doliner <markdoliner@pidgin.im>
parents:
27805
diff
changeset
|
262 | * misleading. There is also no purple_prefs_get_generic, which |
|
6bbb2f3d7ade
Mark this function as deprecated because I really don't know what
Mark Doliner <markdoliner@pidgin.im>
parents:
27805
diff
changeset
|
263 | * means that if you can't really get the value (other in a |
|
6bbb2f3d7ade
Mark this function as deprecated because I really don't know what
Mark Doliner <markdoliner@pidgin.im>
parents:
27805
diff
changeset
|
264 | * connected callback). If you think you have a use for this then |
|
6bbb2f3d7ade
Mark this function as deprecated because I really don't know what
Mark Doliner <markdoliner@pidgin.im>
parents:
27805
diff
changeset
|
265 | * please let us know. |
| 5441 | 266 | */ |
|
29266
6bbb2f3d7ade
Mark this function as deprecated because I really don't know what
Mark Doliner <markdoliner@pidgin.im>
parents:
27805
diff
changeset
|
267 | /* TODO: When this is removed, also remove struct purple_pref->value.generic */ |
| 15884 | 268 | void purple_prefs_set_generic(const char *name, gpointer value); |
| 5441 | 269 | |
| 270 | /** | |
| 271 | * Set boolean pref value | |
| 272 | * | |
| 273 | * @param name The name of the pref | |
| 274 | * @param value The value to set | |
| 275 | */ | |
| 15884 | 276 | void purple_prefs_set_bool(const char *name, gboolean value); |
| 5441 | 277 | |
| 278 | /** | |
| 279 | * Set integer pref value | |
| 280 | * | |
| 281 | * @param name The name of the pref | |
| 282 | * @param value The value to set | |
| 283 | */ | |
| 15884 | 284 | void purple_prefs_set_int(const char *name, int value); |
| 5441 | 285 | |
| 286 | /** | |
| 287 | * Set string pref value | |
| 288 | * | |
| 289 | * @param name The name of the pref | |
| 290 | * @param value The value to set | |
| 291 | */ | |
| 15884 | 292 | void purple_prefs_set_string(const char *name, const char *value); |
| 5441 | 293 | |
| 294 | /** | |
| 15370 | 295 | * Set string list pref value |
| 5561 | 296 | * |
| 297 | * @param name The name of the pref | |
| 298 | * @param value The value to set | |
| 299 | */ | |
| 15884 | 300 | void purple_prefs_set_string_list(const char *name, GList *value); |
| 5561 | 301 | |
| 302 | /** | |
| 15370 | 303 | * Set path pref value |
| 304 | * | |
| 305 | * @param name The name of the pref | |
| 306 | * @param value The value to set | |
| 307 | */ | |
| 15884 | 308 | void purple_prefs_set_path(const char *name, const char *value); |
| 15370 | 309 | |
| 310 | /** | |
| 311 | * Set path list pref value | |
| 312 | * | |
| 313 | * @param name The name of the pref | |
| 314 | * @param value The value to set | |
| 315 | */ | |
| 15884 | 316 | void purple_prefs_set_path_list(const char *name, GList *value); |
| 15370 | 317 | |
| 318 | ||
| 319 | /** | |
| 9611 | 320 | * Check if a pref exists |
| 321 | * | |
|
9619
2d8adb92f665
[gaim-migrate @ 10463]
Mark Doliner <markdoliner@pidgin.im>
parents:
9611
diff
changeset
|
322 | * @param name The name of the pref |
|
2d8adb92f665
[gaim-migrate @ 10463]
Mark Doliner <markdoliner@pidgin.im>
parents:
9611
diff
changeset
|
323 | * @return TRUE if the pref exists. Otherwise FALSE. |
| 9611 | 324 | */ |
| 15884 | 325 | gboolean purple_prefs_exists(const char *name); |
| 9611 | 326 | |
| 327 | /** | |
| 6538 | 328 | * Get pref type |
| 329 | * | |
| 330 | * @param name The name of the pref | |
| 331 | * @return The type of the pref | |
| 332 | */ | |
| 15884 | 333 | PurplePrefType purple_prefs_get_type(const char *name); |
| 6538 | 334 | |
| 335 | /** | |
| 5441 | 336 | * Get boolean pref value |
| 337 | * | |
| 338 | * @param name The name of the pref | |
| 339 | * @return The value of the pref | |
| 340 | */ | |
| 15884 | 341 | gboolean purple_prefs_get_bool(const char *name); |
| 5441 | 342 | |
| 343 | /** | |
| 344 | * Get integer pref value | |
| 345 | * | |
| 346 | * @param name The name of the pref | |
| 347 | * @return The value of the pref | |
| 348 | */ | |
| 15884 | 349 | int purple_prefs_get_int(const char *name); |
| 5441 | 350 | |
| 351 | /** | |
| 352 | * Get string pref value | |
| 353 | * | |
| 354 | * @param name The name of the pref | |
| 355 | * @return The value of the pref | |
| 356 | */ | |
| 15884 | 357 | const char *purple_prefs_get_string(const char *name); |
| 5441 | 358 | |
| 359 | /** | |
|
10071
d2ba11541693
[gaim-migrate @ 11047]
Jonathan Champ <royanee@users.sourceforge.net>
parents:
10066
diff
changeset
|
360 | * Get string list pref value |
| 5561 | 361 | * |
| 362 | * @param name The name of the pref | |
| 363 | * @return The value of the pref | |
| 364 | */ | |
| 15884 | 365 | GList *purple_prefs_get_string_list(const char *name); |
| 5561 | 366 | |
| 367 | /** | |
| 15370 | 368 | * Get path pref value |
| 369 | * | |
| 370 | * @param name The name of the pref | |
| 371 | * @return The value of the pref | |
| 372 | */ | |
| 15884 | 373 | const char *purple_prefs_get_path(const char *name); |
| 15370 | 374 | |
| 375 | /** | |
| 376 | * Get path list pref value | |
| 377 | * | |
| 378 | * @param name The name of the pref | |
| 379 | * @return The value of the pref | |
| 380 | */ | |
| 15884 | 381 | GList *purple_prefs_get_path_list(const char *name); |
| 15370 | 382 | |
|
23129
f2be0f621ef6
Make this a doxygen comment.
Etan Reisner <deryni@pidgin.im>
parents:
21427
diff
changeset
|
383 | /** |
|
18714
65048af91a2c
Add purple_prefs_get_children_names in purple. And update Changelog.API
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15884
diff
changeset
|
384 | * Returns a list of children for a pref |
|
65048af91a2c
Add purple_prefs_get_children_names in purple. And update Changelog.API
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15884
diff
changeset
|
385 | * |
|
65048af91a2c
Add purple_prefs_get_children_names in purple. And update Changelog.API
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15884
diff
changeset
|
386 | * @param name The parent pref |
|
65048af91a2c
Add purple_prefs_get_children_names in purple. And update Changelog.API
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15884
diff
changeset
|
387 | * @return A list of newly allocated strings denoting the names of the children. |
|
65048af91a2c
Add purple_prefs_get_children_names in purple. And update Changelog.API
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15884
diff
changeset
|
388 | * Returns @c NULL if there are no children or if pref doesn't exist. |
|
65048af91a2c
Add purple_prefs_get_children_names in purple. And update Changelog.API
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15884
diff
changeset
|
389 | * The caller must free all the strings and the list. |
|
20940
925d3d68b3af
Doxygen @since tags for libpurple and pidgin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20147
diff
changeset
|
390 | * |
|
925d3d68b3af
Doxygen @since tags for libpurple and pidgin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20147
diff
changeset
|
391 | * @since 2.1.0 |
|
18714
65048af91a2c
Add purple_prefs_get_children_names in purple. And update Changelog.API
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15884
diff
changeset
|
392 | */ |
|
65048af91a2c
Add purple_prefs_get_children_names in purple. And update Changelog.API
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15884
diff
changeset
|
393 | GList *purple_prefs_get_children_names(const char *name); |
| 15370 | 394 | |
| 395 | /** | |
| 5441 | 396 | * Add a callback to a pref (and its children) |
|
27805
91e9fff01764
documents purple_prefs_connect_callback
Ka-Hing Cheung <khc@pidgin.im>
parents:
25911
diff
changeset
|
397 | * |
|
91e9fff01764
documents purple_prefs_connect_callback
Ka-Hing Cheung <khc@pidgin.im>
parents:
25911
diff
changeset
|
398 | * @param handle The handle of the receiver. |
|
91e9fff01764
documents purple_prefs_connect_callback
Ka-Hing Cheung <khc@pidgin.im>
parents:
25911
diff
changeset
|
399 | * @param name The name of the preference |
|
91e9fff01764
documents purple_prefs_connect_callback
Ka-Hing Cheung <khc@pidgin.im>
parents:
25911
diff
changeset
|
400 | * @param cb The callback function |
|
91e9fff01764
documents purple_prefs_connect_callback
Ka-Hing Cheung <khc@pidgin.im>
parents:
25911
diff
changeset
|
401 | * @param data The data to pass to the callback function. |
|
91e9fff01764
documents purple_prefs_connect_callback
Ka-Hing Cheung <khc@pidgin.im>
parents:
25911
diff
changeset
|
402 | * |
|
91e9fff01764
documents purple_prefs_connect_callback
Ka-Hing Cheung <khc@pidgin.im>
parents:
25911
diff
changeset
|
403 | * @return An id to disconnect the callback |
|
91e9fff01764
documents purple_prefs_connect_callback
Ka-Hing Cheung <khc@pidgin.im>
parents:
25911
diff
changeset
|
404 | * |
|
91e9fff01764
documents purple_prefs_connect_callback
Ka-Hing Cheung <khc@pidgin.im>
parents:
25911
diff
changeset
|
405 | * @see purple_prefs_disconnect_callback |
| 5441 | 406 | */ |
| 15884 | 407 | guint purple_prefs_connect_callback(void *handle, const char *name, PurplePrefCallback cb, |
| 5441 | 408 | gpointer data); |
| 409 | ||
| 410 | /** | |
| 411 | * Remove a callback to a pref | |
| 412 | */ | |
| 15884 | 413 | void purple_prefs_disconnect_callback(guint callback_id); |
| 5441 | 414 | |
| 415 | /** | |
|
10087
e5b80a38939d
[gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10071
diff
changeset
|
416 | * Remove all pref callbacks by handle |
|
e5b80a38939d
[gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10071
diff
changeset
|
417 | */ |
| 15884 | 418 | void purple_prefs_disconnect_by_handle(void *handle); |
|
10087
e5b80a38939d
[gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10071
diff
changeset
|
419 | |
|
e5b80a38939d
[gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10071
diff
changeset
|
420 | /** |
| 5684 | 421 | * Trigger callbacks as if the pref changed |
| 422 | */ | |
| 15884 | 423 | void purple_prefs_trigger_callback(const char *name); |
| 5684 | 424 | |
| 425 | /** | |
| 5441 | 426 | * Read preferences |
| 427 | */ | |
| 15884 | 428 | gboolean purple_prefs_load(void); |
| 5441 | 429 | |
| 430 | /** | |
|
8900
14f4b7ae958e
[gaim-migrate @ 9669]
Mark Doliner <markdoliner@pidgin.im>
parents:
8705
diff
changeset
|
431 | * Rename legacy prefs and delete some that no longer exist. |
|
14f4b7ae958e
[gaim-migrate @ 9669]
Mark Doliner <markdoliner@pidgin.im>
parents:
8705
diff
changeset
|
432 | */ |
| 15884 | 433 | void purple_prefs_update_old(void); |
|
8900
14f4b7ae958e
[gaim-migrate @ 9669]
Mark Doliner <markdoliner@pidgin.im>
parents:
8705
diff
changeset
|
434 | |
| 5441 | 435 | /*@}*/ |
| 436 | ||
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
437 | #ifdef __cplusplus |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
438 | } |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
439 | #endif |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
440 | |
| 15884 | 441 | #endif /* _PURPLE_PREFS_H_ */ |