Mercurial > pidgin
diff src/dialogs.c @ 978:563c409e26a1
[gaim-migrate @ 988]
change passwd dialog works again
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Wed, 11 Oct 2000 20:16:04 +0000 |
| parents | 2586b2a3725e |
| children | 7e231bc0018a |
line wrap: on
line diff
--- a/src/dialogs.c Wed Oct 11 18:02:20 2000 +0000 +++ b/src/dialogs.c Wed Oct 11 20:16:04 2000 +0000 @@ -178,6 +178,7 @@ GtkWidget *original; GtkWidget *new1; GtkWidget *new2; + struct gaim_connection *gc; }; /*------------------------------------------------------------------------*/ @@ -1370,12 +1371,57 @@ return; } - serv_change_passwd(orig, new1); + serv_change_passwd(b->gc, orig, new1); destroy_dialog(NULL, b->window); g_free(b); } +static void pwd_choose(GtkObject *obj, struct passwddlg *pwd) +{ + pwd->gc = (struct gaim_connection *)gtk_object_get_user_data(obj); +} + +static void passwd_multi_menu(GtkWidget *box, struct passwddlg *pwd) +{ + GtkWidget *hbox; + GtkWidget *label; + GtkWidget *optmenu; + GtkWidget *menu; + GtkWidget *opt; + GSList *c = connections; + struct gaim_connection *g; + + hbox = gtk_hbox_new(FALSE, 5); + gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); + gtk_widget_show(hbox); + + label = gtk_label_new(_("Change password for:")); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); + gtk_widget_show(label); + + optmenu = gtk_option_menu_new(); + gtk_box_pack_end(GTK_BOX(hbox), optmenu, FALSE, FALSE, 5); + gtk_widget_show(optmenu); + + menu = gtk_menu_new(); + + while (c) { + g = (struct gaim_connection *)c->data; + opt = gtk_menu_item_new_with_label(g->username); + gtk_object_set_user_data(GTK_OBJECT(opt), g); + gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(pwd_choose), pwd); + gtk_menu_append(GTK_MENU(menu), opt); + gtk_widget_show(opt); + c = c->next; + } + + gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); + gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), 0); + + pwd->gc = (struct gaim_connection *)connections->data; +} + void show_change_passwd() { GtkWidget *hbox; @@ -1387,104 +1433,90 @@ struct passwddlg *b = g_new0(struct passwddlg, 1); b->window = gtk_window_new(GTK_WINDOW_DIALOG); - gtk_widget_set_usize(b->window, 325, 195); + gtk_widget_set_usize(b->window, 325, -1); gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, FALSE, TRUE); gtk_window_set_wmclass(GTK_WINDOW(b->window), "change_passwd", "Gaim"); - gtk_widget_show(b->window); - + gtk_container_border_width(GTK_CONTAINER(b->window), 5); + gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Password Change")); + gtk_signal_connect(GTK_OBJECT(b->window), "destroy", + GTK_SIGNAL_FUNC(destroy_dialog), b->window); + gtk_widget_realize(b->window); + aol_icon(b->window->window); dialogwindows = g_list_prepend(dialogwindows, b->window); + fbox = gtk_vbox_new(FALSE, 5); + gtk_container_add(GTK_CONTAINER(b->window), fbox); + gtk_widget_show(fbox); + frame = gtk_frame_new(_("Change Password")); - fbox = gtk_vbox_new(FALSE, 5); - - /* Build OK Button */ - - b->ok = picture_button(b->window, _("OK"), ok_xpm); - b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm); - - /* Create our vbox */ + gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 5); + gtk_widget_show(frame); + vbox = gtk_vbox_new(FALSE, 5); - - + gtk_container_add(GTK_CONTAINER(frame), vbox); + gtk_widget_show(vbox); + + passwd_multi_menu(vbox, b); + /* First Line */ hbox = gtk_hbox_new(FALSE, 5); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); + gtk_widget_show(hbox); + label = gtk_label_new(_("Original Password")); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); gtk_widget_show(label); b->original = gtk_entry_new(); gtk_entry_set_visibility(GTK_ENTRY(b->original), FALSE); + gtk_box_pack_end(GTK_BOX(hbox), b->original, FALSE, FALSE, 5); gtk_widget_show(b->original); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); - gtk_box_pack_end(GTK_BOX(hbox), b->original, FALSE, FALSE, 5); - - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); - - gtk_widget_show(hbox); - /* Next Line */ hbox = gtk_hbox_new(FALSE, 5); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); + gtk_widget_show(hbox); + label = gtk_label_new(_("New Password")); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); gtk_widget_show(label); + b->new1 = gtk_entry_new(); gtk_entry_set_visibility(GTK_ENTRY(b->new1), FALSE); + gtk_box_pack_end(GTK_BOX(hbox), b->new1, FALSE, FALSE, 5); gtk_widget_show(b->new1); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); - gtk_box_pack_end(GTK_BOX(hbox), b->new1, FALSE, FALSE, 5); - - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); - gtk_widget_show(hbox); - /* Next Line */ hbox = gtk_hbox_new(FALSE, 5); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); + gtk_widget_show(hbox); + label = gtk_label_new(_("New Password (again)")); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); gtk_widget_show(label); + b->new2 = gtk_entry_new(); gtk_entry_set_visibility(GTK_ENTRY(b->new2), FALSE); + gtk_box_pack_end(GTK_BOX(hbox), b->new2, FALSE, FALSE, 5); gtk_widget_show(b->new2); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); - gtk_box_pack_end(GTK_BOX(hbox), b->new2, FALSE, FALSE, 5); - - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); - - gtk_widget_show(hbox); - /* Now do our row of buttons */ hbox = gtk_hbox_new(TRUE, TRUE); - gtk_box_pack_start(GTK_BOX(hbox), b->ok, FALSE, FALSE, 5); - gtk_box_pack_start(GTK_BOX(hbox), b->cancel, FALSE, FALSE, 5); - + gtk_box_pack_start(GTK_BOX(fbox), hbox, FALSE, FALSE, 5); gtk_widget_show(hbox); - /* Pack our entries into a frame */ - gtk_container_add(GTK_CONTAINER(frame), vbox); - - /* Add our frame to our frame box */ - gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 5); - - /* And add our row of buttons */ - gtk_box_pack_start(GTK_BOX(fbox), hbox, FALSE, FALSE, 5); - - - gtk_widget_show(vbox); - gtk_widget_show(frame); - gtk_widget_show(fbox); - - gtk_container_add(GTK_CONTAINER(b->window), fbox); - - gtk_container_border_width(GTK_CONTAINER(b->window), 5); - gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Password Change")); - - gtk_signal_connect(GTK_OBJECT(b->window), "destroy", - GTK_SIGNAL_FUNC(destroy_dialog), b->window); + b->ok = picture_button(b->window, _("OK"), ok_xpm); + gtk_box_pack_start(GTK_BOX(hbox), b->ok, FALSE, FALSE, 5); + gtk_signal_connect(GTK_OBJECT(b->ok), "clicked", + GTK_SIGNAL_FUNC(do_change_password), b); + + b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm); + gtk_box_pack_start(GTK_BOX(hbox), b->cancel, FALSE, FALSE, 5); gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), b->window); - gtk_signal_connect(GTK_OBJECT(b->ok), "clicked", - GTK_SIGNAL_FUNC(do_change_password), b); - - + + + gtk_widget_show(b->window); } static void info_choose(GtkWidget *opt, struct set_info_dlg *b)
