comparison libpurple/request.c @ 29814:6d3a90b49dba

propagate from branch 'im.pidgin.pidgin' (head 8587687655d4e11f0965358e8a4378cfa3d1e4e7) to branch 'im.pidgin.cpw.malu.ft_thumbnails' (head 14eca8a36cf4d5e66226c1d94d6d44b5219b1476)
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sun, 28 Feb 2010 04:07:39 +0000
parents d0588e403877 5391094529c6
children ee3a87e92316
comparison
equal deleted inserted replaced
29813:221cebbc35d8 29814:6d3a90b49dba
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 {