X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkprintoperation.h;h=49a31ce97159d9c83a590f4fb61f1e37a1c0bf58;hb=HEAD;hp=00f8de6bffc985533fda56596e678fe24701fded;hpb=cedbe795379b47b6584f07bb2bf54756fc2ec2f5;p=~andy%2Fgtk diff --git a/gtk/gtkprintoperation.h b/gtk/gtkprintoperation.h index 00f8de6bf..49a31ce97 100644 --- a/gtk/gtkprintoperation.h +++ b/gtk/gtkprintoperation.h @@ -13,41 +13,60 @@ * 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 . */ -#if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) -#error "Only can be included directly." -#endif - #ifndef __GTK_PRINT_OPERATION_H__ #define __GTK_PRINT_OPERATION_H__ -#include + +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + #include #include -#include #include #include #include #include #include + G_BEGIN_DECLS -#define GTK_TYPE_PRINT_OPERATION (gtk_print_operation_get_type ()) -#define GTK_PRINT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperation)) -#define GTK_PRINT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass)) -#define GTK_IS_PRINT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_OPERATION)) -#define GTK_IS_PRINT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PRINT_OPERATION)) -#define GTK_PRINT_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass)) +#define GTK_TYPE_PRINT_OPERATION (gtk_print_operation_get_type ()) +#define GTK_PRINT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperation)) +#define GTK_PRINT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass)) +#define GTK_IS_PRINT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_OPERATION)) +#define GTK_IS_PRINT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PRINT_OPERATION)) +#define GTK_PRINT_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass)) typedef struct _GtkPrintOperationClass GtkPrintOperationClass; typedef struct _GtkPrintOperationPrivate GtkPrintOperationPrivate; typedef struct _GtkPrintOperation GtkPrintOperation; +/** + * GtkPrintStatus: + * @GTK_PRINT_STATUS_INITIAL: The printing has not started yet; this + * status is set initially, and while the print dialog is shown. + * @GTK_PRINT_STATUS_PREPARING: This status is set while the begin-print + * signal is emitted and during pagination. + * @GTK_PRINT_STATUS_GENERATING_DATA: This status is set while the + * pages are being rendered. + * @GTK_PRINT_STATUS_SENDING_DATA: The print job is being sent off to the + * printer. + * @GTK_PRINT_STATUS_PENDING: The print job has been sent to the printer, + * but is not printed for some reason, e.g. the printer may be stopped. + * @GTK_PRINT_STATUS_PENDING_ISSUE: Some problem has occurred during + * printing, e.g. a paper jam. + * @GTK_PRINT_STATUS_PRINTING: The printer is processing the print job. + * @GTK_PRINT_STATUS_FINISHED: The printing has been completed successfully. + * @GTK_PRINT_STATUS_FINISHED_ABORTED: The printing has been aborted. + * + * The status gives a rough indication of the completion of a running + * print operation. + */ typedef enum { GTK_PRINT_STATUS_INITIAL, GTK_PRINT_STATUS_PREPARING, @@ -60,6 +79,17 @@ typedef enum { GTK_PRINT_STATUS_FINISHED_ABORTED } GtkPrintStatus; +/** + * GtkPrintOperationResult: + * @GTK_PRINT_OPERATION_RESULT_ERROR: An error has occured. + * @GTK_PRINT_OPERATION_RESULT_APPLY: The print settings should be stored. + * @GTK_PRINT_OPERATION_RESULT_CANCEL: The print operation has been canceled, + * the print settings should not be stored. + * @GTK_PRINT_OPERATION_RESULT_IN_PROGRESS: The print operation is not complete + * yet. This value will only be returned when running asynchronously. + * + * A value of this type is returned by gtk_print_operation_run(). + */ typedef enum { GTK_PRINT_OPERATION_RESULT_ERROR, GTK_PRINT_OPERATION_RESULT_APPLY, @@ -67,6 +97,18 @@ typedef enum { GTK_PRINT_OPERATION_RESULT_IN_PROGRESS } GtkPrintOperationResult; +/** + * GtkPrintOperationAction: + * @GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG: Show the print dialog. + * @GTK_PRINT_OPERATION_ACTION_PRINT: Start to print without showing + * the print dialog, based on the current print settings. + * @GTK_PRINT_OPERATION_ACTION_PREVIEW: Show the print preview. + * @GTK_PRINT_OPERATION_ACTION_EXPORT: Export to a file. This requires + * the export-filename property to be set. + * + * The @action parameter to gtk_print_operation_run() + * determines what action the print operation should perform. + */ typedef enum { GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_PRINT_OPERATION_ACTION_PRINT, @@ -79,7 +121,8 @@ struct _GtkPrintOperation { GObject parent_instance; - GtkPrintOperationPrivate *GSEAL (priv); + /*< private >*/ + GtkPrintOperationPrivate *priv; }; struct _GtkPrintOperationClass @@ -87,30 +130,35 @@ struct _GtkPrintOperationClass GObjectClass parent_class; void (*done) (GtkPrintOperation *operation, - GtkPrintOperationResult result); + GtkPrintOperationResult result); void (*begin_print) (GtkPrintOperation *operation, - GtkPrintContext *context); + GtkPrintContext *context); gboolean (*paginate) (GtkPrintOperation *operation, - GtkPrintContext *context); + GtkPrintContext *context); void (*request_page_setup) (GtkPrintOperation *operation, - GtkPrintContext *context, - gint page_nr, - GtkPageSetup *setup); + GtkPrintContext *context, + gint page_nr, + GtkPageSetup *setup); void (*draw_page) (GtkPrintOperation *operation, - GtkPrintContext *context, - gint page_nr); + GtkPrintContext *context, + gint page_nr); void (*end_print) (GtkPrintOperation *operation, - GtkPrintContext *context); + GtkPrintContext *context); void (*status_changed) (GtkPrintOperation *operation); GtkWidget *(*create_custom_widget) (GtkPrintOperation *operation); void (*custom_widget_apply) (GtkPrintOperation *operation, - GtkWidget *widget); + GtkWidget *widget); - gboolean (*preview) (GtkPrintOperation *operation, - GtkPrintOperationPreview *preview, - GtkPrintContext *context, - GtkWindow *parent); + gboolean (*preview) (GtkPrintOperation *operation, + GtkPrintOperationPreview *preview, + GtkPrintContext *context, + GtkWindow *parent); + + void (*update_custom_widget) (GtkPrintOperation *operation, + GtkWidget *widget, + GtkPageSetup *setup, + GtkPrintSettings *settings); /* Padding for future expansion */ void (*_gtk_reserved1) (void); @@ -120,10 +168,27 @@ struct _GtkPrintOperationClass void (*_gtk_reserved5) (void); void (*_gtk_reserved6) (void); void (*_gtk_reserved7) (void); + void (*_gtk_reserved8) (void); }; +/** + * GTK_PRINT_ERROR: + * + * The error domain for #GtkPrintError errors. + */ #define GTK_PRINT_ERROR gtk_print_error_quark () +/** + * GtkPrintError: + * @GTK_PRINT_ERROR_GENERAL: An unspecified error occurred. + * @GTK_PRINT_ERROR_INTERNAL_ERROR: An internal error occurred. + * @GTK_PRINT_ERROR_NOMEM: A memory allocation failed. + * @GTK_PRINT_ERROR_INVALID_FILE: An error occurred while loading a page setup + * or paper size from a key file. + * + * Error codes that identify various errors that can occur while + * using the GTK+ printing support. + */ typedef enum { GTK_PRINT_ERROR_GENERAL, @@ -137,52 +202,76 @@ GQuark gtk_print_error_quark (void); GType gtk_print_operation_get_type (void) G_GNUC_CONST; GtkPrintOperation * gtk_print_operation_new (void); void gtk_print_operation_set_default_page_setup (GtkPrintOperation *op, - GtkPageSetup *default_page_setup); + GtkPageSetup *default_page_setup); GtkPageSetup * gtk_print_operation_get_default_page_setup (GtkPrintOperation *op); void gtk_print_operation_set_print_settings (GtkPrintOperation *op, - GtkPrintSettings *print_settings); + GtkPrintSettings *print_settings); GtkPrintSettings * gtk_print_operation_get_print_settings (GtkPrintOperation *op); void gtk_print_operation_set_job_name (GtkPrintOperation *op, - const gchar *job_name); + const gchar *job_name); void gtk_print_operation_set_n_pages (GtkPrintOperation *op, - gint n_pages); + gint n_pages); void gtk_print_operation_set_current_page (GtkPrintOperation *op, - gint current_page); + gint current_page); void gtk_print_operation_set_use_full_page (GtkPrintOperation *op, - gboolean full_page); + gboolean full_page); void gtk_print_operation_set_unit (GtkPrintOperation *op, - GtkUnit unit); + GtkUnit unit); void gtk_print_operation_set_export_filename (GtkPrintOperation *op, - const gchar *filename); + const gchar *filename); void gtk_print_operation_set_track_print_status (GtkPrintOperation *op, - gboolean track_status); + gboolean track_status); void gtk_print_operation_set_show_progress (GtkPrintOperation *op, - gboolean show_progress); + gboolean show_progress); void gtk_print_operation_set_allow_async (GtkPrintOperation *op, - gboolean allow_async); + gboolean allow_async); void gtk_print_operation_set_custom_tab_label (GtkPrintOperation *op, - const gchar *label); + const gchar *label); GtkPrintOperationResult gtk_print_operation_run (GtkPrintOperation *op, - GtkPrintOperationAction action, - GtkWindow *parent, - GError **error); + GtkPrintOperationAction action, + GtkWindow *parent, + GError **error); void gtk_print_operation_get_error (GtkPrintOperation *op, - GError **error); + GError **error); GtkPrintStatus gtk_print_operation_get_status (GtkPrintOperation *op); -G_CONST_RETURN gchar * gtk_print_operation_get_status_string (GtkPrintOperation *op); +const gchar * gtk_print_operation_get_status_string (GtkPrintOperation *op); gboolean gtk_print_operation_is_finished (GtkPrintOperation *op); void gtk_print_operation_cancel (GtkPrintOperation *op); +void gtk_print_operation_draw_page_finish (GtkPrintOperation *op); +void gtk_print_operation_set_defer_drawing (GtkPrintOperation *op); +void gtk_print_operation_set_support_selection (GtkPrintOperation *op, + gboolean support_selection); +gboolean gtk_print_operation_get_support_selection (GtkPrintOperation *op); +void gtk_print_operation_set_has_selection (GtkPrintOperation *op, + gboolean has_selection); +gboolean gtk_print_operation_get_has_selection (GtkPrintOperation *op); +void gtk_print_operation_set_embed_page_setup (GtkPrintOperation *op, + gboolean embed); +gboolean gtk_print_operation_get_embed_page_setup (GtkPrintOperation *op); +gint gtk_print_operation_get_n_pages_to_print (GtkPrintOperation *op); GtkPageSetup *gtk_print_run_page_setup_dialog (GtkWindow *parent, - GtkPageSetup *page_setup, - GtkPrintSettings *settings); + GtkPageSetup *page_setup, + GtkPrintSettings *settings); +/** + * GtkPageSetupDoneFunc: + * @page_setup: the #GtkPageSetup that has been + * @data: (closure): user data that has been passed to + * gtk_print_run_page_setup_dialog_async() + * + * The type of function that is passed to + * gtk_print_run_page_setup_dialog_async(). + * + * This function will be called when the page setup dialog + * is dismissed, and also serves as destroy notify for @data. + */ typedef void (* GtkPageSetupDoneFunc) (GtkPageSetup *page_setup, - gpointer data); + gpointer data); void gtk_print_run_page_setup_dialog_async (GtkWindow *parent, - GtkPageSetup *page_setup, - GtkPrintSettings *settings, + GtkPageSetup *page_setup, + GtkPrintSettings *settings, GtkPageSetupDoneFunc done_cb, gpointer data);