void gnome_two_password_dialog_set_password_secondary_label (GnomeTwoPasswordDialog *password_dialog, const char *password_secondary_label) { g_return_if_fail (password_dialog != NULL); g_return_if_fail (GNOME_IS_TWO_PASSWORD_DIALOG (password_dialog)); g_free (password_dialog->details->secondary_password_label); password_dialog->details->secondary_password_label = g_strdup (password_secondary_label); if (password_dialog->details->show_password_secondary) { add_table_rows (password_dialog); } }
void gnome_two_password_dialog_set_show_password_secondary (GnomeTwoPasswordDialog *password_dialog, gboolean show) { g_return_if_fail (password_dialog != NULL); g_return_if_fail (GNOME_IS_TWO_PASSWORD_DIALOG (password_dialog)); show = !!show; if (password_dialog->details->show_password_secondary != show) { password_dialog->details->show_password_secondary = show; add_table_rows (password_dialog); } }
void vpn_password_dialog_set_password_secondary_label (VpnPasswordDialog *dialog, const char *label) { VpnPasswordDialogPrivate *priv; g_return_if_fail (dialog != NULL); g_return_if_fail (VPN_IS_PASSWORD_DIALOG (dialog)); priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); g_free (priv->secondary_password_label); priv->secondary_password_label = g_strdup (label); if (priv->show_password_secondary) add_table_rows (dialog); }
void vpn_password_dialog_set_show_password (VpnPasswordDialog *dialog, gboolean show) { VpnPasswordDialogPrivate *priv; g_return_if_fail (dialog != NULL); g_return_if_fail (VPN_IS_PASSWORD_DIALOG (dialog)); priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); show = !!show; if (priv->show_password != show) { priv->show_password = show; add_table_rows (dialog); } }
void gnome_two_password_dialog_set_show_userpass_buttons (GnomeTwoPasswordDialog *password_dialog, gboolean show_userpass_buttons) { if (show_userpass_buttons) { password_dialog->details->anon_support_on = TRUE; gtk_widget_show (password_dialog->details->radio_vbox); if (gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (password_dialog->details->connect_with_no_userpass_button))) { gtk_widget_set_sensitive (password_dialog->details->table, FALSE); } else { gtk_widget_set_sensitive (password_dialog->details->table, TRUE); } } else { password_dialog->details->anon_support_on = FALSE; gtk_widget_hide (password_dialog->details->radio_vbox); gtk_widget_set_sensitive (password_dialog->details->table, TRUE); } add_table_rows (password_dialog); }
/* Public VpnPasswordDialog methods */ GtkWidget * vpn_password_dialog_new (const char *title, const char *message, const char *password) { GtkWidget *dialog; VpnPasswordDialogPrivate *priv; GtkLabel *message_label; GtkWidget *hbox; GtkWidget *vbox; GtkWidget *main_vbox; GtkWidget *dialog_icon; GtkBox *content, *action_area; dialog = gtk_widget_new (VPN_TYPE_PASSWORD_DIALOG, NULL); if (!dialog) return NULL; priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); gtk_window_set_title (GTK_WINDOW (dialog), title); gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); gtk_dialog_add_buttons (GTK_DIALOG (dialog), _("_Cancel"), GTK_RESPONSE_CANCEL, _("_OK"), GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); content = GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))); action_area = GTK_BOX (gtk_dialog_get_action_area (GTK_DIALOG (dialog))); /* Setup the dialog */ #if !GTK_CHECK_VERSION (2,22,0) gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); #endif gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); gtk_box_set_spacing (content, 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); gtk_box_set_spacing (action_area, 6); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); g_signal_connect (dialog, "show", G_CALLBACK (dialog_show_callback), dialog); g_signal_connect (dialog, "close", G_CALLBACK (dialog_close_callback), dialog); /* The table that holds the captions */ priv->table_alignment = gtk_alignment_new (0.0, 0.0, 0.0, 0.0); priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); priv->table = gtk_grid_new (); gtk_grid_set_column_spacing (GTK_GRID (priv->table), 12); gtk_grid_set_row_spacing (GTK_GRID (priv->table), 6); gtk_container_add (GTK_CONTAINER (priv->table_alignment), priv->table); priv->password_entry = gtk_entry_new (); priv->password_entry_secondary = gtk_entry_new (); priv->show_passwords_checkbox = gtk_check_button_new_with_mnemonic (_("Sh_ow passwords")); /* We want to hold on to these during the table rearrangement */ g_object_ref_sink (priv->password_entry); g_object_ref_sink (priv->password_entry_secondary); g_object_ref_sink (priv->show_passwords_checkbox); gtk_entry_set_visibility (GTK_ENTRY (priv->password_entry), FALSE); gtk_entry_set_visibility (GTK_ENTRY (priv->password_entry_secondary), FALSE); g_signal_connect_swapped (priv->password_entry, "activate", G_CALLBACK (gtk_window_activate_default), dialog); g_signal_connect_swapped (priv->password_entry_secondary, "activate", G_CALLBACK (gtk_window_activate_default), dialog); g_signal_connect (priv->show_passwords_checkbox, "toggled", G_CALLBACK (show_passwords_toggled_cb), dialog); add_table_rows (VPN_PASSWORD_DIALOG (dialog)); /* Adds some eye-candy to the dialog */ #if GTK_CHECK_VERSION (3,1,6) hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); #else hbox = gtk_hbox_new (FALSE, 12); #endif gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); dialog_icon = gtk_image_new_from_icon_name (_("dialog-password"), GTK_ICON_SIZE_DIALOG); gtk_misc_set_alignment (GTK_MISC (dialog_icon), 0.5, 0.0); gtk_box_pack_start (GTK_BOX (hbox), dialog_icon, FALSE, FALSE, 0); /* Fills the vbox */ #if GTK_CHECK_VERSION (3,1,6) main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 18); #else main_vbox = gtk_vbox_new (FALSE, 18); #endif if (message) { message_label = GTK_LABEL (gtk_label_new (message)); gtk_label_set_justify (message_label, GTK_JUSTIFY_LEFT); gtk_label_set_line_wrap (message_label, TRUE); gtk_label_set_max_width_chars (message_label, 35); gtk_size_group_add_widget (priv->group, GTK_WIDGET (message_label)); gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET (message_label), FALSE, FALSE, 0); gtk_size_group_add_widget (priv->group, priv->table_alignment); } #if GTK_CHECK_VERSION (3,1,6) vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); #else vbox = gtk_vbox_new (FALSE, 6); #endif gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), priv->table_alignment, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), main_vbox, FALSE, FALSE, 0); gtk_box_pack_start (content, hbox, FALSE, FALSE, 0); gtk_widget_show_all (GTK_WIDGET (content)); vpn_password_dialog_set_password (VPN_PASSWORD_DIALOG (dialog), password); return GTK_WIDGET (dialog); }
/* Public GnomeTwoPasswordDialog methods */ GtkWidget * gnome_two_password_dialog_new (const char *dialog_title, const char *message, const char *username, const char *password, gboolean readonly_username) { GnomeTwoPasswordDialog *password_dialog; GtkDialog *dialog; GtkWidget *table; GtkLabel *message_label; GtkWidget *hbox; GtkWidget *vbox; GtkWidget *main_vbox; GtkWidget *dialog_icon; GSList *group; password_dialog = GNOME_TWO_PASSWORD_DIALOG (gtk_widget_new (gnome_two_password_dialog_get_type (), NULL)); dialog = GTK_DIALOG (password_dialog); gtk_window_set_title (GTK_WINDOW (password_dialog), dialog_title); gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); gtk_dialog_add_buttons (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG (password_dialog), GTK_RESPONSE_OK); /* Setup the dialog */ gtk_dialog_set_has_separator (dialog, FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); gtk_box_set_spacing (GTK_BOX (dialog->vbox), 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5); gtk_box_set_spacing (GTK_BOX (dialog->action_area), 6); gtk_window_set_position (GTK_WINDOW (password_dialog), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (password_dialog), TRUE); g_signal_connect (password_dialog, "show", G_CALLBACK (dialog_show_callback), password_dialog); g_signal_connect (password_dialog, "close", G_CALLBACK (dialog_close_callback), password_dialog); /* the radio buttons for anonymous login */ password_dialog->details->connect_with_no_userpass_button = gtk_radio_button_new_with_mnemonic (NULL, _("Connect _anonymously")); group = gtk_radio_button_get_group ( GTK_RADIO_BUTTON (password_dialog->details->connect_with_no_userpass_button)); password_dialog->details->connect_with_userpass_button = gtk_radio_button_new_with_mnemonic ( group, _("Connect as _user:"******"clicked", G_CALLBACK (userpass_radio_button_clicked), password_dialog); g_signal_connect (password_dialog->details->connect_with_userpass_button, "clicked", G_CALLBACK (userpass_radio_button_clicked), password_dialog); /* The table that holds the captions */ password_dialog->details->table_alignment = gtk_alignment_new (0.0, 0.0, 0.0, 0.0); password_dialog->details->table = table = gtk_table_new (3, 2, FALSE); gtk_table_set_col_spacings (GTK_TABLE (table), 12); gtk_table_set_row_spacings (GTK_TABLE (table), 6); gtk_container_add (GTK_CONTAINER (password_dialog->details->table_alignment), table); password_dialog->details->username_entry = gtk_entry_new (); password_dialog->details->domain_entry = gtk_entry_new (); password_dialog->details->password_entry = gtk_entry_new (); password_dialog->details->password_entry_secondary = gtk_entry_new (); /* We want to hold on to these during the table rearrangement */ #if GLIB_CHECK_VERSION (2, 10, 0) g_object_ref_sink (password_dialog->details->username_entry); g_object_ref_sink (password_dialog->details->domain_entry); g_object_ref_sink (password_dialog->details->password_entry); g_object_ref_sink (password_dialog->details->password_entry_secondary); #else g_object_ref (password_dialog->details->username_entry); gtk_object_sink (GTK_OBJECT (password_dialog->details->username_entry)); g_object_ref (password_dialog->details->domain_entry); gtk_object_sink (GTK_OBJECT (password_dialog->details->domain_entry)); g_object_ref (password_dialog->details->password_entry); gtk_object_sink (GTK_OBJECT (password_dialog->details->password_entry)); g_object_ref (password_dialog->details->password_entry_secondary); gtk_object_sink (GTK_OBJECT (password_dialog->details->password_entry_secondary)); #endif gtk_entry_set_visibility (GTK_ENTRY (password_dialog->details->password_entry), FALSE); gtk_entry_set_visibility (GTK_ENTRY (password_dialog->details->password_entry_secondary), FALSE); g_signal_connect (password_dialog->details->username_entry, "activate", G_CALLBACK (username_entry_activate), password_dialog); g_signal_connect (password_dialog->details->domain_entry, "activate", G_CALLBACK (domain_entry_activate), password_dialog); g_signal_connect_swapped (password_dialog->details->password_entry, "activate", G_CALLBACK (gtk_window_activate_default), password_dialog); g_signal_connect_swapped (password_dialog->details->password_entry_secondary, "activate", G_CALLBACK (gtk_window_activate_default), password_dialog); add_table_rows (password_dialog); /* Adds some eye-candy to the dialog */ hbox = gtk_hbox_new (FALSE, 12); gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); dialog_icon = gtk_image_new_from_stock (GTK_STOCK_DIALOG_AUTHENTICATION, GTK_ICON_SIZE_DIALOG); gtk_misc_set_alignment (GTK_MISC (dialog_icon), 0.5, 0.0); gtk_box_pack_start (GTK_BOX (hbox), dialog_icon, FALSE, FALSE, 0); /* Fills the vbox */ main_vbox = gtk_vbox_new (FALSE, 18); if (message) { message_label = GTK_LABEL (gtk_label_new (message)); gtk_label_set_justify (message_label, GTK_JUSTIFY_LEFT); gtk_label_set_line_wrap (message_label, TRUE); gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET (message_label), FALSE, FALSE, 0); } vbox = gtk_vbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), password_dialog->details->radio_vbox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), password_dialog->details->table_alignment, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), main_vbox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (password_dialog)->vbox), hbox, TRUE, /* expand */ TRUE, /* fill */ 0); /* padding */ gtk_widget_show_all (GTK_DIALOG (password_dialog)->vbox); password_dialog->details->remember_session_button = gtk_check_button_new_with_mnemonic (_("_Remember passwords for this session")); password_dialog->details->remember_forever_button = gtk_check_button_new_with_mnemonic (_("_Save passwords in keyring")); gtk_box_pack_start (GTK_BOX (vbox), password_dialog->details->remember_session_button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), password_dialog->details->remember_forever_button, FALSE, FALSE, 0); gnome_two_password_dialog_set_username (password_dialog, username); gnome_two_password_dialog_set_password (password_dialog, password); gnome_two_password_dialog_set_readonly_domain (password_dialog, readonly_username); return GTK_WIDGET (password_dialog); }