Mercurial > pidgin
comparison src/conversation.c @ 1663:0f7d2284296f
[gaim-migrate @ 1673]
good fixes.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Fri, 30 Mar 2001 11:13:33 +0000 |
parents | 23b734cf1161 |
children | a312d64a995d |
comparison
equal
deleted
inserted
replaced
1662:88e72116639d | 1663:0f7d2284296f |
---|---|
1720 | 1720 |
1721 void update_convo_add_button(struct conversation *c) | 1721 void update_convo_add_button(struct conversation *c) |
1722 { | 1722 { |
1723 int dispstyle = set_dispstyle(0); | 1723 int dispstyle = set_dispstyle(0); |
1724 GtkWidget *parent = c->add->parent; | 1724 GtkWidget *parent = c->add->parent; |
1725 gtk_widget_destroy(c->add); | 1725 gboolean rebuild = FALSE; |
1726 | 1726 |
1727 if (find_buddy(c->gc, c->name)) { | 1727 if (find_buddy(c->gc, c->name)) { |
1728 c->add = picture_button2(c->window, _("Remove"), gnome_remove_xpm, dispstyle); | 1728 if (!gtk_object_get_user_data(GTK_OBJECT(c->add))) { |
1729 | 1729 gtk_widget_destroy(c->add); |
1730 if (c->gc) | 1730 c->add = picture_button2(c->window, _("Remove"), gnome_remove_xpm, dispstyle); |
1731 { | 1731 rebuild = TRUE; |
1732 } | |
1733 if (c->gc) { | |
1732 if (c->gc->prpl->remove_buddy == NULL) | 1734 if (c->gc->prpl->remove_buddy == NULL) |
1733 gtk_widget_set_sensitive(c->add, FALSE); | 1735 gtk_widget_set_sensitive(c->add, FALSE); |
1734 else | 1736 else |
1735 gtk_widget_set_sensitive(c->add, TRUE); | 1737 gtk_widget_set_sensitive(c->add, TRUE); |
1736 } | 1738 } else |
1739 gtk_widget_set_sensitive(c->add, FALSE); | |
1740 gtk_object_set_user_data(GTK_OBJECT(c->add), c); | |
1737 } else { | 1741 } else { |
1738 c->add = picture_button2(c->window, _("Add"), gnome_add_xpm, dispstyle); | 1742 if (gtk_object_get_user_data(GTK_OBJECT(c->add))) { |
1739 if (c->gc) | 1743 gtk_widget_destroy(c->add); |
1740 { | 1744 c->add = picture_button2(c->window, _("Add"), gnome_add_xpm, dispstyle); |
1745 rebuild = TRUE; | |
1746 } | |
1747 if (c->gc) { | |
1741 if (c->gc->prpl->add_buddy == NULL) | 1748 if (c->gc->prpl->add_buddy == NULL) |
1742 gtk_widget_set_sensitive(c->add, FALSE); | 1749 gtk_widget_set_sensitive(c->add, FALSE); |
1743 else | 1750 else |
1744 gtk_widget_set_sensitive(c->add, TRUE); | 1751 gtk_widget_set_sensitive(c->add, TRUE); |
1745 } | 1752 } else |
1746 } | 1753 gtk_widget_set_sensitive(c->add, FALSE); |
1747 | 1754 } |
1748 if (!c->gc) | 1755 |
1749 gtk_widget_set_sensitive(c->add, FALSE); | 1756 if (rebuild) { |
1750 | 1757 gtk_signal_connect(GTK_OBJECT(c->add), "clicked", GTK_SIGNAL_FUNC(add_callback), c); |
1751 gtk_signal_connect(GTK_OBJECT(c->add), "clicked", GTK_SIGNAL_FUNC(add_callback), c); | 1758 gtk_box_pack_end(GTK_BOX(parent), c->add, dispstyle, dispstyle, 0); |
1752 gtk_box_pack_end(GTK_BOX(parent), c->add, dispstyle, dispstyle, 0); | 1759 gtk_box_reorder_child(GTK_BOX(parent), c->add, 2); |
1753 gtk_box_reorder_child(GTK_BOX(parent), c->add, 2); | 1760 gtk_widget_show(c->add); |
1754 gtk_widget_show(c->add); | 1761 } |
1755 } | 1762 } |
1756 | 1763 |
1757 static void create_convo_menu(struct conversation *cnv) | 1764 static void create_convo_menu(struct conversation *cnv) |
1758 { | 1765 { |
1759 GtkWidget *menu, *opt; | 1766 GtkWidget *menu, *opt; |
2048 | 2055 |
2049 c->sep1 = gtk_vseparator_new(); | 2056 c->sep1 = gtk_vseparator_new(); |
2050 gtk_box_pack_end(GTK_BOX(bbox), c->sep1, dispstyle, dispstyle, 0); | 2057 gtk_box_pack_end(GTK_BOX(bbox), c->sep1, dispstyle, dispstyle, 0); |
2051 gtk_widget_show(c->sep1); | 2058 gtk_widget_show(c->sep1); |
2052 | 2059 |
2053 if (c->gc && find_buddy(c->gc, c->name) != NULL) | 2060 if (c->gc && find_buddy(c->gc, c->name) != NULL) { |
2054 add = picture_button2(win, _("Remove"), gnome_remove_xpm, dispstyle); | 2061 add = picture_button2(win, _("Remove"), gnome_remove_xpm, dispstyle); |
2055 else | 2062 gtk_object_set_user_data(GTK_OBJECT(add), c); |
2063 } else | |
2056 add = picture_button2(win, _("Add"), gnome_add_xpm, dispstyle); | 2064 add = picture_button2(win, _("Add"), gnome_add_xpm, dispstyle); |
2057 c->add = add; | 2065 c->add = add; |
2058 gtk_signal_connect(GTK_OBJECT(add), "clicked", GTK_SIGNAL_FUNC(add_callback), c); | 2066 gtk_signal_connect(GTK_OBJECT(add), "clicked", GTK_SIGNAL_FUNC(add_callback), c); |
2059 gtk_box_pack_end(GTK_BOX(bbox), add, dispstyle, dispstyle, 0); | 2067 gtk_box_pack_end(GTK_BOX(bbox), add, dispstyle, dispstyle, 0); |
2060 gtk_widget_show(add); | 2068 gtk_widget_show(add); |