summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2006-04-21 15:09:32 +0000
committerAlexander Larsson <alexl@src.gnome.org>2006-04-21 15:09:32 +0000
commit27f746fbd0e56872a8d3b4bfff2588ad0b7cd7c4 (patch)
treedcf0769596bd36a76b7dcea7eed46b378a634f72 /docs
parentea32742b93348e1ce47cd92a26afe5317b37dd73 (diff)
downloadgtk+-27f746fbd0e56872a8d3b4bfff2588ad0b7cd7c4.tar.gz
Merge the gtk-printing branch. For more detailed ChangeLog entries, see
2006-04-21 Alexander Larsson <alexl@redhat.com> Merge the gtk-printing branch. For more detailed ChangeLog entries, see the branch. * .cvsignore: * Makefile.am: * configure.in: * docs/tools/widgets.c: * gtk+-unix-print-2.0.pc.in: * gtk/Makefile.am: * gtk/gen-paper-names.c: * gtk/gtk.h: * gtk/gtk.symbols: * gtk/gtkenums.h: * gtk/gtkiconfactory.c: * gtk/gtkmarshalers.list: * gtk/gtkpagesetup.[ch]: * gtk/gtkpagesetupunixdialog.[ch]: * gtk/gtkpapersize.[ch]: * gtk/gtkprint-win32.[ch]: * gtk/gtkprintbackend.[ch]: * gtk/gtkprintcontext.[ch]: * gtk/gtkprinter-private.h: * gtk/gtkprinter.[ch]: * gtk/gtkprinteroption.[ch]: * gtk/gtkprinteroptionset.[ch]: * gtk/gtkprinteroptionwidget.[ch]: * gtk/gtkprintjob.[ch]: * gtk/gtkprintoperation-private.h: * gtk/gtkprintoperation-unix.c: * gtk/gtkprintoperation-win32.c: * gtk/gtkprintoperation.[ch]: * gtk/gtkprintsettings.[ch]: * gtk/gtkprintunixdialog.[ch]: * gtk/paper_names.c: * gtk/paper_names_offsets.c: Platform independent printing API and implementations for unix and windows. * gtk/gtkstock.h: * gtk/stock-icons/24/gtk-orientation-landscape.png: * gtk/stock-icons/24/gtk-orientation-portrait.png: * gtk/stock-icons/24/gtk-orientation-reverse-landscape.png: Add stock icons for page orientation. * modules/Makefile.am: * modules/printbackends/Makefile.am: * modules/printbackends/cups/Makefile.am: * modules/printbackends/cups/gtkcupsutils.[ch]: * modules/printbackends/cups/gtkprintbackendcups.[ch]: * modules/printbackends/cups/gtkprintercups.[ch]: Cups printing backend for unix. * modules/printbackends/lpr/Makefile.am: * modules/printbackends/lpr/gtkprintbackendlpr.[ch]: lpr printing backend for unix. * modules/printbackends/pdf/Makefile.am: * modules/printbackends/pdf/gtkprintbackendpdf.[ch]: print-to-pdf printing backend for unix. * tests/.cvsignore: * tests/Makefile.am: * tests/print-editor.c: Test application for printing. * gdk/gdk.symbols: * gdk/win32/gdkevents-win32.c: * gdk/win32/gdkwin32.h: Add gdk_win32_set_modal_dialog_libgtk_only so that we can pump the mainloop while displaying a win32 common dialog. * gdk/directfb/Makefile.am: Whitespace cleanup.
Diffstat (limited to 'docs')
-rw-r--r--docs/reference/ChangeLog20
-rw-r--r--docs/reference/gtk/Makefile.am6
-rw-r--r--docs/reference/gtk/gtk-docs.sgml22
-rw-r--r--docs/reference/gtk/gtk-sections.txt330
-rw-r--r--docs/reference/gtk/gtk.types9
-rw-r--r--docs/reference/gtk/images/pagesetupdialog.pngbin0 -> 19758 bytes
-rw-r--r--docs/reference/gtk/images/printdialog.pngbin0 -> 30969 bytes
-rw-r--r--docs/reference/gtk/tmpl/gtkpagesetup.sgml251
-rw-r--r--docs/reference/gtk/tmpl/gtkpagesetupunixdialog.sgml80
-rw-r--r--docs/reference/gtk/tmpl/gtkpapersize.sgml275
-rw-r--r--docs/reference/gtk/tmpl/gtkprintcontext.sgml175
-rw-r--r--docs/reference/gtk/tmpl/gtkprinter.sgml163
-rw-r--r--docs/reference/gtk/tmpl/gtkprintjob.sgml159
-rw-r--r--docs/reference/gtk/tmpl/gtkprintoperation.sgml321
-rw-r--r--docs/reference/gtk/tmpl/gtkprintsettings.sgml697
-rw-r--r--docs/reference/gtk/tmpl/gtkprintunixdialog.sgml86
-rw-r--r--docs/reference/gtk/visual_index.xml6
-rw-r--r--docs/tools/widgets.c41
18 files changed, 2641 insertions, 0 deletions
diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog
index d6259339ee..66e5ef428f 100644
--- a/docs/reference/ChangeLog
+++ b/docs/reference/ChangeLog
@@ -1,3 +1,23 @@
+2006-04-21 Alexander Larsson <alexl@redhat.com>
+
+ * gtk/Makefile.am:
+ * gtk/gtk-docs.sgml:
+ * gtk/gtk-sections.txt:
+ * gtk/gtk.types:
+ * gtk/images/pagesetupdialog.png:
+ * gtk/images/printdialog.png:
+ * gtk/tmpl/gtkpagesetup.sgml:
+ * gtk/tmpl/gtkpagesetupunixdialog.sgml:
+ * gtk/tmpl/gtkpapersize.sgml:
+ * gtk/tmpl/gtkprintcontext.sgml:
+ * gtk/tmpl/gtkprinter.sgml:
+ * gtk/tmpl/gtkprintjob.sgml:
+ * gtk/tmpl/gtkprintoperation.sgml:
+ * gtk/tmpl/gtkprintsettings.sgml:
+ * gtk/tmpl/gtkprintunixdialog.sgml:
+ * gtk/visual_index.xml:
+ Add docs for the printing support
+
2006-04-17 Emmanuele Bassi <ebassi@cvs.gnome.org>
* gtk/tmp/gtkicontheme.sgml: Fix the code of the look up example.
diff --git a/docs/reference/gtk/Makefile.am b/docs/reference/gtk/Makefile.am
index 4ceaa70889..3dc2b9b7dd 100644
--- a/docs/reference/gtk/Makefile.am
+++ b/docs/reference/gtk/Makefile.am
@@ -48,6 +48,10 @@ IGNORE_HFILES= \
gtkmnemonichash.h \
gtkpathbar.h \
gtkplugprivate.h \
+ gtkprintbackend.h \
+ gtkprinteroptionwidget.h \
+ gtkprinter-private.h \
+ gtkprintoperation-private.h \
gtkprivate.h \
gtkrbtree.h \
gtkrecentchooserdefault.h \
@@ -277,6 +281,8 @@ HTML_IMAGES = \
$(srcdir)/images/multiline-text.png \
$(srcdir)/images/notebook.png \
$(srcdir)/images/panes.png \
+ $(srcdir)/images/pagesetupdialog.png \
+ $(srcdir)/images/printdialog.png \
$(srcdir)/images/progressbar.png \
$(srcdir)/images/radio-group.png \
$(srcdir)/images/recentchooserdialog.png \
diff --git a/docs/reference/gtk/gtk-docs.sgml b/docs/reference/gtk/gtk-docs.sgml
index 794769b17e..370a6dbaf8 100644
--- a/docs/reference/gtk/gtk-docs.sgml
+++ b/docs/reference/gtk/gtk-docs.sgml
@@ -84,6 +84,15 @@
<!ENTITY GtkPixmap SYSTEM "xml/gtkpixmap.xml">
<!ENTITY GtkPlug SYSTEM "xml/gtkplug.xml">
<!ENTITY GtkPreview SYSTEM "xml/gtkpreview.xml">
+<!ENTITY GtkPrintOperation SYSTEM "xml/gtkprintoperation.xml">
+<!ENTITY GtkPrintContext SYSTEM "xml/gtkprintcontext.xml">
+<!ENTITY GtkPrintSettings SYSTEM "xml/gtkprintsettings.xml">
+<!ENTITY GtkPageSetup SYSTEM "xml/gtkpagesetup.xml">
+<!ENTITY GtkPaperSize SYSTEM "xml/gtkpapersize.xml">
+<!ENTITY GtkPrinter SYSTEM "xml/gtkprinter.xml">
+<!ENTITY GtkPrintJob SYSTEM "xml/gtkprintjob.xml">
+<!ENTITY GtkPrintUnixDialog SYSTEM "xml/gtkprintunixdialog.xml">
+<!ENTITY GtkPageSetupUnixDialog SYSTEM "xml/gtkpagesetupunixdialog.xml">
<!ENTITY GtkProgress SYSTEM "xml/gtkprogress.xml">
<!ENTITY GtkProgressBar SYSTEM "xml/gtkprogressbar.xml">
<!ENTITY GtkRadioAction SYSTEM "xml/gtkradioaction.xml">
@@ -513,6 +522,19 @@ that is, GUI components such as <link linkend="GtkButton">GtkButton</link> or
&GtkScrolledWindow;
</chapter>
+ <chapter id="Printing">
+ <title>Printing</title>
+ &GtkPrintOperation;
+ &GtkPrintContext;
+ &GtkPrintSettings;
+ &GtkPageSetup;
+ &GtkPaperSize;
+ &GtkPrintUnixDialog;
+ &GtkPrinter;
+ &GtkPrintJob;
+ &GtkPageSetupUnixDialog;
+ </chapter>
+
<chapter id="MiscObjects">
<title>Miscellaneous</title>
&GtkAdjustment;
diff --git a/docs/reference/gtk/gtk-sections.txt b/docs/reference/gtk/gtk-sections.txt
index 5b4defd22f..48e832e898 100644
--- a/docs/reference/gtk/gtk-sections.txt
+++ b/docs/reference/gtk/gtk-sections.txt
@@ -6057,3 +6057,333 @@ gtk_icon_factory_get_type
gtk_icon_set_get_type
gtk_icon_source_get_type
</SECTION>
+
+
+<SECTION>
+<FILE>gtkprintoperation</FILE>
+<TITLE>High-level Printing API</TITLE>
+GtkPrintOperation
+GtkPrintStatus
+GtkPrintOperationResult
+GtkPrintError
+GTK_PRINT_ERROR
+gtk_print_error_quark
+gtk_print_operation_new
+gtk_print_operation_set_default_page_setup
+gtk_print_operation_get_default_page_setup
+gtk_print_operation_set_print_settings
+gtk_print_operation_get_print_settings
+gtk_print_operation_set_job_name
+gtk_print_operation_set_nr_of_pages
+gtk_print_operation_set_current_page
+gtk_print_operation_set_use_full_page
+gtk_print_operation_set_unit
+gtk_print_operation_set_show_dialog
+gtk_print_operation_set_pdf_target
+gtk_print_operation_run
+gtk_print_operation_get_status
+gtk_print_operation_is_finished
+gtk_print_run_page_setup_dialog
+
+<SUBSECTION Standard>
+GTK_TYPE_PRINT_OPERATION
+GTK_PRINT_OPERATION
+GTK_IS_PRINT_OPERATION
+
+<SUBSECTION Private>
+gtk_print_operation_get_type
+GtkPrintOperationPrivate
+</SECTION>
+
+
+<SECTION>
+<INCLUDE>gtk/gtkprintunixdialog.h</INCLUDE>
+<FILE>gtkprintunixdialog</FILE>
+<TITLE>GtkPrintUnixDialog</TITLE>
+GtkPrintUnixDialog
+gtk_print_unix_dialog_set_page_setup
+gtk_print_unix_dialog_get_page_setup
+gtk_print_unix_dialog_set_current_page
+gtk_print_unix_dialog_get_current_page
+gtk_print_unix_dialog_set_settings
+gtk_print_unix_dialog_get_settings
+gtk_print_unix_dialog_get_selected_printer
+
+<SUBSECTION Standard>
+GTK_TYPE_PRINT_UNIX_DIALOG
+GTK_PRINT_UNIX_DIALOG
+GTK_PRINT_UNIX_DIALOG_CLASS
+GTK_IS_PRINT_UNIX_DIALOG
+GTK_IS_PRINT_UNIX_DIALOG_CLASS
+GTK_PRINT_UNIX_DIALOG_GET_CLASS
+
+<SUBSECTION Private>
+GtkPrintUnixDialogPrivate
+gtk_print_unix_dialog_get_type
+</SECTION>
+
+
+<SECTION>
+<FILE>gtkprinter</FILE>
+<TITLE>GtkPrinter</TITLE>
+GtkPrinter
+GtkPrintBackend
+gtk_printer_new
+gtk_printer_get_backend
+gtk_printer_get_name
+gtk_printer_get_state_message
+gtk_printer_get_description
+gtk_printer_get_location
+gtk_printer_get_icon_name
+gtk_printer_get_job_count
+gtk_printer_is_active
+gtk_printer_is_virtual
+gtk_printer_is_default
+
+<SUBSECTION Standard>
+GTK_TYPE_PRINTER
+GTK_PRINTER
+GTK_PRINTER_CLASS
+GTK_IS_PRINTER
+GTK_IS_PRINTER_CLASS
+GTK_PRINTER_GET_CLASS
+
+<SUBSECTION Private>
+GtkPrinterPrivate
+gtk_printer_get_type
+</SECTION>
+
+
+<SECTION>
+<FILE>gtkprintsettings</FILE>
+<TITLE>GtkPrintSettings</TITLE>
+GtkPrintSettings
+GtkPrintSettingsFunc
+gtk_print_settings_new
+gtk_print_settings_copy
+gtk_print_settings_has_key
+gtk_print_settings_get
+gtk_print_settings_set
+gtk_print_settings_unset
+gtk_print_settings_foreach
+gtk_print_settings_get_bool
+gtk_print_settings_set_bool
+gtk_print_settings_get_double
+gtk_print_settings_get_double_with_default
+gtk_print_settings_set_double
+gtk_print_settings_get_length
+gtk_print_settings_set_length
+gtk_print_settings_get_int
+gtk_print_settings_get_int_with_default
+gtk_print_settings_set_int
+gtk_print_settings_get_printer
+gtk_print_settings_set_printer
+GtkPageOrientation
+gtk_print_settings_get_orientation
+gtk_print_settings_set_orientation
+gtk_print_settings_get_paper_size
+gtk_print_settings_set_paper_size
+gtk_print_settings_get_paper_width
+gtk_print_settings_set_paper_width
+gtk_print_settings_get_paper_height
+gtk_print_settings_set_paper_height
+gtk_print_settings_get_use_color
+gtk_print_settings_set_use_color
+gtk_print_settings_get_collate
+gtk_print_settings_set_collate
+gtk_print_settings_get_reverse
+gtk_print_settings_set_reverse
+GtkPrintDuplex
+gtk_print_settings_get_duplex
+gtk_print_settings_set_duplex
+GtkPrintQuality
+gtk_print_settings_get_quality
+gtk_print_settings_set_quality
+gtk_print_settings_get_num_copies
+gtk_print_settings_set_num_copies
+gtk_print_settings_get_number_up
+gtk_print_settings_set_number_up
+gtk_print_settings_get_resolution
+gtk_print_settings_set_resolution
+gtk_print_settings_get_scale
+gtk_print_settings_set_scale
+gtk_print_settings_get_print_to_file
+gtk_print_settings_set_print_to_file
+GtkPrintPages
+gtk_print_settings_get_print_pages
+gtk_print_settings_set_print_pages
+GtkPageRange
+gtk_print_settings_get_page_ranges
+gtk_print_settings_set_page_ranges
+GtkPageSet
+gtk_print_settings_get_page_set
+gtk_print_settings_set_page_set
+gtk_print_settings_get_default_source
+gtk_print_settings_set_default_source
+gtk_print_settings_get_media_type
+gtk_print_settings_set_media_type
+gtk_print_settings_get_dither
+gtk_print_settings_set_dither
+gtk_print_settings_get_finishings
+gtk_print_settings_set_finishings
+gtk_print_settings_get_output_bin
+gtk_print_settings_set_output_bin
+
+<SUBSECTION Standard>
+GTK_TYPE_PRINT_SETTINGS
+GTK_PRINT_SETTINGS
+GTK_IS_PRINT_SETTINGS
+
+<SUBSECTION Private>
+gtk_print_settings_get_type
+</SECTION>
+
+
+<SECTION>
+<FILE>gtkpapersize</FILE>
+<TITLE>GtkPaperSize</TITLE>
+GtkPaperSize
+GtkUnit
+GTK_PAPER_NAME_A3
+GTK_PAPER_NAME_A4
+GTK_PAPER_NAME_A5
+GTK_PAPER_NAME_B5
+GTK_PAPER_NAME_LETTER
+GTK_PAPER_NAME_EXECUTIVE
+GTK_PAPER_NAME_LEGAL
+gtk_paper_size_new
+gtk_paper_size_new_from_ppd
+gtk_paper_size_new_custom
+gtk_paper_size_copy
+gtk_paper_size_free
+gtk_paper_size_is_equal
+gtk_paper_size_get_name
+gtk_paper_size_get_display_name
+gtk_paper_size_get_ppd_name
+gtk_paper_size_get_width
+gtk_paper_size_get_height
+gtk_paper_size_is_custom
+gtk_paper_size_set_size
+gtk_paper_size_get_default_top_margin
+gtk_paper_size_get_default_bottom_margin
+gtk_paper_size_get_default_left_margin
+gtk_paper_size_get_default_right_margin
+gtk_paper_size_get_default
+
+<SUBSECTION Standard>
+GTK_TYPE_PAPER_SIZE
+<SUBSECTION Private>
+gtk_paper_size_get_type
+</SECTION>
+
+
+<SECTION>
+<FILE>gtkpagesetup</FILE>
+<TITLE>GtkPageSetup</TITLE>
+GtkPageSetup
+gtk_page_setup_new
+gtk_page_setup_copy
+gtk_page_setup_get_orientation
+gtk_page_setup_set_orientation
+gtk_page_setup_get_paper_size
+gtk_page_setup_set_paper_size
+gtk_page_setup_get_top_margin
+gtk_page_setup_set_top_margin
+gtk_page_setup_get_bottom_margin
+gtk_page_setup_set_bottom_margin
+gtk_page_setup_get_left_margin
+gtk_page_setup_set_left_margin
+gtk_page_setup_get_right_margin
+gtk_page_setup_set_right_margin
+gtk_page_setup_set_paper_size_and_default_margins
+gtk_page_setup_get_paper_width
+gtk_page_setup_get_paper_height
+gtk_page_setup_get_page_width
+gtk_page_setup_get_page_height
+
+<SUBSECTION Standard>
+GTK_TYPE_PAGE_SETUP
+GTK_PAGE_SETUP
+GTK_IS_PAGE_SETUP
+
+<SUBSECTION Private>
+gtk_page_setup_get_type
+</SECTION>
+
+
+<SECTION>
+<FILE>gtkprintcontext</FILE>
+<TITLE>GtkPrintContext</TITLE>
+GtkPrintContext
+gtk_print_context_get_cairo
+gtk_print_context_get_page_setup
+gtk_print_context_get_width
+gtk_print_context_get_height
+gtk_print_context_get_dpi_x
+gtk_print_context_get_dpi_y
+gtk_print_context_get_fontmap
+gtk_print_context_create_context
+gtk_print_context_create_layout
+
+<SUBSECTION Standard>
+GTK_TYPE_PRINT_CONTEXT
+GTK_PRINT_CONTEXT
+GTK_IS_PRINT_CONTEXT
+
+<SUBSECTION Private>
+gtk_print_context_get_type
+</SECTION>
+
+
+<SECTION>
+<FILE>gtkprintjob</FILE>
+<TITLE>GtkPrintJob</TITLE>
+GtkPrintJob
+GtkPrintJobCompleteFunc
+gtk_print_job_new
+gtk_print_job_get_settings
+gtk_print_job_get_printer
+gtk_print_job_get_title
+gtk_print_job_get_status
+gtk_print_job_set_source_file
+gtk_print_job_get_surface
+gtk_print_job_send
+
+<SUBSECTION Standard>
+GTK_TYPE_PRINT_JOB
+GTK_PRINT_JOB
+GTK_PRINT_JOB_CLASS
+GTK_IS_PRINT_JOB
+GTK_IS_PRINT_JOB_CLASS
+GTK_PRINT_JOB_GET_CLASS
+
+<SUBSECTION Private>
+GtkPrintJobPrivate
+gtk_print_job_get_type
+</SECTION>
+
+
+<SECTION>
+<INCLUDE>gtk/gtkpagesetupunixdialog.h</INCLUDE>
+<FILE>gtkpagesetupunixdialog</FILE>
+<TITLE>GtkPageSetupUnixDialog</TITLE>
+GtkPageSetupUnixDialog
+gtk_page_setup_unix_dialog_new
+gtk_page_setup_unix_dialog_set_page_setup
+gtk_page_setup_unix_dialog_get_page_setup
+gtk_page_setup_unix_dialog_set_print_settings
+gtk_page_setup_unix_dialog_get_print_settings
+
+<SUBSECTION Standard>
+GtkPageSetupUnixDialogClass
+GTK_TYPE_PAGE_SETUP_UNIX_DIALOG
+GTK_PAGE_SETUP_UNIX_DIALOG
+GTK_PAGE_SETUP_UNIX_DIALOG_CLASS
+GTK_IS_PAGE_SETUP_UNIX_DIALOG
+GTK_IS_PAGE_SETUP_UNIX_DIALOG_CLASS
+GTK_PAGE_SETUP_UNIX_DIALOG_GET_CLASS
+
+<SUBSECTION Private>
+GtkPageSetupUnixDialogPrivate
+gtk_page_setup_unix_dialog_get_type
+</SECTION>
diff --git a/docs/reference/gtk/gtk.types b/docs/reference/gtk/gtk.types
index 9650289c71..89be3ba80e 100644
--- a/docs/reference/gtk/gtk.types
+++ b/docs/reference/gtk/gtk.types
@@ -96,10 +96,19 @@ gtk_notebook_get_type
gtk_object_get_type
gtk_old_editable_get_type
gtk_option_menu_get_type
+gtk_page_setup_get_type
+gtk_page_setup_unix_dialog_get_type
gtk_paned_get_type
+gtk_paper_size_get_type
gtk_pixmap_get_type
gtk_plug_get_type
gtk_preview_get_type
+gtk_printer_get_type
+gtk_print_context_get_type
+gtk_print_job_get_type
+gtk_print_operation_get_type
+gtk_print_settings_get_type
+gtk_print_unix_dialog_get_type
gtk_progress_bar_get_type
gtk_progress_get_type
gtk_radio_action_get_type
diff --git a/docs/reference/gtk/images/pagesetupdialog.png b/docs/reference/gtk/images/pagesetupdialog.png
new file mode 100644
index 0000000000..7f79a2c8b2
--- /dev/null
+++ b/docs/reference/gtk/images/pagesetupdialog.png
Binary files differ
diff --git a/docs/reference/gtk/images/printdialog.png b/docs/reference/gtk/images/printdialog.png
new file mode 100644
index 0000000000..7645b7023b
--- /dev/null
+++ b/docs/reference/gtk/images/printdialog.png
Binary files differ
diff --git a/docs/reference/gtk/tmpl/gtkpagesetup.sgml b/docs/reference/gtk/tmpl/gtkpagesetup.sgml
new file mode 100644
index 0000000000..1a15fb8d6a
--- /dev/null
+++ b/docs/reference/gtk/tmpl/gtkpagesetup.sgml
@@ -0,0 +1,251 @@
+<!-- ##### SECTION Title ##### -->
+GtkPageSetup
+
+<!-- ##### SECTION Short_Description ##### -->
+Stores page setup information
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+A GtkPageSetup object stores the page size, orientation and margins.
+The idea is that you can get one of these from the page setup dialog
+and then pass it to the #GtkPrittntOperation when printing.
+The benefit of splitting this out of the #GtkPrintSettings is that
+these affect the actual layout of the page, and thus need to be set
+long before user prints.
+</para>
+<para id="print-margins">
+The margins specified in this object are the "print margins", i.e. the
+parts of the page that the printer cannot print on. These are different
+from the layout margins that a word processor uses; they are typically
+used to determine the <emphasis>minimal</emphasis> size for the layout
+margins.
+</para>
+<para>
+To obtain a #GtkPageSetup use gtk_page_setup_new()
+to get the defaults, or use gtk_print_run_page_setup_dialog() to show
+the page setup dialog and receive the resulting page setup.
+</para>
+<example>
+<title>A page setup dialog</title>
+<programlisting>
+static GtkPrintSettings *settings = NULL;
+static GtkPageSetup *page_setup = NULL;
+
+static void
+do_page_setup (void)
+{
+ GtkPageSetup *new_page_setup;
+
+ if (settings == NULL)
+ settings = gtk_print_settings_new (<!-- -->);
+
+ new_page_setup = gtk_print_run_page_setup_dialog (GTK_WINDOW (main_window),
+ page_setup, settings);
+
+ if (page_setup)
+ g_object_unref (page_setup);
+
+ page_setup = new_page_setup;
+}
+</programlisting>
+</example>
+<para>
+Printing support was added in GTK+ 2.10.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT GtkPageSetup ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gtk_page_setup_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_copy ##### -->
+<para>
+
+</para>
+
+@other:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_get_orientation ##### -->
+<para>
+
+</para>
+
+@setup:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_set_orientation ##### -->
+<para>
+
+</para>
+
+@setup:
+@orientation:
+
+
+<!-- ##### FUNCTION gtk_page_setup_get_paper_size ##### -->
+<para>
+
+</para>
+
+@setup:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_set_paper_size ##### -->
+<para>
+
+</para>
+
+@setup:
+@size:
+
+
+<!-- ##### FUNCTION gtk_page_setup_get_top_margin ##### -->
+<para>
+
+</para>
+
+@setup:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_set_top_margin ##### -->
+<para>
+
+</para>
+
+@setup:
+@margin:
+@unit:
+
+
+<!-- ##### FUNCTION gtk_page_setup_get_bottom_margin ##### -->
+<para>
+
+</para>
+
+@setup:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_set_bottom_margin ##### -->
+<para>
+
+</para>
+
+@setup:
+@margin:
+@unit:
+
+
+<!-- ##### FUNCTION gtk_page_setup_get_left_margin ##### -->
+<para>
+
+</para>
+
+@setup:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_set_left_margin ##### -->
+<para>
+
+</para>
+
+@setup:
+@margin:
+@unit:
+
+
+<!-- ##### FUNCTION gtk_page_setup_get_right_margin ##### -->
+<para>
+
+</para>
+
+@setup:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_set_right_margin ##### -->
+<para>
+
+</para>
+
+@setup:
+@margin:
+@unit:
+
+
+<!-- ##### FUNCTION gtk_page_setup_set_paper_size_and_default_margins ##### -->
+<para>
+
+</para>
+
+@setup:
+@size:
+
+
+<!-- ##### FUNCTION gtk_page_setup_get_paper_width ##### -->
+<para>
+
+</para>
+
+@setup:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_get_paper_height ##### -->
+<para>
+
+</para>
+
+@setup:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_get_page_width ##### -->
+<para>
+
+</para>
+
+@setup:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_get_page_height ##### -->
+<para>
+
+</para>
+
+@setup:
+@unit:
+@Returns:
+
+
diff --git a/docs/reference/gtk/tmpl/gtkpagesetupunixdialog.sgml b/docs/reference/gtk/tmpl/gtkpagesetupunixdialog.sgml
new file mode 100644
index 0000000000..c98752ab1a
--- /dev/null
+++ b/docs/reference/gtk/tmpl/gtkpagesetupunixdialog.sgml
@@ -0,0 +1,80 @@
+<!-- ##### SECTION Title ##### -->
+GtkPageSetupUnixDialog
+
+<!-- ##### SECTION Short_Description ##### -->
+A page setup dialog
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+GtkPageSetupUnixDialog implements a page setup dialog for platforms
+which don't provide a native page setup dialog, like Unix. It can
+be used very much like any other GTK+ dialog, at the cost of
+the portability offered by the <link
+linkend="gtk-High-level-Printing-API">high-level printing API</link>
+</para>
+
+<para>
+Printing support was added in GTK+ 2.10.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT GtkPageSetupUnixDialog ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gtk_page_setup_unix_dialog_new ##### -->
+<para>
+
+</para>
+
+@title:
+@parent:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_unix_dialog_set_page_setup ##### -->
+<para>
+
+</para>
+
+@dialog:
+@page_setup:
+
+
+<!-- ##### FUNCTION gtk_page_setup_unix_dialog_get_page_setup ##### -->
+<para>
+
+</para>
+
+@dialog:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_page_setup_unix_dialog_set_print_settings ##### -->
+<para>
+
+</para>
+
+@dialog:
+@print_settings:
+
+
+<!-- ##### FUNCTION gtk_page_setup_unix_dialog_get_print_settings ##### -->
+<para>
+
+</para>
+
+@dialog:
+@Returns:
+
+
diff --git a/docs/reference/gtk/tmpl/gtkpapersize.sgml b/docs/reference/gtk/tmpl/gtkpapersize.sgml
new file mode 100644
index 0000000000..4298c4efc8
--- /dev/null
+++ b/docs/reference/gtk/tmpl/gtkpapersize.sgml
@@ -0,0 +1,275 @@
+<!-- ##### SECTION Title ##### -->
+GtkPaperSize
+
+<!-- ##### SECTION Short_Description ##### -->
+Support for named paper sizes
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+GtkPaperSize handles paper sizes. It uses the standard called
+"PWG 5101.1-2002 PWG: Standard for Media Standardized Names"
+<!-- FIXME link here -->
+to name the paper sizes (and to get the data for the page sizes).
+In addition to standard paper sizes, GtkPaperSize allows to
+construct custom paper sizes with arbitrary dimensions.
+</para>
+<para>
+The #GtkPaperSize object stores not only the dimensions (width
+and height) of a paper size and its name, it also provides
+default <link linkend="print-margins">print margins</link>.
+</para>
+
+<para>
+Printing support has been added in GTK+ 2.10.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+#GtkPageSetup
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT GtkPaperSize ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ENUM GtkUnit ##### -->
+<para>
+
+</para>
+
+@GTK_UNIT_PIXEL:
+@GTK_UNIT_POINTS:
+@GTK_UNIT_INCH:
+@GTK_UNIT_MM:
+
+<!-- ##### MACRO GTK_PAPER_NAME_A3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GTK_PAPER_NAME_A4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GTK_PAPER_NAME_A5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GTK_PAPER_NAME_B5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GTK_PAPER_NAME_LETTER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GTK_PAPER_NAME_EXECUTIVE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GTK_PAPER_NAME_LEGAL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gtk_paper_size_new ##### -->
+<para>
+
+</para>
+
+@name:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_new_from_ppd ##### -->
+<para>
+
+</para>
+
+@ppd_name:
+@ppd_display_name:
+@width:
+@height:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_new_custom ##### -->
+<para>
+
+</para>
+
+@name:
+@display_name:
+@width:
+@height:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_copy ##### -->
+<para>
+
+</para>
+
+@other:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_free ##### -->
+<para>
+
+</para>
+
+@size:
+
+
+<!-- ##### FUNCTION gtk_paper_size_is_equal ##### -->
+<para>
+
+</para>
+
+@size1:
+@size2:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_get_name ##### -->
+<para>
+
+</para>
+
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_get_display_name ##### -->
+<para>
+
+</para>
+
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_get_ppd_name ##### -->
+<para>
+
+</para>
+
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_get_width ##### -->
+<para>
+
+</para>
+
+@size:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_get_height ##### -->
+<para>
+
+</para>
+
+@size:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_is_custom ##### -->
+<para>
+
+</para>
+
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_set_size ##### -->
+<para>
+
+</para>
+
+@size:
+@width:
+@height:
+@unit:
+
+
+<!-- ##### FUNCTION gtk_paper_size_get_default_top_margin ##### -->
+<para>
+
+</para>
+
+@size:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_get_default_bottom_margin ##### -->
+<para>
+
+</para>
+
+@size:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_get_default_left_margin ##### -->
+<para>
+
+</para>
+
+@size:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_get_default_right_margin ##### -->
+<para>
+
+</para>
+
+@size:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_paper_size_get_default ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
diff --git a/docs/reference/gtk/tmpl/gtkprintcontext.sgml b/docs/reference/gtk/tmpl/gtkprintcontext.sgml
new file mode 100644
index 0000000000..26a2651da6
--- /dev/null
+++ b/docs/reference/gtk/tmpl/gtkprintcontext.sgml
@@ -0,0 +1,175 @@
+<!-- ##### SECTION Title ##### -->
+GtkPrintContext
+
+<!-- ##### SECTION Short_Description ##### -->
+Encapsulates context for drawing pages
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+A GtkPrintContext encapsulates context information that is required when
+drawing pages for printing, such as the cairo context and important
+parameters like page size and resolution. It also lets you easily
+create #PangoLayout and #PangoContext objects that match the font metrics
+of the cairo surface.
+</para>
+<para>
+GtkPrintContext objects gets passed to the ::begin-print, ::end-print,
+::request-page-setup and ::draw-page signals on the #GtkPrintOperation.
+</para>
+
+<example>
+<title>Using GtkPrintContext in a ::draw-page callback</title>
+<programlisting>
+static void
+draw_page (GtkPrintOperation *operation,
+ GtkPrintContext *context,
+ int page_nr)
+{
+ cairo_t *cr;
+ PangoLayout *layout;
+ PangoFontDescription *desc;
+
+ cr = gtk_print_context_get_cairo (context);
+
+ /* Draw a red rectangle, as wide as the paper (inside the margins) */
+ cairo_set_source_rgb (cr, 1.0, 0, 0);
+ cairo_rectangle (cr, 0, 0, gtk_print_context_get_width (context), 50);
+
+ cairo_fill (cr);
+
+ /* Draw some lines */
+ cairo_move_to (cr, 20, 10);
+ cairo_line_to (cr, 40, 20);
+ cairo_arc (cr, 60, 60, 20, 0, M_PI);
+ cairo_line_to (cr, 80, 20);
+
+ cairo_set_source_rgb (cr, 0, 0, 0);
+ cairo_set_line_width (cr, 5);
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
+ cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
+
+ cairo_stroke (cr);
+
+ /* Draw some text */
+ layout = gtk_print_context_create_layout (context);
+ pango_layout_set_text (layout, "Hello World! Printing is easy", -1);
+ desc = pango_font_description_from_string ("sans 28");
+ pango_layout_set_font_description (layout, desc);
+ pango_font_description_free (desc);
+
+ cairo_move_to (cr, 30, 20);
+ pango_cairo_layout_path (cr, layout);
+
+ /* Font Outline */
+ cairo_set_source_rgb (cr, 0.93, 1.0, 0.47);
+ cairo_set_line_width (cr, 0.5);
+ cairo_stroke_preserve (cr);
+
+ /* Font Fill */
+ cairo_set_source_rgb (cr, 0, 0.0, 1.0);
+ cairo_fill (cr);
+
+ g_object_unref (layout);
+}
+</programlisting>
+</example>
+
+<para>
+Printing support was added in GTK+ 2.10.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT GtkPrintContext ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gtk_print_context_get_cairo ##### -->
+<para>
+
+</para>
+
+@context:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_context_get_page_setup ##### -->
+<para>
+
+</para>
+
+@context:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_context_get_width ##### -->
+<para>
+
+</para>
+
+@context:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_context_get_height ##### -->
+<para>
+
+</para>
+
+@context:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_context_get_dpi_x ##### -->
+<para>
+
+</para>
+
+@context:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_context_get_dpi_y ##### -->
+<para>
+
+</para>
+
+@context:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_context_get_fontmap ##### -->
+<para>
+
+</para>
+
+@context:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_context_create_context ##### -->
+<para>
+
+</para>
+
+@context:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_context_create_layout ##### -->
+<para>
+
+</para>
+
+@context:
+@Returns:
+
+
diff --git a/docs/reference/gtk/tmpl/gtkprinter.sgml b/docs/reference/gtk/tmpl/gtkprinter.sgml
new file mode 100644
index 0000000000..36f0da6970
--- /dev/null
+++ b/docs/reference/gtk/tmpl/gtkprinter.sgml
@@ -0,0 +1,163 @@
+<!-- ##### SECTION Title ##### -->
+GtkPrinter
+
+<!-- ##### SECTION Short_Description ##### -->
+Represents a printer
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+A #GtkPrinter object represents a printer. You only need to
+deal directly with printers if you use the non-portable
+#GtkPrintUnixDialog API.
+</para>
+<para>
+A #GtkPrinter allows to get status information about the printer,
+such as its description, its location, the number of queued jobs,
+etc. Most importantly, a #GtkPrinter object can be used to create
+a #GtkPrintJob object, which lets you print to the printer.
+</para>
+
+<para>
+Printing support was added in GTK+ 2.10.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT GtkPrinter ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL GtkPrinter::details-acquired ##### -->
+<para>
+
+</para>
+
+@printer: the object which received the signal.
+@arg1:
+
+<!-- ##### ARG GtkPrinter:backend ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkPrinter:icon-name ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkPrinter:is-virtual ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkPrinter:job-count ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkPrinter:location ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkPrinter:name ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkPrinter:state-message ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION gtk_printer_new ##### -->
+<para>
+
+</para>
+
+@name:
+@backend:
+@virtual:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_printer_get_backend ##### -->
+<para>
+
+</para>
+
+@printer:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_printer_get_name ##### -->
+<para>
+
+</para>
+
+@printer:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_printer_get_state_message ##### -->
+<para>
+
+</para>
+
+@printer:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_printer_get_location ##### -->
+<para>
+
+</para>
+
+@printer:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_printer_get_icon_name ##### -->
+<para>
+
+</para>
+
+@printer:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_printer_get_job_count ##### -->
+<para>
+
+</para>
+
+@printer:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_printer_is_active ##### -->
+<para>
+
+</para>
+
+@printer:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_printer_is_virtual ##### -->
+<para>
+
+</para>
+
+@printer:
+@Returns:
+
+
diff --git a/docs/reference/gtk/tmpl/gtkprintjob.sgml b/docs/reference/gtk/tmpl/gtkprintjob.sgml
new file mode 100644
index 0000000000..1d94ddc42e
--- /dev/null
+++ b/docs/reference/gtk/tmpl/gtkprintjob.sgml
@@ -0,0 +1,159 @@
+<!-- ##### SECTION Title ##### -->
+GtkPrintJob
+
+<!-- ##### SECTION Short_Description ##### -->
+Represents a print job
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+A #GtkPrintJob object represents a job that is sent to a
+printer. You only need to deal directly with print jobs if
+you use the non-portable #GtkPrintUnixDialog API.
+</para>
+<para>
+Use gtk_print_job_get_surface() to obtain the cairo surface
+onto which the pages must be drawn. Use gtk_print_job_send()
+to send the finished job to the printer. If you don't use cairo
+#GtkPrintJob also supports printing of manually generated postscript,
+via gtk_print_job_set_source_file().
+<!-- FIXME more details needed here -->
+</para>
+<!-- FIXME examples ? -->
+
+<para>
+Printing support was added in GTK+ 2.10.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT GtkPrintJob ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL GtkPrintJob::status-changed ##### -->
+<para>
+
+</para>
+
+@printjob: the object which received the signal.
+
+<!-- ##### ARG GtkPrintJob:page-setup ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkPrintJob:printer ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkPrintJob:settings ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkPrintJob:title ##### -->
+<para>
+
+</para>
+
+<!-- ##### USER_FUNCTION GtkPrintJobCompleteFunc ##### -->
+<para>
+
+</para>
+
+@print_job:
+@user_data:
+@error:
+
+
+<!-- ##### FUNCTION gtk_print_job_new ##### -->
+<para>
+
+</para>
+
+@title:
+@printer:
+@settings:
+@page_setup:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_job_get_settings ##### -->
+<para>
+
+</para>
+
+@print_job:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_job_get_printer ##### -->
+<para>
+
+</para>
+
+@print_job:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_job_get_title ##### -->
+<para>
+
+</para>
+
+@print_job:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_job_get_status ##### -->
+<para>
+
+</para>
+
+@print_job:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_job_set_source_file ##### -->
+<para>
+
+</para>
+
+@print_job:
+@filename:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_job_get_surface ##### -->
+<para>
+
+</para>
+
+@print_job:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_job_send ##### -->
+<para>
+
+</para>
+
+@print_job:
+@callback:
+@user_data:
+@dnotify:
+@error:
+@Returns:
+
+
diff --git a/docs/reference/gtk/tmpl/gtkprintoperation.sgml b/docs/reference/gtk/tmpl/gtkprintoperation.sgml
new file mode 100644
index 0000000000..00e26dd40b
--- /dev/null
+++ b/docs/reference/gtk/tmpl/gtkprintoperation.sgml
@@ -0,0 +1,321 @@
+<!-- ##### 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_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>
+Printing support was added in GTK+ 2.10.
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+#GtkPrintContext, #GtkPrintUnixDialog
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT GtkPrintOperation ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL GtkPrintOperation::begin-print ##### -->
+<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::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.
+
+<!-- ##### ENUM GtkPrintStatus ##### -->
+<para>
+
+</para>
+
+@GTK_PRINT_STATUS_INITIAL:
+@GTK_PRINT_STATUS_PREPARING:
+@GTK_PRINT_STATUS_GENERATING_DATA:
+@GTK_PRINT_STATUS_SENDING_DATA:
+@GTK_PRINT_STATUS_PENDING:
+@GTK_PRINT_STATUS_PENDING_ISSUE:
+@GTK_PRINT_STATUS_PRINTING:
+@GTK_PRINT_STATUS_FINISHED:
+@GTK_PRINT_STATUS_FINISHED_ABORTED:
+
+<!-- ##### ENUM GtkPrintOperationResult ##### -->
+<para>
+
+</para>
+
+@GTK_PRINT_OPERATION_RESULT_ERROR:
+@GTK_PRINT_OPERATION_RESULT_APPLY:
+@GTK_PRINT_OPERATION_RESULT_CANCEL:
+
+<!-- ##### ENUM GtkPrintError ##### -->
+<para>
+
+</para>
+
+@GTK_PRINT_ERROR_GENERAL:
+@GTK_PRINT_ERROR_INTERNAL_ERROR:
+@GTK_PRINT_ERROR_NOMEM:
+
+<!-- ##### MACRO GTK_PRINT_ERROR ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gtk_print_error_quark ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_operation_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### 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_nr_of_pages ##### -->
+<para>
+
+</para>
+
+@op:
+@n_pages:
+
+
+<!-- ##### 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_show_dialog ##### -->
+<para>
+
+</para>
+
+@op:
+@show_dialog:
+
+
+<!-- ##### FUNCTION gtk_print_operation_set_pdf_target ##### -->
+<para>
+
+</para>
+
+@op:
+@filename:
+
+
+<!-- ##### FUNCTION gtk_print_operation_run ##### -->
+<para>
+
+</para>
+
+@op:
+@parent:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_operation_get_status ##### -->
+<para>
+
+</para>
+
+@op:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_operation_is_finished ##### -->
+<para>
+
+</para>
+
+@op:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_run_page_setup_dialog ##### -->
+<para>
+
+</para>
+
+@parent:
+@page_setup:
+@settings:
+@Returns:
+
+
diff --git a/docs/reference/gtk/tmpl/gtkprintsettings.sgml b/docs/reference/gtk/tmpl/gtkprintsettings.sgml
new file mode 100644
index 0000000000..b9d9a4f999
--- /dev/null
+++ b/docs/reference/gtk/tmpl/gtkprintsettings.sgml
@@ -0,0 +1,697 @@
+<!-- ##### SECTION Title ##### -->
+GtkPrintSettings
+
+<!-- ##### SECTION Short_Description ##### -->
+Stores print settings
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+A GtkPrintSettings object represents the settings of a print dialog in
+a system-independent way. The main use for this object is that once
+you've printed you can get a settings object that represents the settings
+the user chose, and the next time you print you can pass that object in so
+that the user doesn't have to re-set all his settings.
+</para>
+<para>
+Its also possible to enumerate the settings so that you can easily save
+the settings for the next time your app runs, or even store them in a
+document. The predefined keys try to use shared values as much as possible
+so that moving such a document between systems still works.
+</para>
+
+<!-- TODO example of getting, storing and setting settings -->
+
+<para>
+Printing support was added in GTK+ 2.10.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT GtkPrintSettings ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### USER_FUNCTION GtkPrintSettingsFunc ##### -->
+<para>
+
+</para>
+
+@key:
+@value:
+@user_data:
+
+
+<!-- ##### FUNCTION gtk_print_settings_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_copy ##### -->
+<para>
+
+</para>
+
+@other:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_has_key ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@value:
+
+
+<!-- ##### FUNCTION gtk_print_settings_unset ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+
+
+<!-- ##### FUNCTION gtk_print_settings_foreach ##### -->
+<para>
+
+</para>
+
+@settings:
+@func:
+@user_data:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_bool ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_bool ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@value:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_double ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_double_with_default ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@def:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_double ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@value:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_length ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_length ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@value:
+@unit:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_int ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_int_with_default ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@def:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_int ##### -->
+<para>
+
+</para>
+
+@settings:
+@key:
+@value:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_printer ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_printer ##### -->
+<para>
+
+</para>
+
+@settings:
+@printer:
+
+
+<!-- ##### ENUM GtkPageOrientation ##### -->
+<para>
+
+</para>
+
+@GTK_PAGE_ORIENTATION_PORTRAIT:
+@GTK_PAGE_ORIENTATION_LANDSCAPE:
+@GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT:
+@GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE:
+
+<!-- ##### FUNCTION gtk_print_settings_get_orientation ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_orientation ##### -->
+<para>
+
+</para>
+
+@settings:
+@orientation:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_paper_size ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_paper_size ##### -->
+<para>
+
+</para>
+
+@settings:
+@paper_size:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_paper_width ##### -->
+<para>
+
+</para>
+
+@settings:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_paper_width ##### -->
+<para>
+
+</para>
+
+@settings:
+@width:
+@unit:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_paper_height ##### -->
+<para>
+
+</para>
+
+@settings:
+@unit:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_paper_height ##### -->
+<para>
+
+</para>
+
+@settings:
+@width:
+@unit:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_use_color ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_use_color ##### -->
+<para>
+
+</para>
+
+@settings:
+@use_color:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_collate ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_collate ##### -->
+<para>
+
+</para>
+
+@settings:
+@collate:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_reverse ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_reverse ##### -->
+<para>
+
+</para>
+
+@settings:
+@reverse:
+
+
+<!-- ##### ENUM GtkPrintDuplex ##### -->
+<para>
+
+</para>
+
+@GTK_PRINT_DUPLEX_SIMPLEX:
+@GTK_PRINT_DUPLEX_HORIZONTAL:
+@GTK_PRINT_DUPLEX_VERTICAL:
+
+<!-- ##### FUNCTION gtk_print_settings_get_duplex ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_duplex ##### -->
+<para>
+
+</para>
+
+@settings:
+@duplex:
+
+
+<!-- ##### ENUM GtkPrintQuality ##### -->
+<para>
+
+</para>
+
+@GTK_PRINT_QUALITY_LOW:
+@GTK_PRINT_QUALITY_NORMAL:
+@GTK_PRINT_QUALITY_HIGH:
+@GTK_PRINT_QUALITY_DRAFT:
+
+<!-- ##### FUNCTION gtk_print_settings_get_quality ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_quality ##### -->
+<para>
+
+</para>
+
+@settings:
+@quality:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_num_copies ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_num_copies ##### -->
+<para>
+
+</para>
+
+@settings:
+@num_copies:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_number_up ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_number_up ##### -->
+<para>
+
+</para>
+
+@settings:
+@number_up:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_resolution ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_resolution ##### -->
+<para>
+
+</para>
+
+@settings:
+@resolution:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_scale ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_scale ##### -->
+<para>
+
+</para>
+
+@settings:
+@scale:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_print_to_file ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_print_to_file ##### -->
+<para>
+
+</para>
+
+@settings:
+@print_to_file:
+
+
+<!-- ##### ENUM GtkPrintPages ##### -->
+<para>
+
+</para>
+
+@GTK_PRINT_PAGES_ALL:
+@GTK_PRINT_PAGES_CURRENT:
+@GTK_PRINT_PAGES_RANGES:
+
+<!-- ##### FUNCTION gtk_print_settings_get_print_pages ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_print_pages ##### -->
+<para>
+
+</para>
+
+@settings:
+@pages:
+
+
+<!-- ##### STRUCT GtkPageRange ##### -->
+<para>
+
+</para>
+
+@start:
+@end:
+
+<!-- ##### FUNCTION gtk_print_settings_get_page_ranges ##### -->
+<para>
+
+</para>
+
+@settings:
+@num_ranges:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_page_ranges ##### -->
+<para>
+
+</para>
+
+@settings:
+@page_ranges:
+@num_ranges:
+
+
+<!-- ##### ENUM GtkPageSet ##### -->
+<para>
+
+</para>
+
+@GTK_PAGE_SET_ALL:
+@GTK_PAGE_SET_EVEN:
+@GTK_PAGE_SET_ODD:
+
+<!-- ##### FUNCTION gtk_print_settings_get_page_set ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_page_set ##### -->
+<para>
+
+</para>
+
+@settings:
+@page_set:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_default_source ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_default_source ##### -->
+<para>
+
+</para>
+
+@settings:
+@default_source:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_media_type ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_media_type ##### -->
+<para>
+
+</para>
+
+@settings:
+@media_type:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_dither ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_dither ##### -->
+<para>
+
+</para>
+
+@settings:
+@dither:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_finishings ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_finishings ##### -->
+<para>
+
+</para>
+
+@settings:
+@finishings:
+
+
+<!-- ##### FUNCTION gtk_print_settings_get_output_bin ##### -->
+<para>
+
+</para>
+
+@settings:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_settings_set_output_bin ##### -->
+<para>
+
+</para>
+
+@settings:
+@output_bin:
+
+
diff --git a/docs/reference/gtk/tmpl/gtkprintunixdialog.sgml b/docs/reference/gtk/tmpl/gtkprintunixdialog.sgml
new file mode 100644
index 0000000000..f27d5da92a
--- /dev/null
+++ b/docs/reference/gtk/tmpl/gtkprintunixdialog.sgml
@@ -0,0 +1,86 @@
+<!-- ##### SECTION Title ##### -->
+GtkPrintUnixDialog
+
+<!-- ##### SECTION Short_Description ##### -->
+A print dialog
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+GtkPrintUnixDialog implements a print dialog for platforms
+which don't provide a native print dialog, like Unix. It can
+be used very much like any other GTK+ dialog, at the cost of
+the portability offered by the <link
+linkend="gtk-High-level-Printing-API">high-level printing API</link>
+</para>
+<para>
+In order to print something with #GtkPrintUnixDialog, you need
+to use gtk_print_unix_dialog_get_selected_printer() to obtain
+a #GtkPrinter object and use it to construct a #GtkPrintJob using
+gtk_print_job_new().
+</para>
+
+<!-- FIXME example here -->
+
+<para>
+Printing support was added in GTK+ 2.10.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+#GtkPageSetupUnixDialog, #GtkPrinter, #GtkPrintJob
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT GtkPrintUnixDialog ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gtk_print_unix_dialog_set_page_setup ##### -->
+<para>
+
+</para>
+
+@dialog:
+@page_setup:
+
+
+<!-- ##### FUNCTION gtk_print_unix_dialog_set_current_page ##### -->
+<para>
+
+</para>
+
+@dialog:
+@current_page:
+
+
+<!-- ##### FUNCTION gtk_print_unix_dialog_set_settings ##### -->
+<para>
+
+</para>
+
+@dialog:
+@settings:
+
+
+<!-- ##### FUNCTION gtk_print_unix_dialog_get_settings ##### -->
+<para>
+
+</para>
+
+@dialog:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_print_unix_dialog_get_selected_printer ##### -->
+<para>
+
+</para>
+
+@dialog:
+@Returns:
+
+
diff --git a/docs/reference/gtk/visual_index.xml b/docs/reference/gtk/visual_index.xml
index ef3cc6b567..c6dc17eab6 100644
--- a/docs/reference/gtk/visual_index.xml
+++ b/docs/reference/gtk/visual_index.xml
@@ -50,6 +50,12 @@
<link linkend="GtkPaned">
<inlinegraphic fileref="panes.png" format="PNG"></inlinegraphic>
</link>
+ <link linkend="GtkPageSetupUnixDialog">
+ <inlinegraphic fileref="pagesetupdialog.png" format="PNG"></inlinegraphic>
+ </link>
+ <link linkend="GtkPrintUnixDialog">
+ <inlinegraphic fileref="printdialog.png" format="PNG"></inlinegraphic>
+ </link>
<link linkend="GtkProgressBar">
<inlinegraphic fileref="progressbar.png" format="PNG"></inlinegraphic>
</link>
diff --git a/docs/tools/widgets.c b/docs/tools/widgets.c
index 4d822610bf..2675632b63 100644
--- a/docs/tools/widgets.c
+++ b/docs/tools/widgets.c
@@ -1,3 +1,5 @@
+#include <gtk/gtkprintunixdialog.h>
+#include <gtk/gtkpagesetupunixdialog.h>
#include <gdk/gdkkeysyms.h>
#include <X11/Xatom.h>
#include <gdkx.h>
@@ -667,6 +669,43 @@ create_filesel (void)
}
static WidgetInfo *
+create_print_dialog (void)
+{
+ WidgetInfo *info;
+ GtkWidget *widget;
+
+ widget = gtk_print_unix_dialog_new ("Print Dialog", NULL);
+ gtk_widget_set_size_request (widget, 505, 350);
+ info = new_widget_info ("printdialog", widget, ASIS);
+ info->include_decorations = TRUE;
+
+ return info;
+}
+
+static WidgetInfo *
+create_page_setup_dialog (void)
+{
+ WidgetInfo *info;
+ GtkWidget *widget;
+ GtkPageSetup *page_setup;
+ GtkPrintSettings *settings;
+
+ page_setup = gtk_page_setup_new ();
+ settings = gtk_print_settings_new ();
+ widget = gtk_page_setup_unix_dialog_new ("Page Setup Dialog", NULL);
+ gtk_page_setup_unix_dialog_set_page_setup (GTK_PAGE_SETUP_UNIX_DIALOG (widget),
+ page_setup);
+ gtk_page_setup_unix_dialog_set_print_settings (GTK_PAGE_SETUP_UNIX_DIALOG (widget),
+ settings);
+
+ info = new_widget_info ("pagesetupdialog", widget, ASIS);
+ gtk_widget_set_app_paintable (info->window, FALSE);
+ info->include_decorations = TRUE;
+
+ return info;
+}
+
+static WidgetInfo *
create_toolbar (void)
{
GtkWidget *widget, *menu;
@@ -940,6 +979,8 @@ get_all_widgets (void)
retval = g_list_prepend (retval, create_fontsel ());
retval = g_list_prepend (retval, create_assistant ());
retval = g_list_prepend (retval, create_recent_chooser_dialog ());
+ retval = g_list_prepend (retval, create_page_setup_dialog ());
+ retval = g_list_prepend (retval, create_print_dialog ());
return retval;
}