<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GLib" version="2.0"/>
  <include name="Gdk" version="4.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Gtk" version="4.0"/>
  <package name="papers-document-4.0"/>
  <namespace name="PapersDocument"
             version="4.0"
             shared-library="libppsdocument-4.0.so.5"
             c:identifier-prefixes="Pps"
             c:symbol-prefixes="pps">
    <alias name="BackendPage" c:type="PpsBackendPage">
      <source-position filename="libdocument/pps-page.h" line="38"/>
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="BackendPageDestroyFunc" c:type="PpsBackendPageDestroyFunc">
      <source-position filename="libdocument/pps-page.h" line="39"/>
      <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
    </alias>
    <class name="Annotation"
           c:symbol-prefix="annotation"
           c:type="PpsAnnotation"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="PpsAnnotation"
           glib:get-type="pps_annotation_get_type"
           glib:type-struct="AnnotationClass">
      <source-position filename="libdocument/pps-annotation.h" line="44"/>
      <method name="equal" c:identifier="pps_annotation_equal">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="356">Compare @annot and @other.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="363">%TRUE if @annot is equal to @other, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="358">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="359">another #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_annotation_type"
              c:identifier="pps_annotation_get_annotation_type">
        <source-position filename="libdocument/pps-annotation.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="AnnotationType" c:type="PpsAnnotationType"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_area"
              c:identifier="pps_annotation_get_area"
              glib:get-property="area"
              version="3.18">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="618">Gets the area of @annot.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="620">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
          <parameter name="area"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="621">a #PpsRectangle to be filled with the annotation area</doc>
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contents"
              c:identifier="pps_annotation_get_contents"
              glib:get-property="contents">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="378">Get the contents of @annot. The contents of
@annot is the text that is displayed in the annotation, or an
alternate description of the annotation's content for non-text annotations</doc>
        <source-position filename="libdocument/pps-annotation.h" line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="386">a string with the contents of the annotation or
%NULL if @annot has no contents.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="380">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modified"
              c:identifier="pps_annotation_get_modified"
              glib:get-property="modified">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="479">Get the last modification date of @annot.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="485">A string containing the last modification date.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="481">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="pps_annotation_get_name"
              glib:get-property="name">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="429">Get the name of @annot. The name of the annotation is a string
that uniquely indenftifies @annot amongs all the annotations
in the same page.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="437">the string with the annotation's name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="431">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page" c:identifier="pps_annotation_get_page">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="319">Get the page where @annot appears.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="325">the #PpsPage where @annot appears</doc>
          <type name="Page" c:type="PpsPage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="321">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page_index"
              c:identifier="pps_annotation_get_page_index">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="337">Get the index of the page where @annot appears. Note that the index
is 0 based.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="344">the page index.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="339">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rgba"
              c:identifier="pps_annotation_get_rgba"
              glib:get-property="rgba"
              version="3.6">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="568">Gets the color of @annot.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="126"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="570">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
          <parameter name="rgba"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="571">a #GdkRGBA to be filled with the annotation color</doc>
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_area"
              c:identifier="pps_annotation_set_area"
              glib:set-property="area"
              version="3.18">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="639">Set the area of the annotation to @area.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="646">%TRUE if the area has been changed, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="641">an #Ppsannotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="642">a #PpsRectangle</doc>
            <type name="Rectangle" c:type="const PpsRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_contents"
              c:identifier="pps_annotation_set_contents"
              glib:set-property="contents">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="399">Set the contents of @annot. You can monitor
changes in the annotation's  contents by connecting to
notify::contents signal of @annot.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="407">%TRUE if the contents have been changed, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="401">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
          <parameter name="contents" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modified"
              c:identifier="pps_annotation_set_modified"
              glib:set-property="modified">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="497">Set the last modification date of @annot to @modified. To
set the last modification date using a #time_t, use
pps_annotation_set_modified_from_time_t() instead. You can monitor
changes to the last modification date by connecting to the
notify::modified signal on @annot.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="508">%TRUE if the last modification date has been updated, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="499">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
          <parameter name="modified" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="500">string with the last modification date.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modified_from_time_t"
              c:identifier="pps_annotation_set_modified_from_time_t">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="530">Set the last modification date of @annot to @utime.  You can
monitor changes to the last modification date by connecting to the
notify::modified sinal on @annot.
For the time-format used, see pps_document_misc_format_datetime().</doc>
        <source-position filename="libdocument/pps-annotation.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="540">%TRUE if the last modified date has been updated, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="532">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
          <parameter name="utime" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="533">a #time_t</doc>
            <type name="time_t" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="pps_annotation_set_name"
              glib:set-property="name">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="449">Set the name of @annot.
You can monitor changes of the annotation name by connecting
to the notify::name signal on @annot.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="115"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="457">%TRUE when the name has been changed, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="451">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rgba"
              c:identifier="pps_annotation_set_rgba"
              glib:set-property="rgba"
              version="3.6">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="589">Set the color of the annotation to @rgba.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="596">%TRUE if the color has been changed, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="591">an #Ppsannotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
          <parameter name="rgba" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="592">a #GdkRGBA</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <property name="area"
                writable="1"
                transfer-ownership="none"
                setter="set_area"
                getter="get_area">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="292">The area of the page where the annotation is placed.

Since 3.18</doc>
        <type name="Rectangle"/>
      </property>
      <property name="contents"
                writable="1"
                transfer-ownership="none"
                setter="set_contents"
                getter="get_contents"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="modified"
                writable="1"
                transfer-ownership="none"
                setter="set_modified"
                getter="get_modified"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name"
                writable="1"
                transfer-ownership="none"
                setter="set_name"
                getter="get_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="page"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Page"/>
      </property>
      <property name="rgba"
                version="3.6"
                writable="1"
                transfer-ownership="none"
                setter="set_rgba"
                getter="get_rgba">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="278">The colour of the annotation as a #GdkRGBA.</doc>
        <type name="Gdk.RGBA"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <class name="AnnotationAttachment"
           c:symbol-prefix="annotation_attachment"
           c:type="PpsAnnotationAttachment"
           parent="Annotation"
           glib:type-name="PpsAnnotationAttachment"
           glib:get-type="pps_annotation_attachment_get_type"
           glib:type-struct="AnnotationAttachmentClass">
      <source-position filename="libdocument/pps-annotation.h" line="60"/>
      <implements name="AnnotationMarkup"/>
      <constructor name="new" c:identifier="pps_annotation_attachment_new">
        <source-position filename="libdocument/pps-annotation.h" line="184"/>
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="PpsAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="PpsAttachment*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_attachment"
              c:identifier="pps_annotation_attachment_get_attachment"
              glib:get-property="attachment">
        <source-position filename="libdocument/pps-annotation.h" line="187"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1287">an #PpsAttachment</doc>
          <type name="Attachment" c:type="PpsAttachment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1285">an #PpsAnnotationAttachment</doc>
            <type name="AnnotationAttachment"
                  c:type="PpsAnnotationAttachment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_attachment"
              c:identifier="pps_annotation_attachment_set_attachment"
              glib:set-property="attachment">
        <source-position filename="libdocument/pps-annotation.h" line="189"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <type name="AnnotationAttachment"
                  c:type="PpsAnnotationAttachment*"/>
          </instance-parameter>
          <parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="PpsAttachment*"/>
          </parameter>
        </parameters>
      </method>
      <property name="attachment"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_attachment"
                getter="get_attachment">
        <type name="Attachment"/>
      </property>
    </class>
    <record name="AnnotationAttachmentClass"
            c:type="PpsAnnotationAttachmentClass"
            glib:is-gtype-struct-for="AnnotationAttachment">
      <source-position filename="libdocument/pps-annotation.h" line="60"/>
      <field name="parent_class">
        <type name="AnnotationClass" c:type="PpsAnnotationClass"/>
      </field>
    </record>
    <record name="AnnotationClass"
            c:type="PpsAnnotationClass"
            glib:is-gtype-struct-for="Annotation">
      <source-position filename="libdocument/pps-annotation.h" line="44"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <interface name="AnnotationMarkup"
               c:symbol-prefix="annotation_markup"
               c:type="PpsAnnotationMarkup"
               glib:type-name="PpsAnnotationMarkup"
               glib:get-type="pps_annotation_markup_get_type"
               glib:type-struct="AnnotationMarkupInterface">
      <source-position filename="libdocument/pps-annotation.h" line="50"/>
      <prerequisite name="Annotation"/>
      <method name="can_have_popup"
              c:identifier="pps_annotation_markup_can_have_popup">
        <source-position filename="libdocument/pps-annotation.h" line="150"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="markup" transfer-ownership="none">
            <type name="AnnotationMarkup" c:type="PpsAnnotationMarkup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_label"
              c:identifier="pps_annotation_markup_get_label"
              glib:get-property="label">
        <source-position filename="libdocument/pps-annotation.h" line="140"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="markup" transfer-ownership="none">
            <type name="AnnotationMarkup" c:type="PpsAnnotationMarkup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_opacity"
              c:identifier="pps_annotation_markup_get_opacity"
              glib:get-property="opacity">
        <source-position filename="libdocument/pps-annotation.h" line="145"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="markup" transfer-ownership="none">
            <type name="AnnotationMarkup" c:type="PpsAnnotationMarkup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_popup_is_open"
              c:identifier="pps_annotation_markup_get_popup_is_open"
              glib:get-property="popup-is-open">
        <source-position filename="libdocument/pps-annotation.h" line="163"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="markup" transfer-ownership="none">
            <type name="AnnotationMarkup" c:type="PpsAnnotationMarkup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rectangle"
              c:identifier="pps_annotation_markup_get_rectangle"
              glib:get-property="rectangle">
        <source-position filename="libdocument/pps-annotation.h" line="157"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="markup" transfer-ownership="none">
            <type name="AnnotationMarkup" c:type="PpsAnnotationMarkup*"/>
          </instance-parameter>
          <parameter name="pps_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_popup" c:identifier="pps_annotation_markup_has_popup">
        <source-position filename="libdocument/pps-annotation.h" line="152"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="markup" transfer-ownership="none">
            <type name="AnnotationMarkup" c:type="PpsAnnotationMarkup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_has_popup"
              c:identifier="pps_annotation_markup_set_has_popup"
              glib:set-property="has-popup">
        <source-position filename="libdocument/pps-annotation.h" line="154"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="markup" transfer-ownership="none">
            <type name="AnnotationMarkup" c:type="PpsAnnotationMarkup*"/>
          </instance-parameter>
          <parameter name="has_popup" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label"
              c:identifier="pps_annotation_markup_set_label"
              glib:set-property="label">
        <source-position filename="libdocument/pps-annotation.h" line="142"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="markup" transfer-ownership="none">
            <type name="AnnotationMarkup" c:type="PpsAnnotationMarkup*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_opacity"
              c:identifier="pps_annotation_markup_set_opacity"
              glib:set-property="opacity">
        <source-position filename="libdocument/pps-annotation.h" line="147"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="markup" transfer-ownership="none">
            <type name="AnnotationMarkup" c:type="PpsAnnotationMarkup*"/>
          </instance-parameter>
          <parameter name="opacity" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_popup_is_open"
              c:identifier="pps_annotation_markup_set_popup_is_open"
              glib:set-property="popup-is-open">
        <source-position filename="libdocument/pps-annotation.h" line="165"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="markup" transfer-ownership="none">
            <type name="AnnotationMarkup" c:type="PpsAnnotationMarkup*"/>
          </instance-parameter>
          <parameter name="is_open" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rectangle"
              c:identifier="pps_annotation_markup_set_rectangle"
              glib:set-property="rectangle">
        <source-position filename="libdocument/pps-annotation.h" line="160"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="markup" transfer-ownership="none">
            <type name="AnnotationMarkup" c:type="PpsAnnotationMarkup*"/>
          </instance-parameter>
          <parameter name="pps_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const PpsRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <property name="can-have-popup"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="has-popup"
                writable="1"
                transfer-ownership="none"
                setter="set_has_popup"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="label"
                writable="1"
                transfer-ownership="none"
                setter="set_label"
                getter="get_label"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="opacity"
                writable="1"
                transfer-ownership="none"
                setter="set_opacity"
                getter="get_opacity"
                default-value="1.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="popup-is-open"
                writable="1"
                transfer-ownership="none"
                setter="set_popup_is_open"
                getter="get_popup_is_open"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="rectangle"
                writable="1"
                transfer-ownership="none"
                setter="set_rectangle"
                getter="get_rectangle">
        <type name="Rectangle"/>
      </property>
    </interface>
    <record name="AnnotationMarkupInterface"
            c:type="PpsAnnotationMarkupInterface"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="AnnotationMarkup">
      <source-position filename="libdocument/pps-annotation.h" line="50"/>
    </record>
    <class name="AnnotationText"
           c:symbol-prefix="annotation_text"
           c:type="PpsAnnotationText"
           parent="Annotation"
           glib:type-name="PpsAnnotationText"
           glib:get-type="pps_annotation_text_get_type"
           glib:type-struct="AnnotationTextClass">
      <source-position filename="libdocument/pps-annotation.h" line="55"/>
      <implements name="AnnotationMarkup"/>
      <constructor name="new" c:identifier="pps_annotation_text_new">
        <source-position filename="libdocument/pps-annotation.h" line="170"/>
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="PpsAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_icon"
              c:identifier="pps_annotation_text_get_icon"
              glib:get-property="icon">
        <source-position filename="libdocument/pps-annotation.h" line="172"/>
        <return-value transfer-ownership="none">
          <type name="AnnotationTextIcon" c:type="PpsAnnotationTextIcon"/>
        </return-value>
        <parameters>
          <instance-parameter name="text" transfer-ownership="none">
            <type name="AnnotationText" c:type="PpsAnnotationText*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_open"
              c:identifier="pps_annotation_text_get_is_open"
              glib:get-property="is-open">
        <source-position filename="libdocument/pps-annotation.h" line="177"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text" transfer-ownership="none">
            <type name="AnnotationText" c:type="PpsAnnotationText*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_icon"
              c:identifier="pps_annotation_text_set_icon"
              glib:set-property="icon">
        <source-position filename="libdocument/pps-annotation.h" line="174"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text" transfer-ownership="none">
            <type name="AnnotationText" c:type="PpsAnnotationText*"/>
          </instance-parameter>
          <parameter name="icon" transfer-ownership="none">
            <type name="AnnotationTextIcon" c:type="PpsAnnotationTextIcon"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_is_open"
              c:identifier="pps_annotation_text_set_is_open"
              glib:set-property="is-open">
        <source-position filename="libdocument/pps-annotation.h" line="179"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text" transfer-ownership="none">
            <type name="AnnotationText" c:type="PpsAnnotationText*"/>
          </instance-parameter>
          <parameter name="is_open" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="icon"
                writable="1"
                transfer-ownership="none"
                setter="set_icon"
                getter="get_icon"
                default-value="PPS_ANNOTATION_TEXT_ICON_NOTE">
        <type name="AnnotationTextIcon"/>
      </property>
      <property name="is-open"
                writable="1"
                transfer-ownership="none"
                setter="set_is_open"
                getter="get_is_open"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <record name="AnnotationTextClass"
            c:type="PpsAnnotationTextClass"
            glib:is-gtype-struct-for="AnnotationText">
      <source-position filename="libdocument/pps-annotation.h" line="55"/>
      <field name="parent_class">
        <type name="AnnotationClass" c:type="PpsAnnotationClass"/>
      </field>
    </record>
    <enumeration name="AnnotationTextIcon"
                 glib:type-name="PpsAnnotationTextIcon"
                 glib:get-type="pps_annotation_text_icon_get_type"
                 c:type="PpsAnnotationTextIcon">
      <member name="note"
              value="0"
              c:identifier="PPS_ANNOTATION_TEXT_ICON_NOTE"
              glib:nick="note"
              glib:name="PPS_ANNOTATION_TEXT_ICON_NOTE">
      </member>
      <member name="comment"
              value="1"
              c:identifier="PPS_ANNOTATION_TEXT_ICON_COMMENT"
              glib:nick="comment"
              glib:name="PPS_ANNOTATION_TEXT_ICON_COMMENT">
      </member>
      <member name="key"
              value="2"
              c:identifier="PPS_ANNOTATION_TEXT_ICON_KEY"
              glib:nick="key"
              glib:name="PPS_ANNOTATION_TEXT_ICON_KEY">
      </member>
      <member name="help"
              value="3"
              c:identifier="PPS_ANNOTATION_TEXT_ICON_HELP"
              glib:nick="help"
              glib:name="PPS_ANNOTATION_TEXT_ICON_HELP">
      </member>
      <member name="new_paragraph"
              value="4"
              c:identifier="PPS_ANNOTATION_TEXT_ICON_NEW_PARAGRAPH"
              glib:nick="new-paragraph"
              glib:name="PPS_ANNOTATION_TEXT_ICON_NEW_PARAGRAPH">
      </member>
      <member name="paragraph"
              value="5"
              c:identifier="PPS_ANNOTATION_TEXT_ICON_PARAGRAPH"
              glib:nick="paragraph"
              glib:name="PPS_ANNOTATION_TEXT_ICON_PARAGRAPH">
      </member>
      <member name="insert"
              value="6"
              c:identifier="PPS_ANNOTATION_TEXT_ICON_INSERT"
              glib:nick="insert"
              glib:name="PPS_ANNOTATION_TEXT_ICON_INSERT">
      </member>
      <member name="cross"
              value="7"
              c:identifier="PPS_ANNOTATION_TEXT_ICON_CROSS"
              glib:nick="cross"
              glib:name="PPS_ANNOTATION_TEXT_ICON_CROSS">
      </member>
      <member name="circle"
              value="8"
              c:identifier="PPS_ANNOTATION_TEXT_ICON_CIRCLE"
              glib:nick="circle"
              glib:name="PPS_ANNOTATION_TEXT_ICON_CIRCLE">
      </member>
      <member name="unknown"
              value="9"
              c:identifier="PPS_ANNOTATION_TEXT_ICON_UNKNOWN"
              glib:nick="unknown"
              glib:name="PPS_ANNOTATION_TEXT_ICON_UNKNOWN">
      </member>
    </enumeration>
    <class name="AnnotationTextMarkup"
           c:symbol-prefix="annotation_text_markup"
           c:type="PpsAnnotationTextMarkup"
           parent="Annotation"
           glib:type-name="PpsAnnotationTextMarkup"
           glib:get-type="pps_annotation_text_markup_get_type"
           glib:type-struct="AnnotationTextMarkupClass">
      <source-position filename="libdocument/pps-annotation.h" line="65"/>
      <implements name="AnnotationMarkup"/>
      <constructor name="highlight_new"
                   c:identifier="pps_annotation_text_markup_highlight_new">
        <source-position filename="libdocument/pps-annotation.h" line="194"/>
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="PpsAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="squiggly_new"
                   c:identifier="pps_annotation_text_markup_squiggly_new">
        <source-position filename="libdocument/pps-annotation.h" line="200"/>
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="PpsAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="strike_out_new"
                   c:identifier="pps_annotation_text_markup_strike_out_new">
        <source-position filename="libdocument/pps-annotation.h" line="196"/>
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="PpsAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="underline_new"
                   c:identifier="pps_annotation_text_markup_underline_new">
        <source-position filename="libdocument/pps-annotation.h" line="198"/>
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="PpsAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_markup_type"
              c:identifier="pps_annotation_text_markup_get_markup_type">
        <source-position filename="libdocument/pps-annotation.h" line="202"/>
        <return-value transfer-ownership="none">
          <type name="AnnotationTextMarkupType"
                c:type="PpsAnnotationTextMarkupType"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <type name="AnnotationTextMarkup"
                  c:type="PpsAnnotationTextMarkup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_markup_type"
              c:identifier="pps_annotation_text_markup_set_markup_type">
        <source-position filename="libdocument/pps-annotation.h" line="204"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <type name="AnnotationTextMarkup"
                  c:type="PpsAnnotationTextMarkup*"/>
          </instance-parameter>
          <parameter name="markup_type" transfer-ownership="none">
            <type name="AnnotationTextMarkupType"
                  c:type="PpsAnnotationTextMarkupType"/>
          </parameter>
        </parameters>
      </method>
      <property name="type"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="PPS_ANNOTATION_TEXT_MARKUP_HIGHLIGHT">
        <type name="AnnotationTextMarkupType"/>
      </property>
    </class>
    <record name="AnnotationTextMarkupClass"
            c:type="PpsAnnotationTextMarkupClass"
            glib:is-gtype-struct-for="AnnotationTextMarkup">
      <source-position filename="libdocument/pps-annotation.h" line="65"/>
      <field name="parent_class">
        <type name="AnnotationClass" c:type="PpsAnnotationClass"/>
      </field>
    </record>
    <enumeration name="AnnotationTextMarkupType"
                 glib:type-name="PpsAnnotationTextMarkupType"
                 glib:get-type="pps_annotation_text_markup_type_get_type"
                 c:type="PpsAnnotationTextMarkupType">
      <member name="highlight"
              value="0"
              c:identifier="PPS_ANNOTATION_TEXT_MARKUP_HIGHLIGHT"
              glib:nick="highlight"
              glib:name="PPS_ANNOTATION_TEXT_MARKUP_HIGHLIGHT">
      </member>
      <member name="strike_out"
              value="1"
              c:identifier="PPS_ANNOTATION_TEXT_MARKUP_STRIKE_OUT"
              glib:nick="strike-out"
              glib:name="PPS_ANNOTATION_TEXT_MARKUP_STRIKE_OUT">
      </member>
      <member name="underline"
              value="2"
              c:identifier="PPS_ANNOTATION_TEXT_MARKUP_UNDERLINE"
              glib:nick="underline"
              glib:name="PPS_ANNOTATION_TEXT_MARKUP_UNDERLINE">
      </member>
      <member name="squiggly"
              value="3"
              c:identifier="PPS_ANNOTATION_TEXT_MARKUP_SQUIGGLY"
              glib:nick="squiggly"
              glib:name="PPS_ANNOTATION_TEXT_MARKUP_SQUIGGLY">
      </member>
    </enumeration>
    <enumeration name="AnnotationType"
                 glib:type-name="PpsAnnotationType"
                 glib:get-type="pps_annotation_type_get_type"
                 c:type="PpsAnnotationType">
      <member name="unknown"
              value="0"
              c:identifier="PPS_ANNOTATION_TYPE_UNKNOWN"
              glib:nick="unknown"
              glib:name="PPS_ANNOTATION_TYPE_UNKNOWN">
      </member>
      <member name="text"
              value="1"
              c:identifier="PPS_ANNOTATION_TYPE_TEXT"
              glib:nick="text"
              glib:name="PPS_ANNOTATION_TYPE_TEXT">
      </member>
      <member name="attachment"
              value="2"
              c:identifier="PPS_ANNOTATION_TYPE_ATTACHMENT"
              glib:nick="attachment"
              glib:name="PPS_ANNOTATION_TYPE_ATTACHMENT">
      </member>
      <member name="text_markup"
              value="3"
              c:identifier="PPS_ANNOTATION_TYPE_TEXT_MARKUP"
              glib:nick="text-markup"
              glib:name="PPS_ANNOTATION_TYPE_TEXT_MARKUP">
      </member>
    </enumeration>
    <enumeration name="AnnotationsOverMarkup"
                 glib:type-name="PpsAnnotationsOverMarkup"
                 glib:get-type="pps_annotations_over_markup_get_type"
                 c:type="PpsAnnotationsOverMarkup">
      <member name="not_implemented"
              value="0"
              c:identifier="PPS_ANNOTATION_OVER_MARKUP_NOT_IMPLEMENTED"
              glib:nick="not-implemented"
              glib:name="PPS_ANNOTATION_OVER_MARKUP_NOT_IMPLEMENTED">
      </member>
      <member name="unknown"
              value="1"
              c:identifier="PPS_ANNOTATION_OVER_MARKUP_UNKNOWN"
              glib:nick="unknown"
              glib:name="PPS_ANNOTATION_OVER_MARKUP_UNKNOWN">
      </member>
      <member name="yes"
              value="2"
              c:identifier="PPS_ANNOTATION_OVER_MARKUP_YES"
              glib:nick="yes"
              glib:name="PPS_ANNOTATION_OVER_MARKUP_YES">
      </member>
      <member name="not"
              value="3"
              c:identifier="PPS_ANNOTATION_OVER_MARKUP_NOT"
              glib:nick="not"
              glib:name="PPS_ANNOTATION_OVER_MARKUP_NOT">
      </member>
    </enumeration>
    <bitfield name="AnnotationsSaveMask"
              glib:type-name="PpsAnnotationsSaveMask"
              glib:get-type="pps_annotations_save_mask_get_type"
              c:type="PpsAnnotationsSaveMask">
      <member name="none"
              value="0"
              c:identifier="PPS_ANNOTATIONS_SAVE_NONE"
              glib:nick="none"
              glib:name="PPS_ANNOTATIONS_SAVE_NONE">
      </member>
      <member name="contents"
              value="1"
              c:identifier="PPS_ANNOTATIONS_SAVE_CONTENTS"
              glib:nick="contents"
              glib:name="PPS_ANNOTATIONS_SAVE_CONTENTS">
      </member>
      <member name="color"
              value="2"
              c:identifier="PPS_ANNOTATIONS_SAVE_COLOR"
              glib:nick="color"
              glib:name="PPS_ANNOTATIONS_SAVE_COLOR">
      </member>
      <member name="area"
              value="4"
              c:identifier="PPS_ANNOTATIONS_SAVE_AREA"
              glib:nick="area"
              glib:name="PPS_ANNOTATIONS_SAVE_AREA">
      </member>
      <member name="label"
              value="8"
              c:identifier="PPS_ANNOTATIONS_SAVE_LABEL"
              glib:nick="label"
              glib:name="PPS_ANNOTATIONS_SAVE_LABEL">
      </member>
      <member name="opacity"
              value="16"
              c:identifier="PPS_ANNOTATIONS_SAVE_OPACITY"
              glib:nick="opacity"
              glib:name="PPS_ANNOTATIONS_SAVE_OPACITY">
      </member>
      <member name="popup_rect"
              value="32"
              c:identifier="PPS_ANNOTATIONS_SAVE_POPUP_RECT"
              glib:nick="popup-rect"
              glib:name="PPS_ANNOTATIONS_SAVE_POPUP_RECT">
      </member>
      <member name="popup_is_open"
              value="64"
              c:identifier="PPS_ANNOTATIONS_SAVE_POPUP_IS_OPEN"
              glib:nick="popup-is-open"
              glib:name="PPS_ANNOTATIONS_SAVE_POPUP_IS_OPEN">
      </member>
      <member name="text_is_open"
              value="128"
              c:identifier="PPS_ANNOTATIONS_SAVE_TEXT_IS_OPEN"
              glib:nick="text-is-open"
              glib:name="PPS_ANNOTATIONS_SAVE_TEXT_IS_OPEN">
      </member>
      <member name="text_icon"
              value="256"
              c:identifier="PPS_ANNOTATIONS_SAVE_TEXT_ICON"
              glib:nick="text-icon"
              glib:name="PPS_ANNOTATIONS_SAVE_TEXT_ICON">
      </member>
      <member name="attachment"
              value="512"
              c:identifier="PPS_ANNOTATIONS_SAVE_ATTACHMENT"
              glib:nick="attachment"
              glib:name="PPS_ANNOTATIONS_SAVE_ATTACHMENT">
      </member>
      <member name="text_markup_type"
              value="1024"
              c:identifier="PPS_ANNOTATIONS_SAVE_TEXT_MARKUP_TYPE"
              glib:nick="text-markup-type"
              glib:name="PPS_ANNOTATIONS_SAVE_TEXT_MARKUP_TYPE">
      </member>
      <member name="all"
              value="2047"
              c:identifier="PPS_ANNOTATIONS_SAVE_ALL"
              glib:nick="all"
              glib:name="PPS_ANNOTATIONS_SAVE_ALL">
      </member>
    </bitfield>
    <class name="Attachment"
           c:symbol-prefix="attachment"
           c:type="PpsAttachment"
           parent="GObject.Object"
           glib:type-name="PpsAttachment"
           glib:get-type="pps_attachment_get_type"
           glib:type-struct="AttachmentClass">
      <source-position filename="libdocument/pps-attachment.h" line="42"/>
      <constructor name="new" c:identifier="pps_attachment_new">
        <source-position filename="libdocument/pps-attachment.h" line="48"/>
        <return-value transfer-ownership="full">
          <type name="Attachment" c:type="PpsAttachment*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="mtime" transfer-ownership="none">
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
          <parameter name="ctime" transfer-ownership="none">
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="error_quark" c:identifier="pps_attachment_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <method name="get_creation_datetime"
              c:identifier="pps_attachment_get_creation_datetime">
        <source-position filename="libdocument/pps-attachment.h" line="63"/>
        <return-value transfer-ownership="full">
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="PpsAttachment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="pps_attachment_get_description">
        <source-position filename="libdocument/pps-attachment.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="PpsAttachment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mime_type" c:identifier="pps_attachment_get_mime_type">
        <source-position filename="libdocument/pps-attachment.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="PpsAttachment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modification_datetime"
              c:identifier="pps_attachment_get_modification_datetime">
        <source-position filename="libdocument/pps-attachment.h" line="61"/>
        <return-value transfer-ownership="full">
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="PpsAttachment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="pps_attachment_get_name">
        <source-position filename="libdocument/pps-attachment.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="PpsAttachment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="open" c:identifier="pps_attachment_open" throws="1">
        <source-position filename="libdocument/pps-attachment.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="PpsAttachment*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="Gio.AppLaunchContext" c:type="GAppLaunchContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save" c:identifier="pps_attachment_save" throws="1">
        <source-position filename="libdocument/pps-attachment.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="PpsAttachment*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <property name="cdatetime"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GLib.DateTime"/>
      </property>
      <property name="data"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="description"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="mdatetime"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GLib.DateTime"/>
      </property>
      <property name="name"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="size"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="AttachmentClass"
            c:type="PpsAttachmentClass"
            glib:is-gtype-struct-for="Attachment">
      <source-position filename="libdocument/pps-attachment.h" line="42"/>
      <field name="base_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <function-macro name="CHECK_VERSION"
                    c:identifier="PPS_CHECK_VERSION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="libdocument/pps-version.h"
           line="45">Macro to check the library version at compile time.
