comparison libpurple/pluginpref.c @ 15373:5fe8042783c1

Rename gtk/ and libgaim/ to pidgin/ and libpurple/
author Sean Egan <seanegan@gmail.com>
date Sat, 20 Jan 2007 02:32:10 +0000
parents
children 32c366eeeb99
comparison
equal deleted inserted replaced
15372:f79e0f4df793 15373:5fe8042783c1
1 /**
2 * gaim
3 *
4 * Gaim is the legal property of its developers, whose names are too numerous
5 * to list here. Please refer to the COPYRIGHT file distributed with this
6 * source distribution.
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */
22 #ifdef HAVE_CONFIG_H
23 # include <config.h>
24 #endif
25
26 #include <glib.h>
27
28 #include "debug.h"
29 #include "internal.h"
30 #include "pluginpref.h"
31 #include "prefs.h"
32
33 struct _GaimPluginPrefFrame
34 {
35 GList *prefs;
36 };
37
38 struct _GaimPluginPref
39 {
40 char *name;
41 char *label;
42
43 GaimPluginPrefType type;
44
45 int min;
46 int max;
47 GList *choices;
48 unsigned int max_length;
49 gboolean masked;
50 GaimStringFormatType format;
51 };
52
53 GaimPluginPrefFrame *
54 gaim_plugin_pref_frame_new()
55 {
56 GaimPluginPrefFrame *frame;
57
58 frame = g_new0(GaimPluginPrefFrame, 1);
59
60 return frame;
61 }
62
63 void
64 gaim_plugin_pref_frame_destroy(GaimPluginPrefFrame *frame)
65 {
66 g_return_if_fail(frame != NULL);
67
68 g_list_foreach(frame->prefs, (GFunc)gaim_plugin_pref_destroy, NULL);
69 g_list_free(frame->prefs);
70 g_free(frame);
71 }
72
73 void
74 gaim_plugin_pref_frame_add(GaimPluginPrefFrame *frame, GaimPluginPref *pref)
75 {
76 g_return_if_fail(frame != NULL);
77 g_return_if_fail(pref != NULL);
78
79 frame->prefs = g_list_append(frame->prefs, pref);
80 }
81
82 GList *
83 gaim_plugin_pref_frame_get_prefs(GaimPluginPrefFrame *frame)
84 {
85 g_return_val_if_fail(frame != NULL, NULL);
86 g_return_val_if_fail(frame->prefs != NULL, NULL);
87
88 return frame->prefs;
89 }
90
91 GaimPluginPref *
92 gaim_plugin_pref_new()
93 {
94 GaimPluginPref *pref;
95
96 pref = g_new0(GaimPluginPref, 1);
97
98 return pref;
99 }
100
101 GaimPluginPref *
102 gaim_plugin_pref_new_with_name(const char *name)
103 {
104 GaimPluginPref *pref;
105
106 g_return_val_if_fail(name != NULL, NULL);
107
108 pref = g_new0(GaimPluginPref, 1);
109 pref->name = g_strdup(name);
110
111 return pref;
112 }
113
114 GaimPluginPref *
115 gaim_plugin_pref_new_with_label(const char *label)
116 {
117 GaimPluginPref *pref;
118
119 g_return_val_if_fail(label != NULL, NULL);
120
121 pref = g_new0(GaimPluginPref, 1);
122 pref->label = g_strdup(label);
123
124 return pref;
125 }
126
127 GaimPluginPref *
128 gaim_plugin_pref_new_with_name_and_label(const char *name, const char *label)
129 {
130 GaimPluginPref *pref;
131
132 g_return_val_if_fail(name != NULL, NULL);
133 g_return_val_if_fail(label != NULL, NULL);
134
135 pref = g_new0(GaimPluginPref, 1);
136 pref->name = g_strdup(name);
137 pref->label = g_strdup(label);
138
139 return pref;
140 }
141
142 void
143 gaim_plugin_pref_destroy(GaimPluginPref *pref)
144 {
145 g_return_if_fail(pref != NULL);
146
147 g_free(pref->name);
148 g_free(pref->label);
149 g_list_free(pref->choices);
150 g_free(pref);
151 }
152
153 void
154 gaim_plugin_pref_set_name(GaimPluginPref *pref, const char *name)
155 {
156 g_return_if_fail(pref != NULL);
157 g_return_if_fail(name != NULL);
158
159 g_free(pref->name);
160 pref->name = g_strdup(name);
161 }
162
163 const char *
164 gaim_plugin_pref_get_name(GaimPluginPref *pref)
165 {
166 g_return_val_if_fail(pref != NULL, NULL);
167
168 return pref->name;
169 }
170
171 void
172 gaim_plugin_pref_set_label(GaimPluginPref *pref, const char *label)
173 {
174 g_return_if_fail(pref != NULL);
175 g_return_if_fail(label != NULL);
176
177 g_free(pref->label);
178 pref->label = g_strdup(label);
179 }
180
181 const char *
182 gaim_plugin_pref_get_label(GaimPluginPref *pref)
183 {
184 g_return_val_if_fail(pref != NULL, NULL);
185
186 return pref->label;
187 }
188
189 void
190 gaim_plugin_pref_set_bounds(GaimPluginPref *pref, int min, int max)
191 {
192 int tmp;
193
194 g_return_if_fail(pref != NULL);
195 g_return_if_fail(pref->name != NULL);
196
197 if (gaim_prefs_get_type(pref->name) != GAIM_PREF_INT)
198 {
199 gaim_debug_info("pluginpref",
200 "gaim_plugin_pref_set_bounds: %s is not an integer pref\n",
201 pref->name);
202 return;
203 }
204
205 if (min > max)
206 {
207 tmp = min;
208 min = max;
209 max = tmp;
210 }
211
212 pref->min = min;
213 pref->max = max;
214 }
215
216 void gaim_plugin_pref_get_bounds(GaimPluginPref *pref, int *min, int *max)
217 {
218 g_return_if_fail(pref != NULL);
219 g_return_if_fail(pref->name != NULL);
220
221 if (gaim_prefs_get_type(pref->name) != GAIM_PREF_INT)
222 {
223 gaim_debug(GAIM_DEBUG_INFO, "pluginpref",
224 "gaim_plugin_pref_get_bounds: %s is not an integer pref\n",
225 pref->name);
226 return;
227 }
228
229 *min = pref->min;
230 *max = pref->max;
231 }
232
233 void
234 gaim_plugin_pref_set_type(GaimPluginPref *pref, GaimPluginPrefType type)
235 {
236 g_return_if_fail(pref != NULL);
237
238 pref->type = type;
239 }
240
241 GaimPluginPrefType
242 gaim_plugin_pref_get_type(GaimPluginPref *pref)
243 {
244 g_return_val_if_fail(pref != NULL, GAIM_PLUGIN_PREF_NONE);
245
246 return pref->type;
247 }
248
249 void
250 gaim_plugin_pref_add_choice(GaimPluginPref *pref, const char *label, gpointer choice)
251 {
252 g_return_if_fail(pref != NULL);
253 g_return_if_fail(label != NULL);
254 g_return_if_fail(choice || gaim_prefs_get_type(pref->name) == GAIM_PREF_INT);
255
256 pref->choices = g_list_append(pref->choices, (gpointer)label);
257 pref->choices = g_list_append(pref->choices, choice);
258 }
259
260 GList *
261 gaim_plugin_pref_get_choices(GaimPluginPref *pref)
262 {
263 g_return_val_if_fail(pref != NULL, NULL);
264
265 return pref->choices;
266 }
267
268 void
269 gaim_plugin_pref_set_max_length(GaimPluginPref *pref, unsigned int max_length)
270 {
271 g_return_if_fail(pref != NULL);
272
273 pref->max_length = max_length;
274 }
275
276 unsigned int
277 gaim_plugin_pref_get_max_length(GaimPluginPref *pref)
278 {
279 g_return_val_if_fail(pref != NULL, 0);
280
281 return pref->max_length;
282 }
283
284 void
285 gaim_plugin_pref_set_masked(GaimPluginPref *pref, gboolean masked)
286 {
287 g_return_if_fail(pref != NULL);
288
289 pref->masked = masked;
290 }
291
292 gboolean
293 gaim_plugin_pref_get_masked(GaimPluginPref *pref)
294 {
295 g_return_val_if_fail(pref != NULL, FALSE);
296
297 return pref->masked;
298 }
299
300 void
301 gaim_plugin_pref_set_format_type(GaimPluginPref *pref, GaimStringFormatType format)
302 {
303 g_return_if_fail(pref != NULL);
304 g_return_if_fail(pref->type == GAIM_PLUGIN_PREF_STRING_FORMAT);
305
306 pref->format = format;
307 }
308
309 GaimStringFormatType
310 gaim_plugin_pref_get_format_type(GaimPluginPref *pref)
311 {
312 g_return_val_if_fail(pref != NULL, 0);
313
314 if (pref->type != GAIM_PLUGIN_PREF_STRING_FORMAT)
315 return GAIM_STRING_FORMAT_TYPE_NONE;
316
317 return pref->format;
318 }
319