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_grid_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_grid_rows (dialog); } }
void nma_vpn_password_dialog_set_show_password_ternary (NMAVpnPasswordDialog *dialog, gboolean show) { NMAVpnPasswordDialogPrivate *priv; g_return_if_fail (dialog != NULL); g_return_if_fail (NMA_VPN_IS_PASSWORD_DIALOG (dialog)); priv = NMA_VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); show = !!show; if (priv->show_password_ternary != show) { priv->show_password_ternary = show; add_grid_rows (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); #if !GTK_CHECK_VERSION(3,10,0) gtk_dialog_add_buttons (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); #else gtk_dialog_add_buttons (GTK_DIALOG (dialog), _Cancel, GTK_RESPONSE_CANCEL, _OK, GTK_RESPONSE_OK, NULL); #endif 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))); /* Set up the dialog */ 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 grid that holds the captions */ priv->grid_alignment = gtk_alignment_new (0.0, 0.0, 0.0, 0.0); priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); priv->grid = gtk_grid_new (); gtk_grid_set_column_spacing (GTK_GRID (priv->grid), 12); gtk_grid_set_row_spacing (GTK_GRID (priv->grid), 6); gtk_container_add (GTK_CONTAINER (priv->grid_alignment), priv->grid); 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 grid 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_grid_rows (VPN_PASSWORD_DIALOG (dialog)); /* Adds some eye-candy to the dialog */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); #if !GTK_CHECK_VERSION(3,10,0) dialog_icon = gtk_image_new_from_stock(GTK_STOCK_DIALOG_AUTHENTICATION, GTK_ICON_SIZE_DIALOG); #else dialog_icon = gtk_image_new_from_icon_name("dialog-password", GTK_ICON_SIZE_DIALOG); #endif 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_box_new (GTK_ORIENTATION_VERTICAL, 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_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->grid_alignment); } vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), priv->grid_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); }