It returns &lt;literal&gt;1&lt;/literal&gt; if the version of EV is greater or
equal to the required one, and &lt;literal&gt;0&lt;/literal&gt; otherwise.</doc>
      <source-position filename="libdocument/pps-version.h" line="54"/>
      <parameters>
        <parameter name="major">
          <doc xml:space="preserve"
               filename="libdocument/pps-version.h"
               line="47">required major version</doc>
        </parameter>
        <parameter name="minor">
          <doc xml:space="preserve"
               filename="libdocument/pps-version.h"
               line="48">required minor version</doc>
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="CompressionType"
                 glib:type-name="PpsCompressionType"
                 glib:get-type="pps_compression_type_get_type"
                 c:type="PpsCompressionType">
      <member name="none"
              value="0"
              c:identifier="PPS_COMPRESSION_NONE"
              glib:nick="none"
              glib:name="PPS_COMPRESSION_NONE">
      </member>
      <member name="bzip2"
              value="1"
              c:identifier="PPS_COMPRESSION_BZIP2"
              glib:nick="bzip2"
              glib:name="PPS_COMPRESSION_BZIP2">
      </member>
      <member name="gzip"
              value="2"
              c:identifier="PPS_COMPRESSION_GZIP"
              glib:nick="gzip"
              glib:name="PPS_COMPRESSION_GZIP">
      </member>
      <member name="lzma"
              value="3"
              c:identifier="PPS_COMPRESSION_LZMA"
              glib:nick="lzma"
              glib:name="PPS_COMPRESSION_LZMA">
      </member>
    </enumeration>
    <function-macro name="DEPRECATED_FOR"
                    c:identifier="PPS_DEPRECATED_FOR"
                    introspectable="0">
      <source-position filename="libdocument/pps-macros.h" line="23"/>
      <parameters>
        <parameter name="f">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Document"
           c:symbol-prefix="document"
           c:type="PpsDocument"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="PpsDocument"
           glib:get-type="pps_document_get_type"
           glib:type-struct="DocumentClass">
      <source-position filename="libdocument/pps-document.h" line="120"/>
      <function name="factory_add_filters"
                c:identifier="pps_document_factory_add_filters">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-factory.c"
             line="483">Adds some file filters to @dialog.

Always add a "All documents" format.

If @document is not %NULL, adds a #GtkFileFilter for @document's MIME type.

If @document is %NULL, adds a #GtkFileFilter for each document type that papers
can handle.</doc>
        <source-position filename="libdocument/pps-document-factory.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-factory.c"
                 line="485">a #GtkFileDialog</doc>
            <type name="Gtk.FileDialog" c:type="GtkFileDialog*"/>
          </parameter>
          <parameter name="document"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-factory.c"
                 line="486">a #PpsDocument, or %NULL</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </parameter>
        </parameters>
      </function>
      <function name="factory_get_document"
                c:identifier="pps_document_factory_get_document"
                throws="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-factory.c"
             line="388">Creates a #PpsDocument for the document at @uri; or, if no backend handling
the document's type is found, or an error occurred on opening the document,
returns %NULL and fills in @error.
If the document is encrypted, it is returned but also @error is set to
%PPS_DOCUMENT_ERROR_ENCRYPTED.</doc>
        <source-position filename="libdocument/pps-document-factory.h"
                         line="37"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-factory.c"
               line="399">a new #PpsDocument, or %NULL</doc>
          <type name="Document" c:type="PpsDocument*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-factory.c"
                 line="390">an URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="factory_get_document_for_fd"
                c:identifier="pps_document_factory_get_document_for_fd"
                version="42.0"
                throws="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-factory.c"
             line="409">Synchronously creates a #PpsDocument for the document from @fd using the backend
for loading documents of type @mime_type; or, if the backend does not support
loading from file descriptors, or an error occurred on opening the document,
returns %NULL and fills in @error.
If the document is encrypted, it is returned but also @error is set to
%PPS_DOCUMENT_ERROR_ENCRYPTED.

If the mime type cannot be inferred from the file descriptor, and @mime_type is %NULL,
an error is returned.

Note that this function takes ownership of @fd; you must not ever
operate on it again. It will be closed automatically if the document
is destroyed, or if this function returns %NULL.</doc>
        <source-position filename="libdocument/pps-document-factory.h"
                         line="43"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-factory.c"
               line="431">a new #PpsDocument, or %NULL</doc>
          <type name="Document" c:type="PpsDocument*"/>
        </return-value>
        <parameters>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-factory.c"
                 line="411">a file descriptor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-factory.c"
                 line="412">the mime type</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-factory.c"
                 line="413">flags from #PpsDocumentLoadFlags</doc>
            <type name="DocumentLoadFlags" c:type="PpsDocumentLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-factory.c"
                 line="414">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="factory_get_document_full"
                c:identifier="pps_document_factory_get_document_full"
                throws="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-factory.c"
             line="279">Creates a #PpsDocument for the document at @uri; or, if no backend handling
the document's type is found, or an error occurred on opening the document,
returns %NULL and fills in @error.
If the document is encrypted, it is returned but also @error is set to
%PPS_DOCUMENT_ERROR_ENCRYPTED.</doc>
        <source-position filename="libdocument/pps-document-factory.h"
                         line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-factory.c"
               line="291">a new #PpsDocument, or %NULL</doc>
          <type name="Document" c:type="PpsDocument*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-factory.c"
                 line="281">an URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-factory.c"
                 line="282">flags from #PpsDocumentLoadFlags</doc>
            <type name="DocumentLoadFlags" c:type="PpsDocumentLoadFlags"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_format_datetime"
                c:identifier="pps_document_misc_format_datetime"
                version="3.38">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-misc.c"
             line="209">Determine the preferred date and time representation for the current locale
for @dt.</doc>
        <source-position filename="libdocument/pps-document-misc.h" line="51"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-misc.c"
               line="216">a new allocated string or NULL in the case
that there was an error (such as a format specifier not being supported
in the current locale). The string should be freed with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-misc.c"
                 line="211">a #GDateTime</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_get_pointer_position"
                c:identifier="pps_document_misc_get_pointer_position">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-misc.c"
             line="228">Get the pointer's x and y position relative to @widget.</doc>
        <source-position filename="libdocument/pps-document-misc.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-misc.c"
                 line="230">a #GtkWidget</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-misc.c"
                 line="231">the pointer's "x" position, or -1 if the position is not
  available</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-misc.c"
                 line="233">the pointer's "y" position, or -1 if the position is not
  available</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_get_widget_dpi"
                c:identifier="pps_document_misc_get_widget_dpi">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-misc.c"
             line="161">Returns sensible guess for DPI of monitor on which given widget has been
realized. If HiDPI display, use 192, else 96.
Returns 96 as fallback value.</doc>
        <source-position filename="libdocument/pps-document-misc.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-misc.c"
               line="169">DPI as gdouble</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-misc.c"
                 line="163">a #GtkWidget</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_pixbuf_from_surface"
                c:identifier="pps_document_misc_pixbuf_from_surface">
        <source-position filename="libdocument/pps-document-misc.h" line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-misc.c"
               line="53">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-misc.c"
                 line="51">a #cairo_surface_t</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_surface_from_pixbuf"
                c:identifier="pps_document_misc_surface_from_pixbuf">
        <source-position filename="libdocument/pps-document-misc.h" line="36"/>
        <return-value transfer-ownership="full">
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <parameter name="pixbuf" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_surface_rotate_and_scale"
                c:identifier="pps_document_misc_surface_rotate_and_scale">
        <source-position filename="libdocument/pps-document-misc.h" line="42"/>
        <return-value transfer-ownership="full">
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <parameter name="surface" transfer-ownership="none">
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
          <parameter name="dest_width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="dest_height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="dest_rotation" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_texture_from_surface"
                c:identifier="pps_document_misc_texture_from_surface">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-misc.c"
             line="66">Convert a cairo_surface_t to #GdkTexture object.</doc>
        <source-position filename="libdocument/pps-document-misc.h" line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-misc.c"
               line="72">The converted #GdkTexture</doc>
          <type name="Gdk.Texture" c:type="GdkTexture*"/>
        </return-value>
        <parameters>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-misc.c"
                 line="68">a #cairo_surface_t</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="get_backend_info" invoker="get_backend_info">
        <source-position filename="libdocument/pps-document.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="info" transfer-ownership="none">
            <type name="DocumentBackendInfo" c:type="PpsDocumentBackendInfo*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_info" invoker="get_info">
        <doc xml:space="preserve"
             filename="libdocument/pps-document.c"
             line="657">Returns the #PpsDocumentInfo for the document.</doc>
        <source-position filename="libdocument/pps-document.h" line="98"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="663">a #PpsDocumentInfo</doc>
          <type name="DocumentInfo" c:type="PpsDocumentInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="659">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_n_pages" invoker="get_n_pages">
        <source-position filename="libdocument/pps-document.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_page" invoker="get_page">
        <source-position filename="libdocument/pps-document.h" line="86"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="540">Newly created #PpsPage for the given index.</doc>
          <type name="Page" c:type="PpsPage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="537">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="538">index of page</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_page_label" invoker="get_page_label">
        <source-position filename="libdocument/pps-document.h" line="92"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_page_size" invoker="get_page_size">
        <source-position filename="libdocument/pps-document.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="582">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="page_index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="583">index of page</doc>
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="584">return location for the width of the page, or %NULL</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="585">return location for the height of the page, or %NULL</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_thumbnail" invoker="get_thumbnail">
        <source-position filename="libdocument/pps-document.h" line="96"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="718">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="715">an #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="716">an #PpsRenderContext</doc>
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_thumbnail_surface"
                      invoker="get_thumbnail_surface"
                      version="3.14">
        <source-position filename="libdocument/pps-document.h" line="113"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="737">a #cairo_surface_t</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="734">an #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="735">an #PpsRenderContext</doc>
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="load" invoker="load" throws="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document.c"
             line="405">Loads @document from @uri.

On failure, %FALSE is returned and @error is filled in.
If the document is encrypted, PPS_DEFINE_ERROR_ENCRYPTED is returned.
If the backend cannot load the specific document, PPS_DOCUMENT_ERROR_INVALID
is returned. If the backend does not support the format for the document's
contents, PPS_DOCUMENT_ERROR_UNSUPPORTED_CONTENT is returned. Other errors
are possible too, depending on the backend used to load the document and
the URI, e.g. #GIOError, #GFileError, and #GConvertError.</doc>
        <source-position filename="libdocument/pps-document.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="421">%TRUE on success, or %FALSE on failure.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="407">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="408">the document's URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="load_fd"
                      invoker="load_fd"
                      version="42.0"
                      throws="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document.c"
             line="432">Synchronously loads the document from @fd, which must refer to
a regular file.

Note that this function takes ownership of @fd; you must not ever
operate on it again. It will be closed automatically if the document
is destroyed, or if this function returns %NULL.

See pps_document_load() for more information.</doc>
        <source-position filename="libdocument/pps-document.h" line="115"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="449">%TRUE if loading succeeded, or %FALSE on error with @error filled in</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="434">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="435">a file descriptor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="436">flags from #PpsDocumentLoadFlags</doc>
            <type name="DocumentLoadFlags" c:type="PpsDocumentLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="437">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="load_gfile" throws="1">
        <source-position filename="libdocument/pps-document.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="DocumentLoadFlags" c:type="PpsDocumentLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="load_stream" throws="1">
        <source-position filename="libdocument/pps-document.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="DocumentLoadFlags" c:type="PpsDocumentLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="render" invoker="render">
        <source-position filename="libdocument/pps-document.h" line="94"/>
        <return-value transfer-ownership="full">
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="save" invoker="save" throws="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document.c"
             line="515">Saves @document to @uri.</doc>
        <source-position filename="libdocument/pps-document.h" line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="523">%TRUE on success, or %FALSE on error with @error filled in</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="517">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="518">the target URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="check_dimensions"
              c:identifier="pps_document_check_dimensions">
        <source-position filename="libdocument/pps-document.h" line="201"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="doc_mutex_lock" c:identifier="pps_document_doc_mutex_lock">
        <source-position filename="libdocument/pps-document.h" line="127"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="doc_mutex_trylock"
              c:identifier="pps_document_doc_mutex_trylock">
        <source-position filename="libdocument/pps-document.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="doc_mutex_unlock"
              c:identifier="pps_document_doc_mutex_unlock">
        <source-position filename="libdocument/pps-document.h" line="129"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="find_page_by_label"
              c:identifier="pps_document_find_page_by_label">
        <source-position filename="libdocument/pps-document.h" line="207"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="879">%TRUE iff the page index is found</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="875">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="page_label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="876">the page label</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="page_index"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="877">the output page index</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_backend_info"
              c:identifier="pps_document_get_backend_info">
        <source-position filename="libdocument/pps-document.h" line="136"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="info" transfer-ownership="none">
            <type name="DocumentBackendInfo" c:type="PpsDocumentBackendInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_info" c:identifier="pps_document_get_info">
        <doc xml:space="preserve"
             filename="libdocument/pps-document.c"
             line="657">Returns the #PpsDocumentInfo for the document.</doc>
        <source-position filename="libdocument/pps-document.h" line="134"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="663">a #PpsDocumentInfo</doc>
          <type name="DocumentInfo" c:type="PpsDocumentInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="659">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_label_len"
              c:identifier="pps_document_get_max_label_len">
        <source-position filename="libdocument/pps-document.h" line="203"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_page_size"
              c:identifier="pps_document_get_max_page_size">
        <source-position filename="libdocument/pps-document.h" line="193"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="786">an #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="787">max page width</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="788">max page height</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_min_page_size"
              c:identifier="pps_document_get_min_page_size">
        <source-position filename="libdocument/pps-document.h" line="197"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="809">an #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="810">min page width</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="811">min page height</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_modified"
              c:identifier="pps_document_get_modified"
              glib:get-property="modified"
              version="3.28">
        <source-position filename="libdocument/pps-document.h" line="139"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="187">%TRUE iff the document has been modified.

You can monitor changes to the modification state by connecting to the
notify::modified signal on @document.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="185">an #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_pages" c:identifier="pps_document_get_n_pages">
        <source-position filename="libdocument/pps-document.h" line="163"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page" c:identifier="pps_document_get_page">
        <source-position filename="libdocument/pps-document.h" line="165"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="540">Newly created #PpsPage for the given index.</doc>
          <type name="Page" c:type="PpsPage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="537">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="538">index of page</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_page_label" c:identifier="pps_document_get_page_label">
        <source-position filename="libdocument/pps-document.h" line="173"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="page_index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_page_size" c:identifier="pps_document_get_page_size">
        <source-position filename="libdocument/pps-document.h" line="168"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="582">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="page_index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="583">index of page</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="584">return location for the width of the page, or %NULL</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="585">return location for the height of the page, or %NULL</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="pps_document_get_size">
        <source-position filename="libdocument/pps-document.h" line="185"/>
        <return-value transfer-ownership="none">
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_thumbnail" c:identifier="pps_document_get_thumbnail">
        <source-position filename="libdocument/pps-document.h" line="179"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="718">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="715">an #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="716">an #PpsRenderContext</doc>
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_thumbnail_surface"
              c:identifier="pps_document_get_thumbnail_surface"
              version="3.14">
        <source-position filename="libdocument/pps-document.h" line="182"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="737">a #cairo_surface_t</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="734">an #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="735">an #PpsRenderContext</doc>
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="pps_document_get_title">
        <source-position filename="libdocument/pps-document.h" line="189"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="pps_document_get_uri">
        <source-position filename="libdocument/pps-document.h" line="187"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_text_page_labels"
              c:identifier="pps_document_has_text_page_labels">
        <source-position filename="libdocument/pps-document.h" line="205"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_page_size_uniform"
              c:identifier="pps_document_is_page_size_uniform">
        <source-position filename="libdocument/pps-document.h" line="191"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load" c:identifier="pps_document_load" throws="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document.c"
             line="405">Loads @document from @uri.

On failure, %FALSE is returned and @error is filled in.
If the document is encrypted, PPS_DEFINE_ERROR_ENCRYPTED is returned.
If the backend cannot load the specific document, PPS_DOCUMENT_ERROR_INVALID
is returned. If the backend does not support the format for the document's
contents, PPS_DOCUMENT_ERROR_UNSUPPORTED_CONTENT is returned. Other errors
are possible too, depending on the backend used to load the document and
the URI, e.g. #GIOError, #GFileError, and #GConvertError.</doc>
        <source-position filename="libdocument/pps-document.h" line="144"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="421">%TRUE on success, or %FALSE on failure.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="407">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="408">the document's URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_fd"
              c:identifier="pps_document_load_fd"
              version="42.0"
              throws="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document.c"
             line="432">Synchronously loads the document from @fd, which must refer to
a regular file.

Note that this function takes ownership of @fd; you must not ever
operate on it again. It will be closed automatically if the document
is destroyed, or if this function returns %NULL.

See pps_document_load() for more information.</doc>
        <source-position filename="libdocument/pps-document.h" line="153"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="449">%TRUE if loading succeeded, or %FALSE on error with @error filled in</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="434">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="435">a file descriptor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="436">flags from #PpsDocumentLoadFlags</doc>
            <type name="DocumentLoadFlags" c:type="PpsDocumentLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="437">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_full"
              c:identifier="pps_document_load_full"
              throws="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document.c"
             line="352">Loads @document from @uri.

