]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkprintbackend.h
stylecontext: Do invalidation on first resize container
[~andy/gtk] / gtk / gtkprintbackend.h
index fc48690ba3207e46259c8a76cbf381c7ff826f87..5ae80efda218555eb84f38cde9bc4c2154416a55 100644 (file)
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __GTK_PRINT_BACKEND_H__
 #define __GTK_PRINT_BACKEND_H__
 
 /* This is a "semi-private" header; it is meant only for
- * alternate GtkPrintDialog backend modules; no stability guarantees 
+ * alternate GtkPrintDialog backend modules; no stability guarantees
  * are made at this point
  */
 #ifndef GTK_PRINT_BACKEND_ENABLE_UNSUPPORTED
 #error "GtkPrintBackend is not supported API for general use"
 #endif
 
-#include <glib-object.h>
-#include <cairo.h>
-
-#include "gtkprinter-private.h"
-#include "gtkprintsettings.h"
-#include "gtkprinteroption.h"
-#include "gtkprintjob.h"
+#include <gtk/gtk.h>
+#include <gtk/gtkunixprint.h>
+#include <gtk/gtkprinteroptionset.h>
 
 G_BEGIN_DECLS
 
@@ -59,6 +53,13 @@ GQuark     gtk_print_backend_error_quark      (void);
 #define GTK_IS_PRINT_BACKEND_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PRINT_BACKEND))
 #define GTK_PRINT_BACKEND_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PRINT_BACKEND, GtkPrintBackendClass))
 
