(define-object PrintOperation
  (in-module "Gtk")
  (parent "GObject")
  (implements "GtkPrintOperationPreview")
  (c-name "GtkPrintOperation")
  (gtype-id "GTK_TYPE_PRINT_OPERATION")
)

(define-function print_operation_new
  (is-constructor-of "GtkPrintOperation")
  (c-name "gtk_print_operation_new")
  (caller-owns-return #t)
  (return-type "GtkPrintOperation*")
)

(define-method set_default_page_setup
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_default_page_setup")
  (return-type "none")
  (parameters
    '("GtkPageSetup*" "default_page_setup" (default "NULL") (null-ok))
  )
)

(define-method get_default_page_setup
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_get_default_page_setup")
  (return-type "GtkPageSetup*")
)

(define-method set_print_settings
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_print_settings")
  (return-type "none")
  (parameters
    '("GtkPrintSettings*" "print_settings" (default "NULL") (null-ok))
  )
)

(define-method get_print_settings
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_get_print_settings")
  (return-type "GtkPrintSettings*")
)

(define-method set_job_name
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_job_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "job_name")
  )
)

(define-method set_n_pages
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_n_pages")
  (return-type "none")
  (parameters
    '("gint" "n_pages")
  )
)

(define-method set_current_page
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_current_page")
  (return-type "none")
  (parameters
    '("gint" "current_page")
  )
)

(define-method set_use_full_page
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_use_full_page")
  (return-type "none")
  (parameters
    '("gboolean" "full_page")
  )
)

(define-method set_unit
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_unit")
  (return-type "none")
  (parameters
    '("GtkUnit" "unit")
  )
)

(define-method set_export_filename
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_export_filename")
  (return-type "none")
  (parameters
    '("const-gchar*" "filename")
  )
)

(define-method set_track_print_status
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_track_print_status")
  (return-type "none")
  (parameters
    '("gboolean" "track_status")
  )
)

(define-method set_show_progress
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_show_progress")
  (return-type "none")
  (parameters
    '("gboolean" "show_progress")
  )
)

(define-method set_allow_async
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_allow_async")
  (return-type "none")
  (parameters
    '("gboolean" "allow_async")
  )
)

(define-method set_custom_tab_label
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_custom_tab_label")
  (return-type "none")
  (parameters
    '("const-gchar*" "label")
  )
)

(define-method run
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_run")
  (return-type "GtkPrintOperationResult")
  (parameters
    '("GtkPrintOperationAction" "action")
    '("GtkWindow*" "parent" (default "NULL") (null-ok))
    '("GError**" "error")
  )
)

(define-method get_error
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_get_error")
  (return-type "none")
  (parameters
    '("GError**" "error")
  )
)

(define-method get_status
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_get_status")
  (return-type "GtkPrintStatus")
)

(define-method get_status_string
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_get_status_string")
  (return-type "const-gchar*")
)

(define-method is_finished
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_is_finished")
  (return-type "gboolean")
)

(define-method cancel
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_cancel")
  (return-type "none")
)

(define-virtual done
  (of-object "GtkPrintOperation")
  (return-type "none")
  (parameters
    '("GtkPrintOperationResult" "result")
  )
)

(define-method set_support_selection
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_support_selection")
  (return-type "none")
  (parameters
    '("gboolean" "support_selection")
  )
)

(define-method get_support_selection
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_get_support_selection")
  (return-type "gboolean")
)

(define-method set_has_selection
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_has_selection")
  (return-type "none")
  (parameters
    '("gboolean" "has_selection")
  )
)

(define-method get_has_selection
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_get_has_selection")
  (return-type "gboolean")
)

(define-method set_embed_page_setup
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_set_embed_page_setup")
  (return-type "none")
  (parameters
    '("gboolean" "embed")
  )
)

(define-method get_embed_page_setup
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_get_embed_page_setup")
  (return-type "gboolean")
)

(define-method get_n_pages_to_print
  (of-object "GtkPrintOperation")
  (c-name "gtk_print_operation_get_n_pages_to_print")
  (return-type "gint")
)

(define-virtual begin_print
  (of-object "GtkPrintOperation")
  (return-type "none")
  (parameters
    '("GtkPrintContext*" "context")
  )
)

(define-virtual paginate
  (of-object "GtkPrintOperation")
  (return-type "gboolean")
  (parameters
    '("GtkPrintContext*" "context")
  )
)

(define-virtual request_page_setup
  (of-object "GtkPrintOperation")
  (return-type "none")
  (parameters
    '("GtkPrintContext*" "context")
    '("gint" "page_nr")
    '("GtkPageSetup*" "setup")
  )
)

(define-virtual draw_page
  (of-object "GtkPrintOperation")
  (return-type "none")
  (parameters
    '("GtkPrintContext*" "context")
    '("gint" "page_nr")
  )
)

(define-virtual end_print
  (of-object "GtkPrintOperation")
  (return-type "none")
  (parameters
    '("GtkPrintContext*" "context")
  )
)

(define-virtual status_changed
  (of-object "GtkPrintOperation")
  (return-type "none")
)

(define-virtual create_custom_widget
  (of-object "GtkPrintOperation")
  (return-type "GtkWidget*")
)

(define-virtual custom_widget_apply
  (of-object "GtkPrintOperation")
  (return-type "none")
  (parameters
    '("GtkWidget*" "widget")
  )
)

(define-virtual preview
  (of-object "GtkPrintOperation")
  (return-type "gboolean")
  (parameters
    '("GtkPrintOperationPreview*" "preview")
    '("GtkPrintContext*" "context")
    '("GtkWindow*" "parent")
  )
)

