Mercurial > pidgin
comparison src/dialogs.c @ 7755:8ebd9038ef62
[gaim-migrate @ 8400]
Code cleanup
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Fri, 05 Dec 2003 04:03:31 +0000 |
parents | d691cb95ee67 |
children | 17deab169114 |
comparison
equal
deleted
inserted
replaced
7754:f75991b27e94 | 7755:8ebd9038ef62 |
---|---|
39 #include "ui.h" | 39 #include "ui.h" |
40 | 40 |
41 /* XXX */ | 41 /* XXX */ |
42 #include "gaim.h" | 42 #include "gaim.h" |
43 | 43 |
44 static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */ | |
45 static GList *dialogwindows = NULL; | 44 static GList *dialogwindows = NULL; |
46 static GtkWidget *importdialog; | |
47 static GaimConnection *importgc; | |
48 static GtkWidget *icondlg; | |
49 static GtkWidget *rename_dialog = NULL; | |
50 static GtkWidget *fontseld = NULL; | 45 static GtkWidget *fontseld = NULL; |
51 | |
52 | 46 |
53 struct confirm_del { | 47 struct confirm_del { |
54 GtkWidget *window; | 48 GtkWidget *window; |
55 GtkWidget *label; | 49 GtkWidget *label; |
56 GtkWidget *ok; | 50 GtkWidget *ok; |
239 if (!GTK_IS_WIDGET(w2)) | 233 if (!GTK_IS_WIDGET(w2)) |
240 dest = w; | 234 dest = w; |
241 else | 235 else |
242 dest = w2; | 236 dest = w2; |
243 | 237 |
244 if (dest == imdialog) | |
245 imdialog = NULL; | |
246 else if (dest == importdialog) { | |
247 importdialog = NULL; | |
248 importgc = NULL; | |
249 } | |
250 else if (dest == icondlg) | |
251 icondlg = NULL; | |
252 else if (dest == rename_dialog) | |
253 rename_dialog = NULL; | |
254 | |
255 dialogwindows = g_list_remove(dialogwindows, dest); | 238 dialogwindows = g_list_remove(dialogwindows, dest); |
256 gtk_widget_destroy(dest); | 239 gtk_widget_destroy(dest); |
257 } | 240 } |
258 | 241 |
259 | 242 |
262 while (dialogwindows) | 245 while (dialogwindows) |
263 destroy_dialog(NULL, dialogwindows->data); | 246 destroy_dialog(NULL, dialogwindows->data); |
264 | 247 |
265 if (awaymessage) | 248 if (awaymessage) |
266 do_im_back(NULL, NULL); | 249 do_im_back(NULL, NULL); |
267 | |
268 if (imdialog) { | |
269 destroy_dialog(NULL, imdialog); | |
270 imdialog = NULL; | |
271 } | |
272 | |
273 if (importdialog) { | |
274 destroy_dialog(NULL, importdialog); | |
275 importdialog = NULL; | |
276 } | |
277 | |
278 if (icondlg) { | |
279 destroy_dialog(NULL, icondlg); | |
280 icondlg = NULL; | |
281 } | |
282 } | 250 } |
283 | 251 |
284 static void do_warn(GtkWidget *widget, gint resp, struct warning *w) | 252 static void do_warn(GtkWidget *widget, gint resp, struct warning *w) |
285 { | 253 { |
286 if (resp == GTK_RESPONSE_OK) | 254 if (resp == GTK_RESPONSE_OK) |
509 } | 477 } |
510 | 478 |
511 /*------------------------------------------------------------------------*/ | 479 /*------------------------------------------------------------------------*/ |
512 /* The dialog for getting an error */ | 480 /* The dialog for getting an error */ |
513 /*------------------------------------------------------------------------*/ | 481 /*------------------------------------------------------------------------*/ |
514 static void do_im(GtkWidget *widget, int resp, struct getuserinfo *info) | 482 static void do_im(GtkWidget *dialog, int id, struct getuserinfo *info) |
515 { | 483 { |
516 const char *who; | 484 const char *who; |
517 GaimConversation *conv; | 485 GaimConversation *conv; |
518 GaimAccount *account; | 486 GaimAccount *account; |
519 | 487 |
520 if (resp == GTK_RESPONSE_OK) { | 488 switch(id) { |
489 case GTK_RESPONSE_OK: | |
521 who = gtk_entry_get_text(GTK_ENTRY(info->entry)); | 490 who = gtk_entry_get_text(GTK_ENTRY(info->entry)); |
522 | 491 |
523 if (!who || !*who) { | 492 if (!who || !*who) { |
524 /* this shouldn't ever happen */ | 493 /* this shouldn't ever happen */ |
525 return; | 494 return; |
529 | 498 |
530 conv = gaim_find_conversation_with_account(who, account); | 499 conv = gaim_find_conversation_with_account(who, account); |
531 | 500 |
532 if (conv == NULL) | 501 if (conv == NULL) |
533 conv = gaim_conversation_new(GAIM_CONV_IM, account, who); | 502 conv = gaim_conversation_new(GAIM_CONV_IM, account, who); |
534 else { | 503 else |
535 gaim_conv_window_raise(gaim_conversation_get_window(conv)); | 504 gaim_conv_window_raise(gaim_conversation_get_window(conv)); |
536 } | 505 break; |
537 } | 506 } |
538 | 507 |
539 destroy_dialog(NULL, imdialog); | 508 gtk_widget_destroy(GTK_WIDGET(dialog)); |
540 imdialog = NULL; | |
541 g_free(info); | 509 g_free(info); |
542 } | 510 } |
543 | 511 |
544 static void do_info(GtkWidget *widget, int resp, struct getuserinfo *info) | 512 static void do_info(GtkWidget *dialog, int id, struct getuserinfo *info) |
545 { | 513 { |
546 char *who; | 514 char *who; |
547 | 515 |
548 if (resp == GTK_RESPONSE_OK) { | 516 switch(id) { |
517 case GTK_RESPONSE_OK: | |
549 who = g_strdup(gaim_normalize(info->gc->account, gtk_entry_get_text(GTK_ENTRY(info->entry)))); | 518 who = g_strdup(gaim_normalize(info->gc->account, gtk_entry_get_text(GTK_ENTRY(info->entry)))); |
550 | 519 |
551 if (!g_ascii_strcasecmp(who, "")) { | 520 if (!g_ascii_strcasecmp(who, "")) { |
552 g_free(who); | 521 g_free(who); |
553 return; | 522 return; |
555 | 524 |
556 /* what do we want to do about this case? */ | 525 /* what do we want to do about this case? */ |
557 if (info->gc) | 526 if (info->gc) |
558 serv_get_info(info->gc, who); | 527 serv_get_info(info->gc, who); |
559 g_free(who); | 528 g_free(who); |
560 } | 529 break; |
561 gtk_widget_destroy(GTK_WIDGET(widget)); | 530 } |
531 | |
532 gtk_widget_destroy(GTK_WIDGET(dialog)); | |
562 g_free(info); | 533 g_free(info); |
563 } | 534 } |
564 | 535 |
565 void show_ee_dialog(int ee) | 536 void show_ee_dialog(int ee) |
566 { | 537 { |
629 info->gc = gaim_account_get_connection(account); | 600 info->gc = gaim_account_get_connection(account); |
630 } | 601 } |
631 | 602 |
632 void show_im_dialog() | 603 void show_im_dialog() |
633 { | 604 { |
634 GtkWidget *hbox, *vbox; | 605 GtkWidget *window, *hbox, *vbox; |
635 GtkWidget *label; | 606 GtkWidget *label; |
636 GtkWidget *table; | 607 GtkWidget *table; |
637 GaimGtkBuddyList *gtkblist; | 608 GaimGtkBuddyList *gtkblist; |
638 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); | 609 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
639 struct getuserinfo *info = NULL; | 610 struct getuserinfo *info = g_new0(struct getuserinfo, 1); |
640 | 611 |
641 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); | 612 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
642 | 613 |
643 if (!imdialog) { | 614 info->gc = gaim_connections_get_all()->data; |
644 info = g_new0(struct getuserinfo, 1); | 615 |
645 info->gc = gaim_connections_get_all()->data; | 616 window = gtk_dialog_new_with_buttons(_("New Message"), gtkblist ? GTK_WINDOW(gtkblist->window) : NULL, 0, |
646 imdialog = gtk_dialog_new_with_buttons(_("New Message"), gtkblist ? GTK_WINDOW(gtkblist->window) : NULL, 0, | 617 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
647 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); | 618 gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK); |
648 gtk_dialog_set_default_response (GTK_DIALOG(imdialog), GTK_RESPONSE_OK); | 619 gtk_container_set_border_width (GTK_CONTAINER(window), 6); |
649 gtk_container_set_border_width (GTK_CONTAINER(imdialog), 6); | 620 gtk_window_set_resizable(GTK_WINDOW(window), FALSE); |
650 gtk_window_set_resizable(GTK_WINDOW(imdialog), FALSE); | 621 gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); |
651 gtk_dialog_set_has_separator(GTK_DIALOG(imdialog), FALSE); | 622 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); |
652 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(imdialog)->vbox), 12); | 623 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); |
653 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(imdialog)->vbox), 6); | 624 gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_OK, FALSE); |
654 gtk_dialog_set_response_sensitive(GTK_DIALOG(imdialog), GTK_RESPONSE_OK, FALSE); | 625 |
655 | 626 hbox = gtk_hbox_new(FALSE, 12); |
656 hbox = gtk_hbox_new(FALSE, 12); | 627 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); |
657 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(imdialog)->vbox), hbox); | 628 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); |
658 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | 629 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
659 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | 630 |
660 | 631 vbox = gtk_vbox_new(FALSE, 0); |
661 vbox = gtk_vbox_new(FALSE, 0); | 632 gtk_container_add(GTK_CONTAINER(hbox), vbox); |
662 gtk_container_add(GTK_CONTAINER(hbox), vbox); | 633 |
663 | 634 label = gtk_label_new(_("Please enter the screenname of the person you would like to IM.\n")); |
664 label = gtk_label_new(_("Please enter the screenname of the person you would like to IM.\n")); | 635 gtk_widget_set_size_request(GTK_WIDGET(label), 350, -1); |
665 gtk_widget_set_size_request(GTK_WIDGET(label), 350, -1); | 636 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
666 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | 637 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
638 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
639 | |
640 table = gtk_table_new(2, 2, FALSE); | |
641 gtk_table_set_row_spacings(GTK_TABLE(table), 6); | |
642 gtk_table_set_col_spacings(GTK_TABLE(table), 6); | |
643 gtk_container_set_border_width(GTK_CONTAINER(table), 12); | |
644 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
645 | |
646 label = gtk_label_new(NULL); | |
647 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); | |
648 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
649 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | |
650 | |
651 info->entry = gtk_entry_new(); | |
652 gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1); | |
653 gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE); | |
654 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry)); | |
655 | |
656 g_signal_connect(G_OBJECT(info->entry), "changed", | |
657 G_CALLBACK(gaim_gtk_set_sensitive_if_input), window); | |
658 | |
659 if (gaim_connections_get_all()->next) { | |
660 | |
661 label = gtk_label_new(NULL); | |
662 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
663 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:")); | |
667 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | 664 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
668 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | 665 |
669 | 666 info->account = gaim_gtk_account_option_menu_new(NULL, FALSE, |
670 hbox = gtk_hbox_new(FALSE, 6); | 667 G_CALLBACK(show_info_select_account), NULL, info); |
671 gtk_container_add(GTK_CONTAINER(vbox), hbox); | 668 |
672 | 669 gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2); |
673 table = gtk_table_new(2, 2, FALSE); | 670 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); |
674 gtk_table_set_row_spacings(GTK_TABLE(table), 6); | 671 } |
675 gtk_table_set_col_spacings(GTK_TABLE(table), 6); | 672 |
676 gtk_container_set_border_width(GTK_CONTAINER(table), 12); | 673 g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(do_im), info); |
677 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | 674 |
678 | 675 gtk_widget_show_all(window); |
679 label = gtk_label_new(NULL); | 676 // if (info->entry) |
680 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); | |
681 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
682 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | |
683 | |
684 info->entry = gtk_entry_new(); | |
685 gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1); | |
686 gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE); | |
687 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry)); | |
688 g_signal_connect(G_OBJECT(info->entry), "changed", | |
689 G_CALLBACK(gaim_gtk_set_sensitive_if_input), imdialog); | |
690 | |
691 if (gaim_connections_get_all()->next) { | |
692 | |
693 label = gtk_label_new(NULL); | |
694 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
695 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:")); | |
696 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
697 | |
698 info->account = gaim_gtk_account_option_menu_new(NULL, FALSE, | |
699 G_CALLBACK(show_info_select_account), NULL, info); | |
700 | |
701 gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2); | |
702 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); | |
703 } | |
704 | |
705 g_signal_connect(G_OBJECT(imdialog), "response", G_CALLBACK(do_im), info); | |
706 } | |
707 | |
708 gtk_widget_show_all(imdialog); | |
709 if (info) | |
710 gtk_widget_grab_focus(GTK_WIDGET(info->entry)); | 677 gtk_widget_grab_focus(GTK_WIDGET(info->entry)); |
711 } | 678 } |
712 | 679 |
713 void show_info_dialog() | 680 void show_info_dialog() |
714 { | 681 { |
715 GtkWidget *window, *hbox, *vbox; | 682 GtkWidget *window, *hbox, *vbox; |
716 GtkWidget *label; | 683 GtkWidget *label; |
684 GtkWidget *table; | |
685 GaimGtkBuddyList *gtkblist; | |
717 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); | 686 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
718 GtkWidget *table; | |
719 struct getuserinfo *info = g_new0(struct getuserinfo, 1); | 687 struct getuserinfo *info = g_new0(struct getuserinfo, 1); |
720 GaimGtkBuddyList *gtkblist; | |
721 | 688 |
722 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); | 689 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
723 | 690 |
724 info->gc = gaim_connections_get_all()->data; | 691 info->gc = gaim_connections_get_all()->data; |
725 | 692 |
729 gtk_container_set_border_width (GTK_CONTAINER(window), 6); | 696 gtk_container_set_border_width (GTK_CONTAINER(window), 6); |
730 gtk_window_set_resizable(GTK_WINDOW(window), FALSE); | 697 gtk_window_set_resizable(GTK_WINDOW(window), FALSE); |
731 gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); | 698 gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); |
732 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); | 699 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); |
733 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); | 700 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); |
701 gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_OK, FALSE); | |
734 | 702 |
735 hbox = gtk_hbox_new(FALSE, 12); | 703 hbox = gtk_hbox_new(FALSE, 12); |
736 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); | 704 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); |
737 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | 705 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); |
738 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | 706 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
739 gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_OK, | |
740 FALSE); | |
741 | 707 |
742 vbox = gtk_vbox_new(FALSE, 0); | 708 vbox = gtk_vbox_new(FALSE, 0); |
743 gtk_container_add(GTK_CONTAINER(hbox), vbox); | 709 gtk_container_add(GTK_CONTAINER(hbox), vbox); |
744 | 710 |
745 label = gtk_label_new(_("Please enter the screenname of the person whose info you would like to view.\n")); | 711 label = gtk_label_new(_("Please enter the screenname of the person whose info you would like to view.\n")); |
780 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); | 746 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); |
781 } | 747 } |
782 | 748 |
783 g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(do_info), info); | 749 g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(do_info), info); |
784 | 750 |
785 | |
786 gtk_widget_show_all(window); | 751 gtk_widget_show_all(window); |
787 if (info->entry) | 752 // if (info->entry) |
788 gtk_widget_grab_focus(GTK_WIDGET(info->entry)); | 753 gtk_widget_grab_focus(GTK_WIDGET(info->entry)); |
789 } | 754 } |
790 | 755 |
791 | 756 |
792 static void | 757 static void |