On failure, %FALSE is returned and @error is filled in.
If the document is encrypted, PPS_DEFINE_ERROR_ENCRYPTED is returned.
If the backend cannot load the specific document, PPS_DOCUMENT_ERROR_INVALID
is returned. Other errors are possible too, depending on the backend
used to load the document and the URI, e.g. #GIOError, #GFileError, and
#GConvertError.</doc>
        <source-position filename="libdocument/pps-document.h" line="148"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="368">%TRUE on success, or %FALSE on failure.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="354">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="355">the document's URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="356">flags from #PpsDocumentLoadFlags</doc>
            <type name="DocumentLoadFlags" c:type="PpsDocumentLoadFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="render" c:identifier="pps_document_render">
        <source-position filename="libdocument/pps-document.h" line="176"/>
        <return-value transfer-ownership="full">
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save" c:identifier="pps_document_save" throws="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document.c"
             line="515">Saves @document to @uri.</doc>
        <source-position filename="libdocument/pps-document.h" line="159"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="523">%TRUE on success, or %FALSE on error with @error filled in</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="517">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="518">the target URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modified"
              c:identifier="pps_document_set_modified"
              glib:set-property="modified"
              version="3.28">
        <doc xml:space="preserve"
             filename="libdocument/pps-document.c"
             line="203">Set the @document modification state as @modified.</doc>
        <source-position filename="libdocument/pps-document.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="205">an #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="modified" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="206">a boolean value to set the document as modified or not.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="modified"
                writable="1"
                transfer-ownership="none"
                setter="set_modified"
                getter="get_modified"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <interface name="DocumentAnnotations"
               c:symbol-prefix="document_annotations"
               c:type="PpsDocumentAnnotations"
               glib:type-name="PpsDocumentAnnotations"
               glib:get-type="pps_document_annotations_get_type"
               glib:type-struct="DocumentAnnotationsInterface">
      <source-position filename="libdocument/pps-document-annotations.h"
                       line="93"/>
      <virtual-method name="add_annotation" invoker="add_annotation">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="document_is_modified"
                      invoker="document_is_modified">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="81"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_annotations" invoker="get_annotations">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="79"/>
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="PpsMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="over_markup" invoker="over_markup">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="89"/>
        <return-value transfer-ownership="none">
          <type name="AnnotationsOverMarkup"
                c:type="PpsAnnotationsOverMarkup"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_annotation" invoker="remove_annotation">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="save_annotation" invoker="save_annotation">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </parameter>
          <parameter name="mask" transfer-ownership="none">
            <type name="AnnotationsSaveMask" c:type="PpsAnnotationsSaveMask"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_annotation"
              c:identifier="pps_document_annotations_add_annotation">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="can_add_annotation"
              c:identifier="pps_document_annotations_can_add_annotation">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="112"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="can_remove_annotation"
              c:identifier="pps_document_annotations_can_remove_annotation">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="114"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="document_is_modified"
              c:identifier="pps_document_annotations_document_is_modified">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="99"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_annotations"
              c:identifier="pps_document_annotations_get_annotations">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="96"/>
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="PpsMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="over_markup"
              c:identifier="pps_document_annotations_over_markup">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="116"/>
        <return-value transfer-ownership="none">
          <type name="AnnotationsOverMarkup"
                c:type="PpsAnnotationsOverMarkup"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_annotation"
              c:identifier="pps_document_annotations_remove_annotation">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_annotation"
              c:identifier="pps_document_annotations_save_annotation">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </parameter>
          <parameter name="mask" transfer-ownership="none">
            <type name="AnnotationsSaveMask" c:type="PpsAnnotationsSaveMask"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentAnnotationsInterface"
            c:type="PpsDocumentAnnotationsInterface"
            glib:is-gtype-struct-for="DocumentAnnotations">
      <source-position filename="libdocument/pps-document-annotations.h"
                       line="93"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_annotations">
        <callback name="get_annotations">
          <source-position filename="libdocument/pps-document-annotations.h"
                           line="79"/>
          <return-value transfer-ownership="full">
            <type name="MappingList" c:type="PpsMappingList*"/>
          </return-value>
          <parameters>
            <parameter name="document_annots" transfer-ownership="none">
              <type name="DocumentAnnotations"
                    c:type="PpsDocumentAnnotations*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="document_is_modified">
        <callback name="document_is_modified">
          <source-position filename="libdocument/pps-document-annotations.h"
                           line="81"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_annots" transfer-ownership="none">
              <type name="DocumentAnnotations"
                    c:type="PpsDocumentAnnotations*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_annotation">
        <callback name="add_annotation">
          <source-position filename="libdocument/pps-document-annotations.h"
                           line="82"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_annots" transfer-ownership="none">
              <type name="DocumentAnnotations"
                    c:type="PpsDocumentAnnotations*"/>
            </parameter>
            <parameter name="annot" transfer-ownership="none">
              <type name="Annotation" c:type="PpsAnnotation*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="save_annotation">
        <callback name="save_annotation">
          <source-position filename="libdocument/pps-document-annotations.h"
                           line="84"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_annots" transfer-ownership="none">
              <type name="DocumentAnnotations"
                    c:type="PpsDocumentAnnotations*"/>
            </parameter>
            <parameter name="annot" transfer-ownership="none">
              <type name="Annotation" c:type="PpsAnnotation*"/>
            </parameter>
            <parameter name="mask" transfer-ownership="none">
              <type name="AnnotationsSaveMask"
                    c:type="PpsAnnotationsSaveMask"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_annotation">
        <callback name="remove_annotation">
          <source-position filename="libdocument/pps-document-annotations.h"
                           line="87"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_annots" transfer-ownership="none">
              <type name="DocumentAnnotations"
                    c:type="PpsDocumentAnnotations*"/>
            </parameter>
            <parameter name="annot" transfer-ownership="none">
              <type name="Annotation" c:type="PpsAnnotation*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="over_markup">
        <callback name="over_markup">
          <source-position filename="libdocument/pps-document-annotations.h"
                           line="89"/>
          <return-value transfer-ownership="none">
            <type name="AnnotationsOverMarkup"
                  c:type="PpsAnnotationsOverMarkup"/>
          </return-value>
          <parameters>
            <parameter name="document_annots" transfer-ownership="none">
              <type name="DocumentAnnotations"
                    c:type="PpsDocumentAnnotations*"/>
            </parameter>
            <parameter name="annot" transfer-ownership="none">
              <type name="Annotation" c:type="PpsAnnotation*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentAttachments"
               c:symbol-prefix="document_attachments"
               c:type="PpsDocumentAttachments"
               glib:type-name="PpsDocumentAttachments"
               glib:get-type="pps_document_attachments_get_type"
               glib:type-struct="DocumentAttachmentsInterface">
      <source-position filename="libdocument/pps-document-attachments.h"
                       line="46"/>
      <virtual-method name="get_attachments" invoker="get_attachments">
        <source-position filename="libdocument/pps-document-attachments.h"
                         line="45"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-attachments.c"
               line="45">a list of #PpsAttachment objects</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Attachment"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_attachments"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-attachments.c"
                 line="43">an #PpsDocumentAttachments</doc>
            <type name="DocumentAttachments" c:type="PpsDocumentAttachments*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="has_attachments" invoker="has_attachments">
        <source-position filename="libdocument/pps-document-attachments.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_attachments"
                              transfer-ownership="none">
            <type name="DocumentAttachments" c:type="PpsDocumentAttachments*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_attachments"
              c:identifier="pps_document_attachments_get_attachments">
        <source-position filename="libdocument/pps-document-attachments.h"
                         line="51"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-attachments.c"
               line="45">a list of #PpsAttachment objects</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Attachment"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_attachments"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-attachments.c"
                 line="43">an #PpsDocumentAttachments</doc>
            <type name="DocumentAttachments" c:type="PpsDocumentAttachments*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_attachments"
              c:identifier="pps_document_attachments_has_attachments">
        <source-position filename="libdocument/pps-document-attachments.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_attachments"
                              transfer-ownership="none">
            <type name="DocumentAttachments" c:type="PpsDocumentAttachments*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentAttachmentsInterface"
            c:type="PpsDocumentAttachmentsInterface"
            glib:is-gtype-struct-for="DocumentAttachments">
      <source-position filename="libdocument/pps-document-attachments.h"
                       line="46"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="has_attachments">
        <callback name="has_attachments">
          <source-position filename="libdocument/pps-document-attachments.h"
                           line="44"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_attachments" transfer-ownership="none">
              <type name="DocumentAttachments"
                    c:type="PpsDocumentAttachments*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_attachments">
        <callback name="get_attachments">
          <source-position filename="libdocument/pps-document-attachments.h"
                           line="45"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-attachments.c"
                 line="45">a list of #PpsAttachment objects</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Attachment"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="document_attachments" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-attachments.c"
                   line="43">an #PpsDocumentAttachments</doc>
              <type name="DocumentAttachments"
                    c:type="PpsDocumentAttachments*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="DocumentBackendInfo" c:type="PpsDocumentBackendInfo">
      <source-position filename="libdocument/pps-document.h" line="72"/>
      <field name="name" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="version" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
    </record>
    <record name="DocumentClass"
            c:type="PpsDocumentClass"
            glib:is-gtype-struct-for="Document">
      <source-position filename="libdocument/pps-document.h" line="120"/>
      <field name="base_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="load">
        <callback name="load" throws="1">
          <source-position filename="libdocument/pps-document.h" line="79"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="421">%TRUE on success, or %FALSE on failure.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="407">a #PpsDocument</doc>
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="408">the document's URI</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="save">
        <callback name="save" throws="1">
          <source-position filename="libdocument/pps-document.h" line="82"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="523">%TRUE on success, or %FALSE on error with @error filled in</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="517">a #PpsDocument</doc>
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="518">the target URI</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_n_pages">
        <callback name="get_n_pages">
          <source-position filename="libdocument/pps-document.h" line="85"/>
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_page">
        <callback name="get_page">
          <source-position filename="libdocument/pps-document.h" line="86"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="540">Newly created #PpsPage for the given index.</doc>
            <type name="Page" c:type="PpsPage*"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="537">a #PpsDocument</doc>
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="538">index of page</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_page_size">
        <callback name="get_page_size">
          <source-position filename="libdocument/pps-document.h" line="88"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="582">a #PpsDocument</doc>
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
            <parameter name="page_index" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="583">index of page</doc>
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
            <parameter name="width"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full"
                       optional="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="584">return location for the width of the page, or %NULL</doc>
              <type name="gdouble" c:type="double*"/>
            </parameter>
            <parameter name="height"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full"
                       optional="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="585">return location for the height of the page, or %NULL</doc>
              <type name="gdouble" c:type="double*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_page_label">
        <callback name="get_page_label">
          <source-position filename="libdocument/pps-document.h" line="92"/>
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="render">
        <callback name="render">
          <source-position filename="libdocument/pps-document.h" line="94"/>
          <return-value transfer-ownership="full">
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <type name="RenderContext" c:type="PpsRenderContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_thumbnail">
        <callback name="get_thumbnail">
          <source-position filename="libdocument/pps-document.h" line="96"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="718">a #GdkPixbuf</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="715">an #PpsDocument</doc>
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="716">an #PpsRenderContext</doc>
              <type name="RenderContext" c:type="PpsRenderContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_info">
        <callback name="get_info">
          <source-position filename="libdocument/pps-document.h" line="98"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="663">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="PpsDocumentInfo*"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="659">a #PpsDocument</doc>
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_backend_info">
        <callback name="get_backend_info">
          <source-position filename="libdocument/pps-document.h" line="99"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
            <parameter name="info" transfer-ownership="none">
              <type name="DocumentBackendInfo"
                    c:type="PpsDocumentBackendInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="load_stream">
        <callback name="load_stream" throws="1">
          <source-position filename="libdocument/pps-document.h" line="103"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
            <parameter name="stream" transfer-ownership="none">
              <type name="Gio.InputStream" c:type="GInputStream*"/>
            </parameter>
            <parameter name="flags" transfer-ownership="none">
              <type name="DocumentLoadFlags" c:type="PpsDocumentLoadFlags"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="load_gfile">
        <callback name="load_gfile" throws="1">
          <source-position filename="libdocument/pps-document.h" line="108"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="flags" transfer-ownership="none">
              <type name="DocumentLoadFlags" c:type="PpsDocumentLoadFlags"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_thumbnail_surface">
        <callback name="get_thumbnail_surface">
          <source-position filename="libdocument/pps-document.h" line="113"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="737">a #cairo_surface_t</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="734">an #PpsDocument</doc>
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="735">an #PpsRenderContext</doc>
              <type name="RenderContext" c:type="PpsRenderContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="load_fd">
        <callback name="load_fd" throws="1">
          <source-position filename="libdocument/pps-document.h" line="115"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="449">%TRUE if loading succeeded, or %FALSE on error with @error filled in</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="434">a #PpsDocument</doc>
              <type name="Document" c:type="PpsDocument*"/>
            </parameter>
            <parameter name="fd" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="435">a file descriptor</doc>
              <type name="gint" c:type="int"/>
            </parameter>
            <parameter name="flags" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="436">flags from #PpsDocumentLoadFlags</doc>
              <type name="DocumentLoadFlags" c:type="PpsDocumentLoadFlags"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="437">a #GCancellable, or %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="DocumentContainsJS"
                 glib:type-name="PpsDocumentContainsJS"
                 glib:get-type="pps_document_contains_js_get_type"
                 c:type="PpsDocumentContainsJS">
      <member name="unknown"
              value="0"
              c:identifier="PPS_DOCUMENT_CONTAINS_JS_UNKNOWN"
              glib:nick="unknown"
              glib:name="PPS_DOCUMENT_CONTAINS_JS_UNKNOWN">
      </member>
      <member name="no"
              value="1"
              c:identifier="PPS_DOCUMENT_CONTAINS_JS_NO"
              glib:nick="no"
              glib:name="PPS_DOCUMENT_CONTAINS_JS_NO">
      </member>
      <member name="yes"
              value="2"
              c:identifier="PPS_DOCUMENT_CONTAINS_JS_YES"
              glib:nick="yes"
              glib:name="PPS_DOCUMENT_CONTAINS_JS_YES">
      </member>
    </enumeration>
    <enumeration name="DocumentError"
                 glib:type-name="PpsDocumentError"
                 glib:get-type="pps_document_error_get_type"
                 c:type="PpsDocumentError"
                 glib:error-domain="pps-document-error-quark">
      <member name="invalid"
              value="0"
              c:identifier="PPS_DOCUMENT_ERROR_INVALID"
              glib:nick="invalid"
              glib:name="PPS_DOCUMENT_ERROR_INVALID">
      </member>
      <member name="unsupported_content"
              value="1"
              c:identifier="PPS_DOCUMENT_ERROR_UNSUPPORTED_CONTENT"
              glib:nick="unsupported-content"
              glib:name="PPS_DOCUMENT_ERROR_UNSUPPORTED_CONTENT">
      </member>
      <member name="encrypted"
              value="2"
              c:identifier="PPS_DOCUMENT_ERROR_ENCRYPTED"
              glib:nick="encrypted"
              glib:name="PPS_DOCUMENT_ERROR_ENCRYPTED">
      </member>
      <function name="quark" c:identifier="pps_document_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <interface name="DocumentFind"
               c:symbol-prefix="document_find"
               c:type="PpsDocumentFind"
               glib:type-name="PpsDocumentFind"
               glib:get-type="pps_document_find_get_type"
               glib:type-struct="DocumentFindInterface">
      <source-position filename="libdocument/pps-document-find.h" line="79"/>
      <virtual-method name="find_text" invoker="find_text">
        <source-position filename="libdocument/pps-document-find.h" line="75"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-find.c"
               line="39">a list of results</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FindRectangle"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_find" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-find.c"
                 line="34">an #PpsDocumentFind</doc>
            <type name="DocumentFind" c:type="PpsDocumentFind*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-find.c"
                 line="35">an #PpsPage</doc>
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-find.c"
                 line="36">text to find</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-find.c"
                 line="37">a set of #PpsFindOptions</doc>
            <type name="FindOptions" c:type="PpsFindOptions"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_supported_options"
                      invoker="get_supported_options">
        <source-position filename="libdocument/pps-document-find.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="FindOptions" c:type="PpsFindOptions"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_find" transfer-ownership="none">
            <type name="DocumentFind" c:type="PpsDocumentFind*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="find_text" c:identifier="pps_document_find_find_text">
        <source-position filename="libdocument/pps-document-find.h" line="84"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-find.c"
               line="39">a list of results</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FindRectangle"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_find" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-find.c"
                 line="34">an #PpsDocumentFind</doc>
            <type name="DocumentFind" c:type="PpsDocumentFind*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-find.c"
                 line="35">an #PpsPage</doc>
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-find.c"
                 line="36">text to find</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-find.c"
                 line="37">a set of #PpsFindOptions</doc>
            <type name="FindOptions" c:type="PpsFindOptions"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_supported_options"
              c:identifier="pps_document_find_get_supported_options">
        <source-position filename="libdocument/pps-document-find.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="FindOptions" c:type="PpsFindOptions"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_find" transfer-ownership="none">
            <type name="DocumentFind" c:type="PpsDocumentFind*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentFindInterface"
            c:type="PpsDocumentFindInterface"
            glib:is-gtype-struct-for="DocumentFind">
      <source-position filename="libdocument/pps-document-find.h" line="79"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_supported_options">
        <callback name="get_supported_options">
          <source-position filename="libdocument/pps-document-find.h"
                           line="74"/>
          <return-value transfer-ownership="none">
            <type name="FindOptions" c:type="PpsFindOptions"/>
          </return-value>
          <parameters>
            <parameter name="document_find" transfer-ownership="none">
              <type name="DocumentFind" c:type="PpsDocumentFind*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="find_text">
        <callback name="find_text">
          <source-position filename="libdocument/pps-document-find.h"
                           line="75"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-find.c"
                 line="39">a list of results</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FindRectangle"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="document_find" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-find.c"
                   line="34">an #PpsDocumentFind</doc>
              <type name="DocumentFind" c:type="PpsDocumentFind*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-find.c"
                   line="35">an #PpsPage</doc>
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-find.c"
                   line="36">text to find</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="options" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-find.c"
                   line="37">a set of #PpsFindOptions</doc>
              <type name="FindOptions" c:type="PpsFindOptions"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentFonts"
               c:symbol-prefix="document_fonts"
               c:type="PpsDocumentFonts"
               glib:type-name="PpsDocumentFonts"
               glib:get-type="pps_document_fonts_get_type"
               glib:type-struct="DocumentFontsInterface">
      <source-position filename="libdocument/pps-document-fonts.h" line="59"/>
      <virtual-method name="get_fonts_summary" invoker="get_fonts_summary">
        <source-position filename="libdocument/pps-document-fonts.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_fonts" transfer-ownership="none">
            <type name="DocumentFonts" c:type="PpsDocumentFonts*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_model" invoker="get_model">
        <source-position filename="libdocument/pps-document-fonts.h"
                         line="57"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-fonts.c"
               line="57">A #GListModel holding #PpsFontDescription objects</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_fonts" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-fonts.c"
                 line="54">a #PpsDocument which implements the #PpsDocumentFonts
interface</doc>
            <type name="DocumentFonts" c:type="PpsDocumentFonts*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="scan" invoker="scan">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-fonts.c"
             line="35">Runs through the slow process of finding the fonts being used in a document.
To get the results of the scan, use pps_document_fonts_fill_model and
pps_document_fonts_get_fonts_summary</doc>
        <source-position filename="libdocument/pps-document-fonts.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_fonts" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-fonts.c"
                 line="37">a #PpsDocument which implements the #PpsDocumentFonts
interface</doc>
            <type name="DocumentFonts" c:type="PpsDocumentFonts*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_fonts_summary"
              c:identifier="pps_document_fonts_get_fonts_summary">
        <source-position filename="libdocument/pps-document-fonts.h"
                         line="66"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_fonts" transfer-ownership="none">
            <type name="DocumentFonts" c:type="PpsDocumentFonts*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_model" c:identifier="pps_document_fonts_get_model">
        <source-position filename="libdocument/pps-document-fonts.h"
                         line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-fonts.c"
               line="57">A #GListModel holding #PpsFontDescription objects</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_fonts" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-fonts.c"
                 line="54">a #PpsDocument which implements the #PpsDocumentFonts
interface</doc>
            <type name="DocumentFonts" c:type="PpsDocumentFonts*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="scan" c:identifier="pps_document_fonts_scan">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-fonts.c"
             line="35">Runs through the slow process of finding the fonts being used in a document.
To get the results of the scan, use pps_document_fonts_fill_model and
pps_document_fonts_get_fonts_summary</doc>
        <source-position filename="libdocument/pps-document-fonts.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_fonts" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-fonts.c"
                 line="37">a #PpsDocument which implements the #PpsDocumentFonts
interface</doc>
            <type name="DocumentFonts" c:type="PpsDocumentFonts*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentFontsInterface"
            c:type="PpsDocumentFontsInterface"
            glib:is-gtype-struct-for="DocumentFonts">
      <source-position filename="libdocument/pps-document-fonts.h" line="59"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="scan">
        <callback name="scan">
          <source-position filename="libdocument/pps-document-fonts.h"
                           line="56"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_fonts" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-fonts.c"
                   line="37">a #PpsDocument which implements the #PpsDocumentFonts
interface</doc>
              <type name="DocumentFonts" c:type="PpsDocumentFonts*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_model">
        <callback name="get_model">
          <source-position filename="libdocument/pps-document-fonts.h"
                           line="57"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-fonts.c"
                 line="57">A #GListModel holding #PpsFontDescription objects</doc>
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </return-value>
          <parameters>
            <parameter name="document_fonts" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-fonts.c"
                   line="54">a #PpsDocument which implements the #PpsDocumentFonts
