Mercurial > pidgin.yaz
diff src/conversation.c @ 6846:8ab95f4c9800
[gaim-migrate @ 7391]
Added new buddy icon caching code. Each GaimBuddy has its own icon, and the
complete list of all icons is now stored in a set of hashtables for quick
retrieval. Buddy icons now live much happier in the core, with the magma
and tooth fairies (that's where they really live).
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Mon, 15 Sep 2003 07:35:49 +0000 |
parents | f098765ac919 |
children | 083d1e4a9c78 |
line wrap: on
line diff
--- a/src/conversation.c Mon Sep 15 02:23:58 2003 +0000 +++ b/src/conversation.c Mon Sep 15 07:35:49 2003 +0000 @@ -980,7 +980,7 @@ gc = gaim_conversation_get_gc(conv); name = gaim_conversation_get_name(conv); - if (gc) { + if (gc != NULL) { /* Still connected */ prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); @@ -1052,6 +1052,9 @@ g_slist_free(conv->u.im->images); + if (conv->u.im->icon != NULL) + gaim_buddy_icon_unref(conv->u.im->icon); + g_free(conv->u.im); ims = g_list_remove(ims, conv); @@ -1573,6 +1576,31 @@ } void +gaim_im_set_icon(GaimIm *im, GaimBuddyIcon *icon) +{ + g_return_if_fail(im != NULL); + + if (im->icon == icon) + return; + + if (im->icon != NULL) + gaim_buddy_icon_unref(im->icon); + + im->icon = (icon == NULL ? NULL : gaim_buddy_icon_ref(icon)); + + gaim_conversation_update(gaim_im_get_conversation(im), + GAIM_CONV_UPDATE_ICON); +} + +GaimBuddyIcon * +gaim_im_get_icon(const GaimIm *im) +{ + g_return_val_if_fail(im != NULL, NULL); + + return im->icon; +} + +void gaim_im_set_typing_state(GaimIm *im, int state) { g_return_if_fail(im != NULL); @@ -2587,7 +2615,9 @@ { void *handle = gaim_conversations_get_handle(); - /* Register preferences */ + /********************************************************************** + * Register preferences + **********************************************************************/ /* Conversations */ gaim_prefs_add_none("/core/conversations"); @@ -2617,7 +2647,9 @@ update_titles_pref_cb, NULL); - /* Register signals */ + /********************************************************************** + * Register signals + **********************************************************************/ gaim_signal_register(handle, "displaying-im-msg", gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER, gaim_value_new(GAIM_TYPE_BOOLEAN), 3,