Mercurial > pidgin.yaz
comparison src/gtkconv.c @ 4397:ce3a0eba91ef
[gaim-migrate @ 4666]
The add/remove button is fixed. Thanks ari.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Wed, 22 Jan 2003 23:20:09 +0000 |
parents | a3fd5fe57a0b |
children | a8249a5250b6 |
comparison
equal
deleted
inserted
replaced
4396:868ee63e1fe8 | 4397:ce3a0eba91ef |
---|---|
3499 { | 3499 { |
3500 struct gaim_gtk_conversation *gtkconv; | 3500 struct gaim_gtk_conversation *gtkconv; |
3501 struct gaim_connection *gc; | 3501 struct gaim_connection *gc; |
3502 GaimConversationType type; | 3502 GaimConversationType type; |
3503 GtkWidget *parent; | 3503 GtkWidget *parent; |
3504 gboolean rebuild = FALSE; | |
3505 | 3504 |
3506 type = gaim_conversation_get_type(conv); | 3505 type = gaim_conversation_get_type(conv); |
3507 gc = gaim_conversation_get_gc(conv); | 3506 gc = gaim_conversation_get_gc(conv); |
3508 gtkconv = GAIM_GTK_CONVERSATION(conv); | 3507 gtkconv = GAIM_GTK_CONVERSATION(conv); |
3509 parent = gtk_widget_get_parent(gtkconv->u.im->add); | 3508 parent = gtk_widget_get_parent(gtkconv->u.im->add); |
3510 | 3509 |
3511 if (find_buddy(gc->user, gaim_conversation_get_name(conv))) { | 3510 if (find_buddy(gc->user, gaim_conversation_get_name(conv))) { |
3512 if (!g_object_get_data(G_OBJECT(gtkconv->u.im->add), "user_data")) { | 3511 gtkconv->u.im->add = |
3513 gtkconv->u.im->add = | 3512 gaim_gtk_change_text(_("Remove"), gtkconv->u.im->add, |
3514 gaim_gtk_change_text(_("Remove"), gtkconv->u.im->add, | 3513 GTK_STOCK_REMOVE, type); |
3515 GTK_STOCK_REMOVE, type); | 3514 gtk_tooltips_set_tip(gtkconv->tooltips, gtkconv->u.im->add, |
3516 gtk_tooltips_set_tip(gtkconv->tooltips, gtkconv->u.im->add, | 3515 _("Remove the user from your buddy list"), NULL); |
3517 _("Remove the user from your buddy list"), NULL); | 3516 |
3518 | |
3519 rebuild = TRUE; | |
3520 } | |
3521 | |
3522 gtk_widget_set_sensitive(gtkconv->u.im->add, | 3517 gtk_widget_set_sensitive(gtkconv->u.im->add, |
3523 (gc != NULL && gc->prpl->remove_buddy != NULL)); | 3518 (gc != NULL && gc->prpl->remove_buddy != NULL)); |
3524 | |
3525 g_object_set_data(G_OBJECT(gtkconv->u.im->add), "user_data", conv); | |
3526 | |
3527 } else { | 3519 } else { |
3528 if (g_object_get_data(G_OBJECT(gtkconv->u.im->add), "user_data")) { | 3520 gtkconv->u.im->add = |
3529 gtkconv->u.im->add = | 3521 gaim_gtk_change_text(_("Add"), gtkconv->u.im->add, |
3530 gaim_gtk_change_text(_("Add"), gtkconv->u.im->add, | 3522 GTK_STOCK_ADD, type); |
3531 GTK_STOCK_ADD, type); | 3523 gtk_tooltips_set_tip(gtkconv->tooltips, gtkconv->u.im->add, |
3532 gtk_tooltips_set_tip(gtkconv->tooltips, gtkconv->u.im->add, | 3524 _("Add the user to your buddy list"), NULL); |
3533 _("Add the user to your buddy list"), NULL); | |
3534 | |
3535 rebuild = TRUE; | |
3536 } | |
3537 | 3525 |
3538 gtk_widget_set_sensitive(gtkconv->u.im->add, | 3526 gtk_widget_set_sensitive(gtkconv->u.im->add, |
3539 (gc != NULL && gc->prpl->add_buddy != NULL)); | 3527 (gc != NULL && gc->prpl->add_buddy != NULL)); |
3540 } | 3528 } |
3541 | 3529 |
3542 if (rebuild) { | 3530 g_signal_connect(G_OBJECT(gtkconv->u.im->add), "clicked", |
3543 g_signal_connect(G_OBJECT(gtkconv->u.im->add), "clicked", | 3531 G_CALLBACK(add_cb), conv); |
3544 G_CALLBACK(add_cb), conv); | 3532 |
3545 | 3533 gtk_box_pack_start(GTK_BOX(parent), gtkconv->u.im->add, |
3546 gtk_box_pack_start(GTK_BOX(parent), gtkconv->u.im->add, | 3534 FALSE, FALSE, 0); |
3547 FALSE, FALSE, 0); | 3535 gtk_box_reorder_child(GTK_BOX(parent), gtkconv->u.im->add, 3); |
3548 gtk_box_reorder_child(GTK_BOX(parent), gtkconv->u.im->add, 3); | 3536 gtk_button_set_relief(GTK_BUTTON(gtkconv->u.im->add), GTK_RELIEF_NONE); |
3549 gtk_button_set_relief(GTK_BUTTON(gtkconv->u.im->add), GTK_RELIEF_NONE); | 3537 gtk_size_group_add_widget(gtkconv->sg, gtkconv->u.im->add); |
3550 gtk_size_group_add_widget(gtkconv->sg, gtkconv->u.im->add); | |
3551 } | |
3552 } | 3538 } |
3553 | 3539 |
3554 struct gaim_window_ops * | 3540 struct gaim_window_ops * |
3555 gaim_get_gtk_window_ops(void) | 3541 gaim_get_gtk_window_ops(void) |
3556 { | 3542 { |
4159 else if (type == GAIM_CONV_ACCOUNT_ONLINE || | 4145 else if (type == GAIM_CONV_ACCOUNT_ONLINE || |
4160 type == GAIM_CONV_ACCOUNT_OFFLINE) { | 4146 type == GAIM_CONV_ACCOUNT_OFFLINE) { |
4161 | 4147 |
4162 generate_send_as_items(win, NULL); | 4148 generate_send_as_items(win, NULL); |
4163 } | 4149 } |
4150 else if(type == GAIM_CONV_UPDATE_ADD || | |
4151 type == GAIM_CONV_UPDATE_REMOVE) { | |
4152 | |
4153 update_convo_add_button(conv); | |
4154 } | |
4164 } | 4155 } |
4165 | 4156 |
4166 static struct gaim_conversation_ops conversation_ops = | 4157 static struct gaim_conversation_ops conversation_ops = |
4167 { | 4158 { |
4168 gaim_gtkconv_destroy, /* destroy_conversation */ | 4159 gaim_gtkconv_destroy, /* destroy_conversation */ |