comparison src/dialogs.c @ 3819:8997bc63417c

[gaim-migrate @ 3966] add group dialog gtk2ized. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Tue, 29 Oct 2002 08:55:23 +0000
parents b983234cb3a3
children f82dec3e96bf
comparison
equal deleted inserted replaced
3818:fed3d1b2a472 3819:8997bc63417c
56 #include "pixmaps/gnome_preferences.xpm" 56 #include "pixmaps/gnome_preferences.xpm"
57 #include "pixmaps/cancel.xpm" 57 #include "pixmaps/cancel.xpm"
58 #include "pixmaps/save.xpm" 58 #include "pixmaps/save.xpm"
59 #include "pixmaps/ok.xpm" 59 #include "pixmaps/ok.xpm"
60 #include "pixmaps/add.xpm" 60 #include "pixmaps/add.xpm"
61 #include "pixmaps/warn.xpm"
62 #include "pixmaps/close.xpm" 61 #include "pixmaps/close.xpm"
63 #include "pixmaps/gnome_add.xpm" 62 #include "pixmaps/gnome_add.xpm"
64 #include "pixmaps/gnome_remove.xpm" 63 #include "pixmaps/gnome_remove.xpm"
65 64
66 #include "pixmaps/angel.xpm" 65 #include "pixmaps/angel.xpm"
894 do_export(a->gc); 893 do_export(a->gc);
895 894
896 destroy_dialog(NULL, a->window); 895 destroy_dialog(NULL, a->window);
897 } 896 }
898 897
899 void do_add_group(GtkWidget *w, struct addbuddy *a) 898 void do_add_group(GtkWidget *w, int resp, struct addbuddy *a)
900 { 899 {
901 const char *grp; 900 const char *grp;
902 901
903 grp = gtk_entry_get_text(GTK_ENTRY(a->entry)); 902 if (resp == GTK_RESPONSE_OK) {
904 903 grp = gtk_entry_get_text(GTK_ENTRY(a->entry));
905 if (!a->gc) 904
906 a->gc = connections->data; 905 if (!a->gc)
907 906 a->gc = connections->data;
908 add_group(a->gc, grp); 907
909 do_export(a->gc); 908 add_group(a->gc, grp);
909 do_export(a->gc);
910 }
910 911
911 destroy_dialog(NULL, a->window); 912 destroy_dialog(NULL, a->window);
912 } 913 }
913 914
914 915
939 } 940 }
940 941
941 942
942 void show_add_group(struct gaim_connection *gc) 943 void show_add_group(struct gaim_connection *gc)
943 { 944 {
944 GtkWidget *cancel; 945
945 GtkWidget *add; 946 GtkWidget *hbox, *vbox;
946 GtkWidget *label; 947 GtkWidget *label;
947 GtkWidget *bbox; 948 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL);
948 GtkWidget *vbox; 949 GtkWidget *img = gtk_image_new_from_file(filename);
949 GtkWidget *topbox;
950 GtkWidget *frame;
951 950
952 struct addbuddy *a = g_new0(struct addbuddy, 1); 951 struct addbuddy *a = g_new0(struct addbuddy, 1);
953 a->gc = gc; 952 a->gc = gc;
954 953
955 GAIM_DIALOG(a->window); 954 a->window = gtk_dialog_new_with_buttons("", blist, GTK_DIALOG_MODAL,
956 gtk_window_set_wmclass(GTK_WINDOW(a->window), "add_group", "Gaim"); 955 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL);
957 gtk_window_set_policy(GTK_WINDOW(a->window), FALSE, FALSE, TRUE); 956 gtk_dialog_set_default_response (GTK_DIALOG(a->window), GTK_RESPONSE_OK);
958 gtk_widget_realize(a->window); 957 gtk_container_set_border_width (GTK_CONTAINER(a->window), 6);
959 dialogwindows = g_list_prepend(dialogwindows, a->window); 958 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE);
960 959 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE);
961 bbox = gtk_hbox_new(TRUE, 10); 960 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12);
962 topbox = gtk_hbox_new(FALSE, 5); 961 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6);
963 vbox = gtk_vbox_new(FALSE, 5); 962
964 963 hbox = gtk_hbox_new(FALSE, 12);
964 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox);
965 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
966 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
967
968 vbox = gtk_vbox_new(FALSE, 0);
969 gtk_container_add(GTK_CONTAINER(hbox), vbox);
970
971 label = gtk_label_new(_("Please enter the name of the group to be added.\n"));
972 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
973 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
974 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
975
976 hbox = gtk_hbox_new(FALSE, 6);
977 gtk_container_add(GTK_CONTAINER(vbox), hbox);
978
979 label = gtk_label_new(NULL);
980 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:"));
981 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
982
965 a->entry = gtk_entry_new(); 983 a->entry = gtk_entry_new();
966 /* Put the buttons in the box */ 984 gtk_entry_set_activates_default (GTK_ENTRY(a->entry), TRUE);
967 985 gtk_box_pack_start(GTK_BOX(hbox), a->entry, FALSE, FALSE, 0);
968 add = picture_button(a->window, _("Add"), add_xpm); 986 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(a->entry));
969 987
970 cancel = picture_button(a->window, _("Cancel"), cancel_xpm); 988 g_signal_connect(G_OBJECT(a->window), "response", G_CALLBACK(do_add_group), a);
971 989
972 gtk_box_pack_start(GTK_BOX(bbox), add, FALSE, FALSE, 5); 990 gtk_widget_show_all(a->window);
973 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5); 991 gtk_widget_grab_focus(GTK_WIDGET(a->entry));
974
975 frame = gtk_frame_new(NULL);
976 gtk_frame_set_label(GTK_FRAME(frame), _("Add Group"));
977
978 label = gtk_label_new(_("Group"));
979 gtk_widget_show(label);
980 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5);
981 gtk_box_pack_start(GTK_BOX(topbox), a->entry, FALSE, FALSE, 5);
982
983 /* And the boxes in the box */
984 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5);
985 gtk_box_pack_start(GTK_BOX(vbox), bbox, TRUE, TRUE, 5);
986
987 /* Handle closes right */
988 gtk_signal_connect(GTK_OBJECT(a->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), a->window);
989 gtk_signal_connect(GTK_OBJECT(a->window), "destroy", GTK_SIGNAL_FUNC(free_dialog), a);
990 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), a->window);
991 gtk_signal_connect(GTK_OBJECT(add), "clicked", GTK_SIGNAL_FUNC(do_add_group), a);
992 gtk_signal_connect(GTK_OBJECT(a->entry), "activate", GTK_SIGNAL_FUNC(do_add_group), a);
993 /* Finish up */
994 gtk_widget_show(add);
995 gtk_widget_show(cancel);
996 gtk_widget_show(a->entry);
997 gtk_widget_show(topbox);
998 gtk_widget_show(bbox);
999 gtk_widget_show(vbox);
1000 gtk_widget_show(frame);
1001 gtk_window_set_title(GTK_WINDOW(a->window), _("Gaim - Add Group"));
1002 gtk_window_set_focus(GTK_WINDOW(a->window), a->entry);
1003 gtk_container_add(GTK_CONTAINER(frame), vbox);
1004 gtk_container_add(GTK_CONTAINER(a->window), frame);
1005 gtk_container_set_border_width(GTK_CONTAINER(a->window), 5);
1006 gtk_widget_realize(a->window);
1007
1008 gtk_widget_show(a->window);
1009 } 992 }
1010 993
1011 static void addbuddy_select_account(GtkObject *w, struct gaim_connection *gc) 994 static void addbuddy_select_account(GtkObject *w, struct gaim_connection *gc)
1012 { 995 {
1013 struct addbuddy *b = gtk_object_get_user_data(w); 996 struct addbuddy *b = gtk_object_get_user_data(w);