Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

208 linhas
9.2 KiB

  1. /* GTK - The GIMP Toolkit
  2. * gtkprintoperation.h: Print Operation
  3. * Copyright (C) 2006, Red Hat, Inc.
  4. *
  5. * This library is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU Lesser General Public
  7. * License as published by the Free Software Foundation; either
  8. * version 2 of the License, or (at your option) any later version.
  9. *
  10. * This library is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. * Lesser General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU Lesser General Public
  16. * License along with this library; if not, write to the
  17. * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  18. * Boston, MA 02111-1307, USA.
  19. */
  20. #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
  21. #error "Only <gtk/gtk.h> can be included directly."
  22. #endif
  23. #ifndef __GTK_PRINT_OPERATION_H__
  24. #define __GTK_PRINT_OPERATION_H__
  25. #include <cairo.h>
  26. #include <gtk/gtkmain.h>
  27. #include <gtk/gtkwindow.h>
  28. #include <gtk/gtkpagesetup.h>
  29. #include <gtk/gtkprintsettings.h>
  30. #include <gtk/gtkprintcontext.h>
  31. #include <gtk/gtkprintoperationpreview.h>
  32. G_BEGIN_DECLS
  33. #define GTK_TYPE_PRINT_OPERATION (gtk_print_operation_get_type ())
  34. #define GTK_PRINT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperation))
  35. #define GTK_PRINT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass))
  36. #define GTK_IS_PRINT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_OPERATION))
  37. #define GTK_IS_PRINT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PRINT_OPERATION))
  38. #define GTK_PRINT_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass))
  39. typedef struct _GtkPrintOperationClass GtkPrintOperationClass;
  40. typedef struct _GtkPrintOperationPrivate GtkPrintOperationPrivate;
  41. typedef struct _GtkPrintOperation GtkPrintOperation;
  42. typedef enum {
  43. GTK_PRINT_STATUS_INITIAL,
  44. GTK_PRINT_STATUS_PREPARING,
  45. GTK_PRINT_STATUS_GENERATING_DATA,
  46. GTK_PRINT_STATUS_SENDING_DATA,
  47. GTK_PRINT_STATUS_PENDING,
  48. GTK_PRINT_STATUS_PENDING_ISSUE,
  49. GTK_PRINT_STATUS_PRINTING,
  50. GTK_PRINT_STATUS_FINISHED,
  51. GTK_PRINT_STATUS_FINISHED_ABORTED
  52. } GtkPrintStatus;
  53. typedef enum {
  54. GTK_PRINT_OPERATION_RESULT_ERROR,
  55. GTK_PRINT_OPERATION_RESULT_APPLY,
  56. GTK_PRINT_OPERATION_RESULT_CANCEL,
  57. GTK_PRINT_OPERATION_RESULT_IN_PROGRESS
  58. } GtkPrintOperationResult;
  59. typedef enum {
  60. GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
  61. GTK_PRINT_OPERATION_ACTION_PRINT,
  62. GTK_PRINT_OPERATION_ACTION_PREVIEW,
  63. GTK_PRINT_OPERATION_ACTION_EXPORT
  64. } GtkPrintOperationAction;
  65. struct _GtkPrintOperation
  66. {
  67. GObject parent_instance;
  68. GtkPrintOperationPrivate *GSEAL (priv);
  69. };
  70. struct _GtkPrintOperationClass
  71. {
  72. GObjectClass parent_class;
  73. void (*done) (GtkPrintOperation *operation,
  74. GtkPrintOperationResult result);
  75. void (*begin_print) (GtkPrintOperation *operation,
  76. GtkPrintContext *context);
  77. gboolean (*paginate) (GtkPrintOperation *operation,
  78. GtkPrintContext *context);
  79. void (*request_page_setup) (GtkPrintOperation *operation,
  80. GtkPrintContext *context,
  81. gint page_nr,
  82. GtkPageSetup *setup);
  83. void (*draw_page) (GtkPrintOperation *operation,
  84. GtkPrintContext *context,
  85. gint page_nr);
  86. void (*end_print) (GtkPrintOperation *operation,
  87. GtkPrintContext *context);
  88. void (*status_changed) (GtkPrintOperation *operation);
  89. GtkWidget *(*create_custom_widget) (GtkPrintOperation *operation);
  90. void (*custom_widget_apply) (GtkPrintOperation *operation,
  91. GtkWidget *widget);
  92. gboolean (*preview) (GtkPrintOperation *operation,
  93. GtkPrintOperationPreview *preview,
  94. GtkPrintContext *context,
  95. GtkWindow *parent);
  96. void (*update_custom_widget) (GtkPrintOperation *operation,
  97. GtkWidget *widget,
  98. GtkPageSetup *setup,
  99. GtkPrintSettings *settings);
  100. /* Padding for future expansion */
  101. void (*_gtk_reserved1) (void);
  102. void (*_gtk_reserved2) (void);
  103. void (*_gtk_reserved3) (void);
  104. void (*_gtk_reserved4) (void);
  105. void (*_gtk_reserved5) (void);
  106. void (*_gtk_reserved6) (void);
  107. };
  108. #define GTK_PRINT_ERROR gtk_print_error_quark ()
  109. typedef enum
  110. {
  111. GTK_PRINT_ERROR_GENERAL,
  112. GTK_PRINT_ERROR_INTERNAL_ERROR,
  113. GTK_PRINT_ERROR_NOMEM,
  114. GTK_PRINT_ERROR_INVALID_FILE
  115. } GtkPrintError;
  116. GQuark gtk_print_error_quark (void);
  117. GType gtk_print_operation_get_type (void) G_GNUC_CONST;
  118. GtkPrintOperation * gtk_print_operation_new (void);
  119. void gtk_print_operation_set_default_page_setup (GtkPrintOperation *op,
  120. GtkPageSetup *default_page_setup);
  121. GtkPageSetup * gtk_print_operation_get_default_page_setup (GtkPrintOperation *op);
  122. void gtk_print_operation_set_print_settings (GtkPrintOperation *op,
  123. GtkPrintSettings *print_settings);
  124. GtkPrintSettings * gtk_print_operation_get_print_settings (GtkPrintOperation *op);
  125. void gtk_print_operation_set_job_name (GtkPrintOperation *op,
  126. const gchar *job_name);
  127. void gtk_print_operation_set_n_pages (GtkPrintOperation *op,
  128. gint n_pages);
  129. void gtk_print_operation_set_current_page (GtkPrintOperation *op,
  130. gint current_page);
  131. void gtk_print_operation_set_use_full_page (GtkPrintOperation *op,
  132. gboolean full_page);
  133. void gtk_print_operation_set_unit (GtkPrintOperation *op,
  134. GtkUnit unit);
  135. void gtk_print_operation_set_export_filename (GtkPrintOperation *op,
  136. const gchar *filename);
  137. void gtk_print_operation_set_track_print_status (GtkPrintOperation *op,
  138. gboolean track_status);
  139. void gtk_print_operation_set_show_progress (GtkPrintOperation *op,
  140. gboolean show_progress);
  141. void gtk_print_operation_set_allow_async (GtkPrintOperation *op,
  142. gboolean allow_async);
  143. void gtk_print_operation_set_custom_tab_label (GtkPrintOperation *op,
  144. const gchar *label);
  145. GtkPrintOperationResult gtk_print_operation_run (GtkPrintOperation *op,
  146. GtkPrintOperationAction action,
  147. GtkWindow *parent,
  148. GError **error);
  149. void gtk_print_operation_get_error (GtkPrintOperation *op,
  150. GError **error);
  151. GtkPrintStatus gtk_print_operation_get_status (GtkPrintOperation *op);
  152. G_CONST_RETURN gchar * gtk_print_operation_get_status_string (GtkPrintOperation *op);
  153. gboolean gtk_print_operation_is_finished (GtkPrintOperation *op);
  154. void gtk_print_operation_cancel (GtkPrintOperation *op);
  155. void gtk_print_operation_draw_page_finish (GtkPrintOperation *op);
  156. void gtk_print_operation_set_defer_drawing (GtkPrintOperation *op);
  157. void gtk_print_operation_set_support_selection (GtkPrintOperation *op,
  158. gboolean support_selection);
  159. gboolean gtk_print_operation_get_support_selection (GtkPrintOperation *op);
  160. void gtk_print_operation_set_has_selection (GtkPrintOperation *op,
  161. gboolean has_selection);
  162. gboolean gtk_print_operation_get_has_selection (GtkPrintOperation *op);
  163. void gtk_print_operation_set_embed_page_setup (GtkPrintOperation *op,
  164. gboolean embed);
  165. gboolean gtk_print_operation_get_embed_page_setup (GtkPrintOperation *op);
  166. gint gtk_print_operation_get_n_pages_to_print (GtkPrintOperation *op);
  167. GtkPageSetup *gtk_print_run_page_setup_dialog (GtkWindow *parent,
  168. GtkPageSetup *page_setup,
  169. GtkPrintSettings *settings);
  170. typedef void (* GtkPageSetupDoneFunc) (GtkPageSetup *page_setup,
  171. gpointer data);
  172. void gtk_print_run_page_setup_dialog_async (GtkWindow *parent,
  173. GtkPageSetup *page_setup,
  174. GtkPrintSettings *settings,
  175. GtkPageSetupDoneFunc done_cb,
  176. gpointer data);
  177. G_END_DECLS
  178. #endif /* __GTK_PRINT_OPERATION_H__ */