Mercurial > pidgin.yaz
comparison src/multi.c @ 4483:109948475ecc
[gaim-migrate @ 4758]
Gtk2ify password entry dialog thingy
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Fri, 31 Jan 2003 00:33:35 +0000 |
parents | 74d83e3a7a47 |
children | 3502a25bad47 |
comparison
equal
deleted
inserted
replaced
4482:59ff9d0b7b85 | 4483:109948475ecc |
---|---|
952 p = p->next; | 952 p = p->next; |
953 } | 953 } |
954 return NULL; | 954 return NULL; |
955 } | 955 } |
956 | 956 |
957 static void pass_des(GtkWidget *w, struct pass_prompt *p) | 957 static void pass_callback(GtkDialog *d, gint resp, struct pass_prompt *p) |
958 { | 958 { |
959 if (resp == GTK_RESPONSE_YES) { | |
960 const char *txt = gtk_entry_get_text(GTK_ENTRY(p->entry)); | |
961 g_snprintf(p->u->password, sizeof(p->u->password), "%s", txt); | |
962 serv_login(p->u); | |
963 } | |
959 passes = g_slist_remove(passes, p); | 964 passes = g_slist_remove(passes, p); |
965 gtk_widget_destroy(p->win); | |
960 g_free(p); | 966 g_free(p); |
961 } | 967 } |
962 | 968 |
963 static void pass_cancel(GtkWidget *w, struct pass_prompt *p) | |
964 { | |
965 gtk_widget_destroy(p->win); | |
966 } | |
967 | |
968 static void pass_signon(GtkWidget *w, struct pass_prompt *p) | |
969 { | |
970 const char *txt = gtk_entry_get_text(GTK_ENTRY(p->entry)); | |
971 g_snprintf(p->u->password, sizeof(p->u->password), "%s", txt); | |
972 serv_login(p->u); | |
973 gtk_widget_destroy(p->win); | |
974 } | |
975 | |
976 static void do_pass_dlg(struct aim_user *u) | 969 static void do_pass_dlg(struct aim_user *u) |
977 { | 970 { |
978 /* we can safely assume that u is not NULL */ | 971 /* we can safely assume that u is not NULL */ |
979 GtkWidget *frame; | 972 struct pass_prompt *p = find_pass_prompt(u); |
980 GtkWidget *vbox; | |
981 GtkWidget *hbox; | |
982 char buf[96]; | |
983 GtkWidget *label; | 973 GtkWidget *label; |
984 GtkWidget *button; | 974 GtkWidget *hbox, *vbox; |
985 struct pass_prompt *p = find_pass_prompt(u); | 975 char *labeltext=NULL; |
976 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_auth.png", NULL); | |
977 GtkWidget *img = gtk_image_new_from_file(filename); | |
978 g_free(filename); | |
979 | |
986 | 980 |
987 if (p) { | 981 if (p) { |
988 gtk_widget_show(p->win); | 982 gtk_widget_show(p->win); |
989 return; | 983 return; |
990 } | 984 } |
991 | 985 |
992 p = g_new0(struct pass_prompt, 1); | 986 p = g_new0(struct pass_prompt, 1); |
993 p->u = u; | 987 p->u = u; |
994 passes = g_slist_append(passes, p); | 988 passes = g_slist_append(passes, p); |
995 | 989 |
996 GAIM_DIALOG(p->win); | 990 p->win = gtk_dialog_new_with_buttons("", NULL, 0, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, |
997 gtk_window_set_role(GTK_WINDOW(p->win), "password"); | 991 _("_Login"), GTK_RESPONSE_YES, NULL); |
998 gtk_container_border_width(GTK_CONTAINER(p->win), 5); | 992 |
999 g_signal_connect(GTK_OBJECT(p->win), "destroy", G_CALLBACK(pass_des), p); | 993 gtk_dialog_set_default_response (GTK_DIALOG(p->win), GTK_RESPONSE_YES); |
1000 gtk_widget_realize(p->win); | 994 g_signal_connect(G_OBJECT(p->win), "response", G_CALLBACK(pass_callback), p); |
1001 | 995 |
1002 vbox = gtk_vbox_new(FALSE, 18); | 996 gtk_container_set_border_width (GTK_CONTAINER(p->win), 6); |
1003 gtk_container_set_border_width(GTK_CONTAINER(vbox), 12); | 997 gtk_window_set_resizable(GTK_WINDOW(p->win), FALSE); |
1004 frame = make_frame(vbox, _("Enter Password")); | 998 gtk_dialog_set_has_separator(GTK_DIALOG(p->win), FALSE); |
1005 gtk_widget_show(frame); | 999 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(p->win)->vbox), 12); |
1006 | 1000 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(p->win)->vbox), 6); |
1007 vbox = gtk_vbox_new(FALSE, 5); | 1001 |
1008 gtk_container_add(GTK_CONTAINER(frame), vbox); | 1002 hbox = gtk_hbox_new(FALSE, 12); |
1009 gtk_widget_show(vbox); | 1003 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(p->win)->vbox), hbox); |
1010 | 1004 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); |
1005 | |
1006 vbox = gtk_vbox_new(FALSE, 0); | |
1007 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
1008 | |
1009 labeltext = g_strdup_printf(_("Please enter your password for %s.\n\n"), u->username); | |
1010 label = gtk_label_new(labeltext); | |
1011 g_free(labeltext); | |
1012 | |
1013 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
1014 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1015 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
1016 | |
1011 hbox = gtk_hbox_new(FALSE, 5); | 1017 hbox = gtk_hbox_new(FALSE, 5); |
1012 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | 1018 gtk_container_add(GTK_CONTAINER(vbox), hbox); |
1013 gtk_widget_show(hbox); | 1019 label = gtk_label_new_with_mnemonic(_("_Password")); |
1014 | 1020 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
1015 g_snprintf(buf, sizeof(buf), _("Password for %s:"), u->username); | |
1016 label = gtk_label_new(buf); | |
1017 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); | 1021 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
1018 gtk_widget_show(label); | |
1019 | 1022 |
1020 p->entry = gtk_entry_new(); | 1023 p->entry = gtk_entry_new(); |
1021 gtk_entry_set_visibility(GTK_ENTRY(p->entry), FALSE); | 1024 gtk_entry_set_visibility(GTK_ENTRY(p->entry), FALSE); |
1022 gtk_box_pack_start(GTK_BOX(hbox), p->entry, FALSE, FALSE, 5); | 1025 gtk_box_pack_start(GTK_BOX(hbox), p->entry, FALSE, FALSE, 5); |
1023 g_signal_connect(GTK_OBJECT(p->entry), "activate", G_CALLBACK(pass_signon), p); | 1026 gtk_label_set_mnemonic_widget(GTK_LABEL(label), p->entry); |
1024 gtk_widget_grab_focus(p->entry); | 1027 gtk_widget_grab_focus(p->entry); |
1025 gtk_widget_show(p->entry); | |
1026 | |
1027 hbox = gtk_hbox_new(FALSE, 5); | |
1028 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | |
1029 gtk_widget_show(hbox); | |
1030 | |
1031 button = picture_button(p->win, _("Cancel"), cancel_xpm); | |
1032 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pass_cancel), p); | |
1033 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); | |
1034 | |
1035 button = picture_button(p->win, _("Signon"), ok_xpm); | |
1036 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pass_signon), p); | |
1037 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); | |
1038 | 1028 |
1039 gtk_widget_show_all(p->win); | 1029 gtk_widget_show_all(p->win); |
1040 } | 1030 } |
1041 | 1031 |
1042 static void acct_signin(GtkCellRendererToggle *cell, gchar *path_str, | 1032 static void acct_signin(GtkCellRendererToggle *cell, gchar *path_str, |