Mercurial > pidgin
comparison src/dialogs.c @ 3753:764ecb5f984b
[gaim-migrate @ 3892]
I never committed this last night.
committer: Tailor Script <tailor@pidgin.im>
| author | Sean Egan <seanegan@gmail.com> |
|---|---|
| date | Sat, 19 Oct 2002 22:11:10 +0000 |
| parents | ddc4bfd2c825 |
| children | 262ce45f5ae8 |
comparison
equal
deleted
inserted
replaced
| 3752:b32474e522fa | 3753:764ecb5f984b |
|---|---|
| 461 gtk_signal_connect(GTK_OBJECT(warn), "clicked", GTK_SIGNAL_FUNC(do_warn), w); | 461 gtk_signal_connect(GTK_OBJECT(warn), "clicked", GTK_SIGNAL_FUNC(do_warn), w); |
| 462 | 462 |
| 463 gtk_widget_show(w->window); | 463 gtk_widget_show(w->window); |
| 464 } | 464 } |
| 465 | 465 |
| 466 void do_remove_buddy(GtkWidget *w, struct buddy *b) | 466 void do_remove_buddy(struct buddy *b) |
| 467 { | 467 { |
| 468 struct group *g = find_group_by_buddy(b->gc, b->name); | 468 struct group *g = find_group_by_buddy(b->gc, b->name); |
| 469 struct gaim_connection *gc = b->gc; | 469 struct gaim_connection *gc = b->gc; |
| 470 struct conversation *cv; | 470 struct conversation *cv; |
| 471 | 471 |
| 484 | 484 |
| 485 } | 485 } |
| 486 | 486 |
| 487 void show_confirm_del(struct gaim_connection *gc, gchar *name) | 487 void show_confirm_del(struct gaim_connection *gc, gchar *name) |
| 488 { | 488 { |
| 489 struct confirm_del *b = g_new0(struct confirm_del, 1); | 489 struct buddy *bd = find_buddy(gc, name); |
| 490 struct buddy *bd; | 490 char *text; |
| 491 GtkWidget *hbox; | 491 if (!bd) |
| 492 GtkWidget *vbox; | 492 return; |
| 493 GtkWidget *fbox; | 493 |
| 494 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | 494 text = g_strdup_printf("You are about to remove %s from your buddy list. Do you want to continue?", name); |
| 495 gchar tmp[2048]; | 495 do_ask_dialog("Remove Buddy", text, bd, "Remove Buddy", do_remove_buddy, "Cancel", NULL); |
| 496 char labeltext[1024 * 2]; | 496 g_free(text); |
| 497 char *filename; | |
| 498 GtkWidget *image; | |
| 499 | |
| 500 GAIM_DIALOG(b->window); | |
| 501 dialogwindows = g_list_prepend(dialogwindows, b->window); | |
| 502 | |
| 503 g_snprintf(tmp, sizeof(tmp), _("Gaim - Remove %s?"), name); | |
| 504 gtk_container_set_border_width(GTK_CONTAINER(b->window), 6); | |
| 505 gtk_window_set_title(GTK_WINDOW(b->window), tmp); | |
| 506 gtk_window_set_wmclass(GTK_WINDOW(b->window), "confirm_del", "Gaim"); | |
| 507 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, FALSE, TRUE); | |
| 508 gtk_signal_connect(GTK_OBJECT(b->window), "delete_event", | |
| 509 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 510 | |
| 511 gtk_widget_realize(b->window); | |
| 512 | |
| 513 vbox = gtk_vbox_new(FALSE, 0); | |
| 514 gtk_box_set_spacing(GTK_BOX(vbox), 12); | |
| 515 gtk_container_set_border_width(GTK_CONTAINER(vbox), 6); | |
| 516 gtk_container_add(GTK_CONTAINER(b->window), vbox); | |
| 517 gtk_widget_show(vbox); | |
| 518 | |
| 519 fbox = gtk_hbox_new(FALSE, 0); | |
| 520 gtk_box_set_spacing(GTK_BOX(fbox), 6); | |
| 521 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); | |
| 522 gtk_widget_show(fbox); | |
| 523 | |
| 524 filename = g_build_filename (DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); | |
| 525 debug_printf("Loading: %s\n", filename); | |
| 526 image = gtk_image_new_from_file(filename); | |
| 527 gtk_misc_set_alignment(GTK_MISC(image), 0, 0); | |
| 528 gtk_box_pack_start(GTK_BOX(fbox), image, FALSE, FALSE, 0); | |
| 529 gtk_widget_show(image); | |
| 530 g_free(filename); | |
| 531 | |
| 532 g_snprintf(labeltext, sizeof(labeltext), "<span weight=\"bold\" size=\"larger\">Remove Buddy</span>\n\nYou are about to remove '%s' from\nyour buddylist. Do you want to continue?", name); | |
| 533 b->label = gtk_label_new(NULL); | |
| 534 gtk_label_set_markup(GTK_LABEL(b->label), labeltext); | |
| 535 gtk_label_set_line_wrap(GTK_LABEL(b->label), TRUE); | |
| 536 gtk_label_set_justify(GTK_LABEL(b->label), GTK_JUSTIFY_LEFT); | |
| 537 gtk_misc_set_alignment(GTK_MISC(b->label), 0, 0); | |
| 538 gtk_box_pack_start(GTK_BOX(fbox), b->label, FALSE, FALSE, 0); | |
| 539 gtk_widget_show(b->label); | |
| 540 gtk_box_pack_start(GTK_BOX(vbox), fbox, TRUE, FALSE, 0); | |
| 541 | |
| 542 hbox = gtk_hbox_new(FALSE, 0); | |
| 543 gtk_box_set_spacing(GTK_BOX(hbox), 6); | |
| 544 gtk_container_set_border_width(GTK_CONTAINER(hbox), 0); | |
| 545 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, FALSE, 0); | |
| 546 gtk_widget_show(hbox); | |
| 547 | |
| 548 b->ok = gtk_button_new_with_label("Remove Buddy"); | |
| 549 gtk_widget_show(b->ok); | |
| 550 gtk_size_group_add_widget(sg, b->ok); | |
| 551 gtk_box_pack_end(GTK_BOX(hbox), b->ok, FALSE, FALSE, 5); | |
| 552 | |
| 553 bd = find_buddy(gc, name); | |
| 554 | |
| 555 if (bd) | |
| 556 gtk_signal_connect(GTK_OBJECT(b->ok), "clicked", GTK_SIGNAL_FUNC(do_remove_buddy), bd); | |
| 557 | |
| 558 gtk_signal_connect(GTK_OBJECT(b->ok), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 559 | |
| 560 b->cancel = gtk_button_new_from_stock (GTK_STOCK_CANCEL); | |
| 561 gtk_widget_show(b->cancel); | |
| 562 gtk_size_group_add_widget(sg, b->cancel); | |
| 563 gtk_box_pack_end(GTK_BOX(hbox), b->cancel, FALSE, FALSE, 5); | |
| 564 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 565 | |
| 566 gtk_widget_show(b->window); | |
| 567 } | 497 } |
| 568 | 498 |
| 569 | 499 |
| 570 | 500 |
| 571 /*------------------------------------------------------------------------*/ | 501 /*------------------------------------------------------------------------*/ |