+typedef enum 
+{
+  GTK_PRINT_BACKEND_STATUS_UNKNOWN,
+  GTK_PRINT_BACKEND_STATUS_OK,
+  GTK_PRINT_BACKEND_STATUS_UNAVAILABLE
+} GtkPrintBackendStatus;
+
 struct _GtkPrintBackend
 {
   GObject parent_instance;
@@ -71,57 +72,69 @@ struct _GtkPrintBackendClass
   GObjectClass parent_class;
 
   /* Global backend methods: */
-  void (*request_printer_list) (GtkPrintBackend *backend);
-  void (*print_stream)         (GtkPrintBackend *backend,
-                               GtkPrintJob *job,
-                               gint data_fd,
-                               GtkPrintJobCompleteFunc callback,
-                               gpointer user_data,
-                               GDestroyNotify dnotify);
+  void                   (*request_printer_list)            (GtkPrintBackend        *backend);
+  void                   (*print_stream)                    (GtkPrintBackend        *backend,
+                                                            GtkPrintJob            *job,
+                                                            GIOChannel             *data_io,
+                                                            GtkPrintJobCompleteFunc callback,
+                                                            gpointer                user_data,
+                                                            GDestroyNotify          dnotify);
 
   /* Printer methods: */
-  void                  (*printer_request_details)           (GtkPrinter *printer);
-  cairo_surface_t *     (*printer_create_cairo_surface)      (GtkPrinter *printer,
-                                                             gdouble height,
-                                                             gdouble width,
-                                                             gint cache_fd);
-  GtkPrinterOptionSet * (*printer_get_options)               (GtkPrinter *printer,
-                                                             GtkPrintSettings *settings,
-                                                             GtkPageSetup *page_setup);
-  gboolean              (*printer_mark_conflicts)            (GtkPrinter *printer,
+  void                  (*printer_request_details)           (GtkPrinter          *printer);
+  cairo_surface_t *     (*printer_create_cairo_surface)      (GtkPrinter          *printer,
+                                                             GtkPrintSettings    *settings,
+                                                             gdouble              height,
+                                                             gdouble              width,
+                                                             GIOChannel          *cache_io);
+  GtkPrinterOptionSet * (*printer_get_options)               (GtkPrinter          *printer,
+                                                             GtkPrintSettings    *settings,
+                                                             GtkPageSetup        *page_setup,
+                                                             GtkPrintCapabilities capabilities);
+  gboolean              (*printer_mark_conflicts)            (GtkPrinter          *printer,
                                                              GtkPrinterOptionSet *options);
-  void                  (*printer_get_settings_from_options) (GtkPrinter *printer,
+  void                  (*printer_get_settings_from_options) (GtkPrinter          *printer,
                                                              GtkPrinterOptionSet *options,
-                                                             GtkPrintSettings *settings);
-  void                  (*printer_prepare_for_print)         (GtkPrinter *printer,
-                                                             GtkPrintJob *print_job,
-                                                             GtkPrintSettings *settings,
-                                                             GtkPageSetup *page_setup);
-  GList  *              (*printer_list_papers)               (GtkPrinter *printer);
-  void                  (*printer_get_hard_margins)          (GtkPrinter *printer,
-                                                             double     *top,
-                                                             double     *bottom,
-                                                             double     *left,
-                                                             double     *right);
+                                                             GtkPrintSettings    *settings);
+  void                  (*printer_prepare_for_print)         (GtkPrinter          *printer,
+                                                             GtkPrintJob         *print_job,
+                                                             GtkPrintSettings    *settings,
+                                                             GtkPageSetup        *page_setup);
+  GList  *              (*printer_list_papers)               (GtkPrinter          *printer);
+  GtkPageSetup *        (*printer_get_default_page_size)     (GtkPrinter          *printer);
+  gboolean              (*printer_get_hard_margins)          (GtkPrinter          *printer,
+                                                             gdouble             *top,
+                                                             gdouble             *bottom,
+                                                             gdouble             *left,
+                                                             gdouble             *right);
+  GtkPrintCapabilities  (*printer_get_capabilities)          (GtkPrinter          *printer);
 
   /* Signals */
-  void (*printer_list_changed)   (GtkPrintBackend *backend);
-  void (*printer_list_done)      (GtkPrintBackend *backend);
-  void (*printer_added)          (GtkPrintBackend *backend,
-                                 GtkPrinter      *printer);
-  void (*printer_removed)        (GtkPrintBackend *backend,
-                                 GtkPrinter      *printer);
-  void (*printer_status_changed) (GtkPrintBackend *backend,
-                                 GtkPrinter      *printer);
+  void                  (*printer_list_changed)              (GtkPrintBackend     *backend);
+  void                  (*printer_list_done)                 (GtkPrintBackend     *backend);
+  void                  (*printer_added)                     (GtkPrintBackend     *backend,
+                                                             GtkPrinter          *printer);
+  void                  (*printer_removed)                   (GtkPrintBackend     *backend,
+                                                             GtkPrinter          *printer);
+  void                  (*printer_status_changed)            (GtkPrintBackend     *backend,
+                                                             GtkPrinter          *printer);
+  void                  (*request_password)                  (GtkPrintBackend     *backend,
+                                                              gpointer             auth_info_required,
+                                                              gpointer             auth_info_default,
+                                                              gpointer             auth_info_display,
+                                                              gpointer             auth_info_visible,
+                                                              const gchar         *prompt);
+
+  /* not a signal */
+  void                  (*set_password)                      (GtkPrintBackend     *backend,
+                                                              gchar              **auth_info_required,
+                                                              gchar              **auth_info);
 
   /* Padding for future expansion */
   void (*_gtk_reserved1) (void);
   void (*_gtk_reserved2) (void);
   void (*_gtk_reserved3) (void);
   void (*_gtk_reserved4) (void);
-  void (*_gtk_reserved5) (void);
-  void (*_gtk_reserved6) (void);
-  void (*_gtk_reserved7) (void);
 };
 
 GType   gtk_print_backend_get_type       (void) G_GNUC_CONST;
@@ -132,13 +145,15 @@ GtkPrinter *gtk_print_backend_find_printer         (GtkPrintBackend         *pri
                                                    const gchar             *printer_name);
 void        gtk_print_backend_print_stream         (GtkPrintBackend         *print_backend,
                                                    GtkPrintJob             *job,
-                                                   gint                     data_fd,
+                                                   GIOChannel              *data_io,
                                                    GtkPrintJobCompleteFunc  callback,
                                                    gpointer                 user_data,
                                                    GDestroyNotify           dnotify);
 GList *     gtk_print_backend_load_modules         (void);
-void        gtk_print_backend_unref_at_idle        (GtkPrintBackend         *print_backend);
 void        gtk_print_backend_destroy              (GtkPrintBackend         *print_backend);
+void        gtk_print_backend_set_password         (GtkPrintBackend         *backend, 
+                                                    gchar                  **auth_info_required,
+                                                    gchar                  **auth_info);
 
 /* Backend-only functions for GtkPrintBackend */
 
@@ -150,33 +165,33 @@ void        gtk_print_backend_set_list_done        (GtkPrintBackend         *bac
 
 
 /* Backend-only functions for GtkPrinter */
-
-GtkPrinter *gtk_printer_new               (const char      *name,
-                                          GtkPrintBackend *backend,
-                                          gboolean         is_virtual);
-void        gtk_printer_set_backend       (GtkPrinter      *printer,
-                                          GtkPrintBackend *backend);
-gboolean    gtk_printer_is_new            (GtkPrinter      *printer);
-void        gtk_printer_set_is_new        (GtkPrinter      *printer,
-                                          gboolean         val);
-void        gtk_printer_set_is_active     (GtkPrinter      *printer,
-                                          gboolean         val);
-void        gtk_printer_set_has_details   (GtkPrinter      *printer,
-                                          gboolean         val);
-void        gtk_printer_set_is_default    (GtkPrinter      *printer,
-                                          gboolean         val);
-void        gtk_printer_set_icon_name     (GtkPrinter      *printer,
-                                          const gchar     *icon);
-gboolean    gtk_printer_set_job_count     (GtkPrinter      *printer,
-                                          gint             count);
-gboolean    gtk_printer_set_location      (GtkPrinter      *printer,
-                                          const gchar     *location);
-gboolean    gtk_printer_set_description   (GtkPrinter      *printer,
-                                          const gchar     *description);
-gboolean    gtk_printer_set_state_message (GtkPrinter      *printer,
-                                          const gchar     *message);
-void        gtk_printer_set_is_active     (GtkPrinter      *printer,
-                                          gboolean         active);
+gboolean    gtk_printer_is_new                (GtkPrinter      *printer);
+void        gtk_printer_set_accepts_pdf       (GtkPrinter      *printer,
+                                              gboolean         val);
+void        gtk_printer_set_accepts_ps        (GtkPrinter      *printer,
+                                              gboolean         val);
+void        gtk_printer_set_is_new            (GtkPrinter      *printer,
+                                              gboolean         val);
+void        gtk_printer_set_is_active         (GtkPrinter      *printer,
+                                              gboolean         val);
+gboolean    gtk_printer_set_is_paused         (GtkPrinter      *printer,
+                                              gboolean         val);
+gboolean    gtk_printer_set_is_accepting_jobs (GtkPrinter      *printer,
+                                              gboolean         val);
+void        gtk_printer_set_has_details       (GtkPrinter      *printer,
+                                              gboolean         val);
+void        gtk_printer_set_is_default        (GtkPrinter      *printer,
+                                              gboolean         val);
+void        gtk_printer_set_icon_name         (GtkPrinter      *printer,
+                                              const gchar     *icon);
+gboolean    gtk_printer_set_job_count         (GtkPrinter      *printer,
+                                              gint             count);
+gboolean    gtk_printer_set_location          (GtkPrinter      *printer,
+                                              const gchar     *location);
+gboolean    gtk_printer_set_description       (GtkPrinter      *printer,
+                                              const gchar     *description);
+gboolean    gtk_printer_set_state_message     (GtkPrinter      *printer,
+                                              const gchar     *message);
 
 
 G_END_DECLS