diff options
Diffstat (limited to 'remmina/src/remmina_init_dialog.c')
-rw-r--r-- | remmina/src/remmina_init_dialog.c | 133 |
1 files changed, 71 insertions, 62 deletions
diff --git a/remmina/src/remmina_init_dialog.c b/remmina/src/remmina_init_dialog.c index b5c5ccc9c..e74e017a9 100644 --- a/remmina/src/remmina_init_dialog.c +++ b/remmina/src/remmina_init_dialog.c @@ -184,9 +184,37 @@ void remmina_init_dialog_set_status_temp(RemminaInitDialog *dialog, const gchar } } +static GtkWidget* remmina_init_dialog_container_new(guint table_rows, guint table_columns, gboolean homogeneous) +{ + GtkWidget *table; +#if GTK_VERSION == 3 + table = gtk_grid_new(); + gtk_widget_show(table); + gtk_grid_set_row_spacing(GTK_GRID(table), 8); + gtk_grid_set_column_spacing(GTK_GRID(table), 8); + gtk_grid_set_column_homogeneous (GTK_GRID(table), homogeneous); +#elif GTK_VERSION == 2 + table = gtk_table_new(table_rows, table_columns, homogeneous); + gtk_widget_show(table); + gtk_table_set_row_spacings(GTK_TABLE(table), 8); + gtk_table_set_col_spacings(GTK_TABLE(table), 8); +#endif + return table; +} + +static void remmina_init_dialog_attach(GtkWidget *table, GtkWidget *widget, gint left, gint top, gint width, gint height) +{ +#if GTK_VERSION == 3 + gtk_grid_attach(GTK_GRID(table), widget, left, top, width, height); +#elif GTK_VERSION == 2 + // guint left_attach, guint right_attach, guint top_attach,guint bottom_attach + gtk_table_attach_defaults(GTK_TABLE(table), widget, left, left+width, top, top+height); +#endif +} + gint remmina_init_dialog_authpwd(RemminaInitDialog *dialog, const gchar *label, gboolean allow_save) { - GtkGrid *table; + GtkWidget *table; GtkWidget *password_entry; GtkWidget *save_password_check; GtkWidget *widget; @@ -195,11 +223,8 @@ gint remmina_init_dialog_authpwd(RemminaInitDialog *dialog, const gchar *label, gtk_label_set_text(GTK_LABEL(dialog->status_label), (dialog->status ? dialog->status : dialog->title)); - /* Create grid (was a table) */ - table = gtk_grid_new(); - gtk_widget_show(table); - gtk_grid_set_row_spacing(GTK_GRID(table), 8); - gtk_grid_set_column_spacing(GTK_GRID(table), 8); + /* Create grid or table */ + table = remmina_init_dialog_container_new(2, 2, FALSE); /* Icon */ gtk_image_set_from_stock(GTK_IMAGE(dialog->image), GTK_STOCK_DIALOG_AUTHENTICATION, GTK_ICON_SIZE_DIALOG); @@ -208,11 +233,11 @@ gint remmina_init_dialog_authpwd(RemminaInitDialog *dialog, const gchar *label, widget = gtk_label_new(label); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 0, 1, 1); + remmina_init_dialog_attach(table, widget, 0, 0, 1, 1); password_entry = gtk_entry_new(); gtk_widget_show(password_entry); - gtk_grid_attach(GTK_GRID(table), password_entry, 1, 0, 2, 1); + remmina_init_dialog_attach(table, password_entry, 1, 0, 2, 1); gtk_entry_set_max_length(GTK_ENTRY(password_entry), 100); gtk_entry_set_visibility(GTK_ENTRY(password_entry), FALSE); gtk_entry_set_activates_default(GTK_ENTRY(password_entry), TRUE); @@ -221,7 +246,7 @@ gint remmina_init_dialog_authpwd(RemminaInitDialog *dialog, const gchar *label, save_password_check = gtk_check_button_new_with_label(s); g_free(s); gtk_widget_show(save_password_check); - gtk_grid_attach(GTK_GRID(table), save_password_check, 0, 1, 2, 1); + remmina_init_dialog_attach(table, save_password_check, 0, 1, 2, 1); if (allow_save) { if (dialog->save_password) @@ -260,7 +285,7 @@ gint remmina_init_dialog_authpwd(RemminaInitDialog *dialog, const gchar *label, gint remmina_init_dialog_authuserpwd(RemminaInitDialog *dialog, gboolean want_domain, const gchar *default_username, const gchar *default_domain, gboolean allow_save) { - GtkGrid *table; + GtkWidget *table; GtkWidget *username_entry; GtkWidget *password_entry; GtkWidget *domain_entry = NULL; @@ -271,11 +296,7 @@ gint remmina_init_dialog_authuserpwd(RemminaInitDialog *dialog, gboolean want_do gtk_label_set_text(GTK_LABEL(dialog->status_label), (dialog->status ? dialog->status : dialog->title)); /* Create table */ - table = gtk_grid_new(); - gtk_widget_show(table); - gtk_grid_set_row_spacing(GTK_GRID(table), 8); - gtk_grid_set_column_spacing(GTK_GRID(table), 8); - gtk_grid_set_column_homogeneous (GTK_GRID(table), TRUE); + table = remmina_init_dialog_container_new(4, 2, TRUE); /* Icon */ gtk_image_set_from_stock(GTK_IMAGE(dialog->image), GTK_STOCK_DIALOG_AUTHENTICATION, GTK_ICON_SIZE_DIALOG); @@ -284,11 +305,11 @@ gint remmina_init_dialog_authuserpwd(RemminaInitDialog *dialog, gboolean want_do widget = gtk_label_new(_("User name")); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 0, 1, 1); + remmina_init_dialog_attach(table, widget, 0, 0, 1, 1); username_entry = gtk_entry_new(); gtk_widget_show(username_entry); - gtk_grid_attach(GTK_GRID(table), username_entry, 1, 0, 2, 1); + remmina_init_dialog_attach(table, username_entry, 1, 0, 2, 1); gtk_entry_set_max_length(GTK_ENTRY(username_entry), 100); if (default_username && default_username[0] != '\0') { @@ -298,26 +319,25 @@ gint remmina_init_dialog_authuserpwd(RemminaInitDialog *dialog, gboolean want_do widget = gtk_label_new(_("Password")); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 2, 1, 1); + remmina_init_dialog_attach(table, widget, 0, 2, 1, 1); password_entry = gtk_entry_new(); gtk_widget_show(password_entry); - gtk_grid_attach(GTK_GRID(table), password_entry, 1, 2, 2, 1); + remmina_init_dialog_attach(table, password_entry, 1, 2, 2, 1); gtk_entry_set_max_length(GTK_ENTRY(password_entry), 100); gtk_entry_set_visibility(GTK_ENTRY(password_entry), FALSE); gtk_entry_set_activates_default(GTK_ENTRY(password_entry), TRUE); - if (want_domain) { widget = gtk_label_new(_("Domain")); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 3, 1, 1); + remmina_init_dialog_attach(table, widget, 0, 3, 1, 1); domain_entry = gtk_entry_new(); gtk_widget_show(domain_entry); - gtk_grid_attach(GTK_GRID(table), domain_entry, 1, 3, 2, 1); + remmina_init_dialog_attach(table, domain_entry, 1, 3, 2, 1); gtk_entry_set_max_length(GTK_ENTRY(domain_entry), 100); if (default_domain && default_domain[0] != '\0') { @@ -327,7 +347,7 @@ gint remmina_init_dialog_authuserpwd(RemminaInitDialog *dialog, gboolean want_do save_password_check = gtk_check_button_new_with_label(_("Save password")); gtk_widget_show(save_password_check); - gtk_grid_attach(GTK_GRID(table), save_password_check, 0, 4, 2, 3); + remmina_init_dialog_attach(table, save_password_check, 0, 4, 2, 3); if (allow_save) { if (dialog->save_password) @@ -383,11 +403,7 @@ gint remmina_init_dialog_certificate(RemminaInitDialog* dialog, const gchar* sub gtk_label_set_text(GTK_LABEL(dialog->status_label), _("Certificate Details:")); /* Create table */ - table = gtk_grid_new(); - gtk_widget_show(table); - gtk_grid_set_row_spacing(GTK_GRID(table), 8); - gtk_grid_set_column_spacing(GTK_GRID(table), 8); - //gtk_grid_set_column_homogeneous (GTK_GRID(table), TRUE); + table = remmina_init_dialog_container_new(5, 2, FALSE); /* Icon */ gtk_image_set_from_stock(GTK_IMAGE(dialog->image), GTK_STOCK_DIALOG_AUTHENTICATION, GTK_ICON_SIZE_DIALOG); @@ -396,32 +412,32 @@ gint remmina_init_dialog_certificate(RemminaInitDialog* dialog, const gchar* sub widget = gtk_label_new(_("Subject:")); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 0, 1, 1); + remmina_init_dialog_attach(table, widget, 0, 0, 1, 1); widget = gtk_label_new(subject); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 1, 0, 2, 1); + remmina_init_dialog_attach(table, widget, 1, 0, 2, 1); widget = gtk_label_new(_("Issuer:")); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 1, 1, 1); + remmina_init_dialog_attach(table, widget, 0, 1, 1, 1); widget = gtk_label_new(issuer); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 1, 1, 2, 1); + remmina_init_dialog_attach(table, widget, 1, 1, 2, 1); widget = gtk_label_new(_("Fingerprint:")); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 2, 1, 1); + remmina_init_dialog_attach(table, widget, 0, 2, 1, 1); widget = gtk_label_new(fingerprint); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 1, 2, 2, 1); + remmina_init_dialog_attach(table, widget, 1, 2, 2, 1); widget = gtk_label_new (NULL); s = g_strdup_printf("<span size=\"large\"><b>%s</b></span>", _("Accept Certificate?")); @@ -429,7 +445,7 @@ gint remmina_init_dialog_certificate(RemminaInitDialog* dialog, const gchar* sub g_free(s); gtk_misc_set_alignment(GTK_MISC(widget), 0.5, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 3, 3, 1); + remmina_init_dialog_attach(table, widget, 0, 3, 3, 1); /* Pack it into the dialog */ gtk_box_pack_start(GTK_BOX(dialog->content_vbox), table, TRUE, TRUE, 4); @@ -450,6 +466,7 @@ gint remmina_init_dialog_certificate(RemminaInitDialog* dialog, const gchar* sub return status; } + gint remmina_init_dialog_certificate_changed(RemminaInitDialog* dialog, const gchar* subject, const gchar* issuer, const gchar* new_fingerprint, const gchar* old_fingerprint) { gint status; @@ -460,10 +477,7 @@ gint remmina_init_dialog_certificate_changed(RemminaInitDialog* dialog, const gc gtk_label_set_text(GTK_LABEL(dialog->status_label), _("Certificate Changed! Details:")); /* Create table */ - table = gtk_grid_new(); - gtk_widget_show(table); - gtk_grid_set_row_spacing(GTK_GRID(table), 8); - gtk_grid_set_column_spacing(GTK_GRID(table), 8); + table = remmina_init_dialog_container_new(6, 2, FALSE); /* Icon */ gtk_image_set_from_stock(GTK_IMAGE(dialog->image), GTK_STOCK_DIALOG_AUTHENTICATION, GTK_ICON_SIZE_DIALOG); @@ -473,43 +487,43 @@ gint remmina_init_dialog_certificate_changed(RemminaInitDialog* dialog, const gc widget = gtk_label_new(_("Subject:")); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 0, 1, 1); + remmina_init_dialog_attach(table, widget, 0, 0, 1, 1); widget = gtk_label_new(subject); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 1, 0, 2, 1); + remmina_init_dialog_attach(table, widget, 1, 0, 2, 1); widget = gtk_label_new(_("Issuer:")); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 1, 1, 1); + remmina_init_dialog_attach(table, widget, 0, 1, 1, 1); widget = gtk_label_new(issuer); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 1, 1, 2, 1); + remmina_init_dialog_attach(table, widget, 1, 1, 2, 1); widget = gtk_label_new(_("Old Fingerprint:")); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 2, 1, 1); + remmina_init_dialog_attach(table, widget, 0, 2, 1, 1); widget = gtk_label_new(old_fingerprint); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 1, 2, 2, 1); + remmina_init_dialog_attach(table, widget, 1, 2, 2, 1); widget = gtk_label_new(_("New Fingerprint:")); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 3, 1, 1); + remmina_init_dialog_attach(table, widget, 0, 3, 1, 1); widget = gtk_label_new(new_fingerprint); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 1, 3, 2, 1); + remmina_init_dialog_attach(table, widget, 1, 3, 2, 1); widget = gtk_label_new (NULL); s = g_strdup_printf("<span size=\"large\"><b>%s</b></span>", _("Accept Changed Certificate?")); @@ -517,7 +531,7 @@ gint remmina_init_dialog_certificate_changed(RemminaInitDialog* dialog, const gc g_free(s); gtk_misc_set_alignment(GTK_MISC(widget), 0.5, 0.5); gtk_widget_show(widget); - gtk_grid_attach(GTK_GRID(table), widget, 0, 4, 3, 1); + remmina_init_dialog_attach(table, widget, 0, 4, 3, 1); /* Pack it into the dialog */ gtk_box_pack_start(GTK_BOX(dialog->content_vbox), table, TRUE, TRUE, 4); @@ -539,8 +553,7 @@ gint remmina_init_dialog_certificate_changed(RemminaInitDialog* dialog, const gc return status; } -/* NOT TESTED */ -static GtkWidget* remmina_init_dialog_create_file_button(GtkTable *table, const gchar *label, gint row, const gchar *filename) +static GtkWidget* remmina_init_dialog_create_file_button(GtkWidget *table, const gchar *label, gint row, const gchar *filename) { GtkWidget *widget; gchar *pkidir; @@ -548,12 +561,12 @@ static GtkWidget* remmina_init_dialog_create_file_button(GtkTable *table, const widget = gtk_label_new(label); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_widget_show(widget); - gtk_grid_attach(table, widget, 0, row, 1, row + 1); + remmina_init_dialog_attach(table, widget, 0, row, 1, row + 1); widget = gtk_file_chooser_button_new(label, GTK_FILE_CHOOSER_ACTION_OPEN); gtk_file_chooser_button_set_width_chars(GTK_FILE_CHOOSER_BUTTON(widget), 25); gtk_widget_show(widget); - gtk_grid_attach(table, widget, 1, row, 2, row + 1); + remmina_init_dialog_attach(table, widget, 1, row, 2, row + 1); if (filename && filename[0] != '\0') { gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(widget), filename); @@ -574,7 +587,7 @@ static GtkWidget* remmina_init_dialog_create_file_button(GtkTable *table, const gint remmina_init_dialog_authx509(RemminaInitDialog *dialog, const gchar *cacert, const gchar *cacrl, const gchar *clientcert, const gchar *clientkey) { - GtkGrid *table; + GtkWidget *table; GtkWidget *cacert_button; GtkWidget *cacrl_button; GtkWidget *clientcert_button; @@ -584,19 +597,16 @@ gint remmina_init_dialog_authx509(RemminaInitDialog *dialog, const gchar *cacert gtk_label_set_text(GTK_LABEL(dialog->status_label), (dialog->status ? dialog->status : dialog->title)); /* Create table */ - table = gtk_grid_new(); - gtk_widget_show(table); - gtk_grid_set_row_spacing(GTK_GRID(table), 8); - gtk_grid_set_column_spacing(GTK_GRID(table), 8); + table = remmina_init_dialog_container_new(4, 2, FALSE); /* Icon */ gtk_image_set_from_stock(GTK_IMAGE(dialog->image), GTK_STOCK_DIALOG_AUTHENTICATION, GTK_ICON_SIZE_DIALOG); /* Buttons for choosing the certificates */ - cacert_button = remmina_init_dialog_create_file_button(GTK_GRID(table), _("CA certificate"), 0, cacert); - cacrl_button = remmina_init_dialog_create_file_button(GTK_GRID(table), _("CA CRL"), 1, cacrl); - clientcert_button = remmina_init_dialog_create_file_button(GTK_GRID(table), _("Client certificate"), 2, clientcert); - clientkey_button = remmina_init_dialog_create_file_button(GTK_GRID(table), _("Client key"), 3, clientkey); + cacert_button = remmina_init_dialog_create_file_button(table, _("CA certificate"), 0, cacert); + cacrl_button = remmina_init_dialog_create_file_button(table, _("CA CRL"), 1, cacrl); + clientcert_button = remmina_init_dialog_create_file_button(table, _("Client certificate"), 2, clientcert); + clientkey_button = remmina_init_dialog_create_file_button(table, _("Client key"), 3, clientkey); /* Pack it into the dialog */ gtk_box_pack_start(GTK_BOX(dialog->content_vbox), table, TRUE, TRUE, 4); @@ -684,4 +694,3 @@ gint remmina_init_dialog_serverkey_changed(RemminaInitDialog *dialog, const gcha _("WARNING: The server has changed its public key. This means either you are under attack,\n" "or the administrator has changed the key. The new public key fingerprint is:")); } - |