]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkprintoperation-private.h
Add a boolean show-progress property, and show a progress dialog if it is
[~andy/gtk] / gtk / gtkprintoperation-private.h
index 5109e9cce5bcd3019011745fef025f66719da372..99237d5806cacf4fc61b18689b3759dc932c0027 100644 (file)
@@ -28,51 +28,68 @@ G_BEGIN_DECLS
 struct _GtkPrintOperationPrivate
 {
   GtkPrintStatus status;
-  char *status_string;
+  gchar *status_string;
   GtkPageSetup *default_page_setup;
   GtkPrintSettings *print_settings;
-  char *job_name;
-  int nr_of_pages;
-  int current_page;
-  gboolean use_full_page;
+  gchar *job_name;
+  gint nr_of_pages;
+  gint current_page;
   GtkUnit unit;
-  gboolean show_dialog;
-  char *pdf_target;
+  gchar *pdf_target;
+  guint use_full_page      : 1;
+  guint show_dialog        : 1;
+  guint track_print_status : 1;
+  guint show_progress      : 1;
+  guint cancelled          : 1;
+
+  guint print_pages_idle_id;
+  guint show_progress_timeout_id;
 
   /* Data for the print job: */
   cairo_surface_t *surface;
-  double dpi_x, dpi_y;
+  gdouble dpi_x, dpi_y;
 
   GtkPrintPages print_pages;
   GtkPageRange *page_ranges;
-  int num_page_ranges;
+  gint num_page_ranges;
   
-  int manual_num_copies;
-  gboolean manual_collation;
-  gboolean manual_reverse;
-  gboolean manual_orientation;
+  gint manual_num_copies;
+  guint manual_collation   : 1;
+  guint manual_reverse     : 1;
+  guint manual_orientation : 1;
   double manual_scale;
   GtkPageSet manual_page_set;
-  void *platform_data;
+  GtkWidget *custom_widget;
+  
+  gpointer platform_data;
+  GDestroyNotify free_platform_data;
 
   void (*start_page) (GtkPrintOperation *operation,
-                     GtkPrintContext *print_context,
-                     GtkPageSetup *page_setup);
-  void (*end_page) (GtkPrintOperation *operation,
-                   GtkPrintContext *print_context);
-  void (*end_run) (GtkPrintOperation *operation);
-  GDestroyNotify free_platform_data;
+                     GtkPrintContext   *print_context,
+                     GtkPageSetup      *page_setup);
+  void (*end_page)   (GtkPrintOperation *operation,
+                     GtkPrintContext   *print_context);
+  void (*end_run)    (GtkPrintOperation *operation,
+                     gboolean           wait,
+                     gboolean           cancelled);
 };
 
 GtkPrintOperationResult _gtk_print_operation_platform_backend_run_dialog (GtkPrintOperation *operation,
-                                                                         GtkWindow *parent,
-                                                                         gboolean *do_print,
-                                                                         GError **error);
+                                                                         GtkWindow         *parent,
+                                                                         gboolean          *do_print,
+                                                                         GError           **error);
+
+typedef void (* GtkPrintOperationPrintFunc) (GtkPrintOperation *op,
+                                            GtkWindow         *parent,
+                                            gboolean           wait);
+
+void _gtk_print_operation_platform_backend_run_dialog_async (GtkPrintOperation          *op,
+                                                            GtkWindow                  *parent,
+                                                            GtkPrintOperationPrintFunc  print_cb);
 
 void _gtk_print_operation_set_status (GtkPrintOperation *op,
-                                     GtkPrintStatus status,
-                                     const char *string);
+                                     GtkPrintStatus     status,
+                                     const gchar       *string);
 
 /* GtkPrintContext private functions: */