summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pluma/dialogs/pluma-preferences-dialog.c63
1 files changed, 58 insertions, 5 deletions
diff --git a/pluma/dialogs/pluma-preferences-dialog.c b/pluma/dialogs/pluma-preferences-dialog.c
index 30e8dc8d..23b94ba4 100644
--- a/pluma/dialogs/pluma-preferences-dialog.c
+++ b/pluma/dialogs/pluma-preferences-dialog.c
@@ -793,6 +793,59 @@ add_scheme_chooser_response_cb (GtkDialog *chooser,
set_buttons_sensisitivity_according_to_scheme (dlg, scheme_id);
}
+
+static GtkWidget *
+scheme_file_chooser_dialog_new_valist (const gchar *title,
+ GtkWindow *parent,
+ GtkFileChooserAction action,
+ const gchar *first_button_text,
+ va_list varargs)
+{
+ GtkWidget *result;
+ const char *button_text = first_button_text;
+ gint response_id;
+
+ result = g_object_new (GTK_TYPE_FILE_CHOOSER_DIALOG,
+ "title", title,
+ "action", action,
+ NULL);
+
+ if (parent)
+ gtk_window_set_transient_for (GTK_WINDOW (result), parent);
+
+ while (button_text)
+ {
+ response_id = va_arg (varargs, gint);
+
+ if (g_strcmp0 (button_text, "process-stop") == 0)
+ pluma_dialog_add_button (GTK_DIALOG (result), _("_Cancel"), button_text, response_id);
+ else
+ gtk_dialog_add_button (GTK_DIALOG (result), button_text, response_id);
+
+ button_text = va_arg (varargs, const gchar *);
+ }
+
+ return result;
+}
+
+static GtkWidget *
+scheme_file_chooser_dialog_new (const gchar *title,
+ GtkWindow *parent,
+ GtkFileChooserAction action,
+ const gchar *first_button_text,
+ ...)
+{
+ GtkWidget *result;
+ va_list varargs;
+
+ va_start (varargs, first_button_text);
+ result = scheme_file_chooser_dialog_new_valist (title, parent, action,
+ first_button_text,
+ varargs);
+ va_end (varargs);
+
+ return result;
+}
static void
install_scheme_clicked (GtkButton *button,
@@ -807,11 +860,11 @@ install_scheme_clicked (GtkButton *button,
return;
}
- chooser = gtk_file_chooser_dialog_new (_("Add Scheme"),
- GTK_WINDOW (dlg),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- "gtk-cancel", GTK_RESPONSE_CANCEL,
- NULL);
+ chooser = scheme_file_chooser_dialog_new (_("Add Scheme"),
+ GTK_WINDOW (dlg),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ "process-stop", GTK_RESPONSE_CANCEL,
+ NULL);
pluma_dialog_add_button (GTK_DIALOG (chooser),
_("A_dd Scheme"),