00001
00025 #ifndef _GAIM_BUDDYICON_H_
00026 #define _GAIM_BUDDYICON_H_
00027
00028 typedef struct _GaimBuddyIcon GaimBuddyIcon;
00029
00030 #include "account.h"
00031 #include "blist.h"
00032
00033 struct _GaimBuddyIcon
00034 {
00035 GaimAccount *account;
00036 char *username;
00038 void *data;
00039 size_t len;
00041 int ref_count;
00042 };
00043
00044
00046
00059 GaimBuddyIcon *gaim_buddy_icon_new(GaimAccount *account, const char *username,
00060 void *icon_data, size_t icon_len);
00061
00070 void gaim_buddy_icon_destroy(GaimBuddyIcon *icon);
00071
00079 GaimBuddyIcon *gaim_buddy_icon_ref(GaimBuddyIcon *icon);
00080
00090 GaimBuddyIcon *gaim_buddy_icon_unref(GaimBuddyIcon *icon);
00091
00097 void gaim_buddy_icon_update(GaimBuddyIcon *icon);
00098
00105 void gaim_buddy_icon_cache(GaimBuddyIcon *icon, GaimBuddy *buddy);
00106
00113 void gaim_buddy_icon_set_account(GaimBuddyIcon *icon, GaimAccount *account);
00114
00121 void gaim_buddy_icon_set_username(GaimBuddyIcon *icon, const char *username);
00122
00130 void gaim_buddy_icon_set_data(GaimBuddyIcon *icon, void *data, size_t len);
00131
00139 GaimAccount *gaim_buddy_icon_get_account(const GaimBuddyIcon *icon);
00140
00148 const char *gaim_buddy_icon_get_username(const GaimBuddyIcon *icon);
00149
00158 const void *gaim_buddy_icon_get_data(const GaimBuddyIcon *icon, size_t *len);
00159
00162
00164
00175 void gaim_buddy_icons_set_for_user(GaimAccount *account, const char *username,
00176 void *icon_data, size_t icon_len);
00177
00186 GaimBuddyIcon *gaim_buddy_icons_find(GaimAccount *account,
00187 const char *username);
00188
00195 void gaim_buddy_icons_set_caching(gboolean caching);
00196
00205 gboolean gaim_buddy_icons_is_caching(void);
00206
00212 void gaim_buddy_icons_set_cache_dir(const char *cache_dir);
00213
00222 const char *gaim_buddy_icons_get_cache_dir(void);
00223
00229 void *gaim_buddy_icons_get_handle();
00230
00234 void gaim_buddy_icons_init();
00235
00239 void gaim_buddy_icons_uninit();
00240
00243 #endif