interface</doc>
              <type name="DocumentFonts" c:type="PpsDocumentFonts*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_fonts_summary">
        <callback name="get_fonts_summary">
          <source-position filename="libdocument/pps-document-fonts.h"
                           line="58"/>
          <return-value transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="document_fonts" transfer-ownership="none">
              <type name="DocumentFonts" c:type="PpsDocumentFonts*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentForms"
               c:symbol-prefix="document_forms"
               c:type="PpsDocumentForms"
               glib:type-name="PpsDocumentForms"
               glib:get-type="pps_document_forms_get_type"
               glib:type-struct="DocumentFormsInterface">
      <source-position filename="libdocument/pps-document-forms.h" line="82"/>
      <virtual-method name="document_is_modified"
                      invoker="document_is_modified">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="48"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_button_get_state"
                      invoker="form_field_button_get_state">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_button_set_state"
                      invoker="form_field_button_set_state">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_choice_get_item"
                      invoker="form_field_choice_get_item">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="59"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_choice_get_n_items"
                      invoker="form_field_choice_get_n_items">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_choice_get_text"
                      invoker="form_field_choice_get_text">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="78"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_choice_is_item_selected"
                      invoker="form_field_choice_is_item_selected">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="64"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_choice_select_item"
                      invoker="form_field_choice_select_item">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_choice_set_text"
                      invoker="form_field_choice_set_text">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_choice_toggle_item"
                      invoker="form_field_choice_toggle_item">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_choice_unselect_all"
                      invoker="form_field_choice_unselect_all">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_text_get_text"
                      invoker="form_field_text_get_text">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="49"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_text_set_text"
                      invoker="form_field_text_set_text">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_form_fields" invoker="get_form_fields">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="46"/>
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="PpsMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="reset_form" invoker="reset_form">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="document_is_modified"
              c:identifier="pps_document_forms_document_is_modified">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="88"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="form_field_button_get_state"
              c:identifier="pps_document_forms_form_field_button_get_state">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="99"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_button_set_state"
              c:identifier="pps_document_forms_form_field_button_set_state">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="102"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_choice_get_item"
              c:identifier="pps_document_forms_form_field_choice_get_item">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="107"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_choice_get_n_items"
              c:identifier="pps_document_forms_form_field_choice_get_n_items">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="111"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_choice_get_text"
              c:identifier="pps_document_forms_form_field_choice_get_text">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="133"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_choice_is_item_selected"
              c:identifier="pps_document_forms_form_field_choice_is_item_selected">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="114"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_choice_select_item"
              c:identifier="pps_document_forms_form_field_choice_select_item">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_choice_set_text"
              c:identifier="pps_document_forms_form_field_choice_set_text">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="129"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_choice_toggle_item"
              c:identifier="pps_document_forms_form_field_choice_toggle_item">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="122"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_choice_unselect_all"
              c:identifier="pps_document_forms_form_field_choice_unselect_all">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="126"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_text_get_text"
              c:identifier="pps_document_forms_form_field_text_get_text">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="91"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_text_set_text"
              c:identifier="pps_document_forms_form_field_text_set_text">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="PpsFormField*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_form_fields"
              c:identifier="pps_document_forms_get_form_fields">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="85"/>
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="PpsMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset_form" c:identifier="pps_document_forms_reset_form">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="136"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="PpsDocumentForms*"/>
          </instance-parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentFormsInterface"
            c:type="PpsDocumentFormsInterface"
            glib:is-gtype-struct-for="DocumentForms">
      <source-position filename="libdocument/pps-document-forms.h" line="82"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_form_fields">
        <callback name="get_form_fields">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="46"/>
          <return-value transfer-ownership="full">
            <type name="MappingList" c:type="PpsMappingList*"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="document_is_modified">
        <callback name="document_is_modified">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="48"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_text_get_text">
        <callback name="form_field_text_get_text">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="49"/>
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="PpsFormField*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_text_set_text">
        <callback name="form_field_text_set_text">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="51"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="PpsFormField*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_button_get_state">
        <callback name="form_field_button_get_state">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="54"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="PpsFormField*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_button_set_state">
        <callback name="form_field_button_set_state">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="56"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="PpsFormField*"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_choice_get_item">
        <callback name="form_field_choice_get_item">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="59"/>
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="PpsFormField*"/>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_choice_get_n_items">
        <callback name="form_field_choice_get_n_items">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="62"/>
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="PpsFormField*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_choice_is_item_selected">
        <callback name="form_field_choice_is_item_selected">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="64"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="PpsFormField*"/>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_choice_select_item">
        <callback name="form_field_choice_select_item">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="67"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="PpsFormField*"/>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_choice_toggle_item">
        <callback name="form_field_choice_toggle_item">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="70"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="PpsFormField*"/>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_choice_unselect_all">
        <callback name="form_field_choice_unselect_all">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="73"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="PpsFormField*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_choice_set_text">
        <callback name="form_field_choice_set_text">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="75"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="PpsFormField*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_choice_get_text">
        <callback name="form_field_choice_get_text">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="78"/>
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="PpsFormField*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="reset_form">
        <callback name="reset_form">
          <source-position filename="libdocument/pps-document-forms.h"
                           line="80"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="PpsDocumentForms*"/>
            </parameter>
            <parameter name="action" transfer-ownership="none">
              <type name="LinkAction" c:type="PpsLinkAction*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentImages"
               c:symbol-prefix="document_images"
               c:type="PpsDocumentImages"
               glib:type-name="PpsDocumentImages"
               glib:get-type="pps_document_images_get_type"
               glib:type-struct="DocumentImagesInterface">
      <source-position filename="libdocument/pps-document-images.h" line="50"/>
      <virtual-method name="get_image" invoker="get_image">
        <source-position filename="libdocument/pps-document-images.h"
                         line="48"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-images.c"
               line="45">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_images" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-images.c"
                 line="42">an #PpsDocumentImages</doc>
            <type name="DocumentImages" c:type="PpsDocumentImages*"/>
          </instance-parameter>
          <parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-images.c"
                 line="43">an #PpsImage</doc>
            <type name="Image" c:type="PpsImage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_image_mapping" invoker="get_image_mapping">
        <source-position filename="libdocument/pps-document-images.h"
                         line="46"/>
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="PpsMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_images" transfer-ownership="none">
            <type name="DocumentImages" c:type="PpsDocumentImages*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_image" c:identifier="pps_document_images_get_image">
        <source-position filename="libdocument/pps-document-images.h"
                         line="56"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-images.c"
               line="45">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_images" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-images.c"
                 line="42">an #PpsDocumentImages</doc>
            <type name="DocumentImages" c:type="PpsDocumentImages*"/>
          </instance-parameter>
          <parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-images.c"
                 line="43">an #PpsImage</doc>
            <type name="Image" c:type="PpsImage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_image_mapping"
              c:identifier="pps_document_images_get_image_mapping">
        <source-position filename="libdocument/pps-document-images.h"
                         line="53"/>
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="PpsMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_images" transfer-ownership="none">
            <type name="DocumentImages" c:type="PpsDocumentImages*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentImagesInterface"
            c:type="PpsDocumentImagesInterface"
            glib:is-gtype-struct-for="DocumentImages">
      <source-position filename="libdocument/pps-document-images.h" line="50"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_image_mapping">
        <callback name="get_image_mapping">
          <source-position filename="libdocument/pps-document-images.h"
                           line="46"/>
          <return-value transfer-ownership="full">
            <type name="MappingList" c:type="PpsMappingList*"/>
          </return-value>
          <parameters>
            <parameter name="document_images" transfer-ownership="none">
              <type name="DocumentImages" c:type="PpsDocumentImages*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_image">
        <callback name="get_image">
          <source-position filename="libdocument/pps-document-images.h"
                           line="48"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-images.c"
                 line="45">a #GdkPixbuf</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </return-value>
          <parameters>
            <parameter name="document_images" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-images.c"
                   line="42">an #PpsDocumentImages</doc>
              <type name="DocumentImages" c:type="PpsDocumentImages*"/>
            </parameter>
            <parameter name="image" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-images.c"
                   line="43">an #PpsImage</doc>
              <type name="Image" c:type="PpsImage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="DocumentInfo"
            c:type="PpsDocumentInfo"
            glib:type-name="PpsDocumentInfo"
            glib:get-type="pps_document_info_get_type"
            c:symbol-prefix="document_info">
      <source-position filename="libdocument/pps-document-info.h" line="140"/>
      <field name="title" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="format" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="author" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="subject" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="keywords" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="creator" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="producer" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="linearized" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="security" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="creation_datetime" writable="1">
        <type name="GLib.DateTime" c:type="GDateTime*"/>
      </field>
      <field name="modified_datetime" writable="1">
        <type name="GLib.DateTime" c:type="GDateTime*"/>
      </field>
      <field name="layout" writable="1">
        <type name="DocumentLayout" c:type="PpsDocumentLayout"/>
      </field>
      <field name="mode" writable="1">
        <type name="DocumentMode" c:type="PpsDocumentMode"/>
      </field>
      <field name="ui_hints" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="permissions" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="n_pages" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="paper_height" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="paper_width" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="license" writable="1">
        <type name="DocumentLicense" c:type="PpsDocumentLicense*"/>
      </field>
      <field name="contains_js" writable="1">
        <type name="DocumentContainsJS" c:type="PpsDocumentContainsJS"/>
      </field>
      <field name="fields_mask" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <constructor name="new" c:identifier="pps_document_info_new">
        <source-position filename="libdocument/pps-document-info.h"
                         line="145"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="42">a new, empty #PpsDocumentInfo</doc>
          <type name="DocumentInfo" c:type="PpsDocumentInfo*"/>
        </return-value>
      </constructor>
      <method name="author" c:identifier="pps_document_info_author">
        <source-position filename="libdocument/pps-document-info.h"
                         line="171"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="446">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="443">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="author"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="contains_js" c:identifier="pps_document_info_contains_js">
        <source-position filename="libdocument/pps-document-info.h"
                         line="159"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="392">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="389">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="contains_js"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="DocumentContainsJS" c:type="PpsDocumentContainsJS*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="pps_document_info_copy">
        <source-position filename="libdocument/pps-document-info.h"
                         line="147"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="54">a copy of @info</doc>
          <type name="DocumentInfo" c:type="PpsDocumentInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="52">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="creator" c:identifier="pps_document_info_creator">
        <source-position filename="libdocument/pps-document-info.h"
                         line="177"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="500">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="497">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="creator"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="format" c:identifier="pps_document_info_format">
        <source-position filename="libdocument/pps-document-info.h"
                         line="169"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="428">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="425">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="format"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="pps_document_info_free">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-info.c"
             line="90">Frees @info.</doc>
        <source-position filename="libdocument/pps-document-info.h"
                         line="149"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="92">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="PpsDocumentInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_created_datetime"
              c:identifier="pps_document_info_get_created_datetime">
        <source-position filename="libdocument/pps-document-info.h"
                         line="151"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="141">a #GDateTime for when the document was created</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="139">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modified_datetime"
              c:identifier="pps_document_info_get_modified_datetime">
        <source-position filename="libdocument/pps-document-info.h"
                         line="153"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="174">a #GDateTime for when the document was last modified</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="172">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="keywords" c:identifier="pps_document_info_keywords">
        <source-position filename="libdocument/pps-document-info.h"
                         line="175"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="482">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="479">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="keywords"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="license" c:identifier="pps_document_info_license">
        <source-position filename="libdocument/pps-document-info.h"
                         line="165"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="374">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="371">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="license"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="DocumentLicense" c:type="PpsDocumentLicense**"/>
          </parameter>
        </parameters>
      </method>
      <method name="linearized" c:identifier="pps_document_info_linearized">
        <source-position filename="libdocument/pps-document-info.h"
                         line="181"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="536">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="533">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="linearized"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="pages" c:identifier="pps_document_info_pages">
        <source-position filename="libdocument/pps-document-info.h"
                         line="157"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="320">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="317">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="pages"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="permissions" c:identifier="pps_document_info_permissions">
        <source-position filename="libdocument/pps-document-info.h"
                         line="161"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="338">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="335">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="permissions"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="DocumentPermissions" c:type="PpsDocumentPermissions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="producer" c:identifier="pps_document_info_producer">
        <source-position filename="libdocument/pps-document-info.h"
                         line="179"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="518">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="515">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="producer"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="regular_paper_size"
              c:identifier="pps_document_info_regular_paper_size">
        <source-position filename="libdocument/pps-document-info.h"
                         line="155"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="security" c:identifier="pps_document_info_security">
        <source-position filename="libdocument/pps-document-info.h"
                         line="183"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="554">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="551">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="security"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_from_xmp"
              c:identifier="pps_document_info_set_from_xmp">
        <source-position filename="libdocument/pps-document-info.h"
                         line="193"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="DocumentInfo" c:type="PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="xmp" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_mode" c:identifier="pps_document_info_start_mode">
        <source-position filename="libdocument/pps-document-info.h"
                         line="163"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="356">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="353">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="mode"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="DocumentMode" c:type="PpsDocumentMode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="subject" c:identifier="pps_document_info_subject">
        <source-position filename="libdocument/pps-document-info.h"
                         line="173"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="464">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="461">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="subject"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="take_created_datetime"
              c:identifier="pps_document_info_take_created_datetime">
        <source-position filename="libdocument/pps-document-info.h"
                         line="187"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="DocumentInfo" c:type="PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="datetime" transfer-ownership="none">
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="take_modified_datetime"
              c:identifier="pps_document_info_take_modified_datetime">
        <source-position filename="libdocument/pps-document-info.h"
                         line="190"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="DocumentInfo" c:type="PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="datetime" transfer-ownership="none">
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="title" c:identifier="pps_document_info_title">
        <source-position filename="libdocument/pps-document-info.h"
                         line="167"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="410">%TRUE iff info has this field</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="407">a #PpsDocumentInfo</doc>
            <type name="DocumentInfo" c:type="const PpsDocumentInfo*"/>
          </instance-parameter>
          <parameter name="title"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <bitfield name="DocumentInfoFields"
              glib:type-name="PpsDocumentInfoFields"
              glib:get-type="pps_document_info_fields_get_type"
              c:type="PpsDocumentInfoFields">
      <member name="title"
              value="1"
              c:identifier="PPS_DOCUMENT_INFO_TITLE"
              glib:nick="title"
              glib:name="PPS_DOCUMENT_INFO_TITLE">
      </member>
      <member name="format"
              value="2"
              c:identifier="PPS_DOCUMENT_INFO_FORMAT"
              glib:nick="format"
              glib:name="PPS_DOCUMENT_INFO_FORMAT">
      </member>
      <member name="author"
              value="4"
              c:identifier="PPS_DOCUMENT_INFO_AUTHOR"
              glib:nick="author"
              glib:name="PPS_DOCUMENT_INFO_AUTHOR">
      </member>
      <member name="subject"
              value="8"
              c:identifier="PPS_DOCUMENT_INFO_SUBJECT"
              glib:nick="subject"
              glib:name="PPS_DOCUMENT_INFO_SUBJECT">
      </member>
      <member name="keywords"
              value="16"
              c:identifier="PPS_DOCUMENT_INFO_KEYWORDS"
              glib:nick="keywords"
              glib:name="PPS_DOCUMENT_INFO_KEYWORDS">
      </member>
      <member name="layout"
              value="32"
              c:identifier="PPS_DOCUMENT_INFO_LAYOUT"
              glib:nick="layout"
              glib:name="PPS_DOCUMENT_INFO_LAYOUT">
      </member>
      <member name="creator"
              value="64"
              c:identifier="PPS_DOCUMENT_INFO_CREATOR"
              glib:nick="creator"
              glib:name="PPS_DOCUMENT_INFO_CREATOR">
      </member>
      <member name="producer"
              value="128"
              c:identifier="PPS_DOCUMENT_INFO_PRODUCER"
              glib:nick="producer"
              glib:name="PPS_DOCUMENT_INFO_PRODUCER">
      </member>
      <member name="creation_datetime"
              value="256"
              c:identifier="PPS_DOCUMENT_INFO_CREATION_DATETIME"
              glib:nick="creation-datetime"
              glib:name="PPS_DOCUMENT_INFO_CREATION_DATETIME">
      </member>
      <member name="mod_datetime"
              value="512"
              c:identifier="PPS_DOCUMENT_INFO_MOD_DATETIME"
              glib:nick="mod-datetime"
              glib:name="PPS_DOCUMENT_INFO_MOD_DATETIME">
      </member>
      <member name="linearized"
              value="1024"
              c:identifier="PPS_DOCUMENT_INFO_LINEARIZED"
              glib:nick="linearized"
              glib:name="PPS_DOCUMENT_INFO_LINEARIZED">
      </member>
      <member name="start_mode"
              value="2048"
              c:identifier="PPS_DOCUMENT_INFO_START_MODE"
              glib:nick="start-mode"
              glib:name="PPS_DOCUMENT_INFO_START_MODE">
      </member>
      <member name="ui_hints"
              value="4096"
              c:identifier="PPS_DOCUMENT_INFO_UI_HINTS"
              glib:nick="ui-hints"
              glib:name="PPS_DOCUMENT_INFO_UI_HINTS">
      </member>
      <member name="permissions"
              value="8192"
              c:identifier="PPS_DOCUMENT_INFO_PERMISSIONS"
              glib:nick="permissions"
              glib:name="PPS_DOCUMENT_INFO_PERMISSIONS">
      </member>
      <member name="n_pages"
              value="16384"
              c:identifier="PPS_DOCUMENT_INFO_N_PAGES"
              glib:nick="n-pages"
              glib:name="PPS_DOCUMENT_INFO_N_PAGES">
      </member>
      <member name="security"
              value="32768"
              c:identifier="PPS_DOCUMENT_INFO_SECURITY"
              glib:nick="security"
              glib:name="PPS_DOCUMENT_INFO_SECURITY">
      </member>
      <member name="paper_size"
              value="65536"
              c:identifier="PPS_DOCUMENT_INFO_PAPER_SIZE"
              glib:nick="paper-size"
              glib:name="PPS_DOCUMENT_INFO_PAPER_SIZE">
      </member>
      <member name="license"
              value="131072"
              c:identifier="PPS_DOCUMENT_INFO_LICENSE"
              glib:nick="license"
              glib:name="PPS_DOCUMENT_INFO_LICENSE">
      </member>
      <member name="contains_js"
              value="262144"
              c:identifier="PPS_DOCUMENT_INFO_CONTAINS_JS"
              glib:nick="contains-js"
              glib:name="PPS_DOCUMENT_INFO_CONTAINS_JS">
      </member>
    </bitfield>
    <interface name="DocumentLayers"
               c:symbol-prefix="document_layers"
               c:type="PpsDocumentLayers"
               glib:type-name="PpsDocumentLayers"
               glib:get-type="pps_document_layers_get_type"
               glib:type-struct="DocumentLayersInterface">
      <source-position filename="libdocument/pps-document-layers.h" line="65"/>
      <virtual-method name="get_layers" invoker="get_layers">
        <source-position filename="libdocument/pps-document-layers.h"
                         line="57"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-layers.c"
               line="45">a #GListModel</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_layers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-layers.c"
                 line="43">an #PpsDocumentLayers</doc>
            <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="has_layers" invoker="has_layers">
        <source-position filename="libdocument/pps-document-layers.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_layers" transfer-ownership="none">
            <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hide_layer" invoker="hide_layer">
        <source-position filename="libdocument/pps-document-layers.h"
                         line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_layers" transfer-ownership="none">
            <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="PpsLayer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="layer_is_visible" invoker="layer_is_visible">
        <source-position filename="libdocument/pps-document-layers.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_layers" transfer-ownership="none">
            <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="PpsLayer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show_layer" invoker="show_layer">
        <source-position filename="libdocument/pps-document-layers.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_layers" transfer-ownership="none">
            <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="PpsLayer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_layers" c:identifier="pps_document_layers_get_layers">
        <source-position filename="libdocument/pps-document-layers.h"
                         line="70"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-layers.c"
               line="45">a #GListModel</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_layers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-layers.c"
                 line="43">an #PpsDocumentLayers</doc>
            <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_layers" c:identifier="pps_document_layers_has_layers">
        <source-position filename="libdocument/pps-document-layers.h"
                         line="68"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_layers" transfer-ownership="none">
            <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide_layer" c:identifier="pps_document_layers_hide_layer">
        <source-position filename="libdocument/pps-document-layers.h"
                         line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_layers" transfer-ownership="none">
            <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="PpsLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="layer_is_visible"
              c:identifier="pps_document_layers_layer_is_visible">
        <source-position filename="libdocument/pps-document-layers.h"
                         line="78"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_layers" transfer-ownership="none">
            <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="PpsLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_layer" c:identifier="pps_document_layers_show_layer">
        <source-position filename="libdocument/pps-document-layers.h"
                         line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_layers" transfer-ownership="none">
            <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="PpsLayer*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentLayersInterface"
            c:type="PpsDocumentLayersInterface"
            glib:is-gtype-struct-for="DocumentLayers">
      <source-position filename="libdocument/pps-document-layers.h" line="65"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="has_layers">
        <callback name="has_layers">
          <source-position filename="libdocument/pps-document-layers.h"
                           line="56"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_layers" transfer-ownership="none">
              <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_layers">
        <callback name="get_layers">
          <source-position filename="libdocument/pps-document-layers.h"
                           line="57"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-layers.c"
                 line="45">a #GListModel</doc>
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </return-value>
          <parameters>
            <parameter name="document_layers" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-layers.c"
                   line="43">an #PpsDocumentLayers</doc>
              <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_layer">
        <callback name="show_layer">
          <source-position filename="libdocument/pps-document-layers.h"
                           line="59"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_layers" transfer-ownership="none">
              <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
            </parameter>
            <parameter name="layer" transfer-ownership="none">
              <type name="Layer" c:type="PpsLayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide_layer">
        <callback name="hide_layer">
          <source-position filename="libdocument/pps-document-layers.h"
                           line="61"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_layers" transfer-ownership="none">
              <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
            </parameter>
            <parameter name="layer" transfer-ownership="none">
              <type name="Layer" c:type="PpsLayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="layer_is_visible">
        <callback name="layer_is_visible">
          <source-position filename="libdocument/pps-document-layers.h"
                           line="63"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_layers" transfer-ownership="none">
              <type name="DocumentLayers" c:type="PpsDocumentLayers*"/>
            </parameter>
            <parameter name="layer" transfer-ownership="none">
              <type name="Layer" c:type="PpsLayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="DocumentLayout"
                 glib:type-name="PpsDocumentLayout"
                 glib:get-type="pps_document_layout_get_type"
                 c:type="PpsDocumentLayout">
      <member name="single_page"
              value="0"
              c:identifier="PPS_DOCUMENT_LAYOUT_SINGLE_PAGE"
              glib:nick="single-page"
              glib:name="PPS_DOCUMENT_LAYOUT_SINGLE_PAGE">
      </member>
      <member name="one_column"
              value="1"
              c:identifier="PPS_DOCUMENT_LAYOUT_ONE_COLUMN"
              glib:nick="one-column"
              glib:name="PPS_DOCUMENT_LAYOUT_ONE_COLUMN">
      </member>
      <member name="two_column_left"
              value="2"
              c:identifier="PPS_DOCUMENT_LAYOUT_TWO_COLUMN_LEFT"
              glib:nick="two-column-left"
              glib:name="PPS_DOCUMENT_LAYOUT_TWO_COLUMN_LEFT">
      </member>
      <member name="two_column_right"
              value="3"
              c:identifier="PPS_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT"
              glib:nick="two-column-right"
              glib:name="PPS_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT">
      </member>
      <member name="two_page_left"
              value="4"
              c:identifier="PPS_DOCUMENT_LAYOUT_TWO_PAGE_LEFT"
              glib:nick="two-page-left"
              glib:name="PPS_DOCUMENT_LAYOUT_TWO_PAGE_LEFT">
      </member>
      <member name="two_page_right"
              value="5"
              c:identifier="PPS_DOCUMENT_LAYOUT_TWO_PAGE_RIGHT"
              glib:nick="two-page-right"
              glib:name="PPS_DOCUMENT_LAYOUT_TWO_PAGE_RIGHT">
      </member>
    </enumeration>
    <record name="DocumentLicense"
            c:type="PpsDocumentLicense"
            glib:type-name="PpsDocumentLicense"
            glib:get-type="pps_document_license_get_type"
            c:symbol-prefix="document_license">
      <source-position filename="libdocument/pps-document-info.h" line="203"/>
      <field name="text" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uri" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="web_statement" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <constructor name="new" c:identifier="pps_document_license_new">
        <source-position filename="libdocument/pps-document-info.h"
                         line="207"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="573">a new, empty #PpsDocumentLicense</doc>
          <type name="DocumentLicense" c:type="PpsDocumentLicense*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="pps_document_license_copy">
        <source-position filename="libdocument/pps-document-info.h"
                         line="209"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="585">a copy of @license, or %NULL</doc>
          <type name="DocumentLicense" c:type="PpsDocumentLicense*"/>
        </return-value>
        <parameters>
          <instance-parameter name="license"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="583">a #PpsDocumentLicense</doc>
            <type name="DocumentLicense" c:type="PpsDocumentLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="pps_document_license_free">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-info.c"
             line="607">Frees @license.</doc>
        <source-position filename="libdocument/pps-document-info.h"
                         line="211"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="609">a #PpsDocumentLicense</doc>
            <type name="DocumentLicense" c:type="PpsDocumentLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="pps_document_license_get_text">
        <source-position filename="libdocument/pps-document-info.h"
                         line="213"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="630">the license text</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="628">a #PpsDocumentLicense</doc>
            <type name="DocumentLicense" c:type="PpsDocumentLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="pps_document_license_get_uri">
        <source-position filename="libdocument/pps-document-info.h"
                         line="215"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="642">the license URI</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="640">a #PpsDocumentLicense</doc>
            <type name="DocumentLicense" c:type="PpsDocumentLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_web_statement"
              c:identifier="pps_document_license_get_web_statement">
        <source-position filename="libdocument/pps-document-info.h"
                         line="217"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="654">the license web statement</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-info.c"
                 line="652">a #PpsDocumentLicense</doc>
            <type name="DocumentLicense" c:type="PpsDocumentLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <interface name="DocumentLinks"
               c:symbol-prefix="document_links"
               c:type="PpsDocumentLinks"
               glib:type-name="PpsDocumentLinks"
               glib:get-type="pps_document_links_get_type"
               glib:type-struct="DocumentLinksInterface">
      <source-position filename="libdocument/pps-document-links.h" line="67"/>
      <virtual-method name="find_link_dest" invoker="find_link_dest">
        <source-position filename="libdocument/pps-document-links.h"
                         line="63"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-links.c"
               line="74">an #PpsLinkDest</doc>
          <type name="LinkDest" c:type="PpsLinkDest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-links.c"
                 line="71">an #PpsDocumentLinks</doc>
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
          <parameter name="link_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-links.c"
                 line="72">the link name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="find_link_page" invoker="find_link_page">
        <source-position filename="libdocument/pps-document-links.h"
                         line="65"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
          <parameter name="link_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_links" invoker="get_links">
        <source-position filename="libdocument/pps-document-links.h"
                         line="61"/>
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="PpsMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_links_model" invoker="get_links_model">
        <source-position filename="libdocument/pps-document-links.h"
                         line="60"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-links.c"
               line="50">a #GListModel</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-links.c"
                 line="48">an #PpsDocumentLinks</doc>
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="has_document_links" invoker="has_document_links">
        <source-position filename="libdocument/pps-document-links.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="find_link_dest"
              c:identifier="pps_document_links_find_link_dest">
        <source-position filename="libdocument/pps-document-links.h"
                         line="78"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-links.c"
               line="74">an #PpsLinkDest</doc>
          <type name="LinkDest" c:type="PpsLinkDest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-links.c"
                 line="71">an #PpsDocumentLinks</doc>
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
          <parameter name="link_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-links.c"
                 line="72">the link name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_link_page"
              c:identifier="pps_document_links_find_link_page">
        <source-position filename="libdocument/pps-document-links.h"
                         line="81"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
          <parameter name="link_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_dest_page"
              c:identifier="pps_document_links_get_dest_page">
        <source-position filename="libdocument/pps-document-links.h"
                         line="84"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
          <parameter name="dest" transfer-ownership="none">
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_dest_page_label"
              c:identifier="pps_document_links_get_dest_page_label">
        <source-position filename="libdocument/pps-document-links.h"
                         line="87"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
          <parameter name="dest" transfer-ownership="none">
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_link_page"
              c:identifier="pps_document_links_get_link_page">
        <source-position filename="libdocument/pps-document-links.h"
                         line="90"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
          <parameter name="link" transfer-ownership="none">
            <type name="Link" c:type="PpsLink*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_link_page_label"
              c:identifier="pps_document_links_get_link_page_label">
        <source-position filename="libdocument/pps-document-links.h"
                         line="93"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
          <parameter name="link" transfer-ownership="none">
            <type name="Link" c:type="PpsLink*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_links" c:identifier="pps_document_links_get_links">
        <source-position filename="libdocument/pps-document-links.h"
                         line="75"/>
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="PpsMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_links_model"
              c:identifier="pps_document_links_get_links_model">
        <source-position filename="libdocument/pps-document-links.h"
                         line="72"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-links.c"
               line="50">a #GListModel</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-links.c"
                 line="48">an #PpsDocumentLinks</doc>
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_document_links"
              c:identifier="pps_document_links_has_document_links">
        <source-position filename="libdocument/pps-document-links.h"
                         line="70"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentLinksInterface"
            c:type="PpsDocumentLinksInterface"
            glib:is-gtype-struct-for="DocumentLinks">
      <source-position filename="libdocument/pps-document-links.h" line="67"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="has_document_links">
        <callback name="has_document_links">
          <source-position filename="libdocument/pps-document-links.h"
                           line="59"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_links" transfer-ownership="none">
              <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_links_model">
        <callback name="get_links_model">
          <source-position filename="libdocument/pps-document-links.h"
                           line="60"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-links.c"
                 line="50">a #GListModel</doc>
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </return-value>
          <parameters>
            <parameter name="document_links" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-links.c"
                   line="48">an #PpsDocumentLinks</doc>
              <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_links">
        <callback name="get_links">
          <source-position filename="libdocument/pps-document-links.h"
                           line="61"/>
          <return-value transfer-ownership="full">
            <type name="MappingList" c:type="PpsMappingList*"/>
          </return-value>
          <parameters>
            <parameter name="document_links" transfer-ownership="none">
              <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="find_link_dest">
        <callback name="find_link_dest">
          <source-position filename="libdocument/pps-document-links.h"
                           line="63"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-links.c"
                 line="74">an #PpsLinkDest</doc>
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </return-value>
          <parameters>
            <parameter name="document_links" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-links.c"
                   line="71">an #PpsDocumentLinks</doc>
              <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
            </parameter>
            <parameter name="link_name" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-links.c"
                   line="72">the link name</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="find_link_page">
        <callback name="find_link_page">
          <source-position filename="libdocument/pps-document-links.h"
                           line="65"/>
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="document_links" transfer-ownership="none">
              <type name="DocumentLinks" c:type="PpsDocumentLinks*"/>
            </parameter>
            <parameter name="link_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <bitfield name="DocumentLoadFlags"
              glib:type-name="PpsDocumentLoadFlags"
              glib:get-type="pps_document_load_flags_get_type"
              c:type="PpsDocumentLoadFlags">
      <member name="none"
              value="0"
              c:identifier="PPS_DOCUMENT_LOAD_FLAG_NONE"
              glib:nick="none"
              glib:name="PPS_DOCUMENT_LOAD_FLAG_NONE">
      </member>
      <member name="no_cache"
              value="1"
              c:identifier="PPS_DOCUMENT_LOAD_FLAG_NO_CACHE"
              glib:nick="no-cache"
              glib:name="PPS_DOCUMENT_LOAD_FLAG_NO_CACHE">
      </member>
    </bitfield>
    <interface name="DocumentMedia"
               c:symbol-prefix="document_media"
               c:type="PpsDocumentMedia"
               glib:type-name="PpsDocumentMedia"
               glib:get-type="pps_document_media_get_type"
               glib:type-struct="DocumentMediaInterface">
      <source-position filename="libdocument/pps-document-media.h" line="48"/>
      <virtual-method name="get_media_mapping" invoker="get_media_mapping">
        <source-position filename="libdocument/pps-document-media.h"
                         line="46"/>
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="PpsMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_media" transfer-ownership="none">
            <type name="DocumentMedia" c:type="PpsDocumentMedia*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_media_mapping"
              c:identifier="pps_document_media_get_media_mapping">
        <source-position filename="libdocument/pps-document-media.h"
                         line="51"/>
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="PpsMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_media" transfer-ownership="none">
            <type name="DocumentMedia" c:type="PpsDocumentMedia*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentMediaInterface"
            c:type="PpsDocumentMediaInterface"
            glib:is-gtype-struct-for="DocumentMedia">
      <source-position filename="libdocument/pps-document-media.h" line="48"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_media_mapping">
        <callback name="get_media_mapping">
          <source-position filename="libdocument/pps-document-media.h"
                           line="46"/>
          <return-value transfer-ownership="full">
            <type name="MappingList" c:type="PpsMappingList*"/>
          </return-value>
          <parameters>
            <parameter name="document_media" transfer-ownership="none">
              <type name="DocumentMedia" c:type="PpsDocumentMedia*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="DocumentMode"
                 glib:type-name="PpsDocumentMode"
                 glib:get-type="pps_document_mode_get_type"
                 c:type="PpsDocumentMode">
      <member name="none"
              value="0"
              c:identifier="PPS_DOCUMENT_MODE_NONE"
              glib:nick="none"
              glib:name="PPS_DOCUMENT_MODE_NONE">
      </member>
      <member name="use_oc"
              value="1"
              c:identifier="PPS_DOCUMENT_MODE_USE_OC"
              glib:nick="use-oc"
              glib:name="PPS_DOCUMENT_MODE_USE_OC">
      </member>
      <member name="use_thumbs"
              value="2"
              c:identifier="PPS_DOCUMENT_MODE_USE_THUMBS"
              glib:nick="use-thumbs"
              glib:name="PPS_DOCUMENT_MODE_USE_THUMBS">
      </member>
      <member name="full_screen"
              value="3"
              c:identifier="PPS_DOCUMENT_MODE_FULL_SCREEN"
              glib:nick="full-screen"
              glib:name="PPS_DOCUMENT_MODE_FULL_SCREEN">
      </member>
      <member name="use_attachments"
              value="4"
              c:identifier="PPS_DOCUMENT_MODE_USE_ATTACHMENTS"
              glib:nick="use-attachments"
              glib:name="PPS_DOCUMENT_MODE_USE_ATTACHMENTS">
      </member>
      <member name="presentation"
              value="3"
              c:identifier="PPS_DOCUMENT_MODE_PRESENTATION"
              glib:nick="presentation"
              glib:name="PPS_DOCUMENT_MODE_PRESENTATION">
      </member>
    </enumeration>
    <bitfield name="DocumentPermissions"
              glib:type-name="PpsDocumentPermissions"
              glib:get-type="pps_document_permissions_get_type"
              c:type="PpsDocumentPermissions">
      <member name="ok_to_print"
              value="1"
              c:identifier="PPS_DOCUMENT_PERMISSIONS_OK_TO_PRINT"
              glib:nick="ok-to-print"
              glib:name="PPS_DOCUMENT_PERMISSIONS_OK_TO_PRINT">
      </member>
      <member name="ok_to_modify"
              value="2"
              c:identifier="PPS_DOCUMENT_PERMISSIONS_OK_TO_MODIFY"
              glib:nick="ok-to-modify"
              glib:name="PPS_DOCUMENT_PERMISSIONS_OK_TO_MODIFY">
      </member>
      <member name="ok_to_copy"
              value="4"
              c:identifier="PPS_DOCUMENT_PERMISSIONS_OK_TO_COPY"
              glib:nick="ok-to-copy"
              glib:name="PPS_DOCUMENT_PERMISSIONS_OK_TO_COPY">
      </member>
      <member name="ok_to_add_notes"
              value="8"
              c:identifier="PPS_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES"
              glib:nick="ok-to-add-notes"
              glib:name="PPS_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES">
      </member>
      <member name="full"
              value="15"
              c:identifier="PPS_DOCUMENT_PERMISSIONS_FULL"
              glib:nick="full"
              glib:name="PPS_DOCUMENT_PERMISSIONS_FULL">
      </member>
    </bitfield>
    <interface name="DocumentPrint"
               c:symbol-prefix="document_print"
               c:type="PpsDocumentPrint"
               glib:type-name="PpsDocumentPrint"
               glib:get-type="pps_document_print_get_type"
               glib:type-struct="DocumentPrintInterface">
      <source-position filename="libdocument/pps-document-print.h" line="48"/>
      <virtual-method name="print_page" invoker="print_page">
        <source-position filename="libdocument/pps-document-print.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_print" transfer-ownership="none">
            <type name="DocumentPrint" c:type="PpsDocumentPrint*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="cr" transfer-ownership="none">
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="print_page" c:identifier="pps_document_print_print_page">
        <source-position filename="libdocument/pps-document-print.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_print" transfer-ownership="none">
            <type name="DocumentPrint" c:type="PpsDocumentPrint*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="cr" transfer-ownership="none">
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentPrintInterface"
            c:type="PpsDocumentPrintInterface"
            glib:is-gtype-struct-for="DocumentPrint">
      <source-position filename="libdocument/pps-document-print.h" line="48"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="print_page">
        <callback name="print_page">
          <source-position filename="libdocument/pps-document-print.h"
                           line="45"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_print" transfer-ownership="none">
              <type name="DocumentPrint" c:type="PpsDocumentPrint*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
            <parameter name="cr" transfer-ownership="none">
              <type name="cairo.Context" c:type="cairo_t*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentSecurity"
               c:symbol-prefix="document_security"
               c:type="PpsDocumentSecurity"
               glib:type-name="PpsDocumentSecurity"
               glib:get-type="pps_document_security_get_type"
               glib:type-struct="DocumentSecurityInterface">
      <source-position filename="libdocument/pps-document-security.h"
                       line="52"/>
      <virtual-method name="has_document_security"
                      invoker="has_document_security">
        <source-position filename="libdocument/pps-document-security.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_security"
                              transfer-ownership="none">
            <type name="DocumentSecurity" c:type="PpsDocumentSecurity*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_password" invoker="set_password">
        <source-position filename="libdocument/pps-document-security.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_security"
                              transfer-ownership="none">
            <type name="DocumentSecurity" c:type="PpsDocumentSecurity*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="has_document_security"
              c:identifier="pps_document_security_has_document_security">
        <source-position filename="libdocument/pps-document-security.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_security"
                              transfer-ownership="none">
            <type name="DocumentSecurity" c:type="PpsDocumentSecurity*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_password"
              c:identifier="pps_document_security_set_password">
        <source-position filename="libdocument/pps-document-security.h"
                         line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_security"
                              transfer-ownership="none">
            <type name="DocumentSecurity" c:type="PpsDocumentSecurity*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentSecurityInterface"
            c:type="PpsDocumentSecurityInterface"
            glib:is-gtype-struct-for="DocumentSecurity">
      <source-position filename="libdocument/pps-document-security.h"
                       line="52"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="has_document_security">
        <callback name="has_document_security">
          <source-position filename="libdocument/pps-document-security.h"
                           line="49"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_security" transfer-ownership="none">
              <type name="DocumentSecurity" c:type="PpsDocumentSecurity*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_password">
        <callback name="set_password">
          <source-position filename="libdocument/pps-document-security.h"
                           line="50"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_security" transfer-ownership="none">
              <type name="DocumentSecurity" c:type="PpsDocumentSecurity*"/>
            </parameter>
            <parameter name="password" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentText"
               c:symbol-prefix="document_text"
               c:type="PpsDocumentText"
               glib:type-name="PpsDocumentText"
               glib:get-type="pps_document_text_get_type"
               glib:type-struct="DocumentTextInterface">
      <source-position filename="libdocument/pps-document-text.h" line="58"/>
      <virtual-method name="get_text" invoker="get_text">
        <source-position filename="libdocument/pps-document-text.h" line="47"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_text" transfer-ownership="none">
            <type name="DocumentText" c:type="PpsDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_text_attrs"
                      invoker="get_text_attrs"
                      version="3.10">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-text.c"
             line="103">FIXME</doc>
        <source-position filename="libdocument/pps-document-text.h" line="56"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-text.c"
               line="110">a newly created #PangoAttrList</doc>
          <type name="Pango.AttrList" c:type="PangoAttrList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="105">a #PpsDocumentText</doc>
            <type name="DocumentText" c:type="PpsDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="106">a #PpsPage</doc>
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_text_in_area"
                      invoker="get_text_in_area"
                      version="47">
        <source-position filename="libdocument/pps-document-text.h" line="53"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-text.c"
               line="74">the text inside the area of the specified page or %NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="70">a #PpsDocumentText</doc>
            <type name="DocumentText" c:type="PpsDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="71">a #PpsPage of that document</doc>
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="72">a #PpsRectangle on that page</doc>
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_text_layout" invoker="get_text_layout">
        <source-position filename="libdocument/pps-document-text.h" line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-text.c"
               line="52">whether the text layout is empty, i.e. there is text on the page</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="47">a #PpsDocumentText</doc>
            <type name="DocumentText" c:type="PpsDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="48">a #PpsPage</doc>
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="areas"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="container"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="49">the text areas of the layout</doc>
            <array length="2" zero-terminated="0" c:type="PpsRectangle**">
              <type name="Rectangle" c:type="PpsRectangle*"/>
            </array>
          </parameter>
          <parameter name="n_areas"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="50">the number of text areas in the layout</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_text_mapping" invoker="get_text_mapping">
        <source-position filename="libdocument/pps-document-text.h" line="45"/>
        <return-value transfer-ownership="full">
          <type name="cairo.Region" c:type="cairo_region_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_text" transfer-ownership="none">
            <type name="DocumentText" c:type="PpsDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_text" c:identifier="pps_document_text_get_text">
        <source-position filename="libdocument/pps-document-text.h" line="61"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_text" transfer-ownership="none">
            <type name="DocumentText" c:type="PpsDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_text_attrs"
              c:identifier="pps_document_text_get_text_attrs"
              version="3.10">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-text.c"
             line="103">FIXME</doc>
        <source-position filename="libdocument/pps-document-text.h" line="76"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-text.c"
               line="110">a newly created #PangoAttrList</doc>
          <type name="Pango.AttrList" c:type="PangoAttrList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="105">a #PpsDocumentText</doc>
            <type name="DocumentText" c:type="PpsDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="106">a #PpsPage</doc>
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_text_in_area"
              c:identifier="pps_document_text_get_text_in_area"
              version="47">
        <source-position filename="libdocument/pps-document-text.h" line="69"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-text.c"
               line="74">the text inside the area of the specified page or %NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="70">a #PpsDocumentText</doc>
            <type name="DocumentText" c:type="PpsDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="71">a #PpsPage of that document</doc>
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="72">a #PpsRectangle on that page</doc>
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_text_layout"
              c:identifier="pps_document_text_get_text_layout">
        <source-position filename="libdocument/pps-document-text.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-text.c"
               line="52">whether the text layout is empty, i.e. there is text on the page</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="47">a #PpsDocumentText</doc>
            <type name="DocumentText" c:type="PpsDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="48">a #PpsPage</doc>
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="areas"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="container"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="49">the text areas of the layout</doc>
            <array length="2" zero-terminated="0" c:type="PpsRectangle**">
              <type name="Rectangle" c:type="PpsRectangle*"/>
            </array>
          </parameter>
          <parameter name="n_areas"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="50">the number of text areas in the layout</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_text_mapping"
              c:identifier="pps_document_text_get_text_mapping">
        <source-position filename="libdocument/pps-document-text.h" line="73"/>
        <return-value transfer-ownership="full">
          <type name="cairo.Region" c:type="cairo_region_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_text" transfer-ownership="none">
            <type name="DocumentText" c:type="PpsDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentTextInterface"
            c:type="PpsDocumentTextInterface"
            glib:is-gtype-struct-for="DocumentText">
      <source-position filename="libdocument/pps-document-text.h" line="58"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_text_mapping">
        <callback name="get_text_mapping">
          <source-position filename="libdocument/pps-document-text.h"
                           line="45"/>
          <return-value transfer-ownership="full">
            <type name="cairo.Region" c:type="cairo_region_t*"/>
          </return-value>
          <parameters>
            <parameter name="document_text" transfer-ownership="none">
              <type name="DocumentText" c:type="PpsDocumentText*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text">
        <callback name="get_text">
          <source-position filename="libdocument/pps-document-text.h"
                           line="47"/>
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="document_text" transfer-ownership="none">
              <type name="DocumentText" c:type="PpsDocumentText*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text_layout">
        <callback name="get_text_layout">
          <source-position filename="libdocument/pps-document-text.h"
                           line="49"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="52">whether the text layout is empty, i.e. there is text on the page</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_text" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-text.c"
                   line="47">a #PpsDocumentText</doc>
              <type name="DocumentText" c:type="PpsDocumentText*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-text.c"
                   line="48">a #PpsPage</doc>
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
            <parameter name="areas"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="container"
                       optional="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-text.c"
                   line="49">the text areas of the layout</doc>
              <array length="3" zero-terminated="0" c:type="PpsRectangle**">
                <type name="Rectangle" c:type="PpsRectangle*"/>
              </array>
            </parameter>
            <parameter name="n_areas"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-text.c"
                   line="50">the number of text areas in the layout</doc>
              <type name="guint" c:type="guint*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text_in_area">
        <callback name="get_text_in_area">
          <source-position filename="libdocument/pps-document-text.h"
                           line="53"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="74">the text inside the area of the specified page or %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="document_text" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-text.c"
                   line="70">a #PpsDocumentText</doc>
              <type name="DocumentText" c:type="PpsDocumentText*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-text.c"
                   line="71">a #PpsPage of that document</doc>
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-text.c"
                   line="72">a #PpsRectangle on that page</doc>
              <type name="Rectangle" c:type="PpsRectangle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text_attrs">
        <callback name="get_text_attrs">
          <source-position filename="libdocument/pps-document-text.h"
                           line="56"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="110">a newly created #PangoAttrList</doc>
            <type name="Pango.AttrList" c:type="PangoAttrList*"/>
          </return-value>
          <parameters>
            <parameter name="document_text" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-text.c"
                   line="105">a #PpsDocumentText</doc>
              <type name="DocumentText" c:type="PpsDocumentText*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-text.c"
                   line="106">a #PpsPage</doc>
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentTransition"
               c:symbol-prefix="document_transition"
               c:type="PpsDocumentTransition"
               glib:type-name="PpsDocumentTransition"
               glib:get-type="pps_document_transition_get_type"
               glib:type-struct="DocumentTransitionInterface">
      <source-position filename="libdocument/pps-document-transition.h"
                       line="49"/>
      <virtual-method name="get_effect" invoker="get_effect">
        <source-position filename="libdocument/pps-document-transition.h"
                         line="47"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-transition.c"
               line="48">an #PpsTransitionEffect</doc>
          <type name="TransitionEffect" c:type="PpsTransitionEffect*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_trans" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-transition.c"
                 line="45">an #PpsDocumentTransition</doc>
            <type name="DocumentTransition" c:type="PpsDocumentTransition*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-transition.c"
                 line="46">a page index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_page_duration" invoker="get_page_duration">
        <source-position filename="libdocument/pps-document-transition.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_trans" transfer-ownership="none">
            <type name="DocumentTransition" c:type="PpsDocumentTransition*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_effect"
              c:identifier="pps_document_transition_get_effect">
        <source-position filename="libdocument/pps-document-transition.h"
                         line="55"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-transition.c"
               line="48">an #PpsTransitionEffect</doc>
          <type name="TransitionEffect" c:type="PpsTransitionEffect*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_trans" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-transition.c"
                 line="45">an #PpsDocumentTransition</doc>
            <type name="DocumentTransition" c:type="PpsDocumentTransition*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-transition.c"
                 line="46">a page index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_page_duration"
              c:identifier="pps_document_transition_get_page_duration">
        <source-position filename="libdocument/pps-document-transition.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_trans" transfer-ownership="none">
            <type name="DocumentTransition" c:type="PpsDocumentTransition*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentTransitionInterface"
            c:type="PpsDocumentTransitionInterface"
            glib:is-gtype-struct-for="DocumentTransition">
      <source-position filename="libdocument/pps-document-transition.h"
                       line="49"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_page_duration">
        <callback name="get_page_duration">
          <source-position filename="libdocument/pps-document-transition.h"
                           line="45"/>
          <return-value transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </return-value>
          <parameters>
            <parameter name="document_trans" transfer-ownership="none">
              <type name="DocumentTransition" c:type="PpsDocumentTransition*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_effect">
        <callback name="get_effect">
          <source-position filename="libdocument/pps-document-transition.h"
                           line="47"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-transition.c"
                 line="48">an #PpsTransitionEffect</doc>
            <type name="TransitionEffect" c:type="PpsTransitionEffect*"/>
          </return-value>
          <parameters>
            <parameter name="document_trans" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-transition.c"
                   line="45">an #PpsDocumentTransition</doc>
              <type name="DocumentTransition" c:type="PpsDocumentTransition*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-transition.c"
                   line="46">a page index</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <bitfield name="DocumentUIHints"
              glib:type-name="PpsDocumentUIHints"
              glib:get-type="pps_document_ui_hints_get_type"
              c:type="PpsDocumentUIHints">
      <member name="hide_toolbar"
              value="1"
              c:identifier="PPS_DOCUMENT_UI_HINT_HIDE_TOOLBAR"
              glib:nick="hide-toolbar"
              glib:name="PPS_DOCUMENT_UI_HINT_HIDE_TOOLBAR">
      </member>
      <member name="hide_menubar"
              value="2"
              c:identifier="PPS_DOCUMENT_UI_HINT_HIDE_MENUBAR"
              glib:nick="hide-menubar"
              glib:name="PPS_DOCUMENT_UI_HINT_HIDE_MENUBAR">
      </member>
      <member name="hide_windowui"
              value="4"
              c:identifier="PPS_DOCUMENT_UI_HINT_HIDE_WINDOWUI"
              glib:nick="hide-windowui"
              glib:name="PPS_DOCUMENT_UI_HINT_HIDE_WINDOWUI">
      </member>
      <member name="fit_window"
              value="8"
              c:identifier="PPS_DOCUMENT_UI_HINT_FIT_WINDOW"
              glib:nick="fit-window"
              glib:name="PPS_DOCUMENT_UI_HINT_FIT_WINDOW">
      </member>
      <member name="center_window"
              value="16"
              c:identifier="PPS_DOCUMENT_UI_HINT_CENTER_WINDOW"
              glib:nick="center-window"
              glib:name="PPS_DOCUMENT_UI_HINT_CENTER_WINDOW">
      </member>
      <member name="display_doc_title"
              value="32"
              c:identifier="PPS_DOCUMENT_UI_HINT_DISPLAY_DOC_TITLE"
              glib:nick="display-doc-title"
              glib:name="PPS_DOCUMENT_UI_HINT_DISPLAY_DOC_TITLE">
      </member>
      <member name="direction_rtl"
              value="64"
              c:identifier="PPS_DOCUMENT_UI_HINT_DIRECTION_RTL"
              glib:nick="direction-rtl"
              glib:name="PPS_DOCUMENT_UI_HINT_DIRECTION_RTL">
      </member>
    </bitfield>
    <function-macro name="FORM_FIELD"
                    c:identifier="PPS_FORM_FIELD"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="36"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_BUTTON"
                    c:identifier="PPS_FORM_FIELD_BUTTON"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="50"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_BUTTON_CLASS"
                    c:identifier="PPS_FORM_FIELD_BUTTON_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="51"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_BUTTON_GET_CLASS"
                    c:identifier="PPS_FORM_FIELD_BUTTON_GET_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="54"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_CHOICE"
                    c:identifier="PPS_FORM_FIELD_CHOICE"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="57"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_CHOICE_CLASS"
                    c:identifier="PPS_FORM_FIELD_CHOICE_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="58"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_CHOICE_GET_CLASS"
                    c:identifier="PPS_FORM_FIELD_CHOICE_GET_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="61"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_CLASS"
                    c:identifier="PPS_FORM_FIELD_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="37"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_GET_CLASS"
                    c:identifier="PPS_FORM_FIELD_GET_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="40"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_SIGNATURE"
                    c:identifier="PPS_FORM_FIELD_SIGNATURE"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="64"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_SIGNATURE_CLASS"
                    c:identifier="PPS_FORM_FIELD_SIGNATURE_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="65"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_SIGNATURE_GET_CLASS"
                    c:identifier="PPS_FORM_FIELD_SIGNATURE_GET_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="68"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_TEXT"
                    c:identifier="PPS_FORM_FIELD_TEXT"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="43"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_TEXT_CLASS"
                    c:identifier="PPS_FORM_FIELD_TEXT_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="44"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FORM_FIELD_TEXT_GET_CLASS"
                    c:identifier="PPS_FORM_FIELD_TEXT_GET_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="47"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <interface name="FileExporter"
               c:symbol-prefix="file_exporter"
               c:type="PpsFileExporter"
               glib:type-name="PpsFileExporter"
               glib:get-type="pps_file_exporter_get_type"
               glib:type-struct="FileExporterInterface">
      <source-position filename="libdocument/pps-file-exporter.h" line="84"/>
      <virtual-method name="begin" invoker="begin">
        <source-position filename="libdocument/pps-file-exporter.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="PpsFileExporter*"/>
          </instance-parameter>
          <parameter name="fc" transfer-ownership="none">
            <type name="FileExporterContext" c:type="PpsFileExporterContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="begin_page" invoker="begin_page">
        <source-position filename="libdocument/pps-file-exporter.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="PpsFileExporter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="do_page" invoker="do_page">
        <source-position filename="libdocument/pps-file-exporter.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="PpsFileExporter*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="end" invoker="end">
        <source-position filename="libdocument/pps-file-exporter.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="PpsFileExporter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="end_page" invoker="end_page">
        <source-position filename="libdocument/pps-file-exporter.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="PpsFileExporter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_capabilities" invoker="get_capabilities">
        <source-position filename="libdocument/pps-file-exporter.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="FileExporterCapabilities"
                c:type="PpsFileExporterCapabilities"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="PpsFileExporter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="begin" c:identifier="pps_file_exporter_begin">
        <source-position filename="libdocument/pps-file-exporter.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="PpsFileExporter*"/>
          </instance-parameter>
          <parameter name="fc" transfer-ownership="none">
            <type name="FileExporterContext" c:type="PpsFileExporterContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="begin_page" c:identifier="pps_file_exporter_begin_page">
        <source-position filename="libdocument/pps-file-exporter.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="PpsFileExporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="do_page" c:identifier="pps_file_exporter_do_page">
        <source-position filename="libdocument/pps-file-exporter.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="PpsFileExporter*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="end" c:identifier="pps_file_exporter_end">
        <source-position filename="libdocument/pps-file-exporter.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="PpsFileExporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="end_page" c:identifier="pps_file_exporter_end_page">
        <source-position filename="libdocument/pps-file-exporter.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="PpsFileExporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_capabilities"
              c:identifier="pps_file_exporter_get_capabilities">
        <source-position filename="libdocument/pps-file-exporter.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="FileExporterCapabilities"
                c:type="PpsFileExporterCapabilities"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="PpsFileExporter*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <bitfield name="FileExporterCapabilities"
              glib:type-name="PpsFileExporterCapabilities"
              glib:get-type="pps_file_exporter_capabilities_get_type"
              c:type="PpsFileExporterCapabilities">
      <member name="page_set"
              value="1"
              c:identifier="PPS_FILE_EXPORTER_CAN_PAGE_SET"
              glib:nick="page-set"
              glib:name="PPS_FILE_EXPORTER_CAN_PAGE_SET">
      </member>
      <member name="copies"
              value="2"
              c:identifier="PPS_FILE_EXPORTER_CAN_COPIES"
              glib:nick="copies"
              glib:name="PPS_FILE_EXPORTER_CAN_COPIES">
      </member>
      <member name="collate"
              value="4"
              c:identifier="PPS_FILE_EXPORTER_CAN_COLLATE"
              glib:nick="collate"
              glib:name="PPS_FILE_EXPORTER_CAN_COLLATE">
      </member>
      <member name="reverse"
              value="8"
              c:identifier="PPS_FILE_EXPORTER_CAN_REVERSE"
              glib:nick="reverse"
              glib:name="PPS_FILE_EXPORTER_CAN_REVERSE">
      </member>
      <member name="scale"
              value="16"
              c:identifier="PPS_FILE_EXPORTER_CAN_SCALE"
              glib:nick="scale"
              glib:name="PPS_FILE_EXPORTER_CAN_SCALE">
      </member>
      <member name="generate_pdf"
              value="32"
              c:identifier="PPS_FILE_EXPORTER_CAN_GENERATE_PDF"
              glib:nick="generate-pdf"
              glib:name="PPS_FILE_EXPORTER_CAN_GENERATE_PDF">
      </member>
      <member name="generate_ps"
              value="64"
              c:identifier="PPS_FILE_EXPORTER_CAN_GENERATE_PS"
              glib:nick="generate-ps"
              glib:name="PPS_FILE_EXPORTER_CAN_GENERATE_PS">
      </member>
      <member name="preview"
              value="128"
              c:identifier="PPS_FILE_EXPORTER_CAN_PREVIEW"
              glib:nick="preview"
              glib:name="PPS_FILE_EXPORTER_CAN_PREVIEW">
      </member>
      <member name="number_up"
              value="256"
              c:identifier="PPS_FILE_EXPORTER_CAN_NUMBER_UP"
              glib:nick="number-up"
              glib:name="PPS_FILE_EXPORTER_CAN_NUMBER_UP">
      </member>
    </bitfield>
    <record name="FileExporterContext" c:type="PpsFileExporterContext">
      <source-position filename="libdocument/pps-file-exporter.h" line="65"/>
      <field name="format" writable="1">
        <type name="FileExporterFormat" c:type="PpsFileExporterFormat"/>
      </field>
      <field name="filename" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="first_page" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="last_page" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="paper_width" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="paper_height" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="duplex" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="pages_per_sheet" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
    </record>
    <enumeration name="FileExporterFormat"
                 glib:type-name="PpsFileExporterFormat"
                 glib:get-type="pps_file_exporter_format_get_type"
                 c:type="PpsFileExporterFormat">
      <member name="unknown"
              value="0"
              c:identifier="PPS_FILE_FORMAT_UNKNOWN"
              glib:nick="unknown"
              glib:name="PPS_FILE_FORMAT_UNKNOWN">
      </member>
      <member name="ps"
              value="1"
              c:identifier="PPS_FILE_FORMAT_PS"
              glib:nick="ps"
              glib:name="PPS_FILE_FORMAT_PS">
      </member>
      <member name="pdf"
              value="2"
              c:identifier="PPS_FILE_FORMAT_PDF"
              glib:nick="pdf"
              glib:name="PPS_FILE_FORMAT_PDF">
      </member>
    </enumeration>
    <record name="FileExporterInterface"
            c:type="PpsFileExporterInterface"
            glib:is-gtype-struct-for="FileExporter">
      <source-position filename="libdocument/pps-file-exporter.h" line="84"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="begin">
        <callback name="begin">
          <source-position filename="libdocument/pps-file-exporter.h"
                           line="76"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="exporter" transfer-ownership="none">
              <type name="FileExporter" c:type="PpsFileExporter*"/>
            </parameter>
            <parameter name="fc" transfer-ownership="none">
              <type name="FileExporterContext"
                    c:type="PpsFileExporterContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="begin_page">
        <callback name="begin_page">
          <source-position filename="libdocument/pps-file-exporter.h"
                           line="78"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="exporter" transfer-ownership="none">
              <type name="FileExporter" c:type="PpsFileExporter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="do_page">
        <callback name="do_page">
          <source-position filename="libdocument/pps-file-exporter.h"
                           line="79"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="exporter" transfer-ownership="none">
              <type name="FileExporter" c:type="PpsFileExporter*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <type name="RenderContext" c:type="PpsRenderContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end_page">
        <callback name="end_page">
          <source-position filename="libdocument/pps-file-exporter.h"
                           line="81"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="exporter" transfer-ownership="none">
              <type name="FileExporter" c:type="PpsFileExporter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end">
        <callback name="end">
          <source-position filename="libdocument/pps-file-exporter.h"
                           line="82"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="exporter" transfer-ownership="none">
              <type name="FileExporter" c:type="PpsFileExporter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_capabilities">
        <callback name="get_capabilities">
          <source-position filename="libdocument/pps-file-exporter.h"
                           line="83"/>
          <return-value transfer-ownership="none">
            <type name="FileExporterCapabilities"
                  c:type="PpsFileExporterCapabilities"/>
          </return-value>
          <parameters>
            <parameter name="exporter" transfer-ownership="none">
              <type name="FileExporter" c:type="PpsFileExporter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <bitfield name="FindOptions"
              glib:type-name="PpsFindOptions"
              glib:get-type="pps_find_options_get_type"
              c:type="PpsFindOptions">
      <member name="default"
              value="0"
              c:identifier="PPS_FIND_DEFAULT"
              glib:nick="default"
              glib:name="PPS_FIND_DEFAULT">
      </member>
      <member name="case_sensitive"
              value="1"
              c:identifier="PPS_FIND_CASE_SENSITIVE"
              glib:nick="case-sensitive"
              glib:name="PPS_FIND_CASE_SENSITIVE">
      </member>
      <member name="whole_words_only"
              value="2"
              c:identifier="PPS_FIND_WHOLE_WORDS_ONLY"
              glib:nick="whole-words-only"
              glib:name="PPS_FIND_WHOLE_WORDS_ONLY">
      </member>
    </bitfield>
    <record name="FindRectangle"
            c:type="PpsFindRectangle"
            glib:type-name="PpsFindRectangle"
            glib:get-type="pps_find_rectangle_get_type"
            c:symbol-prefix="find_rectangle">
      <source-position filename="libdocument/pps-document-find.h" line="52"/>
      <field name="x1" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="y1" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="x2" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="y2" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="next_line" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="after_hyphen" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="_pps_reserved1" introspectable="0">
        <callback name="_pps_reserved1">
          <source-position filename="libdocument/pps-document-find.h"
                           line="50"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_pps_reserved2" introspectable="0">
        <callback name="_pps_reserved2">
          <source-position filename="libdocument/pps-document-find.h"
                           line="51"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <constructor name="new" c:identifier="pps_find_rectangle_new">
        <source-position filename="libdocument/pps-document-find.h" line="57"/>
        <return-value transfer-ownership="full">
          <type name="FindRectangle" c:type="PpsFindRectangle*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="pps_find_rectangle_copy">
        <source-position filename="libdocument/pps-document-find.h" line="59"/>
        <return-value transfer-ownership="full">
          <type name="FindRectangle" c:type="PpsFindRectangle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_find_rect" transfer-ownership="none">
            <type name="FindRectangle" c:type="PpsFindRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="pps_find_rectangle_free">
        <source-position filename="libdocument/pps-document-find.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_find_rect" transfer-ownership="none">
            <type name="FindRectangle" c:type="PpsFindRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="FontDescription"
           c:symbol-prefix="font_description"
           c:type="PpsFontDescription"
           parent="GObject.Object"
           glib:type-name="PpsFontDescription"
           glib:get-type="pps_font_description_get_type"
           glib:type-struct="FontDescriptionClass">
      <source-position filename="libdocument/pps-font-description.h"
                       line="35"/>
      <constructor name="new" c:identifier="pps_font_description_new">
        <source-position filename="libdocument/pps-font-description.h"
                         line="42"/>
        <return-value transfer-ownership="full">
          <type name="FontDescription" c:type="PpsFontDescription*"/>
        </return-value>
      </constructor>
      <property name="details"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="FontDescriptionClass"
            c:type="PpsFontDescriptionClass"
            glib:is-gtype-struct-for="FontDescription">
      <source-position filename="libdocument/pps-font-description.h"
                       line="35"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="FormField"
           c:symbol-prefix="form_field"
           c:type="PpsFormField"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="PpsFormField"
           glib:get-type="pps_form_field_get_type"
           glib:type-struct="FormFieldClass">
      <source-position filename="libdocument/pps-form-field.h" line="121"/>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="id">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="is_read_only">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="font_size">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="activation_link">
        <type name="Link" c:type="PpsLink*"/>
      </field>
      <field name="page">
        <type name="Page" c:type="PpsPage*"/>
      </field>
      <field name="changed">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <class name="FormFieldButton"
           c:symbol-prefix="form_field_button"
           c:type="PpsFormFieldButton"
           parent="FormField"
           glib:type-name="PpsFormFieldButton"
           glib:get-type="pps_form_field_button_get_type"
           glib:type-struct="FormFieldButtonClass">
      <source-position filename="libdocument/pps-form-field.h" line="156"/>
      <constructor name="new" c:identifier="pps_form_field_button_new">
        <source-position filename="libdocument/pps-form-field.h" line="205"/>
        <return-value transfer-ownership="full">
          <type name="FormField" c:type="PpsFormField*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <type name="FormFieldButtonType" c:type="PpsFormFieldButtonType"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="FormField" c:type="PpsFormField"/>
      </field>
      <field name="type">
        <type name="FormFieldButtonType" c:type="PpsFormFieldButtonType"/>
      </field>
      <field name="state">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="FormFieldButtonClass"
            c:type="PpsFormFieldButtonClass"
            glib:is-gtype-struct-for="FormFieldButton">
      <source-position filename="libdocument/pps-form-field.h" line="156"/>
      <field name="parent_class">
        <type name="FormFieldClass" c:type="PpsFormFieldClass"/>
      </field>
    </record>
    <enumeration name="FormFieldButtonType"
                 glib:type-name="PpsFormFieldButtonType"
                 glib:get-type="pps_form_field_button_type_get_type"
                 c:type="PpsFormFieldButtonType">
      <member name="push"
              value="0"
              c:identifier="PPS_FORM_FIELD_BUTTON_PUSH"
              glib:nick="push"
              glib:name="PPS_FORM_FIELD_BUTTON_PUSH">
      </member>
      <member name="check"
              value="1"
              c:identifier="PPS_FORM_FIELD_BUTTON_CHECK"
              glib:nick="check"
              glib:name="PPS_FORM_FIELD_BUTTON_CHECK">
      </member>
      <member name="radio"
              value="2"
              c:identifier="PPS_FORM_FIELD_BUTTON_RADIO"
              glib:nick="radio"
              glib:name="PPS_FORM_FIELD_BUTTON_RADIO">
      </member>
    </enumeration>
    <class name="FormFieldChoice"
           c:symbol-prefix="form_field_choice"
           c:type="PpsFormFieldChoice"
           parent="FormField"
           glib:type-name="PpsFormFieldChoice"
           glib:get-type="pps_form_field_choice_get_type"
           glib:type-struct="FormFieldChoiceClass">
      <source-position filename="libdocument/pps-form-field.h" line="176"/>
      <constructor name="new" c:identifier="pps_form_field_choice_new">
        <source-position filename="libdocument/pps-form-field.h" line="212"/>
        <return-value transfer-ownership="full">
          <type name="FormField" c:type="PpsFormField*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <type name="FormFieldChoiceType" c:type="PpsFormFieldChoiceType"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="FormField" c:type="PpsFormField"/>
      </field>
      <field name="type">
        <type name="FormFieldChoiceType" c:type="PpsFormFieldChoiceType"/>
      </field>
      <field name="multi_select" bits="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="is_editable" bits="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="do_spell_check" bits="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="commit_on_sel_change" bits="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="selected_items">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="text">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </class>
    <record name="FormFieldChoiceClass"
            c:type="PpsFormFieldChoiceClass"
            glib:is-gtype-struct-for="FormFieldChoice">
      <source-position filename="libdocument/pps-form-field.h" line="176"/>
      <field name="parent_class">
        <type name="FormFieldClass" c:type="PpsFormFieldClass"/>
      </field>
    </record>
    <enumeration name="FormFieldChoiceType"
                 glib:type-name="PpsFormFieldChoiceType"
                 glib:get-type="pps_form_field_choice_type_get_type"
                 c:type="PpsFormFieldChoiceType">
      <member name="combo"
              value="0"
              c:identifier="PPS_FORM_FIELD_CHOICE_COMBO"
              glib:nick="combo"
              glib:name="PPS_FORM_FIELD_CHOICE_COMBO">
      </member>
      <member name="list"
              value="1"
              c:identifier="PPS_FORM_FIELD_CHOICE_LIST"
              glib:nick="list"
              glib:name="PPS_FORM_FIELD_CHOICE_LIST">
      </member>
    </enumeration>
    <record name="FormFieldClass"
            c:type="PpsFormFieldClass"
            glib:is-gtype-struct-for="FormField">
      <source-position filename="libdocument/pps-form-field.h" line="121"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="FormFieldSignature"
           c:symbol-prefix="form_field_signature"
           c:type="PpsFormFieldSignature"
           parent="FormField"
           glib:type-name="PpsFormFieldSignature"
           glib:get-type="pps_form_field_signature_get_type"
           glib:type-struct="FormFieldSignatureClass">
      <source-position filename="libdocument/pps-form-field.h" line="188"/>
      <constructor name="new" c:identifier="pps_form_field_signature_new">
        <source-position filename="libdocument/pps-form-field.h" line="219"/>
        <return-value transfer-ownership="full">
          <type name="FormField" c:type="PpsFormField*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="FormField" c:type="PpsFormField"/>
      </field>
    </class>
    <record name="FormFieldSignatureClass"
            c:type="PpsFormFieldSignatureClass"
            glib:is-gtype-struct-for="FormFieldSignature">
      <source-position filename="libdocument/pps-form-field.h" line="188"/>
      <field name="parent_class">
        <type name="FormFieldClass" c:type="PpsFormFieldClass"/>
      </field>
    </record>
    <class name="FormFieldText"
           c:symbol-prefix="form_field_text"
           c:type="PpsFormFieldText"
           parent="FormField"
           glib:type-name="PpsFormFieldText"
           glib:get-type="pps_form_field_text_get_type"
           glib:type-struct="FormFieldTextClass">
      <source-position filename="libdocument/pps-form-field.h" line="142"/>
      <constructor name="new" c:identifier="pps_form_field_text_new">
        <source-position filename="libdocument/pps-form-field.h" line="198"/>
        <return-value transfer-ownership="full">
          <type name="FormField" c:type="PpsFormField*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <type name="FormFieldTextType" c:type="PpsFormFieldTextType"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="FormField" c:type="PpsFormField"/>
      </field>
      <field name="type">
        <type name="FormFieldTextType" c:type="PpsFormFieldTextType"/>
      </field>
      <field name="do_spell_check" bits="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="do_scroll" bits="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="comb" bits="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="is_rich_text" bits="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="is_password">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="max_len">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="text">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </class>
    <record name="FormFieldTextClass"
            c:type="PpsFormFieldTextClass"
            glib:is-gtype-struct-for="FormFieldText">
      <source-position filename="libdocument/pps-form-field.h" line="142"/>
      <field name="parent_class">
        <type name="FormFieldClass" c:type="PpsFormFieldClass"/>
      </field>
    </record>
    <enumeration name="FormFieldTextType"
                 glib:type-name="PpsFormFieldTextType"
                 glib:get-type="pps_form_field_text_type_get_type"
                 c:type="PpsFormFieldTextType">
      <member name="normal"
              value="0"
              c:identifier="PPS_FORM_FIELD_TEXT_NORMAL"
              glib:nick="normal"
              glib:name="PPS_FORM_FIELD_TEXT_NORMAL">
      </member>
      <member name="multiline"
              value="1"
              c:identifier="PPS_FORM_FIELD_TEXT_MULTILINE"
              glib:nick="multiline"
              glib:name="PPS_FORM_FIELD_TEXT_MULTILINE">
      </member>
      <member name="file_select"
              value="2"
              c:identifier="PPS_FORM_FIELD_TEXT_FILE_SELECT"
              glib:nick="file-select"
              glib:name="PPS_FORM_FIELD_TEXT_FILE_SELECT">
      </member>
    </enumeration>
    <function-macro name="IS_FORM_FIELD"
                    c:identifier="PPS_IS_FORM_FIELD"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="38"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FORM_FIELD_BUTTON"
                    c:identifier="PPS_IS_FORM_FIELD_BUTTON"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="52"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FORM_FIELD_BUTTON_CLASS"
                    c:identifier="PPS_IS_FORM_FIELD_BUTTON_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="53"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FORM_FIELD_CHOICE"
                    c:identifier="PPS_IS_FORM_FIELD_CHOICE"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="59"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FORM_FIELD_CHOICE_CLASS"
                    c:identifier="PPS_IS_FORM_FIELD_CHOICE_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="60"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FORM_FIELD_CLASS"
                    c:identifier="PPS_IS_FORM_FIELD_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="39"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FORM_FIELD_SIGNATURE"
                    c:identifier="PPS_IS_FORM_FIELD_SIGNATURE"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="66"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FORM_FIELD_SIGNATURE_CLASS"
                    c:identifier="PPS_IS_FORM_FIELD_SIGNATURE_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="67"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FORM_FIELD_TEXT"
                    c:identifier="PPS_IS_FORM_FIELD_TEXT"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="45"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FORM_FIELD_TEXT_CLASS"
                    c:identifier="PPS_IS_FORM_FIELD_TEXT_CLASS"
                    introspectable="0">
      <source-position filename="libdocument/pps-form-field.h" line="46"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Image"
           c:symbol-prefix="image"
           c:type="PpsImage"
           parent="GObject.Object"
           glib:type-name="PpsImage"
           glib:get-type="pps_image_get_type"
           glib:type-struct="ImageClass">
      <source-position filename="libdocument/pps-image.h" line="36"/>
      <constructor name="new" c:identifier="pps_image_new">
        <source-position filename="libdocument/pps-image.h" line="43"/>
        <return-value transfer-ownership="full">
          <type name="Image" c:type="PpsImage*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="img_id" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_pixbuf"
                   c:identifier="pps_image_new_from_pixbuf">
        <source-position filename="libdocument/pps-image.h" line="46"/>
        <return-value transfer-ownership="full">
          <type name="Image" c:type="PpsImage*"/>
        </return-value>
        <parameters>
          <parameter name="pixbuf" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_id" c:identifier="pps_image_get_id">
        <source-position filename="libdocument/pps-image.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <type name="Image" c:type="PpsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page" c:identifier="pps_image_get_page">
        <source-position filename="libdocument/pps-image.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <type name="Image" c:type="PpsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixbuf" c:identifier="pps_image_get_pixbuf">
        <source-position filename="libdocument/pps-image.h" line="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-image.c"
               line="130">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-image.c"
                 line="128">an #PpsImage</doc>
            <type name="Image" c:type="PpsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tmp_uri" c:identifier="pps_image_get_tmp_uri">
        <source-position filename="libdocument/pps-image.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <type name="Image" c:type="PpsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="save_tmp" c:identifier="pps_image_save_tmp">
        <source-position filename="libdocument/pps-image.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <type name="Image" c:type="PpsImage*"/>
          </instance-parameter>
          <parameter name="pixbuf" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <field name="base_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ImageClass"
            c:type="PpsImageClass"
            glib:is-gtype-struct-for="Image">
      <source-position filename="libdocument/pps-image.h" line="36"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Layer"
           c:symbol-prefix="layer"
           c:type="PpsLayer"
           parent="GObject.Object"
           glib:type-name="PpsLayer"
           glib:get-type="pps_layer_get_type"
           glib:type-struct="LayerClass">
      <source-position filename="libdocument/pps-layer.h" line="36"/>
      <constructor name="new" c:identifier="pps_layer_new">
        <source-position filename="libdocument/pps-layer.h" line="43"/>
        <return-value transfer-ownership="full">
          <type name="Layer" c:type="PpsLayer*"/>
        </return-value>
        <parameters>
          <parameter name="rb_group" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_children"
              c:identifier="pps_layer_get_children"
              glib:get-property="children">
        <source-position filename="libdocument/pps-layer.h" line="50"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-layer.c"
               line="77">The children of the layer</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-layer.c"
                 line="75">A #PpsLayer</doc>
            <type name="Layer" c:type="PpsLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rb_group" c:identifier="pps_layer_get_rb_group">
        <source-position filename="libdocument/pps-layer.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="PpsLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_children"
              c:identifier="pps_layer_set_children"
              glib:set-property="children">
        <doc xml:space="preserve"
             filename="libdocument/pps-layer.c"
             line="56">Sets the 'children' property of the layer.</doc>
        <source-position filename="libdocument/pps-layer.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-layer.c"
                 line="58">A #PpsLayer</doc>
            <type name="Layer" c:type="PpsLayer*"/>
          </instance-parameter>
          <parameter name="children" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-layer.c"
                 line="59">The children of the layer</doc>
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </parameter>
        </parameters>
      </method>
      <property name="children"
                writable="1"
                transfer-ownership="none"
                setter="set_children"
                getter="get_children">
        <type name="Gio.ListModel"/>
      </property>
      <property name="enabled"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="title"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title-only"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="base_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="LayerClass"
            c:type="PpsLayerClass"
            glib:is-gtype-struct-for="Layer">
      <source-position filename="libdocument/pps-layer.h" line="36"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Link"
           c:symbol-prefix="link"
           c:type="PpsLink"
           parent="GObject.Object"
           glib:type-name="PpsLink"
           glib:get-type="pps_link_get_type"
           glib:type-struct="LinkClass">
      <source-position filename="libdocument/pps-link.h" line="37"/>
      <constructor name="new" c:identifier="pps_link_new">
        <source-position filename="libdocument/pps-link.h" line="40"/>
        <return-value transfer-ownership="full">
          <type name="Link" c:type="PpsLink*"/>
        </return-value>
        <parameters>
          <parameter name="title"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link.c"
                 line="168">the title</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link.c"
                 line="169">a #PpsLinkAction</doc>
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_action"
              c:identifier="pps_link_get_action"
              glib:get-property="action">
        <source-position filename="libdocument/pps-link.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link.c"
               line="57">an #PpsLinkAction</doc>
          <type name="LinkAction" c:type="PpsLinkAction*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link.c"
                 line="55">an #PpsLink</doc>
            <type name="Link" c:type="PpsLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="pps_link_get_title"
              glib:get-property="title">
        <source-position filename="libdocument/pps-link.h" line="44"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Link" c:type="PpsLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="action"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_action">
        <type name="LinkAction"/>
      </property>
      <property name="title"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_title"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <class name="LinkAction"
           c:symbol-prefix="link_action"
           c:type="PpsLinkAction"
           parent="GObject.Object"
           glib:type-name="PpsLinkAction"
           glib:get-type="pps_link_action_get_type"
           glib:type-struct="LinkActionClass">
      <source-position filename="libdocument/pps-link-action.h" line="37"/>
      <constructor name="new_dest" c:identifier="pps_link_action_new_dest">
        <source-position filename="libdocument/pps-link-action.h" line="75"/>
        <return-value transfer-ownership="full">
          <type name="LinkAction" c:type="PpsLinkAction*"/>
        </return-value>
        <parameters>
          <parameter name="dest" transfer-ownership="none">
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_external_uri"
                   c:identifier="pps_link_action_new_external_uri">
        <source-position filename="libdocument/pps-link-action.h" line="80"/>
        <return-value transfer-ownership="full">
          <type name="LinkAction" c:type="PpsLinkAction*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_launch" c:identifier="pps_link_action_new_launch">
        <source-position filename="libdocument/pps-link-action.h" line="82"/>
        <return-value transfer-ownership="full">
          <type name="LinkAction" c:type="PpsLinkAction*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="params" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_layers_state"
                   c:identifier="pps_link_action_new_layers_state">
        <source-position filename="libdocument/pps-link-action.h" line="87"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="495">a new #PpsLinkAction</doc>
          <type name="LinkAction" c:type="PpsLinkAction*"/>
        </return-value>
        <parameters>
          <parameter name="show_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="491">a list of #PpsLayer objects</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Layer"/>
            </type>
          </parameter>
          <parameter name="hide_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="492">a list of #PpsLayer objects</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Layer"/>
            </type>
          </parameter>
          <parameter name="toggle_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="493">a list of #PpsLayer objects</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Layer"/>
            </type>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_named" c:identifier="pps_link_action_new_named">
        <source-position filename="libdocument/pps-link-action.h" line="85"/>
        <return-value transfer-ownership="full">
          <type name="LinkAction" c:type="PpsLinkAction*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_remote" c:identifier="pps_link_action_new_remote">
        <source-position filename="libdocument/pps-link-action.h" line="77"/>
        <return-value transfer-ownership="full">
          <type name="LinkAction" c:type="PpsLinkAction*"/>
        </return-value>
        <parameters>
          <parameter name="dest" transfer-ownership="none">
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </parameter>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_reset_form"
                   c:identifier="pps_link_action_new_reset_form">
        <source-position filename="libdocument/pps-link-action.h" line="91"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="515">a new #PpsLinkAction</doc>
          <type name="LinkAction" c:type="PpsLinkAction*"/>
        </return-value>
        <parameters>
          <parameter name="fields" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="512">a list of fields to reset</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="exclude_fields" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="513">whether to exclude reset fields when resetting form</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="equal" c:identifier="pps_link_action_equal" version="3.8">
        <doc xml:space="preserve"
             filename="libdocument/pps-link-action.c"
             line="528">Checks whether @a and @b are equal.</doc>
        <source-position filename="libdocument/pps-link-action.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="535">%TRUE iff @a and @b are equal</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="530">a #PpsLinkAction</doc>
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="531">a #PpsLinkAction</doc>
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_action_type"
              c:identifier="pps_link_action_get_action_type">
        <source-position filename="libdocument/pps-link-action.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="LinkActionType" c:type="PpsLinkActionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dest"
              c:identifier="pps_link_action_get_dest"
              glib:get-property="dest">
        <source-position filename="libdocument/pps-link-action.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="77">an #PpsLinkDest</doc>
          <type name="LinkDest" c:type="PpsLinkDest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="75">an #PpsLinkAction</doc>
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_exclude_reset_fields"
              c:identifier="pps_link_action_get_exclude_reset_fields"
              glib:get-property="exclude-reset-fields">
        <source-position filename="libdocument/pps-link-action.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="188">whether to exclude reset fields when resetting form</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="186">an #PpsLinkAction</doc>
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename"
              c:identifier="pps_link_action_get_filename"
              glib:get-property="filename">
        <source-position filename="libdocument/pps-link-action.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hide_list"
              c:identifier="pps_link_action_get_hide_list"
              glib:get-property="hide-list">
        <source-position filename="libdocument/pps-link-action.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="143">a list of #PpsLayer objects</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Layer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="141">an #PpsLinkAction</doc>
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="pps_link_action_get_name"
              glib:get-property="name">
        <source-position filename="libdocument/pps-link-action.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_params"
              c:identifier="pps_link_action_get_params"
              glib:get-property="params">
        <source-position filename="libdocument/pps-link-action.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reset_fields"
              c:identifier="pps_link_action_get_reset_fields"
              glib:get-property="reset-fields">
        <source-position filename="libdocument/pps-link-action.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="173">a list of fields to reset</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="171">an #PpsLinkAction</doc>
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_list"
              c:identifier="pps_link_action_get_show_list"
              glib:get-property="show-list">
        <source-position filename="libdocument/pps-link-action.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="128">a list of #PpsLayer objects</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Layer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="126">an #PpsLinkAction</doc>
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_toggle_list"
              c:identifier="pps_link_action_get_toggle_list"
              glib:get-property="toggle-list">
        <source-position filename="libdocument/pps-link-action.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="158">a list of #PpsLayer objects</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Layer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-action.c"
                 line="156">an #PpsLinkAction</doc>
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri"
              c:identifier="pps_link_action_get_uri"
              glib:get-property="uri">
        <source-position filename="libdocument/pps-link-action.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkAction" c:type="PpsLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="dest"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_dest">
        <type name="LinkDest"/>
      </property>
      <property name="exclude-reset-fields"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_exclude_reset_fields"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="filename"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_filename"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="hide-list"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_hide_list">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="params"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_params"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="reset-fields"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_reset_fields">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="show-list"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_show_list">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="toggle-list"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_toggle_list">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="type"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="PPS_LINK_ACTION_TYPE_GOTO_DEST">
        <type name="LinkActionType"/>
      </property>
      <property name="uri"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_uri"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="LinkActionClass"
            c:type="PpsLinkActionClass"
            glib:is-gtype-struct-for="LinkAction">
      <source-position filename="libdocument/pps-link-action.h" line="37"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="LinkActionType"
                 glib:type-name="PpsLinkActionType"
                 glib:get-type="pps_link_action_type_get_type"
                 c:type="PpsLinkActionType">
      <member name="goto_dest"
              value="0"
              c:identifier="PPS_LINK_ACTION_TYPE_GOTO_DEST"
              glib:nick="goto-dest"
              glib:name="PPS_LINK_ACTION_TYPE_GOTO_DEST">
      </member>
      <member name="goto_remote"
              value="1"
              c:identifier="PPS_LINK_ACTION_TYPE_GOTO_REMOTE"
              glib:nick="goto-remote"
              glib:name="PPS_LINK_ACTION_TYPE_GOTO_REMOTE">
      </member>
      <member name="external_uri"
              value="2"
              c:identifier="PPS_LINK_ACTION_TYPE_EXTERNAL_URI"
              glib:nick="external-uri"
              glib:name="PPS_LINK_ACTION_TYPE_EXTERNAL_URI">
      </member>
      <member name="launch"
              value="3"
              c:identifier="PPS_LINK_ACTION_TYPE_LAUNCH"
              glib:nick="launch"
              glib:name="PPS_LINK_ACTION_TYPE_LAUNCH">
      </member>
      <member name="named"
              value="4"
              c:identifier="PPS_LINK_ACTION_TYPE_NAMED"
              glib:nick="named"
              glib:name="PPS_LINK_ACTION_TYPE_NAMED">
      </member>
      <member name="layers_state"
              value="5"
              c:identifier="PPS_LINK_ACTION_TYPE_LAYERS_STATE"
              glib:nick="layers-state"
              glib:name="PPS_LINK_ACTION_TYPE_LAYERS_STATE">
      </member>
      <member name="reset_form"
              value="6"
              c:identifier="PPS_LINK_ACTION_TYPE_RESET_FORM"
              glib:nick="reset-form"
              glib:name="PPS_LINK_ACTION_TYPE_RESET_FORM">
      </member>
    </enumeration>
    <record name="LinkClass"
            c:type="PpsLinkClass"
            glib:is-gtype-struct-for="Link">
      <source-position filename="libdocument/pps-link.h" line="37"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="LinkDest"
           c:symbol-prefix="link_dest"
           c:type="PpsLinkDest"
           parent="GObject.Object"
           glib:type-name="PpsLinkDest"
           glib:get-type="pps_link_dest_get_type"
           glib:type-struct="LinkDestClass">
      <source-position filename="libdocument/pps-link-dest.h" line="36"/>
      <constructor name="new_fit" c:identifier="pps_link_dest_new_fit">
        <source-position filename="libdocument/pps-link-dest.h" line="83"/>
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="PpsLinkDest*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_fith" c:identifier="pps_link_dest_new_fith">
        <source-position filename="libdocument/pps-link-dest.h" line="85"/>
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="PpsLinkDest*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="top" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="change_top" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_fitr" c:identifier="pps_link_dest_new_fitr">
        <source-position filename="libdocument/pps-link-dest.h" line="93"/>
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="PpsLinkDest*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="left" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="bottom" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="right" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="top" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_fitv" c:identifier="pps_link_dest_new_fitv">
        <source-position filename="libdocument/pps-link-dest.h" line="89"/>
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="PpsLinkDest*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="left" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="change_left" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_named" c:identifier="pps_link_dest_new_named">
        <source-position filename="libdocument/pps-link-dest.h" line="99"/>
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="PpsLinkDest*"/>
        </return-value>
        <parameters>
          <parameter name="named_dest" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_page" c:identifier="pps_link_dest_new_page">
        <source-position filename="libdocument/pps-link-dest.h" line="73"/>
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="PpsLinkDest*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_page_label"
                   c:identifier="pps_link_dest_new_page_label">
        <source-position filename="libdocument/pps-link-dest.h" line="101"/>
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="PpsLinkDest*"/>
        </return-value>
        <parameters>
          <parameter name="page_label" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_xyz" c:identifier="pps_link_dest_new_xyz">
        <source-position filename="libdocument/pps-link-dest.h" line="75"/>
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="PpsLinkDest*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="left" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="top" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="zoom" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="change_left" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="change_top" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="change_zoom" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="equal" c:identifier="pps_link_dest_equal" version="3.8">
        <doc xml:space="preserve"
             filename="libdocument/pps-link-dest.c"
             line="529">Checks whether @a and @b are equal.</doc>
        <source-position filename="libdocument/pps-link-dest.h" line="104"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-dest.c"
               line="536">%TRUE iff @a and @b are equal</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-dest.c"
                 line="531">a #PpsLinkDest</doc>
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-dest.c"
                 line="532">a #PpsLinkDest</doc>
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bottom"
              c:identifier="pps_link_dest_get_bottom"
              glib:get-property="bottom">
        <source-position filename="libdocument/pps-link-dest.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dest_type" c:identifier="pps_link_dest_get_dest_type">
        <source-position filename="libdocument/pps-link-dest.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="LinkDestType" c:type="PpsLinkDestType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_left"
              c:identifier="pps_link_dest_get_left"
              glib:get-property="left">
        <source-position filename="libdocument/pps-link-dest.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-dest.c"
                 line="107">a `PpsLinkDest`</doc>
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </instance-parameter>
          <parameter name="change_left"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-dest.c"
                 line="108">whether the `PPS_DEST_CHANGE_LEFT` flag is set</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_named_dest"
              c:identifier="pps_link_dest_get_named_dest">
        <source-position filename="libdocument/pps-link-dest.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page"
              c:identifier="pps_link_dest_get_page"
              glib:get-property="page">
        <source-position filename="libdocument/pps-link-dest.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page_label"
              c:identifier="pps_link_dest_get_page_label"
              glib:get-property="page-label">
        <source-position filename="libdocument/pps-link-dest.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_right"
              c:identifier="pps_link_dest_get_right"
              glib:get-property="right">
        <source-position filename="libdocument/pps-link-dest.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_top"
              c:identifier="pps_link_dest_get_top"
              glib:get-property="top">
        <source-position filename="libdocument/pps-link-dest.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-dest.c"
                 line="89">a `PpsLinkDest`</doc>
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </instance-parameter>
          <parameter name="change_top"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-dest.c"
                 line="90">whether the `PPS_DEST_CHANGE_TOP` flag is set</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_zoom"
              c:identifier="pps_link_dest_get_zoom"
              glib:get-property="zoom">
        <source-position filename="libdocument/pps-link-dest.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-dest.c"
                 line="143">a `PpsLinkDest`</doc>
            <type name="LinkDest" c:type="PpsLinkDest*"/>
          </instance-parameter>
          <parameter name="change_zoom"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-link-dest.c"
                 line="144">whether the `PPS_DEST_CHANGE_ZOOM` flag is set</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <property name="bottom"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_bottom"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="change"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="left"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_left"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="named"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="page"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_page"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="page-label"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_page_label"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="right"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_right"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="top"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_top"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="type"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="PPS_LINK_DEST_TYPE_UNKNOWN">
        <type name="LinkDestType"/>
      </property>
      <property name="zoom"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_zoom"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
    </class>
    <record name="LinkDestClass"
            c:type="PpsLinkDestClass"
            glib:is-gtype-struct-for="LinkDest">
      <source-position filename="libdocument/pps-link-dest.h" line="36"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="LinkDestType"
                 glib:type-name="PpsLinkDestType"
                 glib:get-type="pps_link_dest_type_get_type"
                 c:type="PpsLinkDestType">
      <member name="page"
              value="0"
              c:identifier="PPS_LINK_DEST_TYPE_PAGE"
              glib:nick="page"
              glib:name="PPS_LINK_DEST_TYPE_PAGE">
      </member>
      <member name="xyz"
              value="1"
              c:identifier="PPS_LINK_DEST_TYPE_XYZ"
              glib:nick="xyz"
              glib:name="PPS_LINK_DEST_TYPE_XYZ">
      </member>
      <member name="fit"
              value="2"
              c:identifier="PPS_LINK_DEST_TYPE_FIT"
              glib:nick="fit"
              glib:name="PPS_LINK_DEST_TYPE_FIT">
      </member>
      <member name="fith"
              value="3"
              c:identifier="PPS_LINK_DEST_TYPE_FITH"
              glib:nick="fith"
              glib:name="PPS_LINK_DEST_TYPE_FITH">
      </member>
      <member name="fitv"
              value="4"
              c:identifier="PPS_LINK_DEST_TYPE_FITV"
              glib:nick="fitv"
              glib:name="PPS_LINK_DEST_TYPE_FITV">
      </member>
      <member name="fitr"
              value="5"
              c:identifier="PPS_LINK_DEST_TYPE_FITR"
              glib:nick="fitr"
              glib:name="PPS_LINK_DEST_TYPE_FITR">
      </member>
      <member name="named"
              value="6"
              c:identifier="PPS_LINK_DEST_TYPE_NAMED"
              glib:nick="named"
              glib:name="PPS_LINK_DEST_TYPE_NAMED">
      </member>
      <member name="page_label"
              value="7"
              c:identifier="PPS_LINK_DEST_TYPE_PAGE_LABEL"
              glib:nick="page-label"
              glib:name="PPS_LINK_DEST_TYPE_PAGE_LABEL">
      </member>
      <member name="unknown"
              value="8"
              c:identifier="PPS_LINK_DEST_TYPE_UNKNOWN"
              glib:nick="unknown"
              glib:name="PPS_LINK_DEST_TYPE_UNKNOWN">
      </member>
    </enumeration>
    <constant name="MAJOR_VERSION" value="47" c:type="PPS_MAJOR_VERSION">
      <doc xml:space="preserve"
           filename="libdocument/pps-version.h"
           line="28">The major version number of the EV library
(e.g. in version 3.1.4 this is 3).</doc>
      <source-position filename="libdocument/pps-version.h" line="35"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="Mapping"
            c:type="PpsMapping"
            glib:type-name="PpsMapping"
            glib:get-type="pps_mapping_get_type"
            c:symbol-prefix="mapping">
      <source-position filename="libdocument/pps-document.h" line="236"/>
      <field name="area" writable="1">
        <type name="Rectangle" c:type="PpsRectangle"/>
      </field>
      <field name="data" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <constructor name="new" c:identifier="pps_mapping_new">
        <source-position filename="libdocument/pps-document.h" line="241"/>
        <return-value transfer-ownership="full">
          <type name="Mapping" c:type="PpsMapping*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="pps_mapping_copy">
        <source-position filename="libdocument/pps-document.h" line="243"/>
        <return-value transfer-ownership="full">
          <type name="Mapping" c:type="PpsMapping*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_mapping" transfer-ownership="none">
            <type name="Mapping" c:type="PpsMapping*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="pps_mapping_free">
        <source-position filename="libdocument/pps-document.h" line="245"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_mapping" transfer-ownership="none">
            <type name="Mapping" c:type="PpsMapping*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_area" c:identifier="pps_mapping_get_area">
        <source-position filename="libdocument/pps-document.h" line="249"/>
        <return-value transfer-ownership="none">
          <type name="Rectangle" c:type="PpsRectangle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_mapping" transfer-ownership="none">
            <type name="Mapping" c:type="PpsMapping*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_data" c:identifier="pps_mapping_get_data">
        <source-position filename="libdocument/pps-document.h" line="253"/>
        <return-value transfer-ownership="none" nullable="1">
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_mapping" transfer-ownership="none">
            <type name="Mapping" c:type="const PpsMapping*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_area" c:identifier="pps_mapping_set_area">
        <source-position filename="libdocument/pps-document.h" line="247"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_mapping" transfer-ownership="none">
            <type name="Mapping" c:type="PpsMapping*"/>
          </instance-parameter>
          <parameter name="area" transfer-ownership="full">
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_data" c:identifier="pps_mapping_set_data">
        <source-position filename="libdocument/pps-document.h" line="251"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_mapping" transfer-ownership="none">
            <type name="Mapping" c:type="PpsMapping*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="full">
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="MappingList"
            c:type="PpsMappingList"
            opaque="1"
            glib:type-name="PpsMappingList"
            glib:get-type="pps_mapping_list_get_type"
            c:symbol-prefix="mapping_list">
      <source-position filename="libdocument/pps-mapping-list.h" line="32"/>
      <constructor name="new" c:identifier="pps_mapping_list_new">
        <source-position filename="libdocument/pps-mapping-list.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="235">an #PpsMappingList</doc>
          <type name="MappingList" c:type="PpsMappingList*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="231">page index for this mapping</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="232">a #GList of data for the page</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Mapping"/>
            </type>
          </parameter>
          <parameter name="data_destroy_func"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="233">function to free a list element</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="find" c:identifier="pps_mapping_list_find">
        <source-position filename="libdocument/pps-mapping-list.h" line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="43">an #PpsMapping</doc>
          <type name="Mapping" c:type="PpsMapping*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="40">an #PpsMappingList</doc>
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="41">mapping data to find</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_custom" c:identifier="pps_mapping_list_find_custom">
        <source-position filename="libdocument/pps-mapping-list.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="67">an #PpsMapping</doc>
          <type name="Mapping" c:type="PpsMapping*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="63">an #PpsMappingList</doc>
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="64">mapping data to find</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="func" transfer-ownership="none" scope="call">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="65">function to use for equality check</doc>
            <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
          </parameter>
        </parameters>
      </method>
      <method name="get" c:identifier="pps_mapping_list_get" version="3.12">
        <source-position filename="libdocument/pps-mapping-list.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="132">the #PpsMapping in the list at coordinates (x, y)</doc>
          <type name="Mapping" c:type="PpsMapping*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="128">an #PpsMappingList</doc>
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="129">X coordinate</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="130">Y coordinate</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_data" c:identifier="pps_mapping_list_get_data">
        <source-position filename="libdocument/pps-mapping-list.h" line="66"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="171">the data of a mapping in the list at coordinates (x, y)</doc>
          <type name="gpointer" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="167">an #PpsMappingList</doc>
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="168">X coordinate</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="169">Y coordinate</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_list" c:identifier="pps_mapping_list_get_list">
        <source-position filename="libdocument/pps-mapping-list.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="191">the data for this mapping list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Mapping"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="189">an #PpsMappingList</doc>
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page" c:identifier="pps_mapping_list_get_page">
        <source-position filename="libdocument/pps-mapping-list.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="length" c:identifier="pps_mapping_list_length">
        <source-position filename="libdocument/pps-mapping-list.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="nth" c:identifier="pps_mapping_list_nth">
        <source-position filename="libdocument/pps-mapping-list.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="91">the #Ppsmapping at position @n in @mapping_list</doc>
          <type name="Mapping" c:type="PpsMapping*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="88">an #PpsMappingList</doc>
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
          <parameter name="n" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="89">the position to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="pps_mapping_list_ref">
        <source-position filename="libdocument/pps-mapping-list.h" line="43"/>
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="PpsMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove"
              c:identifier="pps_mapping_list_remove"
              version="3.14">
        <source-position filename="libdocument/pps-mapping-list.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="201">an #PpsMappingList</doc>
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
          <parameter name="mapping" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="202">#PpsMapping to remove</doc>
            <type name="Mapping" c:type="PpsMapping*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="pps_mapping_list_unref">
        <source-position filename="libdocument/pps-mapping-list.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="Media"
           c:symbol-prefix="media"
           c:type="PpsMedia"
           parent="GObject.Object"
           glib:type-name="PpsMedia"
           glib:get-type="pps_media_get_type"
           glib:type-struct="MediaClass">
      <source-position filename="libdocument/pps-media.h" line="36"/>
      <constructor name="new_for_uri" c:identifier="pps_media_new_for_uri">
        <source-position filename="libdocument/pps-media.h" line="43"/>
        <return-value transfer-ownership="full">
          <type name="Media" c:type="PpsMedia*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_page_index" c:identifier="pps_media_get_page_index">
        <source-position filename="libdocument/pps-media.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="Media" c:type="PpsMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_controls"
              c:identifier="pps_media_get_show_controls">
        <source-position filename="libdocument/pps-media.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="Media" c:type="PpsMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="pps_media_get_uri">
        <source-position filename="libdocument/pps-media.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="Media" c:type="PpsMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_show_controls"
              c:identifier="pps_media_set_show_controls">
        <source-position filename="libdocument/pps-media.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="Media" c:type="PpsMedia*"/>
          </instance-parameter>
          <parameter name="show_controls" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="base_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="MediaClass"
            c:type="PpsMediaClass"
            glib:is-gtype-struct-for="Media">
      <source-position filename="libdocument/pps-media.h" line="36"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Outlines"
           c:symbol-prefix="outlines"
           c:type="PpsOutlines"
           parent="GObject.Object"
           glib:type-name="PpsOutlines"
           glib:get-type="pps_outlines_get_type"
           glib:type-struct="OutlinesClass">
      <source-position filename="libdocument/pps-outlines.h" line="33"/>
      <constructor name="new" c:identifier="pps_outlines_new">
        <source-position filename="libdocument/pps-outlines.h" line="41"/>
        <return-value transfer-ownership="full">
          <type name="Outlines" c:type="PpsOutlines*"/>
        </return-value>
      </constructor>
      <method name="get_children"
              c:identifier="pps_outlines_get_children"
              glib:get-property="children">
        <source-position filename="libdocument/pps-outlines.h" line="57"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-outlines.c"
               line="166">The children of the outlines</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_outlines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-outlines.c"
                 line="164">A #PpsOutlines</doc>
            <type name="Outlines" c:type="PpsOutlines*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_expand"
              c:identifier="pps_outlines_get_expand"
              glib:get-property="expand">
        <source-position filename="libdocument/pps-outlines.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-outlines.c"
               line="134">Whether the outlines should be expanded</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_outlines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-outlines.c"
                 line="131">A #PpsOutlines</doc>
            <type name="Outlines" c:type="PpsOutlines*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_link"
              c:identifier="pps_outlines_get_link"
              glib:get-property="link">
        <source-position filename="libdocument/pps-outlines.h" line="55"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-outlines.c"
               line="101">The #PpsLink of the outlines</doc>
          <type name="Link" c:type="PpsLink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_outlines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-outlines.c"
                 line="99">A #PpsOutlines</doc>
            <type name="Outlines" c:type="PpsOutlines*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_children"
              c:identifier="pps_outlines_set_children"
              glib:set-property="children">
        <doc xml:space="preserve"
             filename="libdocument/pps-outlines.c"
             line="145">Sets the 'children' property of the outlines.</doc>
        <source-position filename="libdocument/pps-outlines.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_outlines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-outlines.c"
                 line="147">A #PpsOutlines</doc>
            <type name="Outlines" c:type="PpsOutlines*"/>
          </instance-parameter>
          <parameter name="children" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-outlines.c"
                 line="148">The children of the outlines</doc>
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_expand"
              c:identifier="pps_outlines_set_expand"
              glib:set-property="expand">
        <doc xml:space="preserve"
             filename="libdocument/pps-outlines.c"
             line="112">Sets the 'expand' property of the outlines.</doc>
        <source-position filename="libdocument/pps-outlines.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_outlines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-outlines.c"
                 line="114">A #PpsOutlines</doc>
            <type name="Outlines" c:type="PpsOutlines*"/>
          </instance-parameter>
          <parameter name="expand" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-outlines.c"
                 line="115">Whether the outlines should be expanded</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label"
              c:identifier="pps_outlines_set_label"
              glib:set-property="label">
        <source-position filename="libdocument/pps-outlines.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_outlines" transfer-ownership="none">
            <type name="Outlines" c:type="PpsOutlines*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_link"
              c:identifier="pps_outlines_set_link"
              glib:set-property="link">
        <source-position filename="libdocument/pps-outlines.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_outlines" transfer-ownership="none">
            <type name="Outlines" c:type="PpsOutlines*"/>
          </instance-parameter>
          <parameter name="link" transfer-ownership="none">
            <type name="Link" c:type="PpsLink*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_markup"
              c:identifier="pps_outlines_set_markup"
              glib:set-property="markup">
        <source-position filename="libdocument/pps-outlines.h" line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_outlines" transfer-ownership="none">
            <type name="Outlines" c:type="PpsOutlines*"/>
          </instance-parameter>
          <parameter name="markup" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="children"
                writable="1"
                transfer-ownership="none"
                setter="set_children"
                getter="get_children">
        <type name="Gio.ListModel"/>
      </property>
      <property name="expand"
                writable="1"
                transfer-ownership="none"
                setter="set_expand"
                getter="get_expand"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="label"
                writable="1"
                transfer-ownership="none"
                setter="set_label"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="link"
                writable="1"
                transfer-ownership="none"
                setter="set_link"
                getter="get_link">
        <type name="Link"/>
      </property>
      <property name="markup"
                writable="1"
                transfer-ownership="none"
                setter="set_markup"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="OutlinesClass"
            c:type="PpsOutlinesClass"
            glib:is-gtype-struct-for="Outlines">
      <source-position filename="libdocument/pps-outlines.h" line="33"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Page"
           c:symbol-prefix="page"
           c:type="PpsPage"
           parent="GObject.Object"
           glib:type-name="PpsPage"
           glib:get-type="pps_page_get_type"
           glib:type-struct="PageClass">
      <source-position filename="libdocument/pps-page.h" line="36"/>
      <constructor name="new" c:identifier="pps_page_new">
        <source-position filename="libdocument/pps-page.h" line="52"/>
        <return-value transfer-ownership="full">
          <type name="Page" c:type="PpsPage*"/>
        </return-value>
        <parameters>
          <parameter name="index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="base_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="index">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="backend_page">
        <type name="BackendPage" c:type="PpsBackendPage"/>
      </field>
      <field name="backend_destroy_func">
        <type name="BackendPageDestroyFunc"
              c:type="PpsBackendPageDestroyFunc"/>
      </field>
    </class>
    <record name="PageClass"
            c:type="PpsPageClass"
            glib:is-gtype-struct-for="Page">
      <source-position filename="libdocument/pps-page.h" line="36"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="Point" c:type="PpsPoint">
      <source-position filename="libdocument/pps-document.h" line="66"/>
      <field name="x" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="y" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
    </record>
    <record name="Rectangle"
            c:type="PpsRectangle"
            glib:type-name="PpsRectangle"
            glib:get-type="pps_rectangle_get_type"
            c:symbol-prefix="rectangle">
      <source-position filename="libdocument/pps-document.h" line="222"/>
      <field name="x1" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="y1" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="x2" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="y2" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <constructor name="new" c:identifier="pps_rectangle_new">
        <source-position filename="libdocument/pps-document.h" line="227"/>
        <return-value transfer-ownership="full">
          <type name="Rectangle" c:type="PpsRectangle*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="pps_rectangle_copy">
        <source-position filename="libdocument/pps-document.h" line="229"/>
        <return-value transfer-ownership="full">
          <type name="Rectangle" c:type="PpsRectangle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="pps_rectangle_free">
        <source-position filename="libdocument/pps-document.h" line="231"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pps_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="RenderContext"
           c:symbol-prefix="render_context"
           c:type="PpsRenderContext"
           parent="GObject.Object"
           glib:type-name="PpsRenderContext"
           glib:get-type="pps_render_context_get_type"
           glib:type-struct="RenderContextClass">
      <source-position filename="libdocument/pps-render-context.h" line="36"/>
      <constructor name="new" c:identifier="pps_render_context_new">
        <source-position filename="libdocument/pps-render-context.h"
                         line="51"/>
        <return-value transfer-ownership="full">
          <type name="RenderContext" c:type="PpsRenderContext*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="rotation" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="scale" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="compute_scaled_size"
              c:identifier="pps_render_context_compute_scaled_size">
        <source-position filename="libdocument/pps-render-context.h"
                         line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </instance-parameter>
          <parameter name="width_points" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="height_points" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="scaled_width" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="scaled_height" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="compute_scales"
              c:identifier="pps_render_context_compute_scales">
        <source-position filename="libdocument/pps-render-context.h"
                         line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </instance-parameter>
          <parameter name="width_points" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="height_points" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="scale_x" transfer-ownership="none">
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="scale_y" transfer-ownership="none">
            <type name="gdouble" c:type="double*"/>
          </parameter>
        </parameters>
      </method>
      <method name="compute_transformed_size"
              c:identifier="pps_render_context_compute_transformed_size">
        <source-position filename="libdocument/pps-render-context.h"
                         line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </instance-parameter>
          <parameter name="width_points" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="height_points" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="transformed_width" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="transformed_height" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_page" c:identifier="pps_render_context_set_page">
        <source-position filename="libdocument/pps-render-context.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rotation"
              c:identifier="pps_render_context_set_rotation">
        <source-position filename="libdocument/pps-render-context.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </instance-parameter>
          <parameter name="rotation" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scale" c:identifier="pps_render_context_set_scale">
        <source-position filename="libdocument/pps-render-context.h"
                         line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </instance-parameter>
          <parameter name="scale" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_target_size"
              c:identifier="pps_render_context_set_target_size">
        <source-position filename="libdocument/pps-render-context.h"
                         line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </instance-parameter>
          <parameter name="target_width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="target_height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="page">
        <type name="Page" c:type="PpsPage*"/>
      </field>
      <field name="rotation">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="scale">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="target_width">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="target_height">
        <type name="gint" c:type="gint"/>
      </field>
    </class>
    <record name="RenderContextClass"
            c:type="PpsRenderContextClass"
            glib:is-gtype-struct-for="RenderContext">
      <source-position filename="libdocument/pps-render-context.h" line="36"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <interface name="Selection"
               c:symbol-prefix="selection"
               c:type="PpsSelection"
               glib:type-name="PpsSelection"
               glib:get-type="pps_selection_get_type"
               glib:type-struct="SelectionInterface">
      <source-position filename="libdocument/pps-selection.h" line="67"/>
      <virtual-method name="get_selected_text" invoker="get_selected_text">
        <source-position filename="libdocument/pps-selection.h" line="59"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <type name="Selection" c:type="PpsSelection*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="SelectionStyle" c:type="PpsSelectionStyle"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_selection_region"
                      invoker="get_selection_region">
        <source-position filename="libdocument/pps-selection.h" line="63"/>
        <return-value transfer-ownership="full">
          <type name="cairo.Region" c:type="cairo_region_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <type name="Selection" c:type="PpsSelection*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="SelectionStyle" c:type="PpsSelectionStyle"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="render_selection" invoker="render_selection">
        <source-position filename="libdocument/pps-selection.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <type name="Selection" c:type="PpsSelection*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
          <parameter name="surface" transfer-ownership="none">
            <type name="cairo.Surface" c:type="cairo_surface_t**"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
          <parameter name="old_points" transfer-ownership="none">
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="SelectionStyle" c:type="PpsSelectionStyle"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
          <parameter name="base" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_selected_text"
              c:identifier="pps_selection_get_selected_text">
        <source-position filename="libdocument/pps-selection.h" line="79"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <type name="Selection" c:type="PpsSelection*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="SelectionStyle" c:type="PpsSelectionStyle"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_selection_region"
              c:identifier="pps_selection_get_selection_region">
        <source-position filename="libdocument/pps-selection.h" line="84"/>
        <return-value transfer-ownership="full">
          <type name="cairo.Region" c:type="cairo_region_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <type name="Selection" c:type="PpsSelection*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="SelectionStyle" c:type="PpsSelectionStyle"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="render_selection"
              c:identifier="pps_selection_render_selection">
        <source-position filename="libdocument/pps-selection.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <type name="Selection" c:type="PpsSelection*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
          <parameter name="surface" transfer-ownership="none">
            <type name="cairo.Surface" c:type="cairo_surface_t**"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
          <parameter name="old_points" transfer-ownership="none">
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="SelectionStyle" c:type="PpsSelectionStyle"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
          <parameter name="base" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="SelectionInterface"
            c:type="PpsSelectionInterface"
            glib:is-gtype-struct-for="Selection">
      <source-position filename="libdocument/pps-selection.h" line="67"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="render_selection">
        <callback name="render_selection">
          <source-position filename="libdocument/pps-selection.h" line="51"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="selection" transfer-ownership="none">
              <type name="Selection" c:type="PpsSelection*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <type name="RenderContext" c:type="PpsRenderContext*"/>
            </parameter>
            <parameter name="surface" transfer-ownership="none">
              <type name="cairo.Surface" c:type="cairo_surface_t**"/>
            </parameter>
            <parameter name="points" transfer-ownership="none">
              <type name="Rectangle" c:type="PpsRectangle*"/>
            </parameter>
            <parameter name="old_points" transfer-ownership="none">
              <type name="Rectangle" c:type="PpsRectangle*"/>
            </parameter>
            <parameter name="style" transfer-ownership="none">
              <type name="SelectionStyle" c:type="PpsSelectionStyle"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
            </parameter>
            <parameter name="base" transfer-ownership="none">
              <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_selected_text">
        <callback name="get_selected_text">
          <source-position filename="libdocument/pps-selection.h" line="59"/>
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="selection" transfer-ownership="none">
              <type name="Selection" c:type="PpsSelection*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="PpsPage*"/>
            </parameter>
            <parameter name="style" transfer-ownership="none">
              <type name="SelectionStyle" c:type="PpsSelectionStyle"/>
            </parameter>
            <parameter name="points" transfer-ownership="none">
              <type name="Rectangle" c:type="PpsRectangle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_selection_region">
        <callback name="get_selection_region">
          <source-position filename="libdocument/pps-selection.h" line="63"/>
          <return-value transfer-ownership="full">
            <type name="cairo.Region" c:type="cairo_region_t*"/>
          </return-value>
          <parameters>
            <parameter name="selection" transfer-ownership="none">
              <type name="Selection" c:type="PpsSelection*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <type name="RenderContext" c:type="PpsRenderContext*"/>
            </parameter>
            <parameter name="style" transfer-ownership="none">
              <type name="SelectionStyle" c:type="PpsSelectionStyle"/>
            </parameter>
            <parameter name="points" transfer-ownership="none">
              <type name="Rectangle" c:type="PpsRectangle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="SelectionStyle"
                 glib:type-name="PpsSelectionStyle"
                 glib:get-type="pps_selection_style_get_type"
                 c:type="PpsSelectionStyle">
      <member name="glyph"
              value="0"
              c:identifier="PPS_SELECTION_STYLE_GLYPH"
              glib:nick="glyph"
              glib:name="PPS_SELECTION_STYLE_GLYPH">
      </member>
      <member name="word"
              value="1"
              c:identifier="PPS_SELECTION_STYLE_WORD"
              glib:nick="word"
              glib:name="PPS_SELECTION_STYLE_WORD">
      </member>
      <member name="line"
              value="2"
              c:identifier="PPS_SELECTION_STYLE_LINE"
              glib:nick="line"
              glib:name="PPS_SELECTION_STYLE_LINE">
      </member>
    </enumeration>
    <class name="TransitionEffect"
           c:symbol-prefix="transition_effect"
           c:type="PpsTransitionEffect"
           parent="GObject.Object"
           glib:type-name="PpsTransitionEffect"
           glib:get-type="pps_transition_effect_get_type"
           glib:type-struct="TransitionEffectClass">
      <source-position filename="libdocument/pps-transition-effect.h"
                       line="36"/>
      <constructor name="new"
                   c:identifier="pps_transition_effect_new"
                   introspectable="0">
        <source-position filename="libdocument/pps-transition-effect.h"
                         line="69"/>
        <return-value transfer-ownership="full">
          <type name="TransitionEffect" c:type="PpsTransitionEffect*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <type name="TransitionEffectType"
                  c:type="PpsTransitionEffectType"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </constructor>
      <property name="alignment"
                writable="1"
                transfer-ownership="none"
                default-value="PPS_TRANSITION_ALIGNMENT_HORIZONTAL">
        <type name="TransitionEffectAlignment"/>
      </property>
      <property name="angle"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="direction"
                writable="1"
                transfer-ownership="none"
                default-value="PPS_TRANSITION_DIRECTION_INWARD">
        <type name="TransitionEffectDirection"/>
      </property>
      <property name="duration"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="duration-real"
                writable="1"
                transfer-ownership="none"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="rectangular"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="scale"
                writable="1"
                transfer-ownership="none"
                default-value="1.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="type"
                writable="1"
                transfer-ownership="none"
                default-value="PPS_TRANSITION_EFFECT_REPLACE">
        <type name="TransitionEffectType"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <enumeration name="TransitionEffectAlignment"
                 glib:type-name="PpsTransitionEffectAlignment"
                 glib:get-type="pps_transition_effect_alignment_get_type"
                 c:type="PpsTransitionEffectAlignment">
      <member name="horizontal"
              value="0"
              c:identifier="PPS_TRANSITION_ALIGNMENT_HORIZONTAL"
              glib:nick="horizontal"
              glib:name="PPS_TRANSITION_ALIGNMENT_HORIZONTAL">
      </member>
      <member name="vertical"
              value="1"
              c:identifier="PPS_TRANSITION_ALIGNMENT_VERTICAL"
              glib:nick="vertical"
              glib:name="PPS_TRANSITION_ALIGNMENT_VERTICAL">
      </member>
    </enumeration>
    <record name="TransitionEffectClass"
            c:type="PpsTransitionEffectClass"
            glib:is-gtype-struct-for="TransitionEffect">
      <source-position filename="libdocument/pps-transition-effect.h"
                       line="36"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="TransitionEffectDirection"
                 glib:type-name="PpsTransitionEffectDirection"
                 glib:get-type="pps_transition_effect_direction_get_type"
                 c:type="PpsTransitionEffectDirection">
      <member name="inward"
              value="0"
              c:identifier="PPS_TRANSITION_DIRECTION_INWARD"
              glib:nick="inward"
              glib:name="PPS_TRANSITION_DIRECTION_INWARD">
      </member>
      <member name="outward"
              value="1"
              c:identifier="PPS_TRANSITION_DIRECTION_OUTWARD"
              glib:nick="outward"
              glib:name="PPS_TRANSITION_DIRECTION_OUTWARD">
      </member>
    </enumeration>
    <enumeration name="TransitionEffectType"
                 glib:type-name="PpsTransitionEffectType"
                 glib:get-type="pps_transition_effect_type_get_type"
                 c:type="PpsTransitionEffectType">
      <member name="replace"
              value="0"
              c:identifier="PPS_TRANSITION_EFFECT_REPLACE"
              glib:nick="replace"
              glib:name="PPS_TRANSITION_EFFECT_REPLACE">
      </member>
      <member name="split"
              value="1"
              c:identifier="PPS_TRANSITION_EFFECT_SPLIT"
              glib:nick="split"
              glib:name="PPS_TRANSITION_EFFECT_SPLIT">
      </member>
      <member name="blinds"
              value="2"
              c:identifier="PPS_TRANSITION_EFFECT_BLINDS"
              glib:nick="blinds"
              glib:name="PPS_TRANSITION_EFFECT_BLINDS">
      </member>
      <member name="box"
              value="3"
              c:identifier="PPS_TRANSITION_EFFECT_BOX"
              glib:nick="box"
              glib:name="PPS_TRANSITION_EFFECT_BOX">
      </member>
      <member name="wipe"
              value="4"
              c:identifier="PPS_TRANSITION_EFFECT_WIPE"
              glib:nick="wipe"
              glib:name="PPS_TRANSITION_EFFECT_WIPE">
      </member>
      <member name="dissolve"
              value="5"
              c:identifier="PPS_TRANSITION_EFFECT_DISSOLVE"
              glib:nick="dissolve"
              glib:name="PPS_TRANSITION_EFFECT_DISSOLVE">
      </member>
      <member name="glitter"
              value="6"
              c:identifier="PPS_TRANSITION_EFFECT_GLITTER"
              glib:nick="glitter"
              glib:name="PPS_TRANSITION_EFFECT_GLITTER">
      </member>
      <member name="fly"
              value="7"
              c:identifier="PPS_TRANSITION_EFFECT_FLY"
              glib:nick="fly"
              glib:name="PPS_TRANSITION_EFFECT_FLY">
      </member>
      <member name="push"
              value="8"
              c:identifier="PPS_TRANSITION_EFFECT_PUSH"
              glib:nick="push"
              glib:name="PPS_TRANSITION_EFFECT_PUSH">
      </member>
      <member name="cover"
              value="9"
              c:identifier="PPS_TRANSITION_EFFECT_COVER"
              glib:nick="cover"
              glib:name="PPS_TRANSITION_EFFECT_COVER">
      </member>
      <member name="uncover"
              value="10"
              c:identifier="PPS_TRANSITION_EFFECT_UNCOVER"
              glib:nick="uncover"
              glib:name="PPS_TRANSITION_EFFECT_UNCOVER">
      </member>
      <member name="fade"
              value="11"
              c:identifier="PPS_TRANSITION_EFFECT_FADE"
              glib:nick="fade"
              glib:name="PPS_TRANSITION_EFFECT_FADE">
      </member>
    </enumeration>
    <function-macro name="UNAVAILABLE"
                    c:identifier="PPS_UNAVAILABLE"
                    introspectable="0">
      <source-position filename="libdocument/pps-macros.h" line="24"/>
      <parameters>
        <parameter name="maj">
        </parameter>
        <parameter name="min">
        </parameter>
      </parameters>
    </function-macro>
    <function name="backend_query_type" c:identifier="pps_backend_query_type">
      <source-position filename="libdocument/pps-document.h" line="259"/>
      <return-value transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </return-value>
    </function>
    <function name="document_error_quark"
              c:identifier="pps_document_error_quark"
              moved-to="DocumentError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="file_compress" c:identifier="pps_file_compress" throws="1">
      <doc xml:space="preserve"
           filename="libdocument/pps-file-helpers.c"
           line="709">Compresses the file at @uri.

If @type is %PPS_COMPRESSION_NONE, it does nothing and returns %NULL.

Otherwise, it returns the filename of a
temporary file containing the compressed data from the file at @uri.

On error it returns %NULL and fills in @error.

It is the caller's responsibility to unlink the temp file after use.</doc>
      <source-position filename="libdocument/pps-file-helpers.h" line="85"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="726">a newly allocated string URI, or %NULL on error</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="711">a file URI</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="712">the compression type</doc>
          <type name="CompressionType" c:type="PpsCompressionType"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_copy_metadata"
              c:identifier="pps_file_copy_metadata"
              version="3.4"
              throws="1">
      <doc xml:space="preserve"
           filename="libdocument/pps-file-helpers.c"
           line="346">Performs a g_file_copy_attributes() with %G_FILE_COPY_ALL_METADATA
from @from to @to.</doc>
      <source-position filename="libdocument/pps-file-helpers.h" line="67"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="355">%TRUE if the attributes were copied successfully, %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="from" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="348">the source URI</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="to" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="349">the target URI</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_get_mime_type"
              c:identifier="pps_file_get_mime_type"
              throws="1">
      <source-position filename="libdocument/pps-file-helpers.h" line="72"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="475">a newly allocated string with the MIME type of the file at
  @uri, or %NULL on error or if the MIME type could not be determined</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="471">the URI</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="fast" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="472">whether to use fast MIME type detection</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_get_mime_type_from_fd"
              c:identifier="pps_file_get_mime_type_from_fd"
              throws="1">
      <source-position filename="libdocument/pps-file-helpers.h" line="77"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="491">a newly allocated string with the MIME type of the file referred to
  by @fd, or %NULL on error or if the MIME type could not be determined</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="fd" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="488">an file descriptor (must be seekable)</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_is_temp" c:identifier="pps_file_is_temp">
      <source-position filename="libdocument/pps-file-helpers.h" line="61"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_uncompress"
              c:identifier="pps_file_uncompress"
              throws="1">
      <doc xml:space="preserve"
           filename="libdocument/pps-file-helpers.c"
           line="681">Uncompresses the file at @uri.

If @type is %PPS_COMPRESSION_NONE, it does nothing and returns %NULL.

Otherwise, it returns the filename of a
temporary file containing the decompressed data from the file at @uri.
On error it returns %NULL and fills in @error.

It is the caller's responsibility to unlink the temp file after use.</doc>
      <source-position filename="libdocument/pps-file-helpers.h" line="81"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="697">a newly allocated string URI, or %NULL on error</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="683">a file URI</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="684">the compression type</doc>
          <type name="CompressionType" c:type="PpsCompressionType"/>
        </parameter>
      </parameters>
    </function>
    <function name="init" c:identifier="pps_init">
      <doc xml:space="preserve"
           filename="libdocument/pps-init.c"
           line="33">Initializes the papers document library, and binds the papers
gettext domain.

You must call this before calling any other function in the papers
document library.</doc>
      <source-position filename="libdocument/pps-init.h" line="33"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libdocument/pps-init.c"
             line="42">%TRUE if any backends were found; %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="mkdtemp" c:identifier="pps_mkdtemp" throws="1">
      <doc xml:space="preserve"
           filename="libdocument/pps-file-helpers.c"
           line="200">Creates a temp directory in the papers temp directory.</doc>
      <source-position filename="libdocument/pps-file-helpers.h" line="52"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="207">a newly allocated string with the temp directory name, or %NULL
  on error with @error filled in</doc>
        <type name="filename" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="tmpl" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="202">a template string; must end in 'XXXXXX'</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mkstemp" c:identifier="pps_mkstemp" throws="1">
      <doc xml:space="preserve"
           filename="libdocument/pps-file-helpers.c"
           line="118">Creates a temp file in the papers temp directory.</doc>
      <source-position filename="libdocument/pps-file-helpers.h" line="45"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="126">a file descriptor to the newly created temp file name, or %-1
  on error with @error filled in</doc>
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="tmpl" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="120">a template string; must contain 'XXXXXX', but not necessarily as a suffix</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="file_name"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="121">a location to store the filename of the temp file</doc>
          <type name="filename" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="mkstemp_file" c:identifier="pps_mkstemp_file" throws="1">
      <doc xml:space="preserve"
           filename="libdocument/pps-file-helpers.c"
           line="169">Creates a temp #GFile in the papers temp directory. See pps_mkstemp() for more information.</doc>
      <source-position filename="libdocument/pps-file-helpers.h" line="49"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="176">a newly allocated #GFile for the newly created temp file name, or %NULL
  on error with @error filled in</doc>
        <type name="Gio.File" c:type="GFile*"/>
      </return-value>
      <parameters>
        <parameter name="tmpl" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="171">a template string; must contain 'XXXXXX', but not necessarily as a suffix</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="pps-version">
      <doc xml:space="preserve"
           filename="libdocument/pps-version.h"
           line="21">These macros enable compile time checks of the library version.</doc>
    </docsection>
    <function name="rect_cmp" c:identifier="pps_rect_cmp">
      <source-position filename="libdocument/pps-document.h" line="212"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="a" transfer-ownership="none">
          <type name="Rectangle" c:type="PpsRectangle*"/>
        </parameter>
        <parameter name="b" transfer-ownership="none">
          <type name="Rectangle" c:type="PpsRectangle*"/>
        </parameter>
      </parameters>
    </function>
    <function name="should_use_portal"
              c:identifier="pps_should_use_portal"
              version="3.30">
      <doc xml:space="preserve"
           filename="libdocument/pps-portal.c"
           line="22">Checks whether papers should use the portal.</doc>
      <source-position filename="libdocument/pps-portal.h" line="31"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libdocument/pps-portal.c"
             line="27">whether papers should use the portal</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="shutdown" c:identifier="pps_shutdown">
      <doc xml:space="preserve"
           filename="libdocument/pps-init.c"
           line="64">Shuts the papers document library down.</doc>
      <source-position filename="libdocument/pps-init.h" line="36"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="tmp_file_unlink" c:identifier="pps_tmp_file_unlink">
      <source-position filename="libdocument/pps-file-helpers.h" line="57"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tmp_filename_unlink"
              c:identifier="pps_tmp_filename_unlink">
      <source-position filename="libdocument/pps-file-helpers.h" line="55"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tmp_uri_unlink" c:identifier="pps_tmp_uri_unlink">
      <source-position filename="libdocument/pps-file-helpers.h" line="59"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xfer_uri_simple"
              c:identifier="pps_xfer_uri_simple"
              throws="1">
      <doc xml:space="preserve"
           filename="libdocument/pps-file-helpers.c"
           line="308">Performs a g_file_copy() from @from to @to.</doc>
      <source-position filename="libdocument/pps-file-helpers.h" line="63"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="316">%TRUE on success, or %FALSE on error with @error filled in</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="from" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="310">the source URI</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="to" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-file-helpers.c"
               line="311">the target URI</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xmp_parse" c:identifier="pps_xmp_parse">
      <source-position filename="libdocument/pps-xmp.h" line="29"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="xmp" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <type name="DocumentInfo" c:type="PpsDocumentInfo*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
