| 52 } |
52 } |
| 53 |
53 |
| 54 void |
54 void |
| 55 gaim_request_fields_destroy(GaimRequestFields *fields) |
55 gaim_request_fields_destroy(GaimRequestFields *fields) |
| 56 { |
56 { |
| 57 GList *l; |
|
| 58 GaimRequestFieldGroup *group; |
|
| 59 |
|
| 60 g_return_if_fail(fields != NULL); |
57 g_return_if_fail(fields != NULL); |
| 61 |
58 |
| 62 for (l = fields->groups; l != NULL; l = l->next) |
59 g_list_foreach(fields->groups, (GFunc)gaim_request_field_group_destroy, NULL); |
| 63 { |
60 g_list_free(fields->groups); |
| 64 group = l->data; |
61 g_list_free(fields->required_fields); |
| 65 |
|
| 66 gaim_request_field_group_destroy(group); |
|
| 67 } |
|
| 68 |
|
| 69 if (fields->groups != NULL) |
|
| 70 g_list_free(fields->groups); |
|
| 71 |
|
| 72 if (fields->required_fields != NULL) |
|
| 73 g_list_free(fields->required_fields); |
|
| 74 |
|
| 75 g_hash_table_destroy(fields->fields); |
62 g_hash_table_destroy(fields->fields); |
| 76 |
|
| 77 g_free(fields); |
63 g_free(fields); |
| 78 } |
64 } |
| 79 |
65 |
| 80 void |
66 void |
| 81 gaim_request_fields_add_group(GaimRequestFields *fields, |
67 gaim_request_fields_add_group(GaimRequestFields *fields, |
| 261 { |
247 { |
| 262 GaimRequestFieldGroup *group; |
248 GaimRequestFieldGroup *group; |
| 263 |
249 |
| 264 group = g_new0(GaimRequestFieldGroup, 1); |
250 group = g_new0(GaimRequestFieldGroup, 1); |
| 265 |
251 |
| 266 if (title != NULL) |
252 group->title = g_strdup(title); |
| 267 group->title = g_strdup(title); |
|
| 268 |
253 |
| 269 return group; |
254 return group; |
| 270 } |
255 } |
| 271 |
256 |
| 272 void |
257 void |
| 273 gaim_request_field_group_destroy(GaimRequestFieldGroup *group) |
258 gaim_request_field_group_destroy(GaimRequestFieldGroup *group) |
| 274 { |
259 { |
| 275 GaimRequestField *field; |
|
| 276 GList *l; |
|
| 277 |
|
| 278 g_return_if_fail(group != NULL); |
260 g_return_if_fail(group != NULL); |
| 279 |
261 |
| 280 if (group->title != NULL) |
262 g_free(group->title); |
| 281 g_free(group->title); |
263 |
| 282 |
264 g_list_foreach(group->fields, (GFunc)gaim_request_field_destroy, NULL); |
| 283 for (l = group->fields; l != NULL; l = l->next) { |
|
| 284 field = l->data; |
|
| 285 |
|
| 286 gaim_request_field_destroy(field); |
|
| 287 } |
|
| 288 |
|
| 289 g_list_free(group->fields); |
265 g_list_free(group->fields); |
| 290 |
266 |
| 291 g_free(group); |
267 g_free(group); |
| 292 } |
268 } |
| 293 |
269 |
| 354 void |
330 void |
| 355 gaim_request_field_destroy(GaimRequestField *field) |
331 gaim_request_field_destroy(GaimRequestField *field) |
| 356 { |
332 { |
| 357 g_return_if_fail(field != NULL); |
333 g_return_if_fail(field != NULL); |
| 358 |
334 |
| 359 if (field->id != NULL) |
335 g_free(field->id); |
| 360 g_free(field->id); |
336 g_free(field->label); |
| 361 |
337 g_free(field->type_hint); |
| 362 if (field->label != NULL) |
|
| 363 g_free(field->label); |
|
| 364 |
|
| 365 if (field->type_hint != NULL) |
|
| 366 g_free(field->type_hint); |
|
| 367 |
338 |
| 368 if (field->type == GAIM_REQUEST_FIELD_STRING) |
339 if (field->type == GAIM_REQUEST_FIELD_STRING) |
| 369 { |
340 { |
| 370 if (field->u.string.default_value != NULL) |
341 g_free(field->u.string.default_value); |
| 371 g_free(field->u.string.default_value); |
342 g_free(field->u.string.value); |
| 372 |
|
| 373 if (field->u.string.value != NULL) |
|
| 374 g_free(field->u.string.value); |
|
| 375 } |
343 } |
| 376 else if (field->type == GAIM_REQUEST_FIELD_CHOICE) |
344 else if (field->type == GAIM_REQUEST_FIELD_CHOICE) |
| 377 { |
345 { |
| 378 if (field->u.choice.labels != NULL) |
346 if (field->u.choice.labels != NULL) |
| 379 { |
347 { |
| 405 void |
373 void |
| 406 gaim_request_field_set_label(GaimRequestField *field, const char *label) |
374 gaim_request_field_set_label(GaimRequestField *field, const char *label) |
| 407 { |
375 { |
| 408 g_return_if_fail(field != NULL); |
376 g_return_if_fail(field != NULL); |
| 409 |
377 |
| 410 if (field->label != NULL) |
378 g_free(field->label); |
| 411 g_free(field->label); |
379 field->label = g_strdup(label); |
| 412 |
|
| 413 field->label = (label == NULL ? NULL : g_strdup(label)); |
|
| 414 } |
380 } |
| 415 |
381 |
| 416 void |
382 void |
| 417 gaim_request_field_set_visible(GaimRequestField *field, gboolean visible) |
383 gaim_request_field_set_visible(GaimRequestField *field, gboolean visible) |
| 418 { |
384 { |
| 425 gaim_request_field_set_type_hint(GaimRequestField *field, |
391 gaim_request_field_set_type_hint(GaimRequestField *field, |
| 426 const char *type_hint) |
392 const char *type_hint) |
| 427 { |
393 { |
| 428 g_return_if_fail(field != NULL); |
394 g_return_if_fail(field != NULL); |
| 429 |
395 |
| 430 if (field->type_hint != NULL) |
396 g_free(field->type_hint); |
| 431 g_free(field->type_hint); |
397 field->type_hint = g_strdup(type_hint); |
| 432 |
|
| 433 field->type_hint = (type_hint == NULL ? NULL : g_strdup(type_hint)); |
|
| 434 } |
398 } |
| 435 |
399 |
| 436 void |
400 void |
| 437 gaim_request_field_set_required(GaimRequestField *field, gboolean required) |
401 gaim_request_field_set_required(GaimRequestField *field, gboolean required) |
| 438 { |
402 { |
| 533 const char *default_value) |
497 const char *default_value) |
| 534 { |
498 { |
| 535 g_return_if_fail(field != NULL); |
499 g_return_if_fail(field != NULL); |
| 536 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_STRING); |
500 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_STRING); |
| 537 |
501 |
| 538 if (field->u.string.default_value != NULL) |
502 g_free(field->u.string.default_value); |
| 539 g_free(field->u.string.default_value); |
503 field->u.string.default_value = g_strdup(default_value); |
| 540 |
|
| 541 field->u.string.default_value = (default_value == NULL |
|
| 542 ? NULL : g_strdup(default_value)); |
|
| 543 } |
504 } |
| 544 |
505 |
| 545 void |
506 void |
| 546 gaim_request_field_string_set_value(GaimRequestField *field, const char *value) |
507 gaim_request_field_string_set_value(GaimRequestField *field, const char *value) |
| 547 { |
508 { |
| 548 g_return_if_fail(field != NULL); |
509 g_return_if_fail(field != NULL); |
| 549 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_STRING); |
510 g_return_if_fail(field->type == GAIM_REQUEST_FIELD_STRING); |
| 550 |
511 |
| 551 if (field->u.string.value != NULL) |
512 g_free(field->u.string.value); |
| 552 g_free(field->u.string.value); |
513 field->u.string.value = g_strdup(value); |
| 553 |
|
| 554 field->u.string.value = (value == NULL ? NULL : g_strdup(value)); |
|
| 555 } |
514 } |
| 556 |
515 |
| 557 void |
516 void |
| 558 gaim_request_field_string_set_masked(GaimRequestField *field, gboolean masked) |
517 gaim_request_field_string_set_masked(GaimRequestField *field, gboolean masked) |
| 559 { |
518 { |