summaryrefslogtreecommitdiff
path: root/gtk/gtkprintjob.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2006-05-15 16:22:38 +0000
committerAlexander Larsson <alexl@src.gnome.org>2006-05-15 16:22:38 +0000
commit3f529199e5a2117333ae10cf2d50dd91eb286207 (patch)
treefa1ccceec4371bfabb412feb7c85acaecdefdd0b /gtk/gtkprintjob.c
parent9dc49c456352a29601f4cc4d675a22dbfd22668f (diff)
downloadgtk+-3f529199e5a2117333ae10cf2d50dd91eb286207.tar.gz
Added gtk_print_job_set/get_track_print_status
2006-05-15 Alexander Larsson <alexl@redhat.com> * gtk/gtkprintjob.[ch]: Added gtk_print_job_set/get_track_print_status * gtk/gtkprintoperation-private.h: * gtk/gtkprintoperation.[ch]: Add gtk_print_operation_set_track_print_status. * gtk/gtkprintoperation-unix.c: Implement track_print_status on unix * gtk/gtkprintoperation-win32.c: Implement track_print_status on win32 * gtk/gtk.symbols: Added symbols * modules/printbackends/cups/gtkprintbackendcups.c: Implement track_print_status for cups * tests/print-editor.c: Test track_print_status.
Diffstat (limited to 'gtk/gtkprintjob.c')
-rw-r--r--gtk/gtkprintjob.c61
1 files changed, 57 insertions, 4 deletions
diff --git a/gtk/gtkprintjob.c b/gtk/gtkprintjob.c
index 1d2f6e3148..9745878084 100644
--- a/gtk/gtkprintjob.c
+++ b/gtk/gtkprintjob.c
@@ -55,9 +55,10 @@ struct _GtkPrintJobPrivate
GtkPrintSettings *settings;
GtkPageSetup *page_setup;
- gint printer_set : 1;
- gint page_setup_set : 1;
- gint settings_set : 1;
+ guint printer_set : 1;
+ guint page_setup_set : 1;
+ guint settings_set : 1;
+ guint track_print_status : 1;
};
@@ -180,7 +181,8 @@ gtk_print_job_init (GtkPrintJob *job)
priv->settings_set = FALSE;
priv->page_setup_set = FALSE;
priv->status = GTK_PRINT_STATUS_INITIAL;
-
+ priv->track_print_status = FALSE;
+
job->print_pages = GTK_PRINT_PAGES_ALL;
job->page_ranges = NULL;
job->num_page_ranges = 0;
@@ -473,6 +475,57 @@ gtk_print_job_get_surface (GtkPrintJob *job,
return priv->surface;
}
+/**
+ * gtk_print_job_set_track_print_status:
+ * @job: a #GtkPrintJob
+ * @track_status: %TRUE to track status after printing
+ *
+ * If track_status is %TRUE, the print job will try to continue report
+ * on the status of the print job in the printer queues and printer. This
+ * can allow your application to show things like "out of paper" issues,
+ * and when the print job actually reaches the printer.
+ *
+ * This function is often implemented using some form of polling, so it should
+ * not be enabled unless needed.
+ *
+ * Since: 2.10
+ */
+void
+gtk_print_job_set_track_print_status (GtkPrintJob *job,
+ gboolean track_status)
+{
+ GtkPrintJobPrivate *priv;
+
+ g_return_if_fail (GTK_IS_PRINT_JOB (job));
+
+ priv = job->priv;
+
+ priv->track_print_status = track_status;
+}
+
+/**
+ * gtk_print_job_get_track_print_status:
+ * @job: a #GtkPrintJob
+ *
+ * Returns wheter jobs will be tracked after printing.
+ * For details, see gtk_print_job_set_track_print_status().
+ *
+ * Return value: %TRUE if print job status will be reported after printing
+ *
+ * Since: 2.10
+ */
+gboolean
+gtk_print_job_get_track_print_status (GtkPrintJob *job)
+{
+ GtkPrintJobPrivate *priv;
+
+ g_return_val_if_fail (GTK_IS_PRINT_JOB (job), FALSE);
+
+ priv = job->priv;
+
+ return priv->track_print_status;
+}
+
static void
gtk_print_job_set_property (GObject *object,
guint prop_id,