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