Mercurial > pidgin
comparison libpurple/request.c @ 32317:d72f2f13b60f
merge of 'c8c73eea7431e6f940916315ace40a41c8da3faa'
and 'fec428131bde0ae8247941bd6a3d996c984c9189'
| author | Ethan Blanton <elb@pidgin.im> |
|---|---|
| date | Fri, 21 Oct 2011 14:36:18 +0000 |
| parents | 5aa171c8776b |
| children | c3eaa2a6aa42 |
comparison
equal
deleted
inserted
replaced
| 32316:14787acaf9d7 | 32317:d72f2f13b60f |
|---|---|
| 40 void *handle; | 40 void *handle; |
| 41 void *ui_handle; | 41 void *ui_handle; |
| 42 | 42 |
| 43 } PurpleRequestInfo; | 43 } PurpleRequestInfo; |
| 44 | 44 |
| 45 struct _PurpleRequestField | |
| 46 { | |
| 47 PurpleRequestFieldType type; | |
| 48 PurpleRequestFieldGroup *group; | |
| 49 | |
| 50 char *id; | |
| 51 char *label; | |
| 52 char *type_hint; | |
| 53 | |
| 54 gboolean visible; | |
| 55 gboolean required; | |
| 56 | |
| 57 union | |
| 58 { | |
| 59 struct | |
| 60 { | |
| 61 gboolean multiline; | |
| 62 gboolean masked; | |
| 63 gboolean editable; | |
| 64 char *default_value; | |
| 65 char *value; | |
| 66 | |
| 67 } string; | |
| 68 | |
| 69 struct | |
| 70 { | |
| 71 int default_value; | |
| 72 int value; | |
| 73 | |
| 74 } integer; | |
| 75 | |
| 76 struct | |
| 77 { | |
| 78 gboolean default_value; | |
| 79 gboolean value; | |
| 80 | |
| 81 } boolean; | |
| 82 | |
| 83 struct | |
| 84 { | |
| 85 int default_value; | |
| 86 int value; | |
| 87 | |
| 88 GList *labels; | |
| 89 | |
| 90 } choice; | |
| 91 | |
| 92 struct | |
| 93 { | |
| 94 GList *items; | |
| 95 GList *icons; | |
| 96 GHashTable *item_data; | |
| 97 GList *selected; | |
| 98 GHashTable *selected_table; | |
| 99 | |
| 100 gboolean multiple_selection; | |
| 101 | |
| 102 } list; | |
| 103 | |
| 104 struct | |
| 105 { | |
| 106 PurpleAccount *default_account; | |
| 107 PurpleAccount *account; | |
| 108 gboolean show_all; | |
| 109 | |
| 110 PurpleFilterAccountFunc filter_func; | |
| 111 | |
| 112 } account; | |
| 113 | |
| 114 struct | |
| 115 { | |
| 116 unsigned int scale_x; | |
| 117 unsigned int scale_y; | |
| 118 const char *buffer; | |
| 119 gsize size; | |
| 120 } image; | |
| 121 | |
| 122 } u; | |
| 123 | |
| 124 void *ui_data; | |
| 125 char *tooltip; | |
| 126 }; | |
| 127 | |
| 128 struct _PurpleRequestFields | |
| 129 { | |
| 130 GList *groups; | |
| 131 | |
| 132 GHashTable *fields; | |
| 133 | |
| 134 GList *required_fields; | |
| 135 | |
| 136 void *ui_data; | |
| 137 }; | |
| 138 | |
| 139 struct _PurpleRequestFieldGroup | |
| 140 { | |
| 141 PurpleRequestFields *fields_list; | |
| 142 | |
| 143 char *title; | |
| 144 | |
| 145 GList *fields; | |
| 146 }; | |
| 45 | 147 |
| 46 PurpleRequestFields * | 148 PurpleRequestFields * |
| 47 purple_request_fields_new(void) | 149 purple_request_fields_new(void) |
| 48 { | 150 { |
| 49 PurpleRequestFields *fields; | 151 PurpleRequestFields *fields; |
| 269 return NULL; | 371 return NULL; |
| 270 | 372 |
| 271 return purple_request_field_account_get_value(field); | 373 return purple_request_field_account_get_value(field); |
| 272 } | 374 } |
| 273 | 375 |
| 376 gpointer purple_request_fields_get_ui_data(const PurpleRequestFields *fields) | |
| 377 { | |
| 378 g_return_val_if_fail(fields != NULL, NULL); | |
| 379 | |
| 380 return fields->ui_data; | |
| 381 } | |
| 382 | |
| 383 void purple_request_fields_set_ui_data(PurpleRequestFields *fields, gpointer ui_data) | |
| 384 { | |
| 385 g_return_if_fail(fields != NULL); | |
| 386 | |
| 387 fields->ui_data = ui_data; | |
| 388 } | |
| 389 | |
| 274 PurpleRequestFieldGroup * | 390 PurpleRequestFieldGroup * |
| 275 purple_request_field_group_new(const char *title) | 391 purple_request_field_group_new(const char *title) |
| 276 { | 392 { |
| 277 PurpleRequestFieldGroup *group; | 393 PurpleRequestFieldGroup *group; |
| 278 | 394 |
| 335 g_return_val_if_fail(group != NULL, NULL); | 451 g_return_val_if_fail(group != NULL, NULL); |
| 336 | 452 |
| 337 return group->fields; | 453 return group->fields; |
| 338 } | 454 } |
| 339 | 455 |
| 456 PurpleRequestFields * | |
| 457 purple_request_field_group_get_fields_list(const PurpleRequestFieldGroup *group) | |
| 458 { | |
| 459 g_return_val_if_fail(group != NULL, NULL); | |
| 460 | |
| 461 return group->fields_list; | |
| 462 } | |
| 463 | |
| 340 PurpleRequestField * | 464 PurpleRequestField * |
| 341 purple_request_field_new(const char *id, const char *text, | 465 purple_request_field_new(const char *id, const char *text, |
| 342 PurpleRequestFieldType type) | 466 PurpleRequestFieldType type) |
| 343 { | 467 { |
| 344 PurpleRequestField *field; | 468 PurpleRequestField *field; |
| 363 g_return_if_fail(field != NULL); | 487 g_return_if_fail(field != NULL); |
| 364 | 488 |
| 365 g_free(field->id); | 489 g_free(field->id); |
| 366 g_free(field->label); | 490 g_free(field->label); |
| 367 g_free(field->type_hint); | 491 g_free(field->type_hint); |
| 492 g_free(field->tooltip); | |
| 368 | 493 |
| 369 if (field->type == PURPLE_REQUEST_FIELD_STRING) | 494 if (field->type == PURPLE_REQUEST_FIELD_STRING) |
| 370 { | 495 { |
| 371 g_free(field->u.string.default_value); | 496 g_free(field->u.string.default_value); |
| 372 g_free(field->u.string.value); | 497 g_free(field->u.string.value); |
| 423 { | 548 { |
| 424 g_return_if_fail(field != NULL); | 549 g_return_if_fail(field != NULL); |
| 425 | 550 |
| 426 g_free(field->type_hint); | 551 g_free(field->type_hint); |
| 427 field->type_hint = g_strdup(type_hint); | 552 field->type_hint = g_strdup(type_hint); |
| 553 } | |
| 554 | |
| 555 void | |
| 556 purple_request_field_set_tooltip(PurpleRequestField *field, const char *tooltip) | |
| 557 { | |
| 558 g_return_if_fail(field != NULL); | |
| 559 | |
| 560 g_free(field->tooltip); | |
| 561 field->tooltip = g_strdup(tooltip); | |
| 428 } | 562 } |
| 429 | 563 |
| 430 void | 564 void |
| 431 purple_request_field_set_required(PurpleRequestField *field, gboolean required) | 565 purple_request_field_set_required(PurpleRequestField *field, gboolean required) |
| 432 { | 566 { |
| 500 g_return_val_if_fail(field != NULL, NULL); | 634 g_return_val_if_fail(field != NULL, NULL); |
| 501 | 635 |
| 502 return field->type_hint; | 636 return field->type_hint; |
| 503 } | 637 } |
| 504 | 638 |
| 639 const char * | |
| 640 purple_request_field_get_tooltip(const PurpleRequestField *field) | |
| 641 { | |
| 642 g_return_val_if_fail(field != NULL, NULL); | |
| 643 | |
| 644 return field->tooltip; | |
| 645 } | |
| 646 | |
| 505 gboolean | 647 gboolean |
| 506 purple_request_field_is_required(const PurpleRequestField *field) | 648 purple_request_field_is_required(const PurpleRequestField *field) |
| 507 { | 649 { |
| 508 g_return_val_if_fail(field != NULL, FALSE); | 650 g_return_val_if_fail(field != NULL, FALSE); |
| 509 | 651 |
| 842 g_return_val_if_fail(field != NULL, NULL); | 984 g_return_val_if_fail(field != NULL, NULL); |
| 843 g_return_val_if_fail(text != NULL, NULL); | 985 g_return_val_if_fail(text != NULL, NULL); |
| 844 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL); | 986 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL); |
| 845 | 987 |
| 846 return g_hash_table_lookup(field->u.list.item_data, text); | 988 return g_hash_table_lookup(field->u.list.item_data, text); |
| 847 } | |
| 848 | |
| 849 void | |
| 850 purple_request_field_list_add(PurpleRequestField *field, const char *item, | |
| 851 void *data) | |
| 852 { | |
| 853 purple_request_field_list_add_icon(field, item, NULL, data); | |
| 854 } | 989 } |
| 855 | 990 |
| 856 void | 991 void |
| 857 purple_request_field_list_add_icon(PurpleRequestField *field, const char *item, const char* icon_path, | 992 purple_request_field_list_add_icon(PurpleRequestField *field, const char *item, const char* icon_path, |
| 858 void *data) | 993 void *data) |
