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,