2 * @file pluginpref.h Plugin Preferences API
8 * Purple is the legal property of its developers, whose names are too numerous
9 * to list here. Please refer to the COPYRIGHT file distributed with this
10 * source distribution.
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.
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.
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
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
27 #ifndef _PURPLE_PLUGINPREF_H_
28 #define _PURPLE_PLUGINPREF_H_
30 typedef struct _PurplePluginPrefFrame PurplePluginPrefFrame
;
31 typedef struct _PurplePluginPref PurplePluginPref
;
34 * String format for preferences.
38 PURPLE_STRING_FORMAT_TYPE_NONE
= 0, /**< The string is plain text. */
39 PURPLE_STRING_FORMAT_TYPE_MULTILINE
= 1 << 0, /**< The string can have newlines. */
40 PURPLE_STRING_FORMAT_TYPE_HTML
= 1 << 1 /**< The string can be in HTML. */
41 } PurpleStringFormatType
;
44 PURPLE_PLUGIN_PREF_NONE
,
45 PURPLE_PLUGIN_PREF_CHOICE
,
46 PURPLE_PLUGIN_PREF_INFO
, /**< no-value label */
47 PURPLE_PLUGIN_PREF_STRING_FORMAT
/**< The preference has a string value. */
48 } PurplePluginPrefType
;
57 /**************************************************************************/
58 /** @name Plugin Preference API */
59 /**************************************************************************/
63 * Create a new plugin preference frame
65 * @return a new PurplePluginPrefFrame
67 PurplePluginPrefFrame
*purple_plugin_pref_frame_new(void);
70 * Destroy a plugin preference frame
72 * @param frame The plugin frame to destroy
74 void purple_plugin_pref_frame_destroy(PurplePluginPrefFrame
*frame
);
77 * Adds a plugin preference to a plugin preference frame
79 * @param frame The plugin frame to add the preference to
80 * @param pref The preference to add to the frame
82 void purple_plugin_pref_frame_add(PurplePluginPrefFrame
*frame
, PurplePluginPref
*pref
);
85 * Get the plugin preferences from a plugin preference frame
87 * @param frame The plugin frame to get the plugin preferences from
88 * @constreturn a GList of plugin preferences
90 GList
*purple_plugin_pref_frame_get_prefs(PurplePluginPrefFrame
*frame
);
93 * Create a new plugin preference
95 * @return a new PurplePluginPref
97 PurplePluginPref
*purple_plugin_pref_new(void);
100 * Create a new plugin preference with name
102 * @param name The name of the pref
103 * @return a new PurplePluginPref
105 PurplePluginPref
*purple_plugin_pref_new_with_name(const char *name
);
108 * Create a new plugin preference with label
110 * @param label The label to be displayed
111 * @return a new PurplePluginPref
113 PurplePluginPref
*purple_plugin_pref_new_with_label(const char *label
);
116 * Create a new plugin preference with name and label
118 * @param name The name of the pref
119 * @param label The label to be displayed
120 * @return a new PurplePluginPref
122 PurplePluginPref
*purple_plugin_pref_new_with_name_and_label(const char *name
, const char *label
);
125 * Destroy a plugin preference
127 * @param pref The preference to destroy
129 void purple_plugin_pref_destroy(PurplePluginPref
*pref
);
132 * Set a plugin pref name
134 * @param pref The plugin pref
135 * @param name The name of the pref
137 void purple_plugin_pref_set_name(PurplePluginPref
*pref
, const char *name
);
140 * Get a plugin pref name
142 * @param pref The plugin pref
143 * @return The name of the pref
145 const char *purple_plugin_pref_get_name(PurplePluginPref
*pref
);
148 * Set a plugin pref label
150 * @param pref The plugin pref
151 * @param label The label for the plugin pref
153 void purple_plugin_pref_set_label(PurplePluginPref
*pref
, const char *label
);
156 * Get a plugin pref label
158 * @param pref The plugin pref
159 * @return The label for the plugin pref
161 const char *purple_plugin_pref_get_label(PurplePluginPref
*pref
);
164 * Set the bounds for an integer pref
166 * @param pref The plugin pref
167 * @param min The min value
168 * @param max The max value
170 void purple_plugin_pref_set_bounds(PurplePluginPref
*pref
, int min
, int max
);
173 * Get the bounds for an integer pref
175 * @param pref The plugin pref
176 * @param min The min value
177 * @param max The max value
179 void purple_plugin_pref_get_bounds(PurplePluginPref
*pref
, int *min
, int *max
);
182 * Set the type of a plugin pref
184 * @param pref The plugin pref
185 * @param type The type
187 void purple_plugin_pref_set_type(PurplePluginPref
*pref
, PurplePluginPrefType type
);
190 * Get the type of a plugin pref
192 * @param pref The plugin pref
195 PurplePluginPrefType
purple_plugin_pref_get_type(PurplePluginPref
*pref
);
198 * Set the choices for a choices plugin pref
200 * @param pref The plugin pref
201 * @param label The label for the choice
202 * @param choice A gpointer of the choice
204 void purple_plugin_pref_add_choice(PurplePluginPref
*pref
, const char *label
, gpointer choice
);
207 * Get the choices for a choices plugin pref
209 * @param pref The plugin pref
210 * @constreturn GList of the choices
212 GList
*purple_plugin_pref_get_choices(PurplePluginPref
*pref
);
215 * Set the max length for a string plugin pref
217 * @param pref The plugin pref
218 * @param max_length The max length of the string
220 void purple_plugin_pref_set_max_length(PurplePluginPref
*pref
, unsigned int max_length
);
223 * Get the max length for a string plugin pref
225 * @param pref The plugin pref
226 * @return the max length
228 unsigned int purple_plugin_pref_get_max_length(PurplePluginPref
*pref
);
231 * Sets the masking of a string plugin pref
233 * @param pref The plugin pref
234 * @param mask The value to set
236 void purple_plugin_pref_set_masked(PurplePluginPref
*pref
, gboolean mask
);
239 * Gets the masking of a string plugin pref
241 * @param pref The plugin pref
242 * @return The masking
244 gboolean
purple_plugin_pref_get_masked(PurplePluginPref
*pref
);
247 * Sets the format type for a formattable-string plugin pref. You need to set the
248 * pref type to PURPLE_PLUGIN_PREF_STRING_FORMAT first before setting the format.
250 * @param pref The plugin pref
251 * @param format The format of the string
253 void purple_plugin_pref_set_format_type(PurplePluginPref
*pref
, PurpleStringFormatType format
);
256 * Gets the format type of the formattable-string plugin pref.
258 * @param pref The plugin pref
259 * @return The format of the pref
261 PurpleStringFormatType
purple_plugin_pref_get_format_type(PurplePluginPref
*pref
);
269 #endif /* _PURPLE_PLUGINPREF_H_ */