=head1 NAME

Gtk2::PrintOperation - wrapper for GtkPrintOperation

=cut

=head1 HIERARCHY

  Glib::Object
  +----Gtk2::PrintOperation



=cut

=head1 INTERFACES

  Gtk2::PrintOperationPreview



=cut


=head1 METHODS

=head2 printoperation = Gtk2::PrintOperation-E<gt>B<new> 

=head2 $op-E<gt>B<set_allow_async> ($allow_async)

=over

=item * $allow_async (boolean) 

=back

=head2 $op-E<gt>B<cancel> 

=head2 $op-E<gt>B<set_current_page> ($current_page)

=over

=item * $current_page (integer) 

=back

=head2 $op-E<gt>B<set_custom_tab_label> ($label)

=over

=item * $label (string) 

=back

=head2 pagesetup or undef = $op-E<gt>B<get_default_page_setup> 

=head2 $op-E<gt>B<set_default_page_setup> ($default_page_setup)

=over

=item * $default_page_setup (Gtk2::PageSetup or undef) 

=back

=head2 $op->B<set_defer_drawing> ()



The method set_defer_drawing() can only be called from the callback
C<'draw-page'>.


Since: gtk+ 2.16

=head2 $op->B<draw_page_finish> ()



The method draw_page_finish() can only be called if the method
set_defer_drawing() has been called previously otherwise a segmentation fault
will occur. This means that the application will crash and even an eval will not
be able to recover from that error.


Since: gtk+ 2.16

=head2 boolean = $op-E<gt>B<get_embed_page_setup> 

Since: gtk+ 2.18

=head2 $op-E<gt>B<set_embed_page_setup> ($embed)

=over

=item * $embed (boolean) 

=back

Since: gtk+ 2.18

=head2 scalar = $op-E<gt>B<get_error> 

=head2 $op-E<gt>B<set_export_filename> ($filename)

=over

=item * $filename (string) 

=back

=head2 boolean = $op-E<gt>B<get_has_selection> 

Since: gtk+ 2.18

=head2 $op-E<gt>B<set_has_selection> ($has_selection)

=over

=item * $has_selection (boolean) 

=back

Since: gtk+ 2.18

=head2 boolean = $op-E<gt>B<is_finished> 

=head2 $op-E<gt>B<set_job_name> ($job_name)

=over

=item * $job_name (string) 

=back

=head2 $op-E<gt>B<set_n_pages> ($n_pages)

=over

=item * $n_pages (integer) 

=back

=head2 integer = $op-E<gt>B<get_n_pages_to_print> 

Since: gtk+ 2.18

=head2 printsettings or undef = $op-E<gt>B<get_print_settings> 

=head2 $op-E<gt>B<set_print_settings> ($print_settings)

=over

=item * $print_settings (Gtk2::PrintSettings or undef) 

=back

=head2 printoperationresult = $op-E<gt>B<run> ($action, $parent)

=over

=item * $action (Gtk2::PrintOperationAction) 

=item * $parent (Gtk2::Window or undef) 

=back



May croak with a L<Glib::Error> in $@ on failure.

=head2 $op-E<gt>B<set_show_progress> ($show_progress)

=over

=item * $show_progress (boolean) 

=back

=head2 printstatus = $op-E<gt>B<get_status> 

=head2 string = $op-E<gt>B<get_status_string> 

=head2 boolean = $op-E<gt>B<get_support_selection> 

Since: gtk+ 2.18

=head2 $op-E<gt>B<set_support_selection> ($support_selection)

=over

=item * $support_selection (boolean) 

=back

Since: gtk+ 2.18

=head2 $op-E<gt>B<set_track_print_status> ($track_status)

=over

=item * $track_status (boolean) 

=back

=head2 $op-E<gt>B<set_unit> ($unit)

=over

=item * $unit (Gtk2::Unit) 

=back

=head2 $op-E<gt>B<set_use_full_page> ($full_page)

=over

=item * $full_page (boolean) 

=back



=cut


=head1 PROPERTIES

=over

=item 'allow-async' (boolean : default false : readable / writable / private)

TRUE if print process may run asynchronous.

=item 'current-page' (integer : default -1 : readable / writable / private)

The current page in the document

=item 'custom-tab-label' (string : default undef : readable / writable / private)

Label for the tab containing custom widgets.

=item 'default-page-setup' (Gtk2::PageSetup : default undef : readable / writable / private)

The GtkPageSetup used by default

=item 'embed-page-setup' (boolean : default false : readable / writable / private)

TRUE if page setup combos are embedded in GtkPrintDialog

=item 'export-filename' (string : default undef : readable / writable / private)

Export filename

=item 'has-selection' (boolean : default false : readable / writable / private)

TRUE if a selection exists.

=item 'job-name' (string : default "" : readable / writable / private)

A string used for identifying the print job.

=item 'n-pages' (integer : default -1 : readable / writable / private)

The number of pages in the document.

=item 'n-pages-to-print' (integer : default -1 : readable / private)

The number of pages that will be printed.

=item 'print-settings' (Gtk2::PrintSettings : default undef : readable / writable / private)

The GtkPrintSettings used for initializing the dialog

=item 'show-progress' (boolean : default false : readable / writable / private)

TRUE if a progress dialog is shown while printing.

=item 'status' (Gtk2::PrintStatus : default "initial" : readable / private)

The status of the print operation

=item 'status-string' (string : default "" : readable / private)

A human-readable description of the status

=item 'support-selection' (boolean : default false : readable / writable / private)

TRUE if the print operation will support print of selection.

=item 'track-print-status' (boolean : default false : readable / writable / private)

TRUE if the print operation will continue to report on the print job status after the print data has been sent to the printer or print server.

=item 'unit' (Gtk2::Unit : default "pixel" : readable / writable / private)

The unit in which distances can be measured in the context

=item 'use-full-page' (boolean : default false : readable / writable / private)

TRUE if the origin of the context should be at the corner of the page and not the corner of the imageable area

=back



=cut


=head1 SIGNALS

=over

=item B<begin-print> (Gtk2::PrintOperation, Gtk2::PrintContext)

=item Glib::Object = B<create-custom-widget> (Gtk2::PrintOperation)

=item B<custom-widget-apply> (Gtk2::PrintOperation, Gtk2::Widget)

=item B<done> (Gtk2::PrintOperation, Gtk2::PrintOperationResult)

=item B<draw-page> (Gtk2::PrintOperation, Gtk2::PrintContext, integer)

=item B<end-print> (Gtk2::PrintOperation, Gtk2::PrintContext)

=item boolean = B<paginate> (Gtk2::PrintOperation, Gtk2::PrintContext)

=item boolean = B<preview> (Gtk2::PrintOperation, Gtk2::PrintOperationPreview, Gtk2::PrintContext, Gtk2::Window)

=item B<request-page-setup> (Gtk2::PrintOperation, Gtk2::PrintContext, integer, Gtk2::PageSetup)

=item B<status-changed> (Gtk2::PrintOperation)

=item B<update-custom-widget> (Gtk2::PrintOperation, Gtk2::Widget, Gtk2::PageSetup, Gtk2::PrintSettings)

=back



=cut


=head1 ENUMS AND FLAGS

=head2 enum Gtk2::PrintOperationAction

=over

=item * 'print-dialog' / 'GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG'

=item * 'print' / 'GTK_PRINT_OPERATION_ACTION_PRINT'

=item * 'preview' / 'GTK_PRINT_OPERATION_ACTION_PREVIEW'

=item * 'export' / 'GTK_PRINT_OPERATION_ACTION_EXPORT'

=back


=head2 enum Gtk2::PrintOperationResult

=over

=item * 'error' / 'GTK_PRINT_OPERATION_RESULT_ERROR'

=item * 'apply' / 'GTK_PRINT_OPERATION_RESULT_APPLY'

=item * 'cancel' / 'GTK_PRINT_OPERATION_RESULT_CANCEL'

=item * 'in-progress' / 'GTK_PRINT_OPERATION_RESULT_IN_PROGRESS'

=back


=head2 enum Gtk2::PrintStatus

=over

=item * 'initial' / 'GTK_PRINT_STATUS_INITIAL'

=item * 'preparing' / 'GTK_PRINT_STATUS_PREPARING'

=item * 'generating-data' / 'GTK_PRINT_STATUS_GENERATING_DATA'

=item * 'sending-data' / 'GTK_PRINT_STATUS_SENDING_DATA'

=item * 'pending' / 'GTK_PRINT_STATUS_PENDING'

=item * 'pending-issue' / 'GTK_PRINT_STATUS_PENDING_ISSUE'

=item * 'printing' / 'GTK_PRINT_STATUS_PRINTING'

=item * 'finished' / 'GTK_PRINT_STATUS_FINISHED'

=item * 'finished-aborted' / 'GTK_PRINT_STATUS_FINISHED_ABORTED'

=back


=head2 enum Gtk2::Unit

=over

=item * 'pixel' / 'GTK_UNIT_PIXEL'

=item * 'points' / 'GTK_UNIT_POINTS'

=item * 'inch' / 'GTK_UNIT_INCH'

=item * 'mm' / 'GTK_UNIT_MM'

=back




=cut


=head1 SEE ALSO

L<Gtk2>, L<Glib::Object>


=cut


=head1 COPYRIGHT

Copyright (C) 2003-2011 by the gtk2-perl team.

This software is licensed under the LGPL.  See L<Gtk2> for a full notice.



=cut

