summaryrefslogtreecommitdiff
path: root/gtk/gtkprintoperation-unix.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkprintoperation-unix.c')
-rw-r--r--gtk/gtkprintoperation-unix.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/gtk/gtkprintoperation-unix.c b/gtk/gtkprintoperation-unix.c
index 0de8add643..0b7014b84c 100644
--- a/gtk/gtkprintoperation-unix.c
+++ b/gtk/gtkprintoperation-unix.c
@@ -36,6 +36,7 @@
#include <cairo-pdf.h>
#include <cairo-ps.h>
+#include "gtkprivate.h"
#include "gtkprintunixdialog.h"
#include "gtkpagesetupunixdialog.h"
#include "gtkprintbackend.h"
@@ -164,6 +165,34 @@ shell_command_substitute_file (const gchar *cmd,
return result;
}
+static void
+gtk_print_operation_unix_initialize (void)
+{
+ static gboolean initialized = FALSE;
+
+ if (!initialized)
+ {
+ /**
+ * GtkSettings::gtk-print-preview-command:
+ *
+ * A command to run for displaying the print preview. The command
+ * should contain a %f placeholder, which will get replaced by
+ * the path to the pdf file.
+ *
+ * The preview application is responsible for removing the pdf file
+ * when it is done.
+ *
+ * Since: 2.10
+ */
+ gtk_settings_install_property (g_param_spec_string ("gtk-print-preview-command",
+ P_("Default command to run when displaying a print preview"),
+ P_("Command to run when displaying a print preview"),
+ GTK_PRINT_PREVIEW_COMMAND,
+ GTK_PARAM_READWRITE));
+ initialized = TRUE;
+ }
+}
+
void
_gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op,
cairo_surface_t *surface,
@@ -179,6 +208,8 @@ _gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op,
GdkScreen *screen;
GError *error = NULL;
+ gtk_print_operation_unix_initialize ();
+
cairo_surface_destroy (surface);
settings = gtk_settings_get_default ();