comparison libpurple/request.c @ 15853:c5487dd19e61

merge of '31ed92ba1b530f050510b4958686e3013ba4176c' and '41f65a78d919384ad599d73c656a367d92292a41'
author Evan Schoenberg <evan.s@dreskin.net>
date Tue, 20 Mar 2007 14:37:22 +0000
parents 32c366eeeb99
children 08db93bbd798
comparison
equal deleted inserted replaced
15852:5198bd455160 15853:c5487dd19e61
1 /** 1 /**
2 * @file request.c Request API 2 * @file request.c Request API
3 * @ingroup core 3 * @ingroup core
4 * 4 *
5 * gaim 5 * purple
6 * 6 *
7 * Gaim is the legal property of its developers, whose names are too numerous 7 * Purple is the legal property of its developers, whose names are too numerous
8 * to list here. Please refer to the COPYRIGHT file distributed with this 8 * to list here. Please refer to the COPYRIGHT file distributed with this
9 * source distribution. 9 * source distribution.
10 * 10 *
11 * This program is free software; you can redistribute it and/or modify 11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by 12 * it under the terms of the GNU General Public License as published by
24 */ 24 */
25 #include "notify.h" 25 #include "notify.h"
26 #include "request.h" 26 #include "request.h"
27 #include "debug.h" 27 #include "debug.h"
28 28
29 static GaimRequestUiOps *request_ui_ops = NULL; 29 static PurpleRequestUiOps *request_ui_ops = NULL;
30 static GList *handles = NULL; 30 static GList *handles = NULL;
31 31
32 typedef struct 32 typedef struct
33 { 33 {
34 GaimRequestType type; 34 PurpleRequestType type;
35 void *handle; 35 void *handle;
36 void *ui_handle; 36 void *ui_handle;
37 37
38 } GaimRequestInfo; 38 } PurpleRequestInfo;
39 39
40 40
41 GaimRequestFields * 41 PurpleRequestFields *
42 gaim_request_fields_new(void) 42 purple_request_fields_new(void)
43 { 43 {
44 GaimRequestFields *fields; 44 PurpleRequestFields *fields;
45 45
46 fields = g_new0(GaimRequestFields, 1); 46 fields = g_new0(PurpleRequestFields, 1);
47 47
48 fields->fields = g_hash_table_new_full(g_str_hash, g_str_equal, 48 fields->fields = g_hash_table_new_full(g_str_hash, g_str_equal,
49 g_free, NULL); 49 g_free, NULL);
50 50
51 return fields; 51 return fields;
52 } 52 }
53 53
54 void 54 void
55 gaim_request_fields_destroy(GaimRequestFields *fields) 55 purple_request_fields_destroy(PurpleRequestFields *fields)
56 { 56 {
57 g_return_if_fail(fields != NULL); 57 g_return_if_fail(fields != NULL);
58 58
59 g_list_foreach(fields->groups, (GFunc)gaim_request_field_group_destroy, NULL); 59 g_list_foreach(fields->groups, (GFunc)purple_request_field_group_destroy, NULL);
60 g_list_free(fields->groups); 60 g_list_free(fields->groups);
61 g_list_free(fields->required_fields); 61 g_list_free(fields->required_fields);
62 g_hash_table_destroy(fields->fields); 62 g_hash_table_destroy(fields->fields);
63 g_free(fields); 63 g_free(fields);
64 } 64 }
65 65
66 void 66 void
67 gaim_request_fields_add_group(GaimRequestFields *fields, 67 purple_request_fields_add_group(PurpleRequestFields *fields,
68 GaimRequestFieldGroup *group) 68 PurpleRequestFieldGroup *group)
69 { 69 {
70 GList *l; 70 GList *l;
71 GaimRequestField *field; 71 PurpleRequestField *field;
72 72
73 g_return_if_fail(fields != NULL); 73 g_return_if_fail(fields != NULL);
74 g_return_if_fail(group != NULL); 74 g_return_if_fail(group != NULL);
75 75
76 fields->groups = g_list_append(fields->groups, group); 76 fields->groups = g_list_append(fields->groups, group);
77 77
78 group->fields_list = fields; 78 group->fields_list = fields;
79 79
80 for (l = gaim_request_field_group_get_fields(group); 80 for (l = purple_request_field_group_get_fields(group);
81 l != NULL; 81 l != NULL;
82 l = l->next) { 82 l = l->next) {
83 83
84 field = l->data; 84 field = l->data;
85 85
86 g_hash_table_insert(fields->fields, 86 g_hash_table_insert(fields->fields,
87 g_strdup(gaim_request_field_get_id(field)), field); 87 g_strdup(purple_request_field_get_id(field)), field);
88 88
89 if (gaim_request_field_is_required(field)) { 89 if (purple_request_field_is_required(field)) {
90 fields->required_fields = 90 fields->required_fields =
91 g_list_append(fields->required_fields, field); 91 g_list_append(fields->required_fields, field);
92 } 92 }
93 93
94 } 94 }
95 } 95 }
96 96
97 GList * 97 GList *
98 gaim_request_fields_get_groups(const GaimRequestFields *fields) 98 purple_request_fields_get_groups(const PurpleRequestFields *fields)
99 { 99 {
100 g_return_val_if_fail(fields != NULL, NULL); 100 g_return_val_if_fail(fields != NULL, NULL);
101 101
102 return fields->groups; 102 return fields->groups;
103 } 103 }
104 104
105 gboolean 105 gboolean
106 gaim_request_fields_exists(const GaimRequestFields *fields, const char *id) 106 purple_request_fields_exists(const PurpleRequestFields *fields, const char *id)
107 { 107 {
108 g_return_val_if_fail(fields != NULL, FALSE); 108 g_return_val_if_fail(fields != NULL, FALSE);
109 g_return_val_if_fail(id != NULL, FALSE); 109 g_return_val_if_fail(id != NULL, FALSE);
110 110
111 return (g_hash_table_lookup(fields->fields, id) != NULL); 111 return (g_hash_table_lookup(fields->fields, id) != NULL);
112 } 112 }
113 113
114 const GList * 114 const GList *
115 gaim_request_fields_get_required(const GaimRequestFields *fields) 115 purple_request_fields_get_required(const PurpleRequestFields *fields)
116 { 116 {
117 g_return_val_if_fail(fields != NULL, NULL); 117 g_return_val_if_fail(fields != NULL, NULL);
118 118
119 return fields->required_fields; 119 return fields->required_fields;
120 } 120 }
121 121
122 gboolean 122 gboolean
123 gaim_request_fields_is_field_required(const GaimRequestFields *fields, 123 purple_request_fields_is_field_required(const PurpleRequestFields *fields,
124 const char *id) 124 const char *id)
125 { 125 {
126 GaimRequestField *field; 126 PurpleRequestField *field;
127 127
128 g_return_val_if_fail(fields != NULL, FALSE); 128 g_return_val_if_fail(fields != NULL, FALSE);
129 g_return_val_if_fail(id != NULL, FALSE); 129 g_return_val_if_fail(id != NULL, FALSE);
130 130
131 if ((field = gaim_request_fields_get_field(fields, id)) == NULL) 131 if ((field = purple_request_fields_get_field(fields, id)) == NULL)
132 return FALSE; 132 return FALSE;
133 133
134 return gaim_request_field_is_required(field); 134 return purple_request_field_is_required(field);
135 } 135 }
136 136
137 gboolean 137 gboolean
138 gaim_request_fields_all_required_filled(const GaimRequestFields *fields) 138 purple_request_fields_all_required_filled(const PurpleRequestFields *fields)
139 { 139 {
140 GList *l; 140 GList *l;
141 141
142 g_return_val_if_fail(fields != NULL, FALSE); 142 g_return_val_if_fail(fields != NULL, FALSE);
143 143
144 for (l = fields->required_fields; l != NULL; l = l->next) 144 for (l = fields->required_fields; l != NULL; l = l->next)
145 { 145 {
146 GaimRequestField *field = (GaimRequestField *)l->data; 146 PurpleRequestField *field = (PurpleRequestField *)l->data;
147 147
148 switch (gaim_request_field_get_type(field)) 148 switch (purple_request_field_get_type(field))
149 { 149 {
150 case GAIM_REQUEST_FIELD_STRING: 150 case PURPLE_REQUEST_FIELD_STRING:
151 if (gaim_request_field_string_get_value(field) == NULL) 151 if (purple_request_field_string_get_value(field) == NULL)
152 return FALSE; 152 return FALSE;
153 153
154 break; 154 break;
155 155
156 default: 156 default:
159 } 159 }
160 160
161 return TRUE; 161 return TRUE;
162 } 162 }
163 163
164 GaimRequestField * 164 PurpleRequestField *
165 gaim_request_fields_get_field(const GaimRequestFields *fields, const char *id) 165 purple_request_fields_get_field(const PurpleRequestFields *fields, const char *id)
166 { 166 {
167 GaimRequestField *field; 167 PurpleRequestField *field;
168 168
169 g_return_val_if_fail(fields != NULL, NULL); 169 g_return_val_if_fail(fields != NULL, NULL);
170 g_return_val_if_fail(id != NULL, NULL); 170 g_return_val_if_fail(id != NULL, NULL);
171 171
172 field = g_hash_table_lookup(fields->fields, id); 172 field = g_hash_table_lookup(fields->fields, id);
175 175
176 return field; 176 return field;
177 } 177 }
178 178
179 const char * 179 const char *
180 gaim_request_fields_get_string(const GaimRequestFields *fields, const char *id) 180 purple_request_fields_get_string(const PurpleRequestFields *fields, const char *id)
181 { 181 {
182 GaimRequestField *field; 182 PurpleRequestField *field;
183 183
184 g_return_val_if_fail(fields != NULL, NULL); 184 g_return_val_if_fail(fields != NULL, NULL);
185 g_return_val_if_fail(id != NULL, NULL); 185 g_return_val_if_fail(id != NULL, NULL);
186 186
187 if ((field = gaim_request_fields_get_field(fields, id)) == NULL) 187 if ((field = purple_request_fields_get_field(fields, id)) == NULL)
188 return NULL; 188 return NULL;
189 189
190 return gaim_request_field_string_get_value(field); 190 return purple_request_field_string_get_value(field);
191 } 191 }
192 192
193 int 193 int
194 gaim_request_fields_get_integer(const GaimRequestFields *fields, 194 purple_request_fields_get_integer(const PurpleRequestFields *fields,
195 const char *id) 195 const char *id)
196 { 196 {
197 GaimRequestField *field; 197 PurpleRequestField *field;
198 198
199 g_return_val_if_fail(fields != NULL, 0); 199 g_return_val_if_fail(fields != NULL, 0);
200 g_return_val_if_fail(id != NULL, 0); 200 g_return_val_if_fail(id != NULL, 0);
201 201
202 if ((field = gaim_request_fields_get_field(fields, id)) == NULL) 202 if ((field = purple_request_fields_get_field(fields, id)) == NULL)
203 return 0; 203 return 0;
204 204
205 return gaim_request_field_int_get_value(field); 205 return purple_request_field_int_get_value(field);
206 } 206 }
207 207
208 gboolean 208 gboolean
209 gaim_request_fields_get_bool(const GaimRequestFields *fields, const char *id) 209 purple_request_fields_get_bool(const PurpleRequestFields *fields, const char *id)
210 { 210 {
211 GaimRequestField *field; 211 PurpleRequestField *field;
212 212
213 g_return_val_if_fail(fields != NULL, FALSE); 213 g_return_val_if_fail(fields != NULL, FALSE);
214 g_return_val_if_fail(id != NULL, FALSE); 214 g_return_val_if_fail(id != NULL, FALSE);
215 215
216 if ((field = gaim_request_fields_get_field(fields, id)) == NULL) 216 if ((field = purple_request_fields_get_field(fields, id)) == NULL)
217 return FALSE; 217 return FALSE;
218 218
219 return gaim_request_field_bool_get_value(field); 219 return purple_request_field_bool_get_value(field);
220 } 220 }
221 221
222 int 222 int
223 gaim_request_fields_get_choice(const GaimRequestFields *fields, const char *id) 223 purple_request_fields_get_choice(const PurpleRequestFields *fields, const char *id)
224 { 224 {
225 GaimRequestField *field; 225 PurpleRequestField *field;
226 226
227 g_return_val_if_fail(fields != NULL, -1); 227 g_return_val_if_fail(fields != NULL, -1);
228 g_return_val_if_fail(id != NULL, -1); 228 g_return_val_if_fail(id != NULL, -1);
229 229
230 if ((field = gaim_request_fields_get_field(fields, id)) == NULL) 230 if ((field = purple_request_fields_get_field(fields, id)) == NULL)
231 return -1; 231 return -1;
232 232
233 return gaim_request_field_choice_get_value(field); 233 return purple_request_field_choice_get_value(field);
234 } 234 }
235 235
236 GaimAccount * 236 PurpleAccount *
237 gaim_request_fields_get_account(const GaimRequestFields *fields, 237 purple_request_fields_get_account(const PurpleRequestFields *fields,
238 const char *id) 238 const char *id)
239 { 239 {
240 GaimRequestField *field; 240 PurpleRequestField *field;
241 241
242 g_return_val_if_fail(fields != NULL, NULL); 242 g_return_val_if_fail(fields != NULL, NULL);
243 g_return_val_if_fail(id != NULL, NULL); 243 g_return_val_if_fail(id != NULL, NULL);
244 244
245 if ((field = gaim_request_fields_get_field(fields, id)) == NULL) 245 if ((field = purple_request_fields_get_field(fields, id)) == NULL)
246 return NULL; 246 return NULL;
247 247
248 return gaim_request_field_account_get_value(field); 248 return purple_request_field_account_get_value(field);
249 } 249 }
250 250
251 GaimRequestFieldGroup * 251 PurpleRequestFieldGroup *
252 gaim_request_field_group_new(const char *title) 252 purple_request_field_group_new(const char *title)
253 { 253 {
254 GaimRequestFieldGroup *group; 254 PurpleRequestFieldGroup *group;
255 255
256 group = g_new0(GaimRequestFieldGroup, 1); 256 group = g_new0(PurpleRequestFieldGroup, 1);
257 257
258 group->title = g_strdup(title); 258 group->title = g_strdup(title);
259 259
260 return group; 260 return group;
261 } 261 }
262 262
263 void 263 void
264 gaim_request_field_group_destroy(GaimRequestFieldGroup *group) 264 purple_request_field_group_destroy(PurpleRequestFieldGroup *group)
265 { 265 {
266 g_return_if_fail(group != NULL); 266 g_return_if_fail(group != NULL);
267 267
268 g_free(group->title); 268 g_free(group->title);
269 269
270 g_list_foreach(group->fields, (GFunc)gaim_request_field_destroy, NULL); 270 g_list_foreach(group->fields, (GFunc)purple_request_field_destroy, NULL);
271 g_list_free(group->fields); 271 g_list_free(group->fields);
272 272
273 g_free(group); 273 g_free(group);
274 } 274 }
275 275
276 void 276 void
277 gaim_request_field_group_add_field(GaimRequestFieldGroup *group, 277 purple_request_field_group_add_field(PurpleRequestFieldGroup *group,
278 GaimRequestField *field) 278 PurpleRequestField *field)
279 { 279 {
280 g_return_if_fail(group != NULL); 280 g_return_if_fail(group != NULL);
281 g_return_if_fail(field != NULL); 281 g_return_if_fail(field != NULL);
282 282
283 group->fields = g_list_append(group->fields, field); 283 group->fields = g_list_append(group->fields, field);
284 284
285 if (group->fields_list != NULL) 285 if (group->fields_list != NULL)
286 { 286 {
287 g_hash_table_insert(group->fields_list->fields, 287 g_hash_table_insert(group->fields_list->fields,
288 g_strdup(gaim_request_field_get_id(field)), field); 288 g_strdup(purple_request_field_get_id(field)), field);
289 289
290 if (gaim_request_field_is_required(field)) 290 if (purple_request_field_is_required(field))
291 { 291 {
292 group->fields_list->required_fields = 292 group->fields_list->required_fields =
293 g_list_append(group->fields_list->required_fields, field); 293 g_list_append(group->fields_list->required_fields, field);
294 } 294 }
295 } 295 }
297 field->group = group; 297 field->group = group;
298 298
299 } 299 }
300 300
301 const char * 301 const char *
302 gaim_request_field_group_get_title(const GaimRequestFieldGroup *group) 302 purple_request_field_group_get_title(const PurpleRequestFieldGroup *group)
303 { 303 {
304 g_return_val_if_fail(group != NULL, NULL); 304 g_return_val_if_fail(group != NULL, NULL);
305 305
306 return group->title; 306 return group->title;
307 } 307 }
308 308
309 GList * 309 GList *
310 gaim_request_field_group_get_fields(const GaimRequestFieldGroup *group) 310 purple_request_field_group_get_fields(const PurpleRequestFieldGroup *group)
311 { 311 {
312 g_return_val_if_fail(group != NULL, NULL); 312 g_return_val_if_fail(group != NULL, NULL);
313 313
314 return group->fields; 314 return group->fields;
315 } 315 }
316 316
317 GaimRequestField * 317 PurpleRequestField *
318 gaim_request_field_new(const char *id, const char *text, 318 purple_request_field_new(const char *id, const char *text,
319 GaimRequestFieldType type) 319 PurpleRequestFieldType type)
320 { 320 {
321 GaimRequestField *field; 321 PurpleRequestField *field;
322 322
323 g_return_val_if_fail(id != NULL, NULL); 323 g_return_val_if_fail(id != NULL, NULL);
324 g_return_val_if_fail(type != GAIM_REQUEST_FIELD_NONE, NULL); 324 g_return_val_if_fail(type != PURPLE_REQUEST_FIELD_NONE, NULL);
325 325
326 field = g_new0(GaimRequestField, 1); 326 field = g_new0(PurpleRequestField, 1);
327 327
328 field->id = g_strdup(id); 328 field->id = g_strdup(id);
329 field->type = type; 329 field->type = type;
330 330
331 gaim_request_field_set_label(field, text); 331 purple_request_field_set_label(field, text);
332 gaim_request_field_set_visible(field, TRUE); 332 purple_request_field_set_visible(field, TRUE);
333 333
334 return field; 334 return field;
335 } 335 }
336 336
337 void 337 void
338 gaim_request_field_destroy(GaimRequestField *field) 338 purple_request_field_destroy(PurpleRequestField *field)
339 { 339 {
340 g_return_if_fail(field != NULL); 340 g_return_if_fail(field != NULL);
341 341
342 g_free(field->id); 342 g_free(field->id);
343 g_free(field->label); 343 g_free(field->label);
344 g_free(field->type_hint); 344 g_free(field->type_hint);
345 345
346 if (field->type == GAIM_REQUEST_FIELD_STRING) 346 if (field->type == PURPLE_REQUEST_FIELD_STRING)
347 { 347 {
348 g_free(field->u.string.default_value); 348 g_free(field->u.string.default_value);
349 g_free(field->u.string.value); 349 g_free(field->u.string.value);
350 } 350 }
351 else if (field->type == GAIM_REQUEST_FIELD_CHOICE) 351 else if (field->type == PURPLE_REQUEST_FIELD_CHOICE)
352 { 352 {
353 if (field->u.choice.labels != NULL) 353 if (field->u.choice.labels != NULL)
354 { 354 {
355 g_list_foreach(field->u.choice.labels, (GFunc)g_free, NULL); 355 g_list_foreach(field->u.choice.labels, (GFunc)g_free, NULL);
356 g_list_free(field->u.choice.labels); 356 g_list_free(field->u.choice.labels);
357 } 357 }
358 } 358 }
359 else if (field->type == GAIM_REQUEST_FIELD_LIST) 359 else if (field->type == PURPLE_REQUEST_FIELD_LIST)
360 { 360 {
361 if (field->u.list.items != NULL) 361 if (field->u.list.items != NULL)
362 { 362 {
363 g_list_foreach(field->u.list.items, (GFunc)g_free, NULL); 363 g_list_foreach(field->u.list.items, (GFunc)g_free, NULL);
364 g_list_free(field->u.list.items); 364 g_list_free(field->u.list.items);
376 376
377 g_free(field); 377 g_free(field);
378 } 378 }
379 379
380 void 380 void
381 gaim_request_field_set_label(GaimRequestField *field, const char *label) 381 purple_request_field_set_label(PurpleRequestField *field, const char *label)
382 { 382 {
383 g_return_if_fail(field != NULL); 383 g_return_if_fail(field != NULL);
384 384
385 g_free(field->label); 385 g_free(field->label);
386 field->label = g_strdup(label); 386 field->label = g_strdup(label);
387 } 387 }
388 388
389 void 389 void
390 gaim_request_field_set_visible(GaimRequestField *field, gboolean visible) 390 purple_request_field_set_visible(PurpleRequestField *field, gboolean visible)
391 { 391 {
392 g_return_if_fail(field != NULL); 392 g_return_if_fail(field != NULL);
393 393
394 field->visible = visible; 394 field->visible = visible;
395 } 395 }
396 396
397 void 397 void
398 gaim_request_field_set_type_hint(GaimRequestField *field, 398 purple_request_field_set_type_hint(PurpleRequestField *field,
399 const char *type_hint) 399 const char *type_hint)
400 { 400 {
401 g_return_if_fail(field != NULL); 401 g_return_if_fail(field != NULL);
402 402
403 g_free(field->type_hint); 403 g_free(field->type_hint);
404 field->type_hint = g_strdup(type_hint); 404 field->type_hint = g_strdup(type_hint);
405 } 405 }
406 406
407 void 407 void
408 gaim_request_field_set_required(GaimRequestField *field, gboolean required) 408 purple_request_field_set_required(PurpleRequestField *field, gboolean required)
409 { 409 {
410 g_return_if_fail(field != NULL); 410 g_return_if_fail(field != NULL);
411 411
412 if (field->required == required) 412 if (field->required == required)
413 return; 413 return;
429 field); 429 field);
430 } 430 }
431 } 431 }
432 } 432 }
433 433
434 GaimRequestFieldType 434 PurpleRequestFieldType
435 gaim_request_field_get_type(const GaimRequestField *field) 435 purple_request_field_get_type(const PurpleRequestField *field)
436 { 436 {
437 g_return_val_if_fail(field != NULL, GAIM_REQUEST_FIELD_NONE); 437 g_return_val_if_fail(field != NULL, PURPLE_REQUEST_FIELD_NONE);
438 438
439 return field->type; 439 return field->type;
440 } 440 }
441 441
442 const char * 442 const char *
443 gaim_request_field_get_id(const GaimRequestField *field) 443 purple_request_field_get_id(const PurpleRequestField *field)
444 { 444 {
445 g_return_val_if_fail(field != NULL, NULL); 445 g_return_val_if_fail(field != NULL, NULL);
446 446
447 return field->id; 447 return field->id;
448 } 448 }
449 449
450 const char * 450 const char *
451 gaim_request_field_get_label(const GaimRequestField *field) 451 purple_request_field_get_label(const PurpleRequestField *field)
452 { 452 {
453 g_return_val_if_fail(field != NULL, NULL); 453 g_return_val_if_fail(field != NULL, NULL);
454 454
455 return field->label; 455 return field->label;
456 } 456 }
457 457
458 gboolean 458 gboolean
459 gaim_request_field_is_visible(const GaimRequestField *field) 459 purple_request_field_is_visible(const PurpleRequestField *field)
460 { 460 {
461 g_return_val_if_fail(field != NULL, FALSE); 461 g_return_val_if_fail(field != NULL, FALSE);
462 462
463 return field->visible; 463 return field->visible;
464 } 464 }
465 465
466 const char * 466 const char *
467 gaim_request_field_get_type_hint(const GaimRequestField *field) 467 purple_request_field_get_type_hint(const PurpleRequestField *field)
468 { 468 {
469 g_return_val_if_fail(field != NULL, NULL); 469 g_return_val_if_fail(field != NULL, NULL);
470 470
471 return field->type_hint; 471 return field->type_hint;
472 } 472 }
473 473
474 gboolean 474 gboolean
475 gaim_request_field_is_required(const GaimRequestField *field) 475 purple_request_field_is_required(const PurpleRequestField *field)
476 { 476 {
477 g_return_val_if_fail(field != NULL, FALSE); 477 g_return_val_if_fail(field != NULL, FALSE);
478 478
479 return field->required; 479 return field->required;
480 } 480 }
481 481
482 GaimRequestField * 482 PurpleRequestField *
483 gaim_request_field_string_new(const char *id, const char *text, 483 purple_request_field_string_new(const char *id, const char *text,
484 const char *default_value, gboolean multiline) 484 const char *default_value, gboolean multiline)
485 { 485 {
486 GaimRequestField *field; 486 PurpleRequestField *field;
487 487
488 g_return_val_if_fail(id != NULL, NULL); 488 g_return_val_if_fail(id != NULL, NULL);
489 g_return_val_if_fail(text != NULL, NULL); 489 g_return_val_if_fail(text != NULL, NULL);
490 490
491 field = gaim_request_field_new(id, text, GAIM_REQUEST_FIELD_STRING); 491 field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_STRING);
492 492
493 field->u.string.multiline = multiline; 493 field->u.string.multiline = multiline;
494 field->u.string.editable = TRUE; 494 field->u.string.editable = TRUE;
495 495
496 gaim_request_field_string_set_default_value(field, default_value); 496 purple_request_field_string_set_default_value(field, default_value);
497 gaim_request_field_string_set_value(field, default_value); 497 purple_request_field_string_set_value(field, default_value);
498 498
499 return field; 499 return field;
500 } 500 }
501 501
502 void 502 void
503 gaim_request_field_string_set_default_value(GaimRequestField *field, 503 purple_request_field_string_set_default_value(PurpleRequestField *field,
504 const char *default_value) 504 const char *default_value)
505 { 505 {
506 g_return_if_fail(field != NULL); 506 g_return_if_fail(field != NULL);
507 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_STRING); 507 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING);
508 508
509 g_free(field->u.string.default_value); 509 g_free(field->u.string.default_value);
510 field->u.string.default_value = g_strdup(default_value); 510 field->u.string.default_value = g_strdup(default_value);
511 } 511 }
512 512
513 void 513 void
514 gaim_request_field_string_set_value(GaimRequestField *field, const char *value) 514 purple_request_field_string_set_value(PurpleRequestField *field, const char *value)
515 { 515 {
516 g_return_if_fail(field != NULL); 516 g_return_if_fail(field != NULL);
517 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_STRING); 517 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING);
518 518
519 g_free(field->u.string.value); 519 g_free(field->u.string.value);
520 field->u.string.value = g_strdup(value); 520 field->u.string.value = g_strdup(value);
521 } 521 }
522 522
523 void 523 void
524 gaim_request_field_string_set_masked(GaimRequestField *field, gboolean masked) 524 purple_request_field_string_set_masked(PurpleRequestField *field, gboolean masked)
525 { 525 {
526 g_return_if_fail(field != NULL); 526 g_return_if_fail(field != NULL);
527 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_STRING); 527 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING);
528 528
529 field->u.string.masked = masked; 529 field->u.string.masked = masked;
530 } 530 }
531 531
532 void 532 void
533 gaim_request_field_string_set_editable(GaimRequestField *field, 533 purple_request_field_string_set_editable(PurpleRequestField *field,
534 gboolean editable) 534 gboolean editable)
535 { 535 {
536 g_return_if_fail(field != NULL); 536 g_return_if_fail(field != NULL);
537 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_STRING); 537 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING);
538 538
539 field->u.string.editable = editable; 539 field->u.string.editable = editable;
540 } 540 }
541 541
542 const char * 542 const char *
543 gaim_request_field_string_get_default_value(const GaimRequestField *field) 543 purple_request_field_string_get_default_value(const PurpleRequestField *field)
544 { 544 {
545 g_return_val_if_fail(field != NULL, NULL); 545 g_return_val_if_fail(field != NULL, NULL);
546 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_STRING, NULL); 546 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING, NULL);
547 547
548 return field->u.string.default_value; 548 return field->u.string.default_value;
549 } 549 }
550 550
551 const char * 551 const char *
552 gaim_request_field_string_get_value(const GaimRequestField *field) 552 purple_request_field_string_get_value(const PurpleRequestField *field)
553 { 553 {
554 g_return_val_if_fail(field != NULL, NULL); 554 g_return_val_if_fail(field != NULL, NULL);
555 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_STRING, NULL); 555 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING, NULL);
556 556
557 return field->u.string.value; 557 return field->u.string.value;
558 } 558 }
559 559
560 gboolean 560 gboolean
561 gaim_request_field_string_is_multiline(const GaimRequestField *field) 561 purple_request_field_string_is_multiline(const PurpleRequestField *field)
562 { 562 {
563 g_return_val_if_fail(field != NULL, FALSE); 563 g_return_val_if_fail(field != NULL, FALSE);
564 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_STRING, FALSE); 564 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING, FALSE);
565 565
566 return field->u.string.multiline; 566 return field->u.string.multiline;
567 } 567 }
568 568
569 gboolean 569 gboolean
570 gaim_request_field_string_is_masked(const GaimRequestField *field) 570 purple_request_field_string_is_masked(const PurpleRequestField *field)
571 { 571 {
572 g_return_val_if_fail(field != NULL, FALSE); 572 g_return_val_if_fail(field != NULL, FALSE);
573 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_STRING, FALSE); 573 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING, FALSE);
574 574
575 return field->u.string.masked; 575 return field->u.string.masked;
576 } 576 }
577 577
578 gboolean 578 gboolean
579 gaim_request_field_string_is_editable(const GaimRequestField *field) 579 purple_request_field_string_is_editable(const PurpleRequestField *field)
580 { 580 {
581 g_return_val_if_fail(field != NULL, FALSE); 581 g_return_val_if_fail(field != NULL, FALSE);
582 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_STRING, FALSE); 582 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING, FALSE);
583 583
584 return field->u.string.editable; 584 return field->u.string.editable;
585 } 585 }
586 586
587 GaimRequestField * 587 PurpleRequestField *
588 gaim_request_field_int_new(const char *id, const char *text, 588 purple_request_field_int_new(const char *id, const char *text,
589 int default_value) 589 int default_value)
590 { 590 {
591 GaimRequestField *field; 591 PurpleRequestField *field;
592 592
593 g_return_val_if_fail(id != NULL, NULL); 593 g_return_val_if_fail(id != NULL, NULL);
594 g_return_val_if_fail(text != NULL, NULL); 594 g_return_val_if_fail(text != NULL, NULL);
595 595
596 field = gaim_request_field_new(id, text, GAIM_REQUEST_FIELD_INTEGER); 596 field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_INTEGER);
597 597
598 gaim_request_field_int_set_default_value(field, default_value); 598 purple_request_field_int_set_default_value(field, default_value);
599 gaim_request_field_int_set_value(field, default_value); 599 purple_request_field_int_set_value(field, default_value);
600 600
601 return field; 601 return field;
602 } 602 }
603 603
604 void 604 void
605 gaim_request_field_int_set_default_value(GaimRequestField *field, 605 purple_request_field_int_set_default_value(PurpleRequestField *field,
606 int default_value) 606 int default_value)
607 { 607 {
608 g_return_if_fail(field != NULL); 608 g_return_if_fail(field != NULL);
609 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_INTEGER); 609 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_INTEGER);
610 610
611 field->u.integer.default_value = default_value; 611 field->u.integer.default_value = default_value;
612 } 612 }
613 613
614 void 614 void
615 gaim_request_field_int_set_value(GaimRequestField *field, int value) 615 purple_request_field_int_set_value(PurpleRequestField *field, int value)
616 { 616 {
617 g_return_if_fail(field != NULL); 617 g_return_if_fail(field != NULL);
618 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_INTEGER); 618 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_INTEGER);
619 619
620 field->u.integer.value = value; 620 field->u.integer.value = value;
621 } 621 }
622 622
623 int 623 int
624 gaim_request_field_int_get_default_value(const GaimRequestField *field) 624 purple_request_field_int_get_default_value(const PurpleRequestField *field)
625 { 625 {
626 g_return_val_if_fail(field != NULL, 0); 626 g_return_val_if_fail(field != NULL, 0);
627 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_INTEGER, 0); 627 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_INTEGER, 0);
628 628
629 return field->u.integer.default_value; 629 return field->u.integer.default_value;
630 } 630 }
631 631
632 int 632 int
633 gaim_request_field_int_get_value(const GaimRequestField *field) 633 purple_request_field_int_get_value(const PurpleRequestField *field)
634 { 634 {
635 g_return_val_if_fail(field != NULL, 0); 635 g_return_val_if_fail(field != NULL, 0);
636 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_INTEGER, 0); 636 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_INTEGER, 0);
637 637
638 return field->u.integer.value; 638 return field->u.integer.value;
639 } 639 }
640 640
641 GaimRequestField * 641 PurpleRequestField *
642 gaim_request_field_bool_new(const char *id, const char *text, 642 purple_request_field_bool_new(const char *id, const char *text,
643 gboolean default_value) 643 gboolean default_value)
644 { 644 {
645 GaimRequestField *field; 645 PurpleRequestField *field;
646 646
647 g_return_val_if_fail(id != NULL, NULL); 647 g_return_val_if_fail(id != NULL, NULL);
648 g_return_val_if_fail(text != NULL, NULL); 648 g_return_val_if_fail(text != NULL, NULL);
649 649
650 field = gaim_request_field_new(id, text, GAIM_REQUEST_FIELD_BOOLEAN); 650 field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_BOOLEAN);
651 651
652 gaim_request_field_bool_set_default_value(field, default_value); 652 purple_request_field_bool_set_default_value(field, default_value);
653 gaim_request_field_bool_set_value(field, default_value); 653 purple_request_field_bool_set_value(field, default_value);
654 654
655 return field; 655 return field;
656 } 656 }
657 657
658 void 658 void
659 gaim_request_field_bool_set_default_value(GaimRequestField *field, 659 purple_request_field_bool_set_default_value(PurpleRequestField *field,
660 gboolean default_value) 660 gboolean default_value)
661 { 661 {
662 g_return_if_fail(field != NULL); 662 g_return_if_fail(field != NULL);
663 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_BOOLEAN); 663 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_BOOLEAN);
664 664
665 field->u.boolean.default_value = default_value; 665 field->u.boolean.default_value = default_value;
666 } 666 }
667 667
668 void 668 void
669 gaim_request_field_bool_set_value(GaimRequestField *field, gboolean value) 669 purple_request_field_bool_set_value(PurpleRequestField *field, gboolean value)
670 { 670 {
671 g_return_if_fail(field != NULL); 671 g_return_if_fail(field != NULL);
672 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_BOOLEAN); 672 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_BOOLEAN);
673 673
674 field->u.boolean.value = value; 674 field->u.boolean.value = value;
675 } 675 }
676 676
677 gboolean 677 gboolean
678 gaim_request_field_bool_get_default_value(const GaimRequestField *field) 678 purple_request_field_bool_get_default_value(const PurpleRequestField *field)
679 { 679 {
680 g_return_val_if_fail(field != NULL, FALSE); 680 g_return_val_if_fail(field != NULL, FALSE);
681 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_BOOLEAN, FALSE); 681 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_BOOLEAN, FALSE);
682 682
683 return field->u.boolean.default_value; 683 return field->u.boolean.default_value;
684 } 684 }
685 685
686 gboolean 686 gboolean
687 gaim_request_field_bool_get_value(const GaimRequestField *field) 687 purple_request_field_bool_get_value(const PurpleRequestField *field)
688 { 688 {
689 g_return_val_if_fail(field != NULL, FALSE); 689 g_return_val_if_fail(field != NULL, FALSE);
690 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_BOOLEAN, FALSE); 690 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_BOOLEAN, FALSE);
691 691
692 return field->u.boolean.value; 692 return field->u.boolean.value;
693 } 693 }
694 694
695 GaimRequestField * 695 PurpleRequestField *
696 gaim_request_field_choice_new(const char *id, const char *text, 696 purple_request_field_choice_new(const char *id, const char *text,
697 int default_value) 697 int default_value)
698 { 698 {
699 GaimRequestField *field; 699 PurpleRequestField *field;
700 700
701 g_return_val_if_fail(id != NULL, NULL); 701 g_return_val_if_fail(id != NULL, NULL);
702 g_return_val_if_fail(text != NULL, NULL); 702 g_return_val_if_fail(text != NULL, NULL);
703 703
704 field = gaim_request_field_new(id, text, GAIM_REQUEST_FIELD_CHOICE); 704 field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_CHOICE);
705 705
706 gaim_request_field_choice_set_default_value(field, default_value); 706 purple_request_field_choice_set_default_value(field, default_value);
707 gaim_request_field_choice_set_value(field, default_value); 707 purple_request_field_choice_set_value(field, default_value);
708 708
709 return field; 709 return field;
710 } 710 }
711 711
712 void 712 void
713 gaim_request_field_choice_add(GaimRequestField *field, const char *label) 713 purple_request_field_choice_add(PurpleRequestField *field, const char *label)
714 { 714 {
715 g_return_if_fail(field != NULL); 715 g_return_if_fail(field != NULL);
716 g_return_if_fail(label != NULL); 716 g_return_if_fail(label != NULL);
717 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_CHOICE); 717 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_CHOICE);
718 718
719 field->u.choice.labels = g_list_append(field->u.choice.labels, 719 field->u.choice.labels = g_list_append(field->u.choice.labels,
720 g_strdup(label)); 720 g_strdup(label));
721 } 721 }
722 722
723 void 723 void
724 gaim_request_field_choice_set_default_value(GaimRequestField *field, 724 purple_request_field_choice_set_default_value(PurpleRequestField *field,
725 int default_value) 725 int default_value)
726 { 726 {
727 g_return_if_fail(field != NULL); 727 g_return_if_fail(field != NULL);
728 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_CHOICE); 728 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_CHOICE);
729 729
730 field->u.choice.default_value = default_value; 730 field->u.choice.default_value = default_value;
731 } 731 }
732 732
733 void 733 void
734 gaim_request_field_choice_set_value(GaimRequestField *field, 734 purple_request_field_choice_set_value(PurpleRequestField *field,
735 int value) 735 int value)
736 { 736 {
737 g_return_if_fail(field != NULL); 737 g_return_if_fail(field != NULL);
738 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_CHOICE); 738 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_CHOICE);
739 739
740 field->u.choice.value = value; 740 field->u.choice.value = value;
741 } 741 }
742 742
743 int 743 int
744 gaim_request_field_choice_get_default_value(const GaimRequestField *field) 744 purple_request_field_choice_get_default_value(const PurpleRequestField *field)
745 { 745 {
746 g_return_val_if_fail(field != NULL, -1); 746 g_return_val_if_fail(field != NULL, -1);
747 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_CHOICE, -1); 747 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_CHOICE, -1);
748 748
749 return field->u.choice.default_value; 749 return field->u.choice.default_value;
750 } 750 }
751 751
752 int 752 int
753 gaim_request_field_choice_get_value(const GaimRequestField *field) 753 purple_request_field_choice_get_value(const PurpleRequestField *field)
754 { 754 {
755 g_return_val_if_fail(field != NULL, -1); 755 g_return_val_if_fail(field != NULL, -1);
756 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_CHOICE, -1); 756 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_CHOICE, -1);
757 757
758 return field->u.choice.value; 758 return field->u.choice.value;
759 } 759 }
760 760
761 GList * 761 GList *
762 gaim_request_field_choice_get_labels(const GaimRequestField *field) 762 purple_request_field_choice_get_labels(const PurpleRequestField *field)
763 { 763 {
764 g_return_val_if_fail(field != NULL, NULL); 764 g_return_val_if_fail(field != NULL, NULL);
765 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_CHOICE, NULL); 765 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_CHOICE, NULL);
766 766
767 return field->u.choice.labels; 767 return field->u.choice.labels;
768 } 768 }
769 769
770 GaimRequestField * 770 PurpleRequestField *
771 gaim_request_field_list_new(const char *id, const char *text) 771 purple_request_field_list_new(const char *id, const char *text)
772 { 772 {
773 GaimRequestField *field; 773 PurpleRequestField *field;
774 774
775 g_return_val_if_fail(id != NULL, NULL); 775 g_return_val_if_fail(id != NULL, NULL);
776 776
777 field = gaim_request_field_new(id, text, GAIM_REQUEST_FIELD_LIST); 777 field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_LIST);
778 778
779 field->u.list.item_data = g_hash_table_new_full(g_str_hash, g_str_equal, 779 field->u.list.item_data = g_hash_table_new_full(g_str_hash, g_str_equal,
780 g_free, NULL); 780 g_free, NULL);
781 781
782 field->u.list.selected_table = 782 field->u.list.selected_table =
784 784
785 return field; 785 return field;
786 } 786 }
787 787
788 void 788 void
789 gaim_request_field_list_set_multi_select(GaimRequestField *field, 789 purple_request_field_list_set_multi_select(PurpleRequestField *field,
790 gboolean multi_select) 790 gboolean multi_select)
791 { 791 {
792 g_return_if_fail(field != NULL); 792 g_return_if_fail(field != NULL);
793 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_LIST); 793 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST);
794 794
795 field->u.list.multiple_selection = multi_select; 795 field->u.list.multiple_selection = multi_select;
796 } 796 }
797 797
798 gboolean 798 gboolean
799 gaim_request_field_list_get_multi_select(const GaimRequestField *field) 799 purple_request_field_list_get_multi_select(const PurpleRequestField *field)
800 { 800 {
801 g_return_val_if_fail(field != NULL, FALSE); 801 g_return_val_if_fail(field != NULL, FALSE);
802 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_LIST, FALSE); 802 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, FALSE);
803 803
804 return field->u.list.multiple_selection; 804 return field->u.list.multiple_selection;
805 } 805 }
806 806
807 void * 807 void *
808 gaim_request_field_list_get_data(const GaimRequestField *field, 808 purple_request_field_list_get_data(const PurpleRequestField *field,
809 const char *text) 809 const char *text)
810 { 810 {
811 g_return_val_if_fail(field != NULL, NULL); 811 g_return_val_if_fail(field != NULL, NULL);
812 g_return_val_if_fail(text != NULL, NULL); 812 g_return_val_if_fail(text != NULL, NULL);
813 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_LIST, NULL); 813 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL);
814 814
815 return g_hash_table_lookup(field->u.list.item_data, text); 815 return g_hash_table_lookup(field->u.list.item_data, text);
816 } 816 }
817 817
818 void 818 void
819 gaim_request_field_list_add(GaimRequestField *field, const char *item, 819 purple_request_field_list_add(PurpleRequestField *field, const char *item,
820 void *data) 820 void *data)
821 { 821 {
822 g_return_if_fail(field != NULL); 822 g_return_if_fail(field != NULL);
823 g_return_if_fail(item != NULL); 823 g_return_if_fail(item != NULL);
824 g_return_if_fail(data != NULL); 824 g_return_if_fail(data != NULL);
825 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_LIST); 825 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST);
826 826
827 field->u.list.items = g_list_append(field->u.list.items, g_strdup(item)); 827 field->u.list.items = g_list_append(field->u.list.items, g_strdup(item));
828 828
829 g_hash_table_insert(field->u.list.item_data, g_strdup(item), data); 829 g_hash_table_insert(field->u.list.item_data, g_strdup(item), data);
830 } 830 }
831 831
832 void 832 void
833 gaim_request_field_list_add_selected(GaimRequestField *field, const char *item) 833 purple_request_field_list_add_selected(PurpleRequestField *field, const char *item)
834 { 834 {
835 g_return_if_fail(field != NULL); 835 g_return_if_fail(field != NULL);
836 g_return_if_fail(item != NULL); 836 g_return_if_fail(item != NULL);
837 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_LIST); 837 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST);
838 838
839 if (!gaim_request_field_list_get_multi_select(field) && 839 if (!purple_request_field_list_get_multi_select(field) &&
840 field->u.list.selected != NULL) 840 field->u.list.selected != NULL)
841 { 841 {
842 gaim_debug_warning("request", 842 purple_debug_warning("request",
843 "More than one item added to non-multi-select " 843 "More than one item added to non-multi-select "
844 "field %s\n", 844 "field %s\n",
845 gaim_request_field_get_id(field)); 845 purple_request_field_get_id(field));
846 return; 846 return;
847 } 847 }
848 848
849 field->u.list.selected = g_list_append(field->u.list.selected, 849 field->u.list.selected = g_list_append(field->u.list.selected,
850 g_strdup(item)); 850 g_strdup(item));
851 851
852 g_hash_table_insert(field->u.list.selected_table, g_strdup(item), NULL); 852 g_hash_table_insert(field->u.list.selected_table, g_strdup(item), NULL);
853 } 853 }
854 854
855 void 855 void
856 gaim_request_field_list_clear_selected(GaimRequestField *field) 856 purple_request_field_list_clear_selected(PurpleRequestField *field)
857 { 857 {
858 g_return_if_fail(field != NULL); 858 g_return_if_fail(field != NULL);
859 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_LIST); 859 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST);
860 860
861 if (field->u.list.selected != NULL) 861 if (field->u.list.selected != NULL)
862 { 862 {
863 g_list_foreach(field->u.list.selected, (GFunc)g_free, NULL); 863 g_list_foreach(field->u.list.selected, (GFunc)g_free, NULL);
864 g_list_free(field->u.list.selected); 864 g_list_free(field->u.list.selected);
870 field->u.list.selected_table = 870 field->u.list.selected_table =
871 g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); 871 g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
872 } 872 }
873 873
874 void 874 void
875 gaim_request_field_list_set_selected(GaimRequestField *field, const GList *items) 875 purple_request_field_list_set_selected(PurpleRequestField *field, const GList *items)
876 { 876 {
877 const GList *l; 877 const GList *l;
878 878
879 g_return_if_fail(field != NULL); 879 g_return_if_fail(field != NULL);
880 g_return_if_fail(items != NULL); 880 g_return_if_fail(items != NULL);
881 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_LIST); 881 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST);
882 882
883 gaim_request_field_list_clear_selected(field); 883 purple_request_field_list_clear_selected(field);
884 884
885 if (!gaim_request_field_list_get_multi_select(field) && 885 if (!purple_request_field_list_get_multi_select(field) &&
886 g_list_length((GList*)items) > 1) 886 g_list_length((GList*)items) > 1)
887 { 887 {
888 gaim_debug_warning("request", 888 purple_debug_warning("request",
889 "More than one item added to non-multi-select " 889 "More than one item added to non-multi-select "
890 "field %s\n", 890 "field %s\n",
891 gaim_request_field_get_id(field)); 891 purple_request_field_get_id(field));
892 return; 892 return;
893 } 893 }
894 894
895 for (l = items; l != NULL; l = l->next) 895 for (l = items; l != NULL; l = l->next)
896 { 896 {
900 g_strdup((char *)l->data), NULL); 900 g_strdup((char *)l->data), NULL);
901 } 901 }
902 } 902 }
903 903
904 gboolean 904 gboolean
905 gaim_request_field_list_is_selected(const GaimRequestField *field, 905 purple_request_field_list_is_selected(const PurpleRequestField *field,
906 const char *item) 906 const char *item)
907 { 907 {
908 g_return_val_if_fail(field != NULL, FALSE); 908 g_return_val_if_fail(field != NULL, FALSE);
909 g_return_val_if_fail(item != NULL, FALSE); 909 g_return_val_if_fail(item != NULL, FALSE);
910 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_LIST, FALSE); 910 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, FALSE);
911 911
912 return g_hash_table_lookup_extended(field->u.list.selected_table, 912 return g_hash_table_lookup_extended(field->u.list.selected_table,
913 item, NULL, NULL); 913 item, NULL, NULL);
914 } 914 }
915 915
916 const GList * 916 const GList *
917 gaim_request_field_list_get_selected(const GaimRequestField *field) 917 purple_request_field_list_get_selected(const PurpleRequestField *field)
918 { 918 {
919 g_return_val_if_fail(field != NULL, NULL); 919 g_return_val_if_fail(field != NULL, NULL);
920 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_LIST, NULL); 920 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL);
921 921
922 return field->u.list.selected; 922 return field->u.list.selected;
923 } 923 }
924 924
925 const GList * 925 const GList *
926 gaim_request_field_list_get_items(const GaimRequestField *field) 926 purple_request_field_list_get_items(const PurpleRequestField *field)
927 { 927 {
928 g_return_val_if_fail(field != NULL, NULL); 928 g_return_val_if_fail(field != NULL, NULL);
929 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_LIST, NULL); 929 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL);
930 930
931 return field->u.list.items; 931 return field->u.list.items;
932 } 932 }
933 933
934 GaimRequestField * 934 PurpleRequestField *
935 gaim_request_field_label_new(const char *id, const char *text) 935 purple_request_field_label_new(const char *id, const char *text)
936 { 936 {
937 GaimRequestField *field; 937 PurpleRequestField *field;
938 938
939 g_return_val_if_fail(id != NULL, NULL); 939 g_return_val_if_fail(id != NULL, NULL);
940 g_return_val_if_fail(text != NULL, NULL); 940 g_return_val_if_fail(text != NULL, NULL);
941 941
942 field = gaim_request_field_new(id, text, GAIM_REQUEST_FIELD_LABEL); 942 field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_LABEL);
943 943
944 return field; 944 return field;
945 } 945 }
946 946
947 GaimRequestField * 947 PurpleRequestField *
948 gaim_request_field_image_new(const char *id, const char *text, const char *buf, gsize size) 948 purple_request_field_image_new(const char *id, const char *text, const char *buf, gsize size)
949 { 949 {
950 GaimRequestField *field; 950 PurpleRequestField *field;
951 951
952 g_return_val_if_fail(id != NULL, NULL); 952 g_return_val_if_fail(id != NULL, NULL);
953 g_return_val_if_fail(text != NULL, NULL); 953 g_return_val_if_fail(text != NULL, NULL);
954 g_return_val_if_fail(buf != NULL, NULL); 954 g_return_val_if_fail(buf != NULL, NULL);
955 g_return_val_if_fail(size > 0, NULL); 955 g_return_val_if_fail(size > 0, NULL);
956 956
957 field = gaim_request_field_new(id, text, GAIM_REQUEST_FIELD_IMAGE); 957 field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_IMAGE);
958 958
959 field->u.image.buffer = g_memdup(buf, size); 959 field->u.image.buffer = g_memdup(buf, size);
960 field->u.image.size = size; 960 field->u.image.size = size;
961 field->u.image.scale_x = 1; 961 field->u.image.scale_x = 1;
962 field->u.image.scale_y = 1; 962 field->u.image.scale_y = 1;
963 963
964 return field; 964 return field;
965 } 965 }
966 966
967 void 967 void
968 gaim_request_field_image_set_scale(GaimRequestField *field, unsigned int x, unsigned int y) 968 purple_request_field_image_set_scale(PurpleRequestField *field, unsigned int x, unsigned int y)
969 { 969 {
970 g_return_if_fail(field != NULL); 970 g_return_if_fail(field != NULL);
971 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_IMAGE); 971 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_IMAGE);
972 972
973 field->u.image.scale_x = x; 973 field->u.image.scale_x = x;
974 field->u.image.scale_y = y; 974 field->u.image.scale_y = y;
975 } 975 }
976 976
977 const char * 977 const char *
978 gaim_request_field_image_get_buffer(GaimRequestField *field) 978 purple_request_field_image_get_buffer(PurpleRequestField *field)
979 { 979 {
980 g_return_val_if_fail(field != NULL, NULL); 980 g_return_val_if_fail(field != NULL, NULL);
981 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_IMAGE, NULL); 981 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_IMAGE, NULL);
982 982
983 return field->u.image.buffer; 983 return field->u.image.buffer;
984 } 984 }
985 985
986 gsize 986 gsize
987 gaim_request_field_image_get_size(GaimRequestField *field) 987 purple_request_field_image_get_size(PurpleRequestField *field)
988 { 988 {
989 g_return_val_if_fail(field != NULL, 0); 989 g_return_val_if_fail(field != NULL, 0);
990 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_IMAGE, 0); 990 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_IMAGE, 0);
991 991
992 return field->u.image.size; 992 return field->u.image.size;
993 } 993 }
994 994
995 unsigned int 995 unsigned int
996 gaim_request_field_image_get_scale_x(GaimRequestField *field) 996 purple_request_field_image_get_scale_x(PurpleRequestField *field)
997 { 997 {
998 g_return_val_if_fail(field != NULL, 0); 998 g_return_val_if_fail(field != NULL, 0);
999 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_IMAGE, 0); 999 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_IMAGE, 0);
1000 1000
1001 return field->u.image.scale_x; 1001 return field->u.image.scale_x;
1002 } 1002 }
1003 1003
1004 unsigned int 1004 unsigned int
1005 gaim_request_field_image_get_scale_y(GaimRequestField *field) 1005 purple_request_field_image_get_scale_y(PurpleRequestField *field)
1006 { 1006 {
1007 g_return_val_if_fail(field != NULL, 0); 1007 g_return_val_if_fail(field != NULL, 0);
1008 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_IMAGE, 0); 1008 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_IMAGE, 0);
1009 1009
1010 return field->u.image.scale_y; 1010 return field->u.image.scale_y;
1011 } 1011 }
1012 1012
1013 GaimRequestField * 1013 PurpleRequestField *
1014 gaim_request_field_account_new(const char *id, const char *text, 1014 purple_request_field_account_new(const char *id, const char *text,
1015 GaimAccount *account) 1015 PurpleAccount *account)
1016 { 1016 {
1017 GaimRequestField *field; 1017 PurpleRequestField *field;
1018 1018
1019 g_return_val_if_fail(id != NULL, NULL); 1019 g_return_val_if_fail(id != NULL, NULL);
1020 g_return_val_if_fail(text != NULL, NULL); 1020 g_return_val_if_fail(text != NULL, NULL);
1021 1021
1022 field = gaim_request_field_new(id, text, GAIM_REQUEST_FIELD_ACCOUNT); 1022 field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_ACCOUNT);
1023 1023
1024 if (account == NULL && gaim_connections_get_all() != NULL) 1024 if (account == NULL && purple_connections_get_all() != NULL)
1025 { 1025 {
1026 account = gaim_connection_get_account( 1026 account = purple_connection_get_account(
1027 (GaimConnection *)gaim_connections_get_all()->data); 1027 (PurpleConnection *)purple_connections_get_all()->data);
1028 } 1028 }
1029 1029
1030 gaim_request_field_account_set_default_value(field, account); 1030 purple_request_field_account_set_default_value(field, account);
1031 gaim_request_field_account_set_value(field, account); 1031 purple_request_field_account_set_value(field, account);
1032 1032
1033 return field; 1033 return field;
1034 } 1034 }
1035 1035
1036 void 1036 void
1037 gaim_request_field_account_set_default_value(GaimRequestField *field, 1037 purple_request_field_account_set_default_value(PurpleRequestField *field,
1038 GaimAccount *default_value) 1038 PurpleAccount *default_value)
1039 { 1039 {
1040 g_return_if_fail(field != NULL); 1040 g_return_if_fail(field != NULL);
1041 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_ACCOUNT); 1041 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT);
1042 1042
1043 field->u.account.default_account = default_value; 1043 field->u.account.default_account = default_value;
1044 } 1044 }
1045 1045
1046 void 1046 void
1047 gaim_request_field_account_set_value(GaimRequestField *field, 1047 purple_request_field_account_set_value(PurpleRequestField *field,
1048 GaimAccount *value) 1048 PurpleAccount *value)
1049 { 1049 {
1050 g_return_if_fail(field != NULL); 1050 g_return_if_fail(field != NULL);
1051 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_ACCOUNT); 1051 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT);
1052 1052
1053 field->u.account.account = value; 1053 field->u.account.account = value;
1054 } 1054 }
1055 1055
1056 void 1056 void
1057 gaim_request_field_account_set_show_all(GaimRequestField *field, 1057 purple_request_field_account_set_show_all(PurpleRequestField *field,
1058 gboolean show_all) 1058 gboolean show_all)
1059 { 1059 {
1060 g_return_if_fail(field != NULL); 1060 g_return_if_fail(field != NULL);
1061 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_ACCOUNT); 1061 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT);
1062 1062
1063 if (field->u.account.show_all == show_all) 1063 if (field->u.account.show_all == show_all)
1064 return; 1064 return;
1065 1065
1066 field->u.account.show_all = show_all; 1066 field->u.account.show_all = show_all;
1067 1067
1068 if (!show_all) 1068 if (!show_all)
1069 { 1069 {
1070 if (gaim_account_is_connected(field->u.account.default_account)) 1070 if (purple_account_is_connected(field->u.account.default_account))
1071 { 1071 {
1072 gaim_request_field_account_set_default_value(field, 1072 purple_request_field_account_set_default_value(field,
1073 (GaimAccount *)gaim_connections_get_all()->data); 1073 (PurpleAccount *)purple_connections_get_all()->data);
1074 } 1074 }
1075 1075
1076 if (gaim_account_is_connected(field->u.account.account)) 1076 if (purple_account_is_connected(field->u.account.account))
1077 { 1077 {
1078 gaim_request_field_account_set_value(field, 1078 purple_request_field_account_set_value(field,
1079 (GaimAccount *)gaim_connections_get_all()->data); 1079 (PurpleAccount *)purple_connections_get_all()->data);
1080 } 1080 }
1081 } 1081 }
1082 } 1082 }
1083 1083
1084 void 1084 void
1085 gaim_request_field_account_set_filter(GaimRequestField *field, 1085 purple_request_field_account_set_filter(PurpleRequestField *field,
1086 GaimFilterAccountFunc filter_func) 1086 PurpleFilterAccountFunc filter_func)
1087 { 1087 {
1088 g_return_if_fail(field != NULL); 1088 g_return_if_fail(field != NULL);
1089 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_ACCOUNT); 1089 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT);
1090 1090
1091 field->u.account.filter_func = filter_func; 1091 field->u.account.filter_func = filter_func;
1092 } 1092 }
1093 1093
1094 GaimAccount * 1094 PurpleAccount *
1095 gaim_request_field_account_get_default_value(const GaimRequestField *field) 1095 purple_request_field_account_get_default_value(const PurpleRequestField *field)
1096 { 1096 {
1097 g_return_val_if_fail(field != NULL, NULL); 1097 g_return_val_if_fail(field != NULL, NULL);
1098 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_ACCOUNT, NULL); 1098 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT, NULL);
1099 1099
1100 return field->u.account.default_account; 1100 return field->u.account.default_account;
1101 } 1101 }
1102 1102
1103 GaimAccount * 1103 PurpleAccount *
1104 gaim_request_field_account_get_value(const GaimRequestField *field) 1104 purple_request_field_account_get_value(const PurpleRequestField *field)
1105 { 1105 {
1106 g_return_val_if_fail(field != NULL, NULL); 1106 g_return_val_if_fail(field != NULL, NULL);
1107 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_ACCOUNT, NULL); 1107 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT, NULL);
1108 1108
1109 return field->u.account.account; 1109 return field->u.account.account;
1110 } 1110 }
1111 1111
1112 gboolean 1112 gboolean
1113 gaim_request_field_account_get_show_all(const GaimRequestField *field) 1113 purple_request_field_account_get_show_all(const PurpleRequestField *field)
1114 { 1114 {
1115 g_return_val_if_fail(field != NULL, FALSE); 1115 g_return_val_if_fail(field != NULL, FALSE);
1116 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_ACCOUNT, FALSE); 1116 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT, FALSE);
1117 1117
1118 return field->u.account.show_all; 1118 return field->u.account.show_all;
1119 } 1119 }
1120 1120
1121 GaimFilterAccountFunc 1121 PurpleFilterAccountFunc
1122 gaim_request_field_account_get_filter(const GaimRequestField *field) 1122 purple_request_field_account_get_filter(const PurpleRequestField *field)
1123 { 1123 {
1124 g_return_val_if_fail(field != NULL, FALSE); 1124 g_return_val_if_fail(field != NULL, FALSE);
1125 g_return_val_if_fail(field->type == GAIM_REQUEST_FIELD_ACCOUNT, FALSE); 1125 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT, FALSE);
1126 1126
1127 return field->u.account.filter_func; 1127 return field->u.account.filter_func;
1128 } 1128 }
1129 1129
1130 /* -- */ 1130 /* -- */
1131 1131
1132 void * 1132 void *
1133 gaim_request_input(void *handle, const char *title, const char *primary, 1133 purple_request_input(void *handle, const char *title, const char *primary,
1134 const char *secondary, const char *default_value, 1134 const char *secondary, const char *default_value,
1135 gboolean multiline, gboolean masked, gchar *hint, 1135 gboolean multiline, gboolean masked, gchar *hint,
1136 const char *ok_text, GCallback ok_cb, 1136 const char *ok_text, GCallback ok_cb,
1137 const char *cancel_text, GCallback cancel_cb, 1137 const char *cancel_text, GCallback cancel_cb,
1138 void *user_data) 1138 void *user_data)
1139 { 1139 {
1140 GaimRequestUiOps *ops; 1140 PurpleRequestUiOps *ops;
1141 1141
1142 g_return_val_if_fail(ok_text != NULL, NULL); 1142 g_return_val_if_fail(ok_text != NULL, NULL);
1143 g_return_val_if_fail(ok_cb != NULL, NULL); 1143 g_return_val_if_fail(ok_cb != NULL, NULL);
1144 1144
1145 ops = gaim_request_get_ui_ops(); 1145 ops = purple_request_get_ui_ops();
1146 1146
1147 if (ops != NULL && ops->request_input != NULL) { 1147 if (ops != NULL && ops->request_input != NULL) {
1148 GaimRequestInfo *info; 1148 PurpleRequestInfo *info;
1149 1149
1150 info = g_new0(GaimRequestInfo, 1); 1150 info = g_new0(PurpleRequestInfo, 1);
1151 info->type = GAIM_REQUEST_INPUT; 1151 info->type = PURPLE_REQUEST_INPUT;
1152 info->handle = handle; 1152 info->handle = handle;
1153 info->ui_handle = ops->request_input(title, primary, secondary, 1153 info->ui_handle = ops->request_input(title, primary, secondary,
1154 default_value, 1154 default_value,
1155 multiline, masked, hint, 1155 multiline, masked, hint,
1156 ok_text, ok_cb, 1156 ok_text, ok_cb,
1164 1164
1165 return NULL; 1165 return NULL;
1166 } 1166 }
1167 1167
1168 void * 1168 void *
1169 gaim_request_choice(void *handle, const char *title, const char *primary, 1169 purple_request_choice(void *handle, const char *title, const char *primary,
1170 const char *secondary, unsigned int default_value, 1170 const char *secondary, unsigned int default_value,
1171 const char *ok_text, GCallback ok_cb, 1171 const char *ok_text, GCallback ok_cb,
1172 const char *cancel_text, GCallback cancel_cb, 1172 const char *cancel_text, GCallback cancel_cb,
1173 void *user_data, ...) 1173 void *user_data, ...)
1174 { 1174 {
1177 1177
1178 g_return_val_if_fail(ok_text != NULL, NULL); 1178 g_return_val_if_fail(ok_text != NULL, NULL);
1179 g_return_val_if_fail(ok_cb != NULL, NULL); 1179 g_return_val_if_fail(ok_cb != NULL, NULL);
1180 1180
1181 va_start(args, user_data); 1181 va_start(args, user_data);
1182 ui_handle = gaim_request_choice_varg(handle, title, primary, secondary, 1182 ui_handle = purple_request_choice_varg(handle, title, primary, secondary,
1183 default_value, ok_text, ok_cb, 1183 default_value, ok_text, ok_cb,
1184 cancel_text, cancel_cb, user_data, args); 1184 cancel_text, cancel_cb, user_data, args);
1185 va_end(args); 1185 va_end(args);
1186 1186
1187 return ui_handle; 1187 return ui_handle;
1188 } 1188 }
1189 1189
1190 void * 1190 void *
1191 gaim_request_choice_varg(void *handle, const char *title, 1191 purple_request_choice_varg(void *handle, const char *title,
1192 const char *primary, const char *secondary, 1192 const char *primary, const char *secondary,
1193 unsigned int default_value, 1193 unsigned int default_value,
1194 const char *ok_text, GCallback ok_cb, 1194 const char *ok_text, GCallback ok_cb,
1195 const char *cancel_text, GCallback cancel_cb, 1195 const char *cancel_text, GCallback cancel_cb,
1196 void *user_data, va_list choices) 1196 void *user_data, va_list choices)
1197 { 1197 {
1198 GaimRequestUiOps *ops; 1198 PurpleRequestUiOps *ops;
1199 1199
1200 g_return_val_if_fail(ok_text != NULL, NULL); 1200 g_return_val_if_fail(ok_text != NULL, NULL);
1201 g_return_val_if_fail(ok_cb != NULL, NULL); 1201 g_return_val_if_fail(ok_cb != NULL, NULL);
1202 1202
1203 ops = gaim_request_get_ui_ops(); 1203 ops = purple_request_get_ui_ops();
1204 1204
1205 if (ops != NULL && ops->request_choice != NULL) { 1205 if (ops != NULL && ops->request_choice != NULL) {
1206 GaimRequestInfo *info; 1206 PurpleRequestInfo *info;
1207 1207
1208 info = g_new0(GaimRequestInfo, 1); 1208 info = g_new0(PurpleRequestInfo, 1);
1209 info->type = GAIM_REQUEST_CHOICE; 1209 info->type = PURPLE_REQUEST_CHOICE;
1210 info->handle = handle; 1210 info->handle = handle;
1211 info->ui_handle = ops->request_choice(title, primary, secondary, 1211 info->ui_handle = ops->request_choice(title, primary, secondary,
1212 default_value, 1212 default_value,
1213 ok_text, ok_cb, 1213 ok_text, ok_cb,
1214 cancel_text, cancel_cb, 1214 cancel_text, cancel_cb,
1221 1221
1222 return NULL; 1222 return NULL;
1223 } 1223 }
1224 1224
1225 void * 1225 void *
1226 gaim_request_action(void *handle, const char *title, const char *primary, 1226 purple_request_action(void *handle, const char *title, const char *primary,
1227 const char *secondary, unsigned int default_action, 1227 const char *secondary, unsigned int default_action,
1228 void *user_data, size_t action_count, ...) 1228 void *user_data, size_t action_count, ...)
1229 { 1229 {
1230 void *ui_handle; 1230 void *ui_handle;
1231 va_list args; 1231 va_list args;
1232 1232
1233 g_return_val_if_fail(action_count > 0, NULL); 1233 g_return_val_if_fail(action_count > 0, NULL);
1234 1234
1235 va_start(args, action_count); 1235 va_start(args, action_count);
1236 ui_handle = gaim_request_action_varg(handle, title, primary, secondary, 1236 ui_handle = purple_request_action_varg(handle, title, primary, secondary,
1237 default_action, user_data, 1237 default_action, user_data,
1238 action_count, args); 1238 action_count, args);
1239 va_end(args); 1239 va_end(args);
1240 1240
1241 return ui_handle; 1241 return ui_handle;
1242 } 1242 }
1243 1243
1244 void * 1244 void *
1245 gaim_request_action_varg(void *handle, const char *title, 1245 purple_request_action_varg(void *handle, const char *title,
1246 const char *primary, const char *secondary, 1246 const char *primary, const char *secondary,
1247 unsigned int default_action, void *user_data, 1247 unsigned int default_action, void *user_data,
1248 size_t action_count, va_list actions) 1248 size_t action_count, va_list actions)
1249 { 1249 {
1250 GaimRequestUiOps *ops; 1250 PurpleRequestUiOps *ops;
1251 1251
1252 g_return_val_if_fail(action_count > 0, NULL); 1252 g_return_val_if_fail(action_count > 0, NULL);
1253 1253
1254 ops = gaim_request_get_ui_ops(); 1254 ops = purple_request_get_ui_ops();
1255 1255
1256 if (ops != NULL && ops->request_action != NULL) { 1256 if (ops != NULL && ops->request_action != NULL) {
1257 GaimRequestInfo *info; 1257 PurpleRequestInfo *info;
1258 1258
1259 info = g_new0(GaimRequestInfo, 1); 1259 info = g_new0(PurpleRequestInfo, 1);
1260 info->type = GAIM_REQUEST_ACTION; 1260 info->type = PURPLE_REQUEST_ACTION;
1261 info->handle = handle; 1261 info->handle = handle;
1262 info->ui_handle = ops->request_action(title, primary, secondary, 1262 info->ui_handle = ops->request_action(title, primary, secondary,
1263 default_action, user_data, 1263 default_action, user_data,
1264 action_count, actions); 1264 action_count, actions);
1265 1265
1270 1270
1271 return NULL; 1271 return NULL;
1272 } 1272 }
1273 1273
1274 void * 1274 void *
1275 gaim_request_fields(void *handle, const char *title, const char *primary, 1275 purple_request_fields(void *handle, const char *title, const char *primary,
1276 const char *secondary, GaimRequestFields *fields, 1276 const char *secondary, PurpleRequestFields *fields,
1277 const char *ok_text, GCallback ok_cb, 1277 const char *ok_text, GCallback ok_cb,
1278 const char *cancel_text, GCallback cancel_cb, 1278 const char *cancel_text, GCallback cancel_cb,
1279 void *user_data) 1279 void *user_data)
1280 { 1280 {
1281 GaimRequestUiOps *ops; 1281 PurpleRequestUiOps *ops;
1282 1282
1283 g_return_val_if_fail(fields != NULL, NULL); 1283 g_return_val_if_fail(fields != NULL, NULL);
1284 g_return_val_if_fail(ok_text != NULL, NULL); 1284 g_return_val_if_fail(ok_text != NULL, NULL);
1285 g_return_val_if_fail(ok_cb != NULL, NULL); 1285 g_return_val_if_fail(ok_cb != NULL, NULL);
1286 1286
1287 ops = gaim_request_get_ui_ops(); 1287 ops = purple_request_get_ui_ops();
1288 1288
1289 if (ops != NULL && ops->request_fields != NULL) { 1289 if (ops != NULL && ops->request_fields != NULL) {
1290 GaimRequestInfo *info; 1290 PurpleRequestInfo *info;
1291 1291
1292 info = g_new0(GaimRequestInfo, 1); 1292 info = g_new0(PurpleRequestInfo, 1);
1293 info->type = GAIM_REQUEST_FIELDS; 1293 info->type = PURPLE_REQUEST_FIELDS;
1294 info->handle = handle; 1294 info->handle = handle;
1295 info->ui_handle = ops->request_fields(title, primary, secondary, 1295 info->ui_handle = ops->request_fields(title, primary, secondary,
1296 fields, ok_text, ok_cb, 1296 fields, ok_text, ok_cb,
1297 cancel_text, cancel_cb, 1297 cancel_text, cancel_cb,
1298 user_data); 1298 user_data);
1304 1304
1305 return NULL; 1305 return NULL;
1306 } 1306 }
1307 1307
1308 void * 1308 void *
1309 gaim_request_file(void *handle, const char *title, const char *filename, 1309 purple_request_file(void *handle, const char *title, const char *filename,
1310 gboolean savedialog, 1310 gboolean savedialog,
1311 GCallback ok_cb, GCallback cancel_cb, void *user_data) 1311 GCallback ok_cb, GCallback cancel_cb, void *user_data)
1312 { 1312 {
1313 GaimRequestUiOps *ops; 1313 PurpleRequestUiOps *ops;
1314 1314
1315 ops = gaim_request_get_ui_ops(); 1315 ops = purple_request_get_ui_ops();
1316 1316
1317 if (ops != NULL && ops->request_file != NULL) { 1317 if (ops != NULL && ops->request_file != NULL) {
1318 GaimRequestInfo *info; 1318 PurpleRequestInfo *info;
1319 1319
1320 info = g_new0(GaimRequestInfo, 1); 1320 info = g_new0(PurpleRequestInfo, 1);
1321 info->type = GAIM_REQUEST_FILE; 1321 info->type = PURPLE_REQUEST_FILE;
1322 info->handle = handle; 1322 info->handle = handle;
1323 info->ui_handle = ops->request_file(title, filename, savedialog, 1323 info->ui_handle = ops->request_file(title, filename, savedialog,
1324 ok_cb, cancel_cb, user_data); 1324 ok_cb, cancel_cb, user_data);
1325 handles = g_list_append(handles, info); 1325 handles = g_list_append(handles, info);
1326 return info->ui_handle; 1326 return info->ui_handle;
1328 1328
1329 return NULL; 1329 return NULL;
1330 } 1330 }
1331 1331
1332 void * 1332 void *
1333 gaim_request_folder(void *handle, const char *title, const char *dirname, 1333 purple_request_folder(void *handle, const char *title, const char *dirname,
1334 GCallback ok_cb, GCallback cancel_cb, void *user_data) 1334 GCallback ok_cb, GCallback cancel_cb, void *user_data)
1335 { 1335 {
1336 GaimRequestUiOps *ops; 1336 PurpleRequestUiOps *ops;
1337 1337
1338 ops = gaim_request_get_ui_ops(); 1338 ops = purple_request_get_ui_ops();
1339 1339
1340 if (ops != NULL && ops->request_file != NULL) { 1340 if (ops != NULL && ops->request_file != NULL) {
1341 GaimRequestInfo *info; 1341 PurpleRequestInfo *info;
1342 1342
1343 info = g_new0(GaimRequestInfo, 1); 1343 info = g_new0(PurpleRequestInfo, 1);
1344 info->type = GAIM_REQUEST_FOLDER; 1344 info->type = PURPLE_REQUEST_FOLDER;
1345 info->handle = handle; 1345 info->handle = handle;
1346 info->ui_handle = ops->request_folder(title, dirname, 1346 info->ui_handle = ops->request_folder(title, dirname,
1347 ok_cb, cancel_cb, user_data); 1347 ok_cb, cancel_cb, user_data);
1348 handles = g_list_append(handles, info); 1348 handles = g_list_append(handles, info);
1349 return info->ui_handle; 1349 return info->ui_handle;
1351 1351
1352 return NULL; 1352 return NULL;
1353 } 1353 }
1354 1354
1355 static void 1355 static void
1356 gaim_request_close_info(GaimRequestInfo *info) 1356 purple_request_close_info(PurpleRequestInfo *info)
1357 { 1357 {
1358 GaimRequestUiOps *ops; 1358 PurpleRequestUiOps *ops;
1359 1359
1360 ops = gaim_request_get_ui_ops(); 1360 ops = purple_request_get_ui_ops();
1361 1361
1362 gaim_notify_close_with_handle(info->ui_handle); 1362 purple_notify_close_with_handle(info->ui_handle);
1363 gaim_request_close_with_handle(info->ui_handle); 1363 purple_request_close_with_handle(info->ui_handle);
1364 1364
1365 if (ops != NULL && ops->close_request != NULL) 1365 if (ops != NULL && ops->close_request != NULL)
1366 ops->close_request(info->type, info->ui_handle); 1366 ops->close_request(info->type, info->ui_handle);
1367 1367
1368 g_free(info); 1368 g_free(info);
1369 } 1369 }
1370 1370
1371 void 1371 void
1372 gaim_request_close(GaimRequestType type, void *ui_handle) 1372 purple_request_close(PurpleRequestType type, void *ui_handle)
1373 { 1373 {
1374 GList *l; 1374 GList *l;
1375 1375
1376 g_return_if_fail(ui_handle != NULL); 1376 g_return_if_fail(ui_handle != NULL);
1377 1377
1378 for (l = handles; l != NULL; l = l->next) { 1378 for (l = handles; l != NULL; l = l->next) {
1379 GaimRequestInfo *info = l->data; 1379 PurpleRequestInfo *info = l->data;
1380 1380
1381 if (info->ui_handle == ui_handle) { 1381 if (info->ui_handle == ui_handle) {
1382 handles = g_list_remove(handles, info); 1382 handles = g_list_remove(handles, info);
1383 gaim_request_close_info(info); 1383 purple_request_close_info(info);
1384 break; 1384 break;
1385 } 1385 }
1386 } 1386 }
1387 } 1387 }
1388 1388
1389 void 1389 void
1390 gaim_request_close_with_handle(void *handle) 1390 purple_request_close_with_handle(void *handle)
1391 { 1391 {
1392 GList *l, *l_next; 1392 GList *l, *l_next;
1393 1393
1394 g_return_if_fail(handle != NULL); 1394 g_return_if_fail(handle != NULL);
1395 1395
1396 for (l = handles; l != NULL; l = l_next) { 1396 for (l = handles; l != NULL; l = l_next) {
1397 GaimRequestInfo *info = l->data; 1397 PurpleRequestInfo *info = l->data;
1398 1398
1399 l_next = l->next; 1399 l_next = l->next;
1400 1400
1401 if (info->handle == handle) { 1401 if (info->handle == handle) {
1402 handles = g_list_remove(handles, info); 1402 handles = g_list_remove(handles, info);
1403 gaim_request_close_info(info); 1403 purple_request_close_info(info);
1404 } 1404 }
1405 } 1405 }
1406 } 1406 }
1407 1407
1408 void 1408 void
1409 gaim_request_set_ui_ops(GaimRequestUiOps *ops) 1409 purple_request_set_ui_ops(PurpleRequestUiOps *ops)
1410 { 1410 {
1411 request_ui_ops = ops; 1411 request_ui_ops = ops;
1412 } 1412 }
1413 1413
1414 GaimRequestUiOps * 1414 PurpleRequestUiOps *
1415 gaim_request_get_ui_ops(void) 1415 purple_request_get_ui_ops(void)
1416 { 1416 {
1417 return request_ui_ops; 1417 return request_ui_ops;
1418 } 1418 }