| 978 win = gaim_conversation_get_window(conv); |
978 win = gaim_conversation_get_window(conv); |
| 979 ops = gaim_conversation_get_ui_ops(conv); |
979 ops = gaim_conversation_get_ui_ops(conv); |
| 980 gc = gaim_conversation_get_gc(conv); |
980 gc = gaim_conversation_get_gc(conv); |
| 981 name = gaim_conversation_get_name(conv); |
981 name = gaim_conversation_get_name(conv); |
| 982 |
982 |
| 983 if (gc) { |
983 if (gc != NULL) { |
| 984 /* Still connected */ |
984 /* Still connected */ |
| 985 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
985 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
| 986 |
986 |
| 987 if (gaim_conversation_get_type(conv) == GAIM_CONV_IM) { |
987 if (gaim_conversation_get_type(conv) == GAIM_CONV_IM) { |
| 988 if (gaim_prefs_get_bool("/core/conversations/im/send_typing")) |
988 if (gaim_prefs_get_bool("/core/conversations/im/send_typing")) |
| 1050 g_free(snode->data); |
1050 g_free(snode->data); |
| 1051 } |
1051 } |
| 1052 |
1052 |
| 1053 g_slist_free(conv->u.im->images); |
1053 g_slist_free(conv->u.im->images); |
| 1054 |
1054 |
| |
1055 if (conv->u.im->icon != NULL) |
| |
1056 gaim_buddy_icon_unref(conv->u.im->icon); |
| |
1057 |
| 1055 g_free(conv->u.im); |
1058 g_free(conv->u.im); |
| 1056 |
1059 |
| 1057 ims = g_list_remove(ims, conv); |
1060 ims = g_list_remove(ims, conv); |
| 1058 } |
1061 } |
| 1059 else if (conv->type == GAIM_CONV_CHAT) { |
1062 else if (conv->type == GAIM_CONV_CHAT) { |
| 1571 |
1574 |
| 1572 return im->conv; |
1575 return im->conv; |
| 1573 } |
1576 } |
| 1574 |
1577 |
| 1575 void |
1578 void |
| |
1579 gaim_im_set_icon(GaimIm *im, GaimBuddyIcon *icon) |
| |
1580 { |
| |
1581 g_return_if_fail(im != NULL); |
| |
1582 |
| |
1583 if (im->icon == icon) |
| |
1584 return; |
| |
1585 |
| |
1586 if (im->icon != NULL) |
| |
1587 gaim_buddy_icon_unref(im->icon); |
| |
1588 |
| |
1589 im->icon = (icon == NULL ? NULL : gaim_buddy_icon_ref(icon)); |
| |
1590 |
| |
1591 gaim_conversation_update(gaim_im_get_conversation(im), |
| |
1592 GAIM_CONV_UPDATE_ICON); |
| |
1593 } |
| |
1594 |
| |
1595 GaimBuddyIcon * |
| |
1596 gaim_im_get_icon(const GaimIm *im) |
| |
1597 { |
| |
1598 g_return_val_if_fail(im != NULL, NULL); |
| |
1599 |
| |
1600 return im->icon; |
| |
1601 } |
| |
1602 |
| |
1603 void |
| 1576 gaim_im_set_typing_state(GaimIm *im, int state) |
1604 gaim_im_set_typing_state(GaimIm *im, int state) |
| 1577 { |
1605 { |
| 1578 g_return_if_fail(im != NULL); |
1606 g_return_if_fail(im != NULL); |
| 1579 |
1607 |
| 1580 im->typing_state = state; |
1608 im->typing_state = state; |
| 2585 void |
2613 void |
| 2586 gaim_conversations_init(void) |
2614 gaim_conversations_init(void) |
| 2587 { |
2615 { |
| 2588 void *handle = gaim_conversations_get_handle(); |
2616 void *handle = gaim_conversations_get_handle(); |
| 2589 |
2617 |
| 2590 /* Register preferences */ |
2618 /********************************************************************** |
| |
2619 * Register preferences |
| |
2620 **********************************************************************/ |
| 2591 |
2621 |
| 2592 /* Conversations */ |
2622 /* Conversations */ |
| 2593 gaim_prefs_add_none("/core/conversations"); |
2623 gaim_prefs_add_none("/core/conversations"); |
| 2594 gaim_prefs_add_bool("/core/conversations/send_urls_as_links", TRUE); |
2624 gaim_prefs_add_bool("/core/conversations/send_urls_as_links", TRUE); |
| 2595 gaim_prefs_add_bool("/core/conversations/away_back_on_send", TRUE); |
2625 gaim_prefs_add_bool("/core/conversations/away_back_on_send", TRUE); |
| 2615 update_titles_pref_cb, NULL); |
2645 update_titles_pref_cb, NULL); |
| 2616 gaim_prefs_connect_callback("/core/buddies/use_server_alias", |
2646 gaim_prefs_connect_callback("/core/buddies/use_server_alias", |
| 2617 update_titles_pref_cb, NULL); |
2647 update_titles_pref_cb, NULL); |
| 2618 |
2648 |
| 2619 |
2649 |
| 2620 /* Register signals */ |
2650 /********************************************************************** |
| |
2651 * Register signals |
| |
2652 **********************************************************************/ |
| 2621 gaim_signal_register(handle, "displaying-im-msg", |
2653 gaim_signal_register(handle, "displaying-im-msg", |
| 2622 gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER, |
2654 gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER, |
| 2623 gaim_value_new(GAIM_TYPE_BOOLEAN), 3, |
2655 gaim_value_new(GAIM_TYPE_BOOLEAN), 3, |
| 2624 gaim_value_new(GAIM_TYPE_SUBTYPE, |
2656 gaim_value_new(GAIM_TYPE_SUBTYPE, |
| 2625 GAIM_SUBTYPE_ACCOUNT), |
2657 GAIM_SUBTYPE_ACCOUNT), |