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);