| 848 |
848 |
| 849 void |
849 void |
| 850 purple_request_field_list_add(PurpleRequestField *field, const char *item, |
850 purple_request_field_list_add(PurpleRequestField *field, const char *item, |
| 851 void *data) |
851 void *data) |
| 852 { |
852 { |
| |
853 purple_request_field_list_add_icon(field, item, NULL, data); |
| |
854 } |
| |
855 |
| |
856 void |
| |
857 purple_request_field_list_add_icon(PurpleRequestField *field, const char *item, const char* icon_path, |
| |
858 void *data) |
| |
859 { |
| 853 g_return_if_fail(field != NULL); |
860 g_return_if_fail(field != NULL); |
| 854 g_return_if_fail(item != NULL); |
861 g_return_if_fail(item != NULL); |
| 855 g_return_if_fail(data != NULL); |
862 g_return_if_fail(data != NULL); |
| 856 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST); |
863 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST); |
| 857 |
864 |
| |
865 if (icon_path) |
| |
866 { |
| |
867 if (field->u.list.icons == NULL) |
| |
868 { |
| |
869 GList *l; |
| |
870 for (l = field->u.list.items ; l != NULL ; l = l->next) |
| |
871 { |
| |
872 /* Order doesn't matter, because we're just |
| |
873 * filing in blank items. So, we use |
| |
874 * g_list_prepend() because it's faster. */ |
| |
875 field->u.list.icons = g_list_prepend(field->u.list.icons, NULL); |
| |
876 } |
| |
877 } |
| |
878 field->u.list.icons = g_list_append(field->u.list.icons, g_strdup(icon_path)); |
| |
879 } |
| |
880 else if (field->u.list.icons) |
| |
881 { |
| |
882 /* Keep this even with the items list. */ |
| |
883 field->u.list.icons = g_list_append(field->u.list.icons, NULL); |
| |
884 } |
| |
885 |
| 858 field->u.list.items = g_list_append(field->u.list.items, g_strdup(item)); |
886 field->u.list.items = g_list_append(field->u.list.items, g_strdup(item)); |
| 859 |
|
| 860 g_hash_table_insert(field->u.list.item_data, g_strdup(item), data); |
887 g_hash_table_insert(field->u.list.item_data, g_strdup(item), data); |
| 861 } |
888 } |
| 862 |
889 |
| 863 void |
890 void |
| 864 purple_request_field_list_add_selected(PurpleRequestField *field, const char *item) |
891 purple_request_field_list_add_selected(PurpleRequestField *field, const char *item) |
| 958 { |
985 { |
| 959 g_return_val_if_fail(field != NULL, NULL); |
986 g_return_val_if_fail(field != NULL, NULL); |
| 960 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL); |
987 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL); |
| 961 |
988 |
| 962 return field->u.list.items; |
989 return field->u.list.items; |
| |
990 } |
| |
991 |
| |
992 GList * |
| |
993 purple_request_field_list_get_icons(const PurpleRequestField *field) |
| |
994 { |
| |
995 g_return_val_if_fail(field != NULL, NULL); |
| |
996 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL); |
| |
997 |
| |
998 return field->u.list.icons; |
| 963 } |
999 } |
| 964 |
1000 |
| 965 PurpleRequestField * |
1001 PurpleRequestField * |
| 966 purple_request_field_label_new(const char *id, const char *text) |
1002 purple_request_field_label_new(const char *id, const char *text) |
| 967 { |
1003 { |