summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorMatthias Clasen <matthiasc@src.gnome.org>2006-06-30 10:32:56 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2006-06-30 10:32:56 +0000
commit866006534ccee4e5114ba61e35f03da49d40bafd (patch)
treef108e15938fe09331862c8b8bfe43330b02c4283 /gtk
parent593170d7e37cd1620767df6e508e50c420fa3ba0 (diff)
downloadgtk+-866006534ccee4e5114ba61e35f03da49d40bafd.tar.gz
Add a preview capability
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkprintjob.c1
-rw-r--r--gtk/gtkprintjob.h3
-rw-r--r--gtk/gtkprintoperation-unix.c3
-rw-r--r--gtk/gtkprintunixdialog.c13
4 files changed, 17 insertions, 3 deletions
diff --git a/gtk/gtkprintjob.c b/gtk/gtkprintjob.c
index ce2af9b9d9..f68a7ca5c4 100644
--- a/gtk/gtkprintjob.c
+++ b/gtk/gtkprintjob.c
@@ -695,6 +695,7 @@ gtk_print_capabilities_get_type (void)
{ GTK_PRINT_CAPABILITY_SCALE, "GTK_PRINT_CAPABILITY_SCALE", "scale" },
{ GTK_PRINT_CAPABILITY_GENERATE_PDF, "GTK_PRINT_CAPABILITY_GENERATE_PDF", "generate-pdf" },
{ GTK_PRINT_CAPABILITY_GENERATE_PS, "GTK_PRINT_CAPABILITY_GENERATE_PS", "generate-ps" },
+ { GTK_PRINT_CAPABILITY_PREVIEW, "GTK_PRINT_CAPABILITY_PREVIEW", "preview" },
{ 0, NULL, NULL }
};
diff --git a/gtk/gtkprintjob.h b/gtk/gtkprintjob.h
index bb5e299f5e..9d538c2cb1 100644
--- a/gtk/gtkprintjob.h
+++ b/gtk/gtkprintjob.h
@@ -45,7 +45,8 @@ typedef enum
GTK_PRINT_CAPABILITY_REVERSE = 1 << 3,
GTK_PRINT_CAPABILITY_SCALE = 1 << 4,
GTK_PRINT_CAPABILITY_GENERATE_PDF = 1 << 5,
- GTK_PRINT_CAPABILITY_GENERATE_PS = 1 << 6
+ GTK_PRINT_CAPABILITY_GENERATE_PS = 1 << 6,
+ GTK_PRINT_CAPABILITY_PREVIEW = 1 << 7
} GtkPrintCapabilities;
typedef struct _GtkPrintJob GtkPrintJob;
diff --git a/gtk/gtkprintoperation-unix.c b/gtk/gtkprintoperation-unix.c
index 126771491d..5f93fef5ac 100644
--- a/gtk/gtkprintoperation-unix.c
+++ b/gtk/gtkprintoperation-unix.c
@@ -346,7 +346,8 @@ get_print_dialog (GtkPrintOperation *op,
GTK_PRINT_CAPABILITY_REVERSE |
GTK_PRINT_CAPABILITY_SCALE |
GTK_PRINT_CAPABILITY_GENERATE_PDF |
- GTK_PRINT_CAPABILITY_GENERATE_PS);
+ GTK_PRINT_CAPABILITY_GENERATE_PS |
+ GTK_PRINT_CAPABILITY_PREVIEW);
if (priv->print_settings)
gtk_print_unix_dialog_set_settings (GTK_PRINT_UNIX_DIALOG (pd),
diff --git a/gtk/gtkprintunixdialog.c b/gtk/gtkprintunixdialog.c
index fb485409b4..0a7e03b361 100644
--- a/gtk/gtkprintunixdialog.c
+++ b/gtk/gtkprintunixdialog.c
@@ -136,6 +136,7 @@ struct GtkPrintUnixDialogPrivate
GtkWidget *print_at_radio;
GtkWidget *print_at_entry;
GtkWidget *print_hold_radio;
+ GtkWidget *preview_button;
gboolean updating_print_at;
GtkPrinterOptionWidget *pages_per_sheet;
GtkPrinterOptionWidget *duplex;
@@ -273,8 +274,13 @@ gtk_print_unix_dialog_init (GtkPrintUnixDialog *dialog)
(GCallback) gtk_print_unix_dialog_destroy,
NULL);
+ priv->preview_button = gtk_button_new_from_stock (GTK_STOCK_PRINT_PREVIEW);
+ gtk_widget_show (priv->preview_button);
+
+ gtk_dialog_add_action_widget (GTK_DIALOG (dialog),
+ priv->preview_button,
+ GTK_RESPONSE_APPLY);
gtk_dialog_add_buttons (GTK_DIALOG (dialog),
- GTK_STOCK_PRINT_PREVIEW, GTK_RESPONSE_APPLY,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_PRINT, GTK_RESPONSE_OK,
NULL);
@@ -1029,6 +1035,11 @@ update_dialog_from_capabilities (GtkPrintUnixDialog *dialog)
gtk_widget_set_sensitive (priv->scale_spin,
caps & GTK_PRINT_CAPABILITY_PAGE_SET);
+ if (caps & GTK_PRINT_CAPABILITY_PREVIEW)
+ gtk_widget_show (priv->preview_button);
+ else
+ gtk_widget_hide (priv->preview_button);
+
update_collate_icon (NULL, dialog);
gtk_tree_model_filter_refilter (priv->printer_list_filter);