00001
00025 #ifndef _GAIM_ICON_H_
00026 #define _GAIM_ICON_H_
00027
00028 typedef struct _GaimBuddyIcon GaimBuddyIcon;
00029
00030 #include "account.h"
00031
00032 struct _GaimBuddyIcon
00033 {
00034 GaimAccount *account;
00035 char *username;
00037 void *data;
00038 size_t len;
00040 int ref_count;
00041 };
00042
00043
00045
00058 GaimBuddyIcon *gaim_buddy_icon_new(GaimAccount *account, const char *username,
00059 void *icon_data, size_t icon_len);
00060
00069 void gaim_buddy_icon_destroy(GaimBuddyIcon *icon);
00070
00078 GaimBuddyIcon *gaim_buddy_icon_ref(GaimBuddyIcon *icon);
00079
00089 GaimBuddyIcon *gaim_buddy_icon_unref(GaimBuddyIcon *icon);
00090
00096 void gaim_buddy_icon_update(GaimBuddyIcon *icon);
00097
00104 void gaim_buddy_icon_cache(GaimBuddyIcon *icon, GaimBuddy *buddy);
00105
00112 void gaim_buddy_icon_set_account(GaimBuddyIcon *icon, GaimAccount *account);
00113
00120 void gaim_buddy_icon_set_username(GaimBuddyIcon *icon, const char *username);
00121
00129 void gaim_buddy_icon_set_data(GaimBuddyIcon *icon, void *data, size_t len);
00130
00138 GaimAccount *gaim_buddy_icon_get_account(const GaimBuddyIcon *icon);
00139
00147 const char *gaim_buddy_icon_get_username(const GaimBuddyIcon *icon);
00148
00157 const void *gaim_buddy_icon_get_data(const GaimBuddyIcon *icon, size_t *len);
00158
00161
00163
00174 void gaim_buddy_icons_set_for_user(GaimAccount *account, const char *username,
00175 void *icon_data, size_t icon_len);
00176
00185 GaimBuddyIcon *gaim_buddy_icons_find(const GaimAccount *account,
00186 const char *username);
00187
00194 void gaim_buddy_icons_set_caching(gboolean caching);
00195
00204 gboolean gaim_buddy_icons_is_caching(void);
00205
00211 void gaim_buddy_icons_set_cache_dir(const char *cache_dir);
00212
00221 const char *gaim_buddy_icons_get_cache_dir(void);
00222
00228 void *gaim_buddy_icons_get_handle();
00229
00233 void gaim_buddy_icons_init();
00234
00238 void gaim_buddy_icons_uninit();
00239
00242 #endif