diff options
author | Matthias Clasen <mclasen@redhat.com> | 2011-01-30 02:34:59 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2011-01-30 02:34:59 -0500 |
commit | 837c504a118eeab9c820ce629ee9a128d49f08a5 (patch) | |
tree | 362e6b327a371f2ad4da4a6c89607b48bd01f664 | |
parent | 701075b2c891d0199e04ebff13d5b5845ff5c652 (diff) | |
download | gtk+-837c504a118eeab9c820ce629ee9a128d49f08a5.tar.gz |
Move GtkPrintOperation docs inline
-rw-r--r-- | docs/reference/gtk/tmpl/.gitignore | 1 | ||||
-rw-r--r-- | docs/reference/gtk/tmpl/gtkprintoperation.sgml | 701 | ||||
-rw-r--r-- | gtk/gtkprintoperation.c | 72 | ||||
-rw-r--r-- | gtk/gtkprintoperation.h | 60 |
4 files changed, 132 insertions, 702 deletions
diff --git a/docs/reference/gtk/tmpl/.gitignore b/docs/reference/gtk/tmpl/.gitignore index e7c14a5afa..9dfd716329 100644 --- a/docs/reference/gtk/tmpl/.gitignore +++ b/docs/reference/gtk/tmpl/.gitignore @@ -49,6 +49,7 @@ gtkpaned.sgml gtkpapersize.sgml gtkprinter.sgml gtkprintjob.sgml +gtkprintoperation.sgml gtkprogressbar.sgml gtkradioaction.sgml gtkradiobutton.sgml diff --git a/docs/reference/gtk/tmpl/gtkprintoperation.sgml b/docs/reference/gtk/tmpl/gtkprintoperation.sgml deleted file mode 100644 index 0b0446026e..0000000000 --- a/docs/reference/gtk/tmpl/gtkprintoperation.sgml +++ /dev/null @@ -1,701 +0,0 @@ -<!-- ##### SECTION Title ##### --> -GtkPrintOperation - -<!-- ##### SECTION Short_Description ##### --> -High-level Printing API - -<!-- ##### SECTION Long_Description ##### --> -<para> -GtkPrintOperation is the high-level, portable printing API. It looks -a bit different than other GTK+ dialogs such as the #GtkFileChooser, -since some platforms don't expose enough infrastructure to implement -a good print dialog. On such platforms, GtkPrintOperation uses the -native print dialog. On platforms which do not provide a native -print dialog, GTK+ uses its own, see #GtkPrintUnixDialog. -</para> - -<para> -The typical way to use the high-level printing API is to create a -#GtkPrintOperation object with gtk_print_operation_new() when the user -selects to print. Then you set some properties on it, e.g. the page size, -any #GtkPrintSettings from previous print operations, the number of pages, -the current page, etc. -</para> -<para> -Then you start the print operation by calling gtk_print_operation_run(). -It will then show a dialog, let the user select a printer and options. -When the user finished the dialog various signals will be emitted on the -#GtkPrintOperation, the main one being ::draw-page, which you are supposed -to catch and render the page on the provided #GtkPrintContext using Cairo. -</para> - -<example> -<title>The high-level printing API</title> -<programlisting> -static GtkPrintSettings *settings = NULL; - -static void -do_print (void) -{ - GtkPrintOperation *print; - GtkPrintOperationResult res; - - print = gtk_print_operation_new (<!-- -->); - - if (settings != NULL) - gtk_print_operation_set_print_settings (print, settings); - - g_signal_connect (print, "begin_print", G_CALLBACK (begin_print), NULL); - g_signal_connect (print, "draw_page", G_CALLBACK (draw_page), NULL); - - res = gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, - GTK_WINDOW (main_window), NULL); - - if (res == GTK_PRINT_OPERATION_RESULT_APPLY) - { - if (settings != NULL) - g_object_unref (settings); - settings = g_object_ref (gtk_print_operation_get_print_settings (print)); - } - - g_object_unref (print); -} - -</programlisting> -</example> - -<para> -By default GtkPrintOperation uses an external application to do -print preview. To implement a custom print preview, an application -must connect to the preview signal. The functions -gtk_print_operation_print_preview_render_page(), -gtk_print_operation_preview_end_preview() and -gtk_print_operation_preview_is_selected() are useful -when implementing a print preview. -</para> - -<para> -Printing support was added in GTK+ 2.10. -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> -#GtkPrintContext, #GtkPrintUnixDialog -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### SECTION Image ##### --> - - -<!-- ##### STRUCT GtkPrintOperation ##### --> -<para> - -</para> - - -<!-- ##### SIGNAL GtkPrintOperation::begin-print ##### --> -<para> - -</para> - -@printoperation: -@context: - -<!-- ##### SIGNAL GtkPrintOperation::create-custom-widget ##### --> -<para> - -</para> - -@printoperation: -@Returns: - -<!-- ##### SIGNAL GtkPrintOperation::custom-widget-apply ##### --> -<para> - -</para> - -@printoperation: -@widget: - -<!-- ##### SIGNAL GtkPrintOperation::done ##### --> -<para> - -</para> - -@printoperation: the object which received the signal. -@arg1: - -<!-- ##### SIGNAL GtkPrintOperation::draw-page ##### --> -<para> - -</para> - -@printoperation: the object which received the signal. -@arg1: -@arg2: - -<!-- ##### SIGNAL GtkPrintOperation::end-print ##### --> -<para> - -</para> - -@printoperation: the object which received the signal. -@arg1: - -<!-- ##### SIGNAL GtkPrintOperation::paginate ##### --> -<para> - -</para> - -@printoperation: the object which received the signal. -@arg1: -@Returns: - -<!-- ##### SIGNAL GtkPrintOperation::preview ##### --> -<para> - -</para> - -@printoperation: the object which received the signal. -@arg1: -@arg2: -@arg3: -@Returns: - -<!-- ##### SIGNAL GtkPrintOperation::request-page-setup ##### --> -<para> - -</para> - -@printoperation: the object which received the signal. -@arg1: -@arg2: -@arg3: - -<!-- ##### SIGNAL GtkPrintOperation::status-changed ##### --> -<para> - -</para> - -@printoperation: the object which received the signal. - -<!-- ##### SIGNAL GtkPrintOperation::update-custom-widget ##### --> -<para> - -</para> - -@printoperation: the object which received the signal. -@widget: -@arg1: -@arg2: - -<!-- ##### ARG GtkPrintOperation:allow-async ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:current-page ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:custom-tab-label ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:default-page-setup ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:embed-page-setup ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:export-filename ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:has-selection ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:job-name ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:n-pages ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:n-pages-to-print ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:print-settings ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:show-progress ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:status ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:status-string ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:support-selection ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:track-print-status ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:unit ##### --> -<para> - -</para> - -<!-- ##### ARG GtkPrintOperation:use-full-page ##### --> -<para> - -</para> - -<!-- ##### ENUM GtkPrintStatus ##### --> -<para> -The status gives a rough indication of the completion -of a running print operation. -</para> - -@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. - -<!-- ##### ENUM GtkPrintOperationAction ##### --> -<para> -The @action parameter to gtk_print_operation_run() -determines what action the print operation should perform. -</para> - -@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. - -<!-- ##### ENUM GtkPrintOperationResult ##### --> -<para> -A value of this type is returned by gtk_print_operation_run(). -</para> - -@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. - -<!-- ##### ENUM GtkPrintError ##### --> -<para> -Error codes that identify various errors that can occur while -using the GTK+ printing support. -</para> - -@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. - -<!-- ##### MACRO GTK_PRINT_ERROR ##### --> -<para> -The #GQuark used for #GtkPrintError errors. -</para> - - - -<!-- ##### FUNCTION gtk_print_operation_new ##### --> -<para> - -</para> - -@void: -@Returns: - - -<!-- ##### FUNCTION gtk_print_operation_set_allow_async ##### --> -<para> - -</para> - -@op: -@allow_async: - - -<!-- ##### FUNCTION gtk_print_operation_get_error ##### --> -<para> - -</para> - -@op: -@error: - - -<!-- ##### FUNCTION gtk_print_operation_set_default_page_setup ##### --> -<para> - -</para> - -@op: -@default_page_setup: - - -<!-- ##### FUNCTION gtk_print_operation_get_default_page_setup ##### --> -<para> - -</para> - -@op: -@Returns: - - -<!-- ##### FUNCTION gtk_print_operation_set_print_settings ##### --> -<para> - -</para> - -@op: -@print_settings: - - -<!-- ##### FUNCTION gtk_print_operation_get_print_settings ##### --> -<para> - -</para> - -@op: -@Returns: - - -<!-- ##### FUNCTION gtk_print_operation_set_job_name ##### --> -<para> - -</para> - -@op: -@job_name: - - -<!-- ##### FUNCTION gtk_print_operation_set_n_pages ##### --> -<para> - -</para> - -@op: -@n_pages: - - -<!-- ##### FUNCTION gtk_print_operation_get_n_pages_to_print ##### --> -<para> - -</para> - -@op: -@Returns: - - -<!-- ##### FUNCTION gtk_print_operation_set_current_page ##### --> -<para> - -</para> - -@op: -@current_page: - - -<!-- ##### FUNCTION gtk_print_operation_set_use_full_page ##### --> -<para> - -</para> - -@op: -@full_page: - - -<!-- ##### FUNCTION gtk_print_operation_set_unit ##### --> -<para> - -</para> - -@op: -@unit: - - -<!-- ##### FUNCTION gtk_print_operation_set_export_filename ##### --> -<para> - -</para> - -@op: -@filename: - - -<!-- ##### FUNCTION gtk_print_operation_set_show_progress ##### --> -<para> - -</para> - -@op: -@show_progress: - - -<!-- ##### FUNCTION gtk_print_operation_set_track_print_status ##### --> -<para> - -</para> - -@op: -@track_status: - - -<!-- ##### FUNCTION gtk_print_operation_set_custom_tab_label ##### --> -<para> - -</para> - -@op: -@label: - - -<!-- ##### FUNCTION gtk_print_operation_run ##### --> -<para> - -</para> - -@op: -@action: -@parent: -@error: -@Returns: - - -<!-- ##### FUNCTION gtk_print_operation_cancel ##### --> -<para> - -</para> - -@op: - - -<!-- ##### FUNCTION gtk_print_operation_draw_page_finish ##### --> -<para> - -</para> - -@op: - - -<!-- ##### FUNCTION gtk_print_operation_set_defer_drawing ##### --> -<para> - -</para> - -@op: - - -<!-- ##### FUNCTION gtk_print_operation_get_status ##### --> -<para> - -</para> - -@op: -@Returns: - - -<!-- ##### FUNCTION gtk_print_operation_get_status_string ##### --> -<para> - -</para> - -@op: -@Returns: - - -<!-- ##### FUNCTION gtk_print_operation_is_finished ##### --> -<para> - -</para> - -@op: -@Returns: - - -<!-- ##### FUNCTION gtk_print_operation_set_support_selection ##### --> -<para> - -</para> - -@op: -@support_selection: - - -<!-- ##### FUNCTION gtk_print_operation_get_support_selection ##### --> -<para> - -</para> - -@op: -@Returns: - - -<!-- ##### FUNCTION gtk_print_operation_set_has_selection ##### --> -<para> - -</para> - -@op: -@has_selection: - - -<!-- ##### FUNCTION gtk_print_operation_get_has_selection ##### --> -<para> - -</para> - -@op: -@Returns: - - -<!-- ##### FUNCTION gtk_print_operation_set_embed_page_setup ##### --> -<para> - -</para> - -@op: -@embed: - - -<!-- ##### FUNCTION gtk_print_operation_get_embed_page_setup ##### --> -<para> - -</para> - -@op: -@Returns: - - -<!-- ##### FUNCTION gtk_print_run_page_setup_dialog ##### --> -<para> - -</para> - -@parent: -@page_setup: -@settings: -@Returns: - - -<!-- ##### USER_FUNCTION GtkPageSetupDoneFunc ##### --> -<para> - -</para> - -@page_setup: -@data: - - -<!-- ##### FUNCTION gtk_print_run_page_setup_dialog_async ##### --> -<para> - -</para> - -@parent: -@page_setup: -@settings: -@done_cb: -@data: - - -<!-- ##### STRUCT GtkPrintOperationPreview ##### --> -<para> - -</para> - - -<!-- ##### SIGNAL GtkPrintOperationPreview::got-page-size ##### --> -<para> - -</para> - -@printoperationpreview: the object which received the signal. -@arg1: -@arg2: - -<!-- ##### SIGNAL GtkPrintOperationPreview::ready ##### --> -<para> - -</para> - -@printoperationpreview: the object which received the signal. -@arg1: - -<!-- ##### FUNCTION gtk_print_operation_preview_end_preview ##### --> -<para> - -</para> - -@preview: - - -<!-- ##### FUNCTION gtk_print_operation_preview_is_selected ##### --> -<para> - -</para> - -@preview: -@page_nr: -@Returns: - - -<!-- ##### FUNCTION gtk_print_operation_preview_render_page ##### --> -<para> - -</para> - -@preview: -@page_nr: - - diff --git a/gtk/gtkprintoperation.c b/gtk/gtkprintoperation.c index 15eadf1c38..ff95003570 100644 --- a/gtk/gtkprintoperation.c +++ b/gtk/gtkprintoperation.c @@ -35,10 +35,80 @@ #include "gtkmessagedialog.h" #include "gtktypebuiltins.h" +/** + * SECTION:gtkprintoperation + * @Title: GtkPrintOperation + * @Short_description: High-level Printing API + * @See_also: #GtkPrintContext, #GtkPrintUnixDialog + * + * GtkPrintOperation is the high-level, portable printing API. + * It looks a bit different than other GTK+ dialogs such as the + * #GtkFileChooser, since some platforms don't expose enough + * infrastructure to implement a good print dialog. On such + * platforms, GtkPrintOperation uses the native print dialog. + * On platforms which do not provide a native print dialog, GTK+ + * uses its own, see #GtkPrintUnixDialog. + * + * The typical way to use the high-level printing API is to create + * a GtkPrintOperation object with gtk_print_operation_new() when + * the user selects to print. Then you set some properties on it, + * e.g. the page size, any #GtkPrintSettings from previous print + * operations, the number of pages, the current page, etc. + * + * Then you start the print operation by calling gtk_print_operation_run(). + * It will then show a dialog, let the user select a printer and + * options. When the user finished the dialog various signals will + * be emitted on the #GtkPrintOperation, the main one being + * #GtkPrintOperation::draw-page, which you are supposed to catch + * and render the page on the provided #GtkPrintContext using Cairo. + * + * <example> + * <title>The high-level printing API</title> + * <programlisting> + * static GtkPrintSettings *settings = NULL; + * + * static void + * do_print (void) + * { + * GtkPrintOperation *print; + * GtkPrintOperationResult res; + * + * print = gtk_print_operation_new (); + * + * if (settings != NULL) + * gtk_print_operation_set_print_settings (print, settings); + * + * g_signal_connect (print, "begin_print", G_CALLBACK (begin_print), NULL); + * g_signal_connect (print, "draw_page", G_CALLBACK (draw_page), NULL); + * + * res = gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, + * GTK_WINDOW (main_window), NULL); + * + * if (res == GTK_PRINT_OPERATION_RESULT_APPLY) + * { + * if (settings != NULL) + * g_object_unref (settings); + * settings = g_object_ref (gtk_print_operation_get_print_settings (print)); + * } + * + * g_object_unref (print); + * } + * </programlisting> + * </example> + * + * By default GtkPrintOperation uses an external application to do + * print preview. To implement a custom print preview, an application + * must connect to the preview signal. The functions + * gtk_print_operation_print_preview_render_page(), + * gtk_print_operation_preview_end_preview() and + * gtk_print_operation_preview_is_selected() + * are useful when implementing a print preview. + */ + #define SHOW_PROGRESS_TIME 1200 -enum +enum { DONE, BEGIN_PRINT, diff --git a/gtk/gtkprintoperation.h b/gtk/gtkprintoperation.h index 5c2b2167e8..01e385007f 100644 --- a/gtk/gtkprintoperation.h +++ b/gtk/gtkprintoperation.h @@ -48,6 +48,27 @@ 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 +81,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 +99,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, @@ -129,8 +173,24 @@ struct _GtkPrintOperationClass 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, |