<?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:doc="http://www.gtk.org/introspection/doc/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"/>
  <include name="Pango" version="1.0"/>
  <package name="papers-document-4.0"/>
  <doc:format name="gi-docgen"/>
  <namespace name="PapersDocument"
             version="4.0"
             shared-library="libppsdocument-4.0.so.0.0"
             c:identifier-prefixes="Pps"
             c:symbol-prefixes="pps">
    <alias name="BackendPage" c:type="PpsBackendPage">
      <source-position filename="libdocument/pps-page.h" line="24"/>
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="BackendPageDestroyFunc" c:type="PpsBackendPageDestroyFunc">
      <source-position filename="libdocument/pps-page.h" line="25"/>
      <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="31"/>
      <method name="equal" c:identifier="pps_annotation_equal">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="506">Compare @annot and @other.</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="513">%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="508">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="509">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="109"/>
        <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">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="775">Gets the area of @annot.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="152"/>
        <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="777">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="778">a #PpsRectangle to be filled with the annotation area</doc>
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_border_width"
              c:identifier="pps_annotation_get_border_width"
              glib:get-property="border-width"
              version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="888">Gets the border width of @annot.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="890">a #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-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="534">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="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="542">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="536">an #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hidden"
              c:identifier="pps_annotation_get_hidden"
              glib:get-property="hidden"
              version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="849">Gets the hidden flag of @annot, i.e. whether it is hidden or not.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="136"/>
        <return-value transfer-ownership="none">
          <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="851">a #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="637">Get the last modification date of @annot.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="128"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="643">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="639">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="587">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="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="595">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="589">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="469">Get the page where @annot appears.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="475">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="471">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="487">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="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="494">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="489">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">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="726">Gets the color of @annot.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="146"/>
        <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="728">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="729">a #GdkRGBA to be filled with the annotation color</doc>
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_last_property"
              c:identifier="pps_annotation_get_value_last_property">
        <source-position filename="libdocument/pps-annotation.h" line="160"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_area"
              c:identifier="pps_annotation_set_area"
              glib:set-property="area">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="794">Set the area of the annotation to @area.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="155"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="801">%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="796">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="797">a #PpsRectangle</doc>
            <type name="Rectangle" c:type="const PpsRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_border_width"
              c:identifier="pps_annotation_set_border_width"
              glib:set-property="border-width"
              version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="864">Set the area of the annotation to @area.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="138"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="871">%TRUE if the border width 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="866">a #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="867">double</doc>
            <type name="gdouble" c:type="const gdouble"/>
          </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="555">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="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="563">%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="557">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_hidden"
              c:identifier="pps_annotation_set_hidden"
              glib:set-property="hidden"
              version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="826">Set whether the annotation is hidden or not.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="133"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="833">%TRUE if the visibility of the annotation 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="828">a #PpsAnnotation</doc>
            <type name="Annotation" c:type="PpsAnnotation*"/>
          </instance-parameter>
          <parameter name="hidden" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="829">a boolean</doc>
            <type name="gboolean" c:type="const gboolean"/>
          </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="655">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="130"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="666">%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="657">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="658">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="688">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="143"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="698">%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="690">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="691">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="607">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="125"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="615">%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="609">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">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="746">Set the color of the annotation to @rgba.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="149"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="753">%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="748">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="749">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="424">The area of the page where the annotation is placed.

Since 3.18</doc>
        <type name="Rectangle"/>
      </property>
      <property name="border-width"
                version="48.0"
                writable="1"
                transfer-ownership="none"
                setter="set_border_width"
                getter="get_border_width"
                default-value="0.000000">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="446">The border width of the annotation. This is only partially implemented, as there is no way
to set the color. Thus, it may only be used for padding at this moment.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </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="hidden"
                version="48.0"
                writable="1"
                transfer-ownership="none"
                setter="set_hidden"
                getter="get_hidden"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="435">A flag to hide an annotation from the view.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </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"
                writable="1"
                transfer-ownership="none"
                setter="set_rgba"
                getter="get_rgba">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="414">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="AnnotationMarkup"
           glib:type-name="PpsAnnotationAttachment"
           glib:get-type="pps_annotation_attachment_get_type"
           glib:type-struct="AnnotationAttachmentClass">
      <source-position filename="libdocument/pps-annotation.h" line="67"/>
      <constructor name="new" c:identifier="pps_annotation_attachment_new">
        <source-position filename="libdocument/pps-annotation.h" line="305"/>
        <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="308"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="2161">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="2159">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="310"/>
        <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="67"/>
      <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="31"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="AnnotationFreeText"
           c:symbol-prefix="annotation_free_text"
           c:type="PpsAnnotationFreeText"
           parent="Annotation"
           glib:type-name="PpsAnnotationFreeText"
           glib:get-type="pps_annotation_free_text_get_type"
           glib:type-struct="AnnotationFreeTextClass">
      <source-position filename="libdocument/pps-annotation.h" line="61"/>
      <constructor name="new"
                   c:identifier="pps_annotation_free_text_new"
                   version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="1909">Creates a new free text annotation in the page. Font shall be set afterwards.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="288"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1915">a new free text annotation</doc>
          <type name="Annotation" c:type="PpsAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1911">a #PpsPage</doc>
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="auto_resize"
              c:identifier="pps_annotation_free_text_auto_resize"
              version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="2019">Resize the annotation so as all the text fits in its rect, according to Pango metrics.
This should typically be called every time the content is changed unless the free text
annotation is supposed to be fixed width for instance.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="300"/>
        <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="2021">an #PpsAnnotationFreeText</doc>
            <type name="AnnotationFreeText" c:type="PpsAnnotationFreeText*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="2022">a valid #PangoContext</doc>
            <type name="Pango.Context" c:type="PangoContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_font_description"
              c:identifier="pps_annotation_free_text_get_font_description"
              version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="1953">Returns a copy of the font descption used by the annotation.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="293"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1959">the font description used to display the annotation.</doc>
          <type name="Pango.FontDescription" c:type="PangoFontDescription*"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1955">an #PpsAnnotationFreeText</doc>
            <type name="AnnotationFreeText" c:type="PpsAnnotationFreeText*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_font_rgba"
              c:identifier="pps_annotation_free_text_get_font_rgba"
              glib:get-property="font-rgba"
              version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="2001">Gets the text color of @annot.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="298"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="2007">the font RGBA, must be freed by the caller</doc>
          <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="2003">an #PpsAnnotationFreeText</doc>
            <type name="AnnotationFreeText" c:type="PpsAnnotationFreeText*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_font_description"
              c:identifier="pps_annotation_free_text_set_font_description"
              version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="1925">Set the font of the free text annotation to annotation to @font_desc.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="290"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1932">%TRUE if the font description 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="1927">an #PpsAnnotationFreeText</doc>
            <type name="AnnotationFreeText" c:type="PpsAnnotationFreeText*"/>
          </instance-parameter>
          <parameter name="font_desc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1928">a #PangoFontDescription</doc>
            <type name="Pango.FontDescription"
                  c:type="const PangoFontDescription*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_font_rgba"
              c:identifier="pps_annotation_free_text_set_font_rgba"
              glib:set-property="font-rgba"
              version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="1971">Set the text color of the annotation to @rgba.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="295"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1978">%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="1973">an #PpsAnnotationFreeText</doc>
            <type name="AnnotationFreeText" c:type="PpsAnnotationFreeText*"/>
          </instance-parameter>
          <parameter name="rgba" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1974">a #GdkRGBA</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <property name="font-desc" writable="1" transfer-ownership="none">
        <type name="Pango.FontDescription"/>
      </property>
      <property name="font-rgba"
                writable="1"
                transfer-ownership="none"
                setter="set_font_rgba"
                getter="get_font_rgba">
        <type name="Gdk.RGBA"/>
      </property>
    </class>
    <record name="AnnotationFreeTextClass"
            c:type="PpsAnnotationFreeTextClass"
            glib:is-gtype-struct-for="AnnotationFreeText">
      <source-position filename="libdocument/pps-annotation.h" line="61"/>
      <field name="parent_class">
        <type name="AnnotationClass" c:type="PpsAnnotationClass"/>
      </field>
    </record>
    <class name="AnnotationInk"
           c:symbol-prefix="annotation_ink"
           c:type="PpsAnnotationInk"
           parent="Annotation"
           glib:type-name="PpsAnnotationInk"
           glib:get-type="pps_annotation_ink_get_type"
           glib:type-struct="AnnotationInkClass">
      <source-position filename="libdocument/pps-annotation.h" line="46"/>
      <constructor name="new" c:identifier="pps_annotation_ink_new">
        <source-position filename="libdocument/pps-annotation.h" line="271"/>
        <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="new_highlight"
                   c:identifier="pps_annotation_ink_new_highlight">
        <source-position filename="libdocument/pps-annotation.h" line="273"/>
        <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_highlight"
              c:identifier="pps_annotation_ink_get_highlight">
        <source-position filename="libdocument/pps-annotation.h" line="284"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ink" transfer-ownership="none">
            <type name="AnnotationInk" c:type="PpsAnnotationInk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ink_list"
              c:identifier="pps_annotation_ink_get_ink_list"
              glib:get-property="ink-list">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="1761">Gets the ink list from the annotation ink object. The ink list is an array
of arrays of #PpsPoint.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="277"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1768">a pointer to the ink list,
or %NULL if there is no ink list.</doc>
          <type name="InkList" c:type="PpsInkList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1763">a #PpsAnnotationInk</doc>
            <type name="AnnotationInk" c:type="PpsAnnotationInk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_time_list"
              c:identifier="pps_annotation_ink_get_time_list">
        <source-position filename="libdocument/pps-annotation.h" line="282"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1805">the time list</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="InkTime"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="ink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1803">a #PpsAnnotationInk</doc>
            <type name="AnnotationInk" c:type="PpsAnnotationInk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_ink_list"
              c:identifier="pps_annotation_ink_set_ink_list"
              glib:set-property="ink-list">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="1727">Sets the ink list for the annotation ink object. The ink list is an array
of arrays of #PpsPoint, representing the ink strokes.

If the ink object already has an ink list, it will be unreferenced and replaced
with the new one.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="275"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1729">a #PpsAnnotationInk</doc>
            <type name="AnnotationInk" c:type="PpsAnnotationInk*"/>
          </instance-parameter>
          <parameter name="ink_list" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1730">an array of arrays of #PpsPoint</doc>
            <type name="InkList" c:type="PpsInkList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_time_list"
              c:identifier="pps_annotation_ink_set_time_list">
        <source-position filename="libdocument/pps-annotation.h" line="280"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1783">a #PpsAnnotationInk</doc>
            <type name="AnnotationInk" c:type="PpsAnnotationInk*"/>
          </instance-parameter>
          <parameter name="time_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1784">the new time list.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="InkTime"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <property name="highlight"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="ink-list"
                writable="1"
                transfer-ownership="none"
                setter="set_ink_list"
                getter="get_ink_list">
        <type name="InkList"/>
      </property>
    </class>
    <record name="AnnotationInkClass"
            c:type="PpsAnnotationInkClass"
            glib:is-gtype-struct-for="AnnotationInk">
      <source-position filename="libdocument/pps-annotation.h" line="46"/>
      <field name="parent_class">
        <type name="AnnotationClass" c:type="PpsAnnotationClass"/>
      </field>
    </record>
    <class name="AnnotationMarkup"
           c:symbol-prefix="annotation_markup"
           c:type="PpsAnnotationMarkup"
           parent="Annotation"
           abstract="1"
           glib:type-name="PpsAnnotationMarkup"
           glib:get-type="pps_annotation_markup_get_type"
           glib:type-struct="AnnotationMarkupClass">
      <source-position filename="libdocument/pps-annotation.h" line="41"/>
      <method name="can_have_popup"
              c:identifier="pps_annotation_markup_can_have_popup"
              glib:get-property="can-have-popup">
        <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="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="164"/>
        <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="169"/>
        <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="187"/>
        <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="181"/>
        <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="176"/>
        <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="178"/>
        <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="166"/>
        <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="171"/>
        <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="189"/>
        <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="184"/>
        <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"
                transfer-ownership="none"
                getter="can_have_popup"
                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>
      <field name="parent_instance">
        <type name="Annotation" c:type="PpsAnnotation"/>
      </field>
    </class>
    <record name="AnnotationMarkupClass"
            c:type="PpsAnnotationMarkupClass"
            glib:is-gtype-struct-for="AnnotationMarkup">
      <source-position filename="libdocument/pps-annotation.h" line="41"/>
      <field name="parent_class">
        <type name="AnnotationClass" c:type="PpsAnnotationClass"/>
      </field>
    </record>
    <class name="AnnotationStamp"
           c:symbol-prefix="annotation_stamp"
           c:type="PpsAnnotationStamp"
           parent="AnnotationMarkup"
           glib:type-name="PpsAnnotationStamp"
           glib:get-type="pps_annotation_stamp_get_type"
           glib:type-struct="AnnotationStampClass">
      <source-position filename="libdocument/pps-annotation.h" line="56"/>
      <constructor name="new"
                   c:identifier="pps_annotation_stamp_new"
                   version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="1439">Creates a new stamp annotation. ATM only the custom image type via
#pps_annotation_stamp_set_surface is implemented, other stamps (draft, etc.)
are not.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="208"/>
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="PpsAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1441">a #PpsPage</doc>
            <type name="Page" c:type="PpsPage*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_surface"
              c:identifier="pps_annotation_stamp_get_surface"
              version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="1423">Set the custom cairo surface of the stamp.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="212"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1429">the custom cairo surface of the stamp, if it exists.</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1425">an #PpsAnnotationStamp</doc>
            <type name="AnnotationStamp" c:type="PpsAnnotationStamp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_surface"
              c:identifier="pps_annotation_stamp_set_surface"
              version="48.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="1407">Set the custom cairo surface of the stamp.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="210"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1409">an #PpsAnnotationStamp</doc>
            <type name="AnnotationStamp" c:type="PpsAnnotationStamp*"/>
          </instance-parameter>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1410">a #cairo_surface_t</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="AnnotationStampClass"
            c:type="PpsAnnotationStampClass"
            glib:is-gtype-struct-for="AnnotationStamp">
      <source-position filename="libdocument/pps-annotation.h" line="56"/>
      <field name="parent_class">
        <type name="AnnotationClass" c:type="PpsAnnotationClass"/>
      </field>
    </record>
    <class name="AnnotationText"
           c:symbol-prefix="annotation_text"
           c:type="PpsAnnotationText"
           parent="AnnotationMarkup"
           glib:type-name="PpsAnnotationText"
           glib:get-type="pps_annotation_text_get_type"
           glib:type-struct="AnnotationTextClass">
      <source-position filename="libdocument/pps-annotation.h" line="51"/>
      <constructor name="new" c:identifier="pps_annotation_text_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>
      <method name="get_icon"
              c:identifier="pps_annotation_text_get_icon"
              glib:get-property="icon">
        <source-position filename="libdocument/pps-annotation.h" line="196"/>
        <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="201"/>
        <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="198"/>
        <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="203"/>
        <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="51"/>
      <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="AnnotationMarkup"
           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="72"/>
      <constructor name="highlight_new"
                   c:identifier="pps_annotation_text_markup_highlight_new">
        <source-position filename="libdocument/pps-annotation.h" line="317"/>
        <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="new" c:identifier="pps_annotation_text_markup_new">
        <source-position filename="libdocument/pps-annotation.h" line="315"/>
        <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="markup_type" transfer-ownership="none">
            <type name="AnnotationTextMarkupType"
                  c:type="PpsAnnotationTextMarkupType"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="squiggly_new"
                   c:identifier="pps_annotation_text_markup_squiggly_new">
        <source-position filename="libdocument/pps-annotation.h" line="323"/>
        <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="319"/>
        <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="321"/>
        <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="325"/>
        <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="327"/>
        <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="72"/>
      <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="free_text"
              value="2"
              c:identifier="PPS_ANNOTATION_TYPE_FREE_TEXT"
              glib:nick="free-text"
              glib:name="PPS_ANNOTATION_TYPE_FREE_TEXT">
      </member>
      <member name="attachment"
              value="3"
              c:identifier="PPS_ANNOTATION_TYPE_ATTACHMENT"
              glib:nick="attachment"
              glib:name="PPS_ANNOTATION_TYPE_ATTACHMENT">
      </member>
      <member name="text_markup"
              value="4"
              c:identifier="PPS_ANNOTATION_TYPE_TEXT_MARKUP"
              glib:nick="text-markup"
              glib:name="PPS_ANNOTATION_TYPE_TEXT_MARKUP">
      </member>
      <member name="stamp"
              value="5"
              c:identifier="PPS_ANNOTATION_TYPE_STAMP"
              glib:nick="stamp"
              glib:name="PPS_ANNOTATION_TYPE_STAMP">
      </member>
      <member name="ink"
              value="6"
              c:identifier="PPS_ANNOTATION_TYPE_INK"
              glib:nick="ink"
              glib:name="PPS_ANNOTATION_TYPE_INK">
      </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>
    <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="29"/>
      <constructor name="new" c:identifier="pps_attachment_new">
        <source-position filename="libdocument/pps-attachment.h" line="35"/>
        <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="50"/>
        <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="45"/>
        <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="53"/>
        <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="48"/>
        <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="43"/>
        <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="59"/>
        <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="55"/>
        <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="29"/>
      <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="32">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="41"/>
      <parameters>
        <parameter name="major">
          <doc xml:space="preserve"
               filename="libdocument/pps-version.h"
               line="34">required major version</doc>
        </parameter>
        <parameter name="minor">
          <doc xml:space="preserve"
               filename="libdocument/pps-version.h"
               line="35">required minor version</doc>
        </parameter>
      </parameters>
    </function-macro>
    <class name="CertificateInfo"
           c:symbol-prefix="certificate_info"
           c:type="PpsCertificateInfo"
           parent="GObject.Object"
           glib:type-name="PpsCertificateInfo"
           glib:get-type="pps_certificate_info_get_type"
           glib:type-struct="CertificateInfoClass">
      <source-position filename="libdocument/pps-certificate-info.h"
                       line="22"/>
      <constructor name="new" c:identifier="pps_certificate_info_new">
        <source-position filename="libdocument/pps-certificate-info.h"
                         line="39"/>
        <return-value transfer-ownership="full">
          <type name="CertificateInfo" c:type="PpsCertificateInfo*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="subject_common_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="expiration-time"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GLib.DateTime"/>
      </property>
      <property name="id"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="issuance-time"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GLib.DateTime"/>
      </property>
      <property name="issuer-common-name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="issuer-email"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="issuer-organization"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="status"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="PPS_CERTIFICATE_STATUS_NOT_VERIFIED">
        <type name="CertificateStatus"/>
      </property>
      <property name="subject-common-name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="subject-email"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="subject-organization"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="base_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="CertificateInfoClass"
            c:type="PpsCertificateInfoClass"
            glib:is-gtype-struct-for="CertificateInfo">
      <source-position filename="libdocument/pps-certificate-info.h"
                       line="22"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="CertificateStatus"
                 glib:type-name="PpsCertificateStatus"
                 glib:get-type="pps_certificate_status_get_type"
                 c:type="PpsCertificateStatus">
      <member name="trusted"
              value="0"
              c:identifier="PPS_CERTIFICATE_STATUS_TRUSTED"
              glib:nick="trusted"
              glib:name="PPS_CERTIFICATE_STATUS_TRUSTED">
      </member>
      <member name="untrusted_issuer"
              value="1"
              c:identifier="PPS_CERTIFICATE_STATUS_UNTRUSTED_ISSUER"
              glib:nick="untrusted-issuer"
              glib:name="PPS_CERTIFICATE_STATUS_UNTRUSTED_ISSUER">
      </member>
      <member name="unknown_issuer"
              value="2"
              c:identifier="PPS_CERTIFICATE_STATUS_UNKNOWN_ISSUER"
              glib:nick="unknown-issuer"
              glib:name="PPS_CERTIFICATE_STATUS_UNKNOWN_ISSUER">
      </member>
      <member name="revoked"
              value="3"
              c:identifier="PPS_CERTIFICATE_STATUS_REVOKED"
              glib:nick="revoked"
              glib:name="PPS_CERTIFICATE_STATUS_REVOKED">
      </member>
      <member name="expired"
              value="4"
              c:identifier="PPS_CERTIFICATE_STATUS_EXPIRED"
              glib:nick="expired"
              glib:name="PPS_CERTIFICATE_STATUS_EXPIRED">
      </member>
      <member name="generic_error"
              value="5"
              c:identifier="PPS_CERTIFICATE_STATUS_GENERIC_ERROR"
              glib:nick="generic-error"
              glib:name="PPS_CERTIFICATE_STATUS_GENERIC_ERROR">
      </member>
      <member name="not_verified"
              value="6"
              c:identifier="PPS_CERTIFICATE_STATUS_NOT_VERIFIED"
              glib:nick="not-verified"
              glib:name="PPS_CERTIFICATE_STATUS_NOT_VERIFIED">
      </member>
    </enumeration>
    <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="10"/>
      <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="84"/>
      <function name="factory_add_filters"
                c:identifier="pps_document_factory_add_filters">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-factory.c"
             line="368">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="30"/>
        <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="370">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="371">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="256">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="23"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-factory.c"
               line="267">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="258">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="313">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="25"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-factory.c"
               line="333">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="315">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="316">the mime type</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_format_datetime"
                c:identifier="pps_document_misc_format_datetime">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-misc.c"
             line="201">Determine the preferred date and time representation for the current locale
for @dt.</doc>
        <source-position filename="libdocument/pps-document-misc.h" line="37"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-misc.c"
               line="208">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="203">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="218">Get the pointer's x and y position relative to @widget.</doc>
        <source-position filename="libdocument/pps-document-misc.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-misc.c"
                 line="220">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="221">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="223">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="153">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="34"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-misc.c"
               line="161">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="155">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="24"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-misc.c"
               line="42">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="40">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="22"/>
        <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="28"/>
        <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="58">Convert a cairo_surface_t to #GdkTexture object.</doc>
        <source-position filename="libdocument/pps-document-misc.h" line="26"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-misc.c"
               line="64">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="60">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="82"/>
        <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="605">Returns the #PpsDocumentInfo for the document.</doc>
        <source-position filename="libdocument/pps-document.h" line="81"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="611">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="607">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="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="526">the number of pages of the document. This is constant throughout
the lifetime of the document.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="524">a #PpsDocument</doc>
            <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="67"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="476">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="473">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="474">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="73"/>
        <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="69"/>
        <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="540">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="541">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="542">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="543">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="77"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="666">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="663">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="664">an #PpsRenderContext</doc>
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_thumbnail_surface"
                      invoker="get_thumbnail_surface">
        <source-position filename="libdocument/pps-document.h" line="79"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="685">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="682">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="683">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="319">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="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="335">%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="321">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="322">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="373">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="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="388">%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="375">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="376">a file descriptor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="render" invoker="render">
        <source-position filename="libdocument/pps-document.h" line="75"/>
        <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="451">Saves @document to @uri.</doc>
        <source-position filename="libdocument/pps-document.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="459">%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="453">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="454">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="159"/>
        <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="find_page_by_label"
              c:identifier="pps_document_find_page_by_label">
        <source-position filename="libdocument/pps-document.h" line="165"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="828">%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="824">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="825">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="826">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="96"/>
        <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="605">Returns the #PpsDocumentInfo for the document.</doc>
        <source-position filename="libdocument/pps-document.h" line="94"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="611">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="607">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="161"/>
        <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="151"/>
        <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="736">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="737">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="738">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="155"/>
        <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="759">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="760">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="761">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">
        <source-position filename="libdocument/pps-document.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="185">%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="183">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="116"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="526">the number of pages of the document. This is constant throughout
the lifetime of the document.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="524">a #PpsDocument</doc>
            <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="118"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="476">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="473">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="474">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="131"/>
        <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="121"/>
        <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="540">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="541">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="542">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="543">return location for the height of the page, or %NULL</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_page_size_uncached"
              c:identifier="pps_document_get_page_size_uncached"
              version="49.0">
        <doc xml:space="preserve"
             filename="libdocument/pps-document.c"
             line="563">Calls the @document's backend to fetch the page size. This should only be
used on very specific cases, where it is not desired that the cache should
be loaded. Calling with a loaded cache is a programmers' error.</doc>
        <source-position filename="libdocument/pps-document.h" line="126"/>
        <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="565">a #PpsDocument</doc>
            <type name="Document" c:type="PpsDocument*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="566">a #PpsPage</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="567">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="568">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="143"/>
        <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="137"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="666">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="663">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="664">an #PpsRenderContext</doc>
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_thumbnail_surface"
              c:identifier="pps_document_get_thumbnail_surface">
        <source-position filename="libdocument/pps-document.h" line="140"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="685">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="682">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="683">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="147"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="710">an #PpsDocument</doc>
            <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="145"/>
        <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="163"/>
        <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="149"/>
        <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="319">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="104"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="335">%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="321">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="322">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="373">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="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="388">%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="375">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="376">a file descriptor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="render" c:identifier="pps_document_render">
        <source-position filename="libdocument/pps-document.h" line="134"/>
        <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="451">Saves @document to @uri.</doc>
        <source-position filename="libdocument/pps-document.h" line="112"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document.c"
               line="459">%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="453">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="454">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">
        <doc xml:space="preserve"
             filename="libdocument/pps-document.c"
             line="199">Set the @document modification state as @modified.</doc>
        <source-position filename="libdocument/pps-document.h" line="101"/>
        <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="201">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="202">a boolean value to set the document as modified or not.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="setup_cache" c:identifier="pps_document_setup_cache">
        <source-position filename="libdocument/pps-document.h" line="91"/>
        <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>
      <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="49"/>
      <virtual-method name="add_annotation" invoker="add_annotation">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="41"/>
        <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="40"/>
        <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="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <type name="GLib.List" c:type="GList*">
            <type name="Annotation"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-annotations.c"
                 line="20">a #PpsDocumentAnnotations</doc>
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-annotations.c"
                 line="21">the page from where to get the annotations</doc>
            <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="45"/>
        <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="43"/>
        <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>
      <method name="add_annotation"
              c:identifier="pps_document_annotations_add_annotation">
        <source-position filename="libdocument/pps-document-annotations.h"
                         line="57"/>
        <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="64"/>
        <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="66"/>
        <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="55"/>
        <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="52"/>
        <return-value transfer-ownership="none" nullable="1">
          <type name="GLib.List" c:type="GList*">
            <type name="Annotation"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-annotations.c"
                 line="20">a #PpsDocumentAnnotations</doc>
            <type name="DocumentAnnotations" c:type="PpsDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-annotations.c"
                 line="21">the page from where to get the annotations</doc>
            <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="68"/>
        <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="60"/>
        <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>
    </interface>
    <record name="DocumentAnnotationsInterface"
            c:type="PpsDocumentAnnotationsInterface"
            glib:is-gtype-struct-for="DocumentAnnotations">
      <source-position filename="libdocument/pps-document-annotations.h"
                       line="49"/>
      <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="38"/>
          <return-value transfer-ownership="none" nullable="1">
            <type name="GLib.List" c:type="GList*">
              <type name="Annotation"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="document_annots" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-annotations.c"
                   line="20">a #PpsDocumentAnnotations</doc>
              <type name="DocumentAnnotations"
                    c:type="PpsDocumentAnnotations*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-annotations.c"
                   line="21">the page from where to get the annotations</doc>
              <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="40"/>
          <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="41"/>
          <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="remove_annotation">
        <callback name="remove_annotation">
          <source-position filename="libdocument/pps-document-annotations.h"
                           line="43"/>
          <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="45"/>
          <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="32"/>
      <virtual-method name="get_attachments" invoker="get_attachments">
        <source-position filename="libdocument/pps-document-attachments.h"
                         line="31"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-attachments.c"
               line="32">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="30">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="30"/>
        <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="37"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-attachments.c"
               line="32">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="30">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="35"/>
        <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="32"/>
      <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="30"/>
          <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="31"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-attachments.c"
                 line="32">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="30">an #PpsDocumentAttachments</doc>
              <type name="DocumentAttachments"
                    c:type="PpsDocumentAttachments*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="DocumentBackendInfo"
            c:type="PpsDocumentBackendInfo"
            glib:type-name="PpsDocumentBackendInfo"
            glib:get-type="pps_document_backend_info_get_type"
            c:symbol-prefix="document_backend_info">
      <source-position filename="libdocument/pps-document.h" line="51"/>
      <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>
      <constructor name="new" c:identifier="pps_document_backend_info_new">
        <source-position filename="libdocument/pps-document.h" line="254"/>
        <return-value transfer-ownership="full">
          <type name="DocumentBackendInfo" c:type="PpsDocumentBackendInfo*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="pps_document_backend_info_copy">
        <source-position filename="libdocument/pps-document.h" line="256"/>
        <return-value transfer-ownership="full">
          <type name="DocumentBackendInfo" c:type="PpsDocumentBackendInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="DocumentBackendInfo" c:type="PpsDocumentBackendInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="DocumentClass"
            c:type="PpsDocumentClass"
            glib:is-gtype-struct-for="Document">
      <source-position filename="libdocument/pps-document.h" line="84"/>
      <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="57"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="335">%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="321">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="322">the document's URI</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="load_fd">
        <callback name="load_fd" throws="1">
          <source-position filename="libdocument/pps-document.h" line="60"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="388">%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="375">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="376">a file descriptor</doc>
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="save">
        <callback name="save" throws="1">
          <source-position filename="libdocument/pps-document.h" line="63"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="459">%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="453">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="454">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="66"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="526">the number of pages of the document. This is constant throughout
the lifetime of the document.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document.c"
                   line="524">a #PpsDocument</doc>
              <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="67"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="476">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="473">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="474">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="69"/>
          <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="540">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="541">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="542">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="543">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="73"/>
          <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="75"/>
          <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="77"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="666">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="663">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="664">an #PpsRenderContext</doc>
              <type name="RenderContext" c:type="PpsRenderContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_thumbnail_surface">
        <callback name="get_thumbnail_surface">
          <source-position filename="libdocument/pps-document.h" line="79"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="685">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="682">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="683">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="81"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document.c"
                 line="611">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="607">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="82"/>
          <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>
    </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="63"/>
      <virtual-method name="find_text" invoker="find_text">
        <source-position filename="libdocument/pps-document-find.h" line="59"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-find.c"
               line="24">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="19">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="20">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="21">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="22">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="58"/>
        <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="68"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-find.c"
               line="24">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="19">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="20">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="21">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="22">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="66"/>
        <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="63"/>
      <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="58"/>
          <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="59"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-find.c"
                 line="24">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="19">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="20">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="21">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="22">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="44"/>
      <virtual-method name="get_fonts_summary" invoker="get_fonts_summary">
        <source-position filename="libdocument/pps-document-fonts.h"
                         line="43"/>
        <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="42"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-fonts.c"
               line="44">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="41">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="22">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="41"/>
        <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="24">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="51"/>
        <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="49"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-fonts.c"
               line="44">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="41">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="22">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="47"/>
        <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="24">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="44"/>
      <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="41"/>
          <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="24">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="42"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-fonts.c"
                 line="44">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="41">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="43"/>
          <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="68"/>
      <virtual-method name="document_is_modified"
                      invoker="document_is_modified">
        <source-position filename="libdocument/pps-document-forms.h"
                         line="34"/>
        <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="40"/>
        <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="42"/>
        <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="45"/>
        <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="48"/>
        <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="64"/>
        <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="50"/>
        <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="53"/>
        <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="61"/>
        <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="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="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="59"/>
        <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="35"/>
        <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="37"/>
        <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="32"/>
        <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="66"/>
        <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="74"/>
        <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="85"/>
        <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="88"/>
        <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="93"/>
        <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="97"/>
        <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="119"/>
        <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="100"/>
        <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="104"/>
        <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="115"/>
        <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="108"/>
        <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="112"/>
        <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="77"/>
        <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="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="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="71"/>
        <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="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="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="68"/>
      <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="32"/>
          <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="34"/>
          <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="35"/>
          <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="37"/>
          <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="40"/>
          <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="42"/>
          <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="45"/>
          <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="48"/>
          <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="50"/>
          <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="53"/>
          <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="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="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="59"/>
          <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="61"/>
          <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="64"/>
          <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="66"/>
          <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="37"/>
      <virtual-method name="get_image" invoker="get_image">
        <source-position filename="libdocument/pps-document-images.h"
                         line="35"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-images.c"
               line="32">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="29">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="30">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="33"/>
        <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="43"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-images.c"
               line="32">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="29">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="30">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="40"/>
        <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="37"/>
      <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="33"/>
          <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="35"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-images.c"
                 line="32">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="29">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="30">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="116"/>
      <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="121"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="28">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="147"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="432">%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="429">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="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="378">%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="375">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="123"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="40">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="38">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="153"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="486">%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="483">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="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="414">%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="411">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="76">Frees @info.</doc>
        <source-position filename="libdocument/pps-document-info.h"
                         line="125"/>
        <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="78">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="127"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="127">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="125">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="129"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="160">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="158">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="151"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="468">%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="465">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="141"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="360">%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="357">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="157"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="522">%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="519">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="133"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="306">%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="303">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="137"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="324">%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="321">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="155"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="504">%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="501">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="131"/>
        <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="159"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="540">%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="537">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="168"/>
        <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="139"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="342">%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="339">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="149"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="450">%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="447">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="162"/>
        <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="165"/>
        <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="143"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="396">%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="393">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="50"/>
      <virtual-method name="get_layers" invoker="get_layers">
        <source-position filename="libdocument/pps-document-layers.h"
                         line="42"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-layers.c"
               line="32">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="30">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="41"/>
        <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="46"/>
        <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="48"/>
        <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="44"/>
        <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="55"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-layers.c"
               line="32">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="30">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="53"/>
        <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="60"/>
        <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="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>
      </method>
      <method name="show_layer" c:identifier="pps_document_layers_show_layer">
        <source-position filename="libdocument/pps-document-layers.h"
                         line="57"/>
        <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="50"/>
      <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="41"/>
          <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="42"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-layers.c"
                 line="32">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="30">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="44"/>
          <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="46"/>
          <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="48"/>
          <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="178"/>
      <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="182"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="559">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="184"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="571">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="569">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="593">Frees @license.</doc>
        <source-position filename="libdocument/pps-document-info.h"
                         line="186"/>
        <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="595">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="188"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="616">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="614">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="190"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="628">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="626">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="192"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-info.c"
               line="640">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="638">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="52"/>
      <virtual-method name="find_link_dest" invoker="find_link_dest">
        <source-position filename="libdocument/pps-document-links.h"
                         line="48"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-links.c"
               line="61">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="58">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="59">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="50"/>
        <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="46"/>
        <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="45"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-links.c"
               line="37">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="35">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="44"/>
        <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="63"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-links.c"
               line="61">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="58">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="59">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="66"/>
        <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="69"/>
        <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="72"/>
        <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="75"/>
        <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="78"/>
        <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="60"/>
        <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="57"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-links.c"
               line="37">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="35">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="55"/>
        <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="52"/>
      <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="44"/>
          <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="45"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-links.c"
                 line="37">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="35">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="46"/>
          <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="48"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-links.c"
                 line="61">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="58">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="59">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="50"/>
          <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="35"/>
      <virtual-method name="get_media_mapping" invoker="get_media_mapping">
        <source-position filename="libdocument/pps-document-media.h"
                         line="33"/>
        <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="38"/>
        <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="35"/>
      <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="33"/>
          <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>
    <record name="DocumentPoint"
            c:type="PpsDocumentPoint"
            version="48.0"
            glib:type-name="PpsDocumentPoint"
            glib:get-type="pps_document_point_get_type"
            c:symbol-prefix="document_point">
      <doc xml:space="preserve"
           filename="libdocument/pps-document.h"
           line="183">`PpsDocumentPoint` is a simple boxed structure that is used to uniquely and
invariably identify any point in a document. Documents have independent
coordinate systems per page, and therefore, to uniquely identify a point, it
is necessary to know both the index of the page, and the coordinates of the
point within that page.

This structure and its fields `page_index` and `point_on_page` are public.</doc>
      <source-position filename="libdocument/pps-document.h" line="199"/>
      <field name="page_index" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="point_on_page" writable="1">
        <type name="Point" c:type="PpsPoint"/>
      </field>
      <method name="copy" c:identifier="pps_document_point_copy">
        <source-position filename="libdocument/pps-document.h" line="205"/>
        <return-value transfer-ownership="full">
          <type name="DocumentPoint" c:type="PpsDocumentPoint*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mark" transfer-ownership="none">
            <type name="DocumentPoint" c:type="PpsDocumentPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <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="34"/>
      <virtual-method name="print_page" invoker="print_page">
        <source-position filename="libdocument/pps-document-print.h"
                         line="31"/>
        <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="37"/>
        <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="34"/>
      <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="31"/>
          <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="37"/>
      <virtual-method name="has_document_security"
                      invoker="has_document_security">
        <source-position filename="libdocument/pps-document-security.h"
                         line="34"/>
        <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="35"/>
        <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="40"/>
        <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="42"/>
        <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="37"/>
      <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="34"/>
          <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="35"/>
          <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="DocumentSignatures"
               c:symbol-prefix="document_signatures"
               c:type="PpsDocumentSignatures"
               glib:type-name="PpsDocumentSignatures"
               glib:get-type="pps_document_signatures_get_type"
               glib:type-struct="DocumentSignaturesInterface">
      <source-position filename="libdocument/pps-document-signatures.h"
                       line="56"/>
      <virtual-method name="can_sign" invoker="can_sign">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-signatures.c"
             line="129">Checks whether document supports digital signing.</doc>
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="135">%TRUE if signing is supported,otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="131">a #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_available_signing_certificates"
                      invoker="get_available_signing_certificates">
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="42"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="43">a list of #PpsCertificateInfo objects or %NULL</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="CertificateInfo"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="41">an #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_certificate_info"
                      invoker="get_certificate_info">
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="43"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="61">a new #PpsCertificateInfo, or %NULL</doc>
          <type name="CertificateInfo" c:type="PpsCertificateInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="58">an #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
          <parameter name="nick_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="59">certificate nick name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_signatures" invoker="get_signatures">
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="55"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="169">a list of #PpsSignature objects</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Signature"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="167">an #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="has_signatures" invoker="has_signatures">
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="152">if the document has digital signatures</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="150">an #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_password_callback"
                      invoker="set_password_callback">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-signatures.c"
             line="19">Popplers crypto backend asks for certificate password before access,
so set a helper function to actually allow the user to enter his password.</doc>
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="21">an #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
          <parameter name="cb"
                     transfer-ownership="none"
                     scope="forever"
                     closure="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="22">(closure user_data) an #PpsSignaturePasswordCallback</doc>
            <type name="SignaturePasswordCallback"
                  c:type="PpsSignaturePasswordCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="23">data to pass to @cb</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="sign" glib:finish-func="sign_finish">
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
          <parameter name="signature" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="3">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="sign_finish" invoker="sign_finish" throws="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-signatures.c"
             line="104">Finish `pps_document_signatures_sign` operation,</doc>
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="112">%TRUE if signing finish has been started,otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="106">a #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="107">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="can_sign" c:identifier="pps_document_signatures_can_sign">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-signatures.c"
             line="129">Checks whether document supports digital signing.</doc>
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="135">%TRUE if signing is supported,otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="131">a #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_available_signing_certificates"
              c:identifier="pps_document_signatures_get_available_signing_certificates">
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="59"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="43">a list of #PpsCertificateInfo objects or %NULL</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="CertificateInfo"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="41">an #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_certificate_info"
              c:identifier="pps_document_signatures_get_certificate_info">
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="67"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="61">a new #PpsCertificateInfo, or %NULL</doc>
          <type name="CertificateInfo" c:type="PpsCertificateInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="58">an #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
          <parameter name="nick_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="59">certificate nick name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_signatures"
              c:identifier="pps_document_signatures_get_signatures">
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="93"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="169">a list of #PpsSignature objects</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Signature"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="167">an #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_signatures"
              c:identifier="pps_document_signatures_has_signatures">
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="152">if the document has digital signatures</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="150">an #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_password_callback"
              c:identifier="pps_document_signatures_set_password_callback">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-signatures.c"
             line="19">Popplers crypto backend asks for certificate password before access,
so set a helper function to actually allow the user to enter his password.</doc>
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="21">an #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
          <parameter name="cb"
                     transfer-ownership="none"
                     scope="forever"
                     closure="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="22">(closure user_data) an #PpsSignaturePasswordCallback</doc>
            <type name="SignaturePasswordCallback"
                  c:type="PpsSignaturePasswordCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="23">data to pass to @cb</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="sign"
              c:identifier="pps_document_signatures_sign"
              glib:finish-func="sign_finish">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-signatures.c"
             line="75">Start the final async process of signing a document using the prepared signature.</doc>
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="85">%TRUE if signing has been started,otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="77">an #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
          <parameter name="signature" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="78">a #PpsSignature</doc>
            <type name="Signature" c:type="PpsSignature*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="79">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="80">a #GAsyncReadyCallback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="81">callback user data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="sign_finish"
              c:identifier="pps_document_signatures_sign_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-signatures.c"
             line="104">Finish `pps_document_signatures_sign` operation,</doc>
        <source-position filename="libdocument/pps-document-signatures.h"
                         line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-signatures.c"
               line="112">%TRUE if signing finish has been started,otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_signatures"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="106">a #PpsDocumentSignatures</doc>
            <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="107">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentSignaturesInterface"
            c:type="PpsDocumentSignaturesInterface"
            glib:is-gtype-struct-for="DocumentSignatures">
      <source-position filename="libdocument/pps-document-signatures.h"
                       line="56"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="set_password_callback">
        <callback name="set_password_callback">
          <source-position filename="libdocument/pps-document-signatures.h"
                           line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_signatures" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-signatures.c"
                   line="21">an #PpsDocumentSignatures</doc>
              <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
            </parameter>
            <parameter name="cb"
                       transfer-ownership="none"
                       scope="forever"
                       closure="2">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-signatures.c"
                   line="22">(closure user_data) an #PpsSignaturePasswordCallback</doc>
              <type name="SignaturePasswordCallback"
                    c:type="PpsSignaturePasswordCallback"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="2">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-signatures.c"
                   line="23">data to pass to @cb</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_available_signing_certificates">
        <callback name="get_available_signing_certificates">
          <source-position filename="libdocument/pps-document-signatures.h"
                           line="42"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="43">a list of #PpsCertificateInfo objects or %NULL</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="CertificateInfo"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="document_signatures" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-signatures.c"
                   line="41">an #PpsDocumentSignatures</doc>
              <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_certificate_info">
        <callback name="get_certificate_info">
          <source-position filename="libdocument/pps-document-signatures.h"
                           line="43"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="61">a new #PpsCertificateInfo, or %NULL</doc>
            <type name="CertificateInfo" c:type="PpsCertificateInfo*"/>
          </return-value>
          <parameters>
            <parameter name="document_signatures" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-signatures.c"
                   line="58">an #PpsDocumentSignatures</doc>
              <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
            </parameter>
            <parameter name="nick_name" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-signatures.c"
                   line="59">certificate nick name</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="sign">
        <callback name="sign">
          <source-position filename="libdocument/pps-document-signatures.h"
                           line="45"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_signatures" transfer-ownership="none">
              <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
            </parameter>
            <parameter name="signature" transfer-ownership="none">
              <type name="Signature" c:type="PpsSignature*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="4">
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="4">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="sign_finish">
        <callback name="sign_finish" throws="1">
          <source-position filename="libdocument/pps-document-signatures.h"
                           line="50"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="112">%TRUE if signing finish has been started,otherwise %FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_signatures" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-signatures.c"
                   line="106">a #PpsDocumentSignatures</doc>
              <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-signatures.c"
                   line="107">a #GAsyncResult</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="can_sign">
        <callback name="can_sign">
          <source-position filename="libdocument/pps-document-signatures.h"
                           line="53"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="135">%TRUE if signing is supported,otherwise %FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_signatures" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-signatures.c"
                   line="131">a #PpsDocumentSignatures</doc>
              <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="has_signatures">
        <callback name="has_signatures">
          <source-position filename="libdocument/pps-document-signatures.h"
                           line="54"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="152">if the document has digital signatures</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_signatures" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-signatures.c"
                   line="150">an #PpsDocumentSignatures</doc>
              <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_signatures">
        <callback name="get_signatures">
          <source-position filename="libdocument/pps-document-signatures.h"
                           line="55"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-signatures.c"
                 line="169">a list of #PpsSignature objects</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Signature"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="document_signatures" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-document-signatures.c"
                   line="167">an #PpsDocumentSignatures</doc>
              <type name="DocumentSignatures" c:type="PpsDocumentSignatures*"/>
            </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="43"/>
      <virtual-method name="get_text" invoker="get_text">
        <source-position filename="libdocument/pps-document-text.h" line="32"/>
        <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">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-text.c"
             line="87">FIXME</doc>
        <source-position filename="libdocument/pps-document-text.h" line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-text.c"
               line="94">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="89">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="90">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="38"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-text.c"
               line="58">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="54">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="55">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="56">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="34"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-text.c"
               line="36">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="31">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="32">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="33">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="34">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="30"/>
        <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="46"/>
        <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">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-text.c"
             line="87">FIXME</doc>
        <source-position filename="libdocument/pps-document-text.h" line="61"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-text.c"
               line="94">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="89">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="90">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="54"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-text.c"
               line="58">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="54">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="55">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="56">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="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-text.c"
               line="36">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="31">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="32">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="33">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="34">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="58"/>
        <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="43"/>
      <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="30"/>
          <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="32"/>
          <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="34"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="36">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="31">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="32">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="33">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="34">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="38"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="58">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="54">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="55">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="56">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="41"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-text.c"
                 line="94">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="89">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="90">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="35"/>
      <virtual-method name="get_effect" invoker="get_effect">
        <source-position filename="libdocument/pps-document-transition.h"
                         line="33"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-transition.c"
               line="35">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="32">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="33">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="31"/>
        <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="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-document-transition.c"
               line="35">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="32">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="33">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="38"/>
        <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="35"/>
      <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="31"/>
          <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="33"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-document-transition.c"
                 line="35">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="32">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="33">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="22"/>
      <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="36"/>
      <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="37"/>
      <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="40"/>
      <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="43"/>
      <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="44"/>
      <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="47"/>
      <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="23"/>
      <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="26"/>
      <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="50"/>
      <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="51"/>
      <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="54"/>
      <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="29"/>
      <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="30"/>
      <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="33"/>
      <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="71"/>
      <virtual-method name="begin" invoker="begin">
        <source-position filename="libdocument/pps-file-exporter.h" line="63"/>
        <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="65"/>
        <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="66"/>
        <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="69"/>
        <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="68"/>
        <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="70"/>
        <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="74"/>
        <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="77"/>
        <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="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>
      </method>
      <method name="end" c:identifier="pps_file_exporter_end">
        <source-position filename="libdocument/pps-file-exporter.h" line="84"/>
        <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="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>
      </method>
      <method name="get_capabilities"
              c:identifier="pps_file_exporter_get_capabilities">
        <source-position filename="libdocument/pps-file-exporter.h" line="86"/>
        <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="52"/>
      <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="71"/>
      <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="63"/>
          <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="65"/>
          <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="66"/>
          <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="68"/>
          <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="69"/>
          <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="70"/>
          <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="37"/>
      <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="35"/>
          <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="36"/>
          <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="42"/>
        <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="44"/>
        <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="46"/>
        <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="22"/>
      <constructor name="new" c:identifier="pps_font_description_new">
        <source-position filename="libdocument/pps-font-description.h"
                         line="29"/>
        <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="22"/>
      <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="102"/>
      <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="133"/>
      <constructor name="new" c:identifier="pps_form_field_button_new">
        <source-position filename="libdocument/pps-form-field.h" line="178"/>
        <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="133"/>
      <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="151"/>
      <constructor name="new" c:identifier="pps_form_field_choice_new">
        <source-position filename="libdocument/pps-form-field.h" line="185"/>
        <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="151"/>
      <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="102"/>
      <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="161"/>
      <constructor name="new" c:identifier="pps_form_field_signature_new">
        <source-position filename="libdocument/pps-form-field.h" line="192"/>
        <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="161"/>
      <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="121"/>
      <constructor name="new" c:identifier="pps_form_field_text_new">
        <source-position filename="libdocument/pps-form-field.h" line="171"/>
        <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="121"/>
      <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="24"/>
      <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="38"/>
      <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="39"/>
      <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="45"/>
      <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="46"/>
      <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="25"/>
      <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="52"/>
      <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="53"/>
      <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="31"/>
      <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="32"/>
      <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="23"/>
      <constructor name="new" c:identifier="pps_image_new">
        <source-position filename="libdocument/pps-image.h" line="30"/>
        <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="33"/>
        <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="36"/>
        <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="38"/>
        <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="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-image.c"
               line="117">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="115">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="45"/>
        <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="42"/>
        <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="23"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="InkList"
            c:type="PpsInkList"
            glib:type-name="PpsInkList"
            glib:get-type="pps_ink_list_get_type"
            c:symbol-prefix="ink_list">
      <source-position filename="libdocument/pps-annotation.h" line="224"/>
      <field name="paths" writable="1">
        <type name="Path" c:type="PpsPath**"/>
      </field>
      <field name="n_paths" writable="1">
        <type name="gsize" c:type="gsize"/>
      </field>
      <constructor name="new_for_array"
                   c:identifier="pps_ink_list_new_for_array">
        <source-position filename="libdocument/pps-annotation.h" line="250"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1531">a new #PpsInkList</doc>
          <type name="InkList" c:type="PpsInkList*"/>
        </return-value>
        <parameters>
          <parameter name="paths" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1528">an array of paths</doc>
            <array length="1" zero-terminated="0" c:type="const PpsPath**">
              <type name="Path" c:type="PpsPath*"/>
            </array>
          </parameter>
          <parameter name="n_paths" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_list"
                   c:identifier="pps_ink_list_new_for_list">
        <source-position filename="libdocument/pps-annotation.h" line="247"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1549">a new #PpsInkList</doc>
          <type name="InkList" c:type="PpsInkList*"/>
        </return-value>
        <parameters>
          <parameter name="paths" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1547">an list of paths</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="Path"/>
            </type>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="pps_ink_list_copy">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="1566">Creates a deep copy of the ink list.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="252"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1572">a newly created #PpsInkList containing copies of all paths</doc>
          <type name="InkList" c:type="PpsInkList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ink_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1568">a #PpsInkList</doc>
            <type name="InkList" c:type="const PpsInkList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="pps_ink_list_free">
        <source-position filename="libdocument/pps-annotation.h" line="254"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ink_list" transfer-ownership="none">
            <type name="InkList" c:type="PpsInkList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_array" c:identifier="pps_ink_list_get_array">
        <doc xml:space="preserve"
             filename="libdocument/pps-annotation.c"
             line="1580">Gets the array of paths from the ink list.</doc>
        <source-position filename="libdocument/pps-annotation.h" line="256"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1587">array of paths in the ink list</doc>
          <array length="0" zero-terminated="0" c:type="PpsPath**">
            <type name="Path" c:type="PpsPath*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="ink_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1582">a #PpsInkList</doc>
            <type name="InkList" c:type="PpsInkList*"/>
          </instance-parameter>
          <parameter name="n_paths"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1583">location to store the number of paths</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="InkTime"
            c:type="PpsInkTime"
            glib:type-name="PpsInkTime"
            glib:get-type="pps_ink_time_get_type"
            c:symbol-prefix="ink_time">
      <source-position filename="libdocument/pps-annotation.h" line="262"/>
      <field name="time" writable="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="x" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="y" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <method name="copy" c:identifier="pps_ink_time_copy">
        <source-position filename="libdocument/pps-annotation.h" line="268"/>
        <return-value transfer-ownership="full">
          <type name="InkTime" c:type="PpsInkTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="t" transfer-ownership="none">
            <type name="InkTime" c:type="const PpsInkTime*"/>
          </instance-parameter>
        </parameters>
      </method>
    </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="23"/>
      <constructor name="new" c:identifier="pps_layer_new">
        <source-position filename="libdocument/pps-layer.h" line="30"/>
        <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="37"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-layer.c"
               line="64">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="62">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="32"/>
        <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="43">Sets the 'children' property of the layer.</doc>
        <source-position filename="libdocument/pps-layer.h" line="34"/>
        <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="45">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="46">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="23"/>
      <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="24"/>
      <constructor name="new" c:identifier="pps_link_new">
        <source-position filename="libdocument/pps-link.h" line="27"/>
        <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="154">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="155">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="33"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link.c"
               line="43">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="41">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="31"/>
        <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="24"/>
      <constructor name="new_dest" c:identifier="pps_link_action_new_dest">
        <source-position filename="libdocument/pps-link-action.h" line="62"/>
        <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="67"/>
        <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="69"/>
        <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="74"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="482">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="478">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="479">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="480">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="72"/>
        <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="64"/>
        <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="78"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="502">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="499">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="500">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">
        <doc xml:space="preserve"
             filename="libdocument/pps-link-action.c"
             line="515">Checks whether @a and @b are equal.</doc>
        <source-position filename="libdocument/pps-link-action.h" line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="522">%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="517">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="518">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="39"/>
        <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="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="64">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="62">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="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="175">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="173">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="45"/>
        <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="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="130">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="128">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="49"/>
        <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="47"/>
        <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="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="160">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="158">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="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="115">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="113">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="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-action.c"
               line="145">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="143">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="43"/>
        <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="24"/>
      <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="24"/>
      <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="23"/>
      <constructor name="new_fit" c:identifier="pps_link_dest_new_fit">
        <source-position filename="libdocument/pps-link-dest.h" line="70"/>
        <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="72"/>
        <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="80"/>
        <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="76"/>
        <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="86"/>
        <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="60"/>
        <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="88"/>
        <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="62"/>
        <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">
        <doc xml:space="preserve"
             filename="libdocument/pps-link-dest.c"
             line="516">Checks whether @a and @b are equal.</doc>
        <source-position filename="libdocument/pps-link-dest.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-link-dest.c"
               line="523">%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="518">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="519">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="48"/>
        <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="38"/>
        <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="45"/>
        <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="94">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="95">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="55"/>
        <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="40"/>
        <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="57"/>
        <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="50"/>
        <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="42"/>
        <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="76">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="77">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="52"/>
        <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="130">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="131">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="23"/>
      <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="50" c:type="PPS_MAJOR_VERSION">
      <doc xml:space="preserve"
           filename="libdocument/pps-version.h"
           line="15">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="22"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="2" c:type="PPS_MINOR_VERSION">
      <doc xml:space="preserve"
           filename="libdocument/pps-version.h"
           line="24">The minor version number of the EV library
(e.g. in version 3.1.4 this is 1).</doc>
      <source-position filename="libdocument/pps-version.h" line="30"/>
      <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="229"/>
      <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="234"/>
        <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="236"/>
        <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="const PpsMapping*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="pps_mapping_free">
        <source-position filename="libdocument/pps-document.h" line="238"/>
        <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="242"/>
        <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="246"/>
        <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="240"/>
        <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="244"/>
        <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="19"/>
      <constructor name="new" c:identifier="pps_mapping_list_new">
        <source-position filename="libdocument/pps-mapping-list.h" line="26"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="187">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="183">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="184">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="185">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="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="28">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="25">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="26">mapping data to find</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get" c:identifier="pps_mapping_list_get">
        <source-position filename="libdocument/pps-mapping-list.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="91">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="88">an #PpsMappingList</doc>
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
          <parameter name="point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="89">coordinate</doc>
            <type name="Point" c:type="const PpsPoint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_data" c:identifier="pps_mapping_list_get_data">
        <source-position filename="libdocument/pps-mapping-list.h" line="48"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="126">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="123">an #PpsMappingList</doc>
            <type name="MappingList" c:type="PpsMappingList*"/>
          </instance-parameter>
          <parameter name="point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-mapping-list.c"
                 line="124">coordinate</doc>
            <type name="Point" c:type="const PpsPoint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_list" c:identifier="pps_mapping_list_get_list">
        <source-position filename="libdocument/pps-mapping-list.h" line="37"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="145">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="143">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="35"/>
        <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="54"/>
        <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="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-mapping-list.c"
               line="51">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="48">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="49">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="30"/>
        <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">
        <source-position filename="libdocument/pps-mapping-list.h" line="39"/>
        <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="155">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="156">#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="32"/>
        <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="23"/>
      <constructor name="new_for_uri" c:identifier="pps_media_new_for_uri">
        <source-position filename="libdocument/pps-media.h" line="30"/>
        <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="35"/>
        <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="37"/>
        <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="33"/>
        <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="39"/>
        <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="23"/>
      <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="20"/>
      <constructor name="new" c:identifier="pps_outlines_new">
        <source-position filename="libdocument/pps-outlines.h" line="27"/>
        <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="43"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-outlines.c"
               line="155">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="153">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="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-outlines.c"
               line="123">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="120">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="41"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libdocument/pps-outlines.c"
               line="90">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="88">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="134">Sets the 'children' property of the outlines.</doc>
        <source-position filename="libdocument/pps-outlines.h" line="38"/>
        <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="136">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="137">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="101">Sets the 'expand' property of the outlines.</doc>
        <source-position filename="libdocument/pps-outlines.h" line="34"/>
        <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="103">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="104">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="32"/>
        <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="36"/>
        <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="30"/>
        <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="20"/>
      <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="22"/>
      <constructor name="new" c:identifier="pps_page_new">
        <source-position filename="libdocument/pps-page.h" line="37"/>
        <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="22"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="Path"
            c:type="PpsPath"
            glib:type-name="PpsPath"
            glib:get-type="pps_path_get_type"
            c:symbol-prefix="path">
      <source-position filename="libdocument/pps-annotation.h" line="219"/>
      <field name="points" writable="1">
        <type name="Point" c:type="PpsPoint*"/>
      </field>
      <field name="n_points" writable="1">
        <type name="gsize" c:type="gsize"/>
      </field>
      <constructor name="new_for_array" c:identifier="pps_path_new_for_array">
        <source-position filename="libdocument/pps-annotation.h" line="236"/>
        <return-value transfer-ownership="full">
          <type name="Path" c:type="PpsPath*"/>
        </return-value>
        <parameters>
          <parameter name="points" transfer-ownership="none">
            <array length="1" zero-terminated="0" c:type="const PpsPoint*">
              <type name="Point" c:type="PpsPoint"/>
            </array>
          </parameter>
          <parameter name="n_points" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_list" c:identifier="pps_path_new_for_list">
        <source-position filename="libdocument/pps-annotation.h" line="229"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1477">a new path</doc>
          <type name="Path" c:type="PpsPath*"/>
        </return-value>
        <parameters>
          <parameter name="points" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1475">the points</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="Point"/>
            </type>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="pps_path_copy">
        <source-position filename="libdocument/pps-annotation.h" line="231"/>
        <return-value transfer-ownership="full">
          <type name="Path" c:type="PpsPath*"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <type name="Path" c:type="const PpsPath*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="copy_array" c:identifier="pps_path_copy_array">
        <source-position filename="libdocument/pps-annotation.h" line="239"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libdocument/pps-annotation.c"
               line="1514">the list of points of the path</doc>
          <array length="0" zero-terminated="0" c:type="PpsPoint*">
            <type name="Point" c:type="PpsPoint"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1511">a #PpsPath</doc>
            <type name="Path" c:type="PpsPath*"/>
          </instance-parameter>
          <parameter name="n_points"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-annotation.c"
                 line="1512">the length of the path</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="pps_path_free">
        <source-position filename="libdocument/pps-annotation.h" line="233"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <type name="Path" c:type="PpsPath*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="Point"
            c:type="PpsPoint"
            glib:type-name="PpsPoint"
            glib:get-type="pps_point_get_type"
            c:symbol-prefix="point">
      <source-position filename="libdocument/pps-document.h" line="174"/>
      <field name="x" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="y" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <constructor name="new" c:identifier="pps_point_new">
        <source-position filename="libdocument/pps-document.h" line="179"/>
        <return-value transfer-ownership="full">
          <type name="Point" c:type="PpsPoint*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="pps_point_copy">
        <source-position filename="libdocument/pps-document.h" line="181"/>
        <return-value transfer-ownership="full">
          <type name="Point" c:type="PpsPoint*"/>
        </return-value>
        <parameters>
          <instance-parameter name="point" transfer-ownership="none">
            <type name="Point" c:type="const PpsPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
    </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="214"/>
      <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="219"/>
        <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="221"/>
        <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>
    </record>
    <bitfield name="RenderAnnotsFlags"
              glib:type-name="PpsRenderAnnotsFlags"
              glib:get-type="pps_render_annots_flags_get_type"
              c:type="PpsRenderAnnotsFlags">
      <member name="none"
              value="0"
              c:identifier="PPS_RENDER_ANNOTS_NONE"
              glib:nick="none"
              glib:name="PPS_RENDER_ANNOTS_NONE">
      </member>
      <member name="text"
              value="1"
              c:identifier="PPS_RENDER_ANNOTS_TEXT"
              glib:nick="text"
              glib:name="PPS_RENDER_ANNOTS_TEXT">
      </member>
      <member name="link"
              value="2"
              c:identifier="PPS_RENDER_ANNOTS_LINK"
              glib:nick="link"
              glib:name="PPS_RENDER_ANNOTS_LINK">
      </member>
      <member name="freetext"
              value="4"
              c:identifier="PPS_RENDER_ANNOTS_FREETEXT"
              glib:nick="freetext"
              glib:name="PPS_RENDER_ANNOTS_FREETEXT">
      </member>
      <member name="line"
              value="8"
              c:identifier="PPS_RENDER_ANNOTS_LINE"
              glib:nick="line"
              glib:name="PPS_RENDER_ANNOTS_LINE">
      </member>
      <member name="square"
              value="16"
              c:identifier="PPS_RENDER_ANNOTS_SQUARE"
              glib:nick="square"
              glib:name="PPS_RENDER_ANNOTS_SQUARE">
      </member>
      <member name="circle"
              value="32"
              c:identifier="PPS_RENDER_ANNOTS_CIRCLE"
              glib:nick="circle"
              glib:name="PPS_RENDER_ANNOTS_CIRCLE">
      </member>
      <member name="polygon"
              value="64"
              c:identifier="PPS_RENDER_ANNOTS_POLYGON"
              glib:nick="polygon"
              glib:name="PPS_RENDER_ANNOTS_POLYGON">
      </member>
      <member name="polyline"
              value="128"
              c:identifier="PPS_RENDER_ANNOTS_POLYLINE"
              glib:nick="polyline"
              glib:name="PPS_RENDER_ANNOTS_POLYLINE">
      </member>
      <member name="highlight"
              value="256"
              c:identifier="PPS_RENDER_ANNOTS_HIGHLIGHT"
              glib:nick="highlight"
              glib:name="PPS_RENDER_ANNOTS_HIGHLIGHT">
      </member>
      <member name="underline"
              value="512"
              c:identifier="PPS_RENDER_ANNOTS_UNDERLINE"
              glib:nick="underline"
              glib:name="PPS_RENDER_ANNOTS_UNDERLINE">
      </member>
      <member name="squiggly"
              value="1024"
              c:identifier="PPS_RENDER_ANNOTS_SQUIGGLY"
              glib:nick="squiggly"
              glib:name="PPS_RENDER_ANNOTS_SQUIGGLY">
      </member>
      <member name="strikeout"
              value="2048"
              c:identifier="PPS_RENDER_ANNOTS_STRIKEOUT"
              glib:nick="strikeout"
              glib:name="PPS_RENDER_ANNOTS_STRIKEOUT">
      </member>
      <member name="stamp"
              value="4096"
              c:identifier="PPS_RENDER_ANNOTS_STAMP"
              glib:nick="stamp"
              glib:name="PPS_RENDER_ANNOTS_STAMP">
      </member>
      <member name="caret"
              value="8192"
              c:identifier="PPS_RENDER_ANNOTS_CARET"
              glib:nick="caret"
              glib:name="PPS_RENDER_ANNOTS_CARET">
      </member>
      <member name="ink"
              value="16384"
              c:identifier="PPS_RENDER_ANNOTS_INK"
              glib:nick="ink"
              glib:name="PPS_RENDER_ANNOTS_INK">
      </member>
      <member name="popup"
              value="32768"
              c:identifier="PPS_RENDER_ANNOTS_POPUP"
              glib:nick="popup"
              glib:name="PPS_RENDER_ANNOTS_POPUP">
      </member>
      <member name="fileattachment"
              value="65536"
              c:identifier="PPS_RENDER_ANNOTS_FILEATTACHMENT"
              glib:nick="fileattachment"
              glib:name="PPS_RENDER_ANNOTS_FILEATTACHMENT">
      </member>
      <member name="sound"
              value="131072"
              c:identifier="PPS_RENDER_ANNOTS_SOUND"
              glib:nick="sound"
              glib:name="PPS_RENDER_ANNOTS_SOUND">
      </member>
      <member name="movie"
              value="262144"
              c:identifier="PPS_RENDER_ANNOTS_MOVIE"
              glib:nick="movie"
              glib:name="PPS_RENDER_ANNOTS_MOVIE">
      </member>
      <member name="widget"
              value="524288"
              c:identifier="PPS_RENDER_ANNOTS_WIDGET"
              glib:nick="widget"
              glib:name="PPS_RENDER_ANNOTS_WIDGET">
      </member>
      <member name="screen"
              value="1048576"
              c:identifier="PPS_RENDER_ANNOTS_SCREEN"
              glib:nick="screen"
              glib:name="PPS_RENDER_ANNOTS_SCREEN">
      </member>
      <member name="printermark"
              value="2097152"
              c:identifier="PPS_RENDER_ANNOTS_PRINTERMARK"
              glib:nick="printermark"
              glib:name="PPS_RENDER_ANNOTS_PRINTERMARK">
      </member>
      <member name="trapnet"
              value="4194304"
              c:identifier="PPS_RENDER_ANNOTS_TRAPNET"
              glib:nick="trapnet"
              glib:name="PPS_RENDER_ANNOTS_TRAPNET">
      </member>
      <member name="watermark"
              value="8388608"
              c:identifier="PPS_RENDER_ANNOTS_WATERMARK"
              glib:nick="watermark"
              glib:name="PPS_RENDER_ANNOTS_WATERMARK">
      </member>
      <member name="3d"
              value="16777216"
              c:identifier="PPS_RENDER_ANNOTS_3D"
              glib:nick="3d"
              glib:name="PPS_RENDER_ANNOTS_3D">
      </member>
      <member name="richmedia"
              value="33554432"
              c:identifier="PPS_RENDER_ANNOTS_RICHMEDIA"
              glib:nick="richmedia"
              glib:name="PPS_RENDER_ANNOTS_RICHMEDIA">
      </member>
      <member name="print_document"
              value="524288"
              c:identifier="PPS_RENDER_ANNOTS_PRINT_DOCUMENT"
              glib:nick="print-document"
              glib:name="PPS_RENDER_ANNOTS_PRINT_DOCUMENT">
      </member>
      <member name="print_markup"
              value="-32800771"
              c:identifier="PPS_RENDER_ANNOTS_PRINT_MARKUP"
              glib:nick="print-markup"
              glib:name="PPS_RENDER_ANNOTS_PRINT_MARKUP">
      </member>
      <member name="print_stamp"
              value="528384"
              c:identifier="PPS_RENDER_ANNOTS_PRINT_STAMP"
              glib:nick="print-stamp"
              glib:name="PPS_RENDER_ANNOTS_PRINT_STAMP">
      </member>
      <member name="print_all"
              value="-32800771"
              c:identifier="PPS_RENDER_ANNOTS_PRINT_ALL"
              glib:nick="print-all"
              glib:name="PPS_RENDER_ANNOTS_PRINT_ALL">
      </member>
      <member name="all"
              value="67108863"
              c:identifier="PPS_RENDER_ANNOTS_ALL"
              glib:nick="all"
              glib:name="PPS_RENDER_ANNOTS_ALL">
      </member>
    </bitfield>
    <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="23"/>
      <constructor name="new" c:identifier="pps_render_context_new">
        <source-position filename="libdocument/pps-render-context.h"
                         line="77"/>
        <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>
          <parameter name="annot_flags" transfer-ownership="none">
            <type name="RenderAnnotsFlags" c:type="PpsRenderAnnotsFlags"/>
          </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="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-render-context.c"
                 line="105">an #PpsRenderContext</doc>
            <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"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="scaled_height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <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="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-render-context.c"
                 line="170">an #PpsRenderContext</doc>
            <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"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="scale_y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <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="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-render-context.c"
                 line="140">an #PpsRenderContext</doc>
            <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"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="transformed_height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <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="82"/>
        <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="85"/>
        <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="88"/>
        <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="91"/>
        <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>
      <field name="annot_flags">
        <type name="RenderAnnotsFlags" c:type="PpsRenderAnnotsFlags"/>
      </field>
    </class>
    <record name="RenderContextClass"
            c:type="PpsRenderContextClass"
            glib:is-gtype-struct-for="RenderContext">
      <source-position filename="libdocument/pps-render-context.h" line="23"/>
      <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="51"/>
      <virtual-method name="get_selected_text" invoker="get_selected_text">
        <source-position filename="libdocument/pps-selection.h" line="43"/>
        <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="47"/>
        <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="35"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="19">a #PpsSelection</doc>
            <type name="Selection" c:type="PpsSelection*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="20">a #PpsRenderContext</doc>
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
          <parameter name="surface"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="21">a surface, created if it is NULL, otherwise reused</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t**"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="22">current selection points</doc>
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
          <parameter name="old_points" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="23">old selection points</doc>
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="24">a #PpsSelectionStyle</doc>
            <type name="SelectionStyle" c:type="PpsSelectionStyle"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="25">foreground text color</doc>
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
          <parameter name="base" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="26">base color</doc>
            <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="63"/>
        <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="68"/>
        <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="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="19">a #PpsSelection</doc>
            <type name="Selection" c:type="PpsSelection*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="20">a #PpsRenderContext</doc>
            <type name="RenderContext" c:type="PpsRenderContext*"/>
          </parameter>
          <parameter name="surface"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="21">a surface, created if it is NULL, otherwise reused</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t**"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="22">current selection points</doc>
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
          <parameter name="old_points" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="23">old selection points</doc>
            <type name="Rectangle" c:type="PpsRectangle*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="24">a #PpsSelectionStyle</doc>
            <type name="SelectionStyle" c:type="PpsSelectionStyle"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="25">foreground text color</doc>
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
          <parameter name="base" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-selection.c"
                 line="26">base color</doc>
            <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="51"/>
      <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="35"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="selection" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-selection.c"
                   line="19">a #PpsSelection</doc>
              <type name="Selection" c:type="PpsSelection*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-selection.c"
                   line="20">a #PpsRenderContext</doc>
              <type name="RenderContext" c:type="PpsRenderContext*"/>
            </parameter>
            <parameter name="surface"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:space="preserve"
                   filename="libdocument/pps-selection.c"
                   line="21">a surface, created if it is NULL, otherwise reused</doc>
              <type name="cairo.Surface" c:type="cairo_surface_t**"/>
            </parameter>
            <parameter name="points" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-selection.c"
                   line="22">current selection points</doc>
              <type name="Rectangle" c:type="PpsRectangle*"/>
            </parameter>
            <parameter name="old_points" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-selection.c"
                   line="23">old selection points</doc>
              <type name="Rectangle" c:type="PpsRectangle*"/>
            </parameter>
            <parameter name="style" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-selection.c"
                   line="24">a #PpsSelectionStyle</doc>
              <type name="SelectionStyle" c:type="PpsSelectionStyle"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-selection.c"
                   line="25">foreground text color</doc>
              <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
            </parameter>
            <parameter name="base" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libdocument/pps-selection.c"
                   line="26">base color</doc>
              <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="43"/>
          <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="47"/>
          <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="Signature"
           c:symbol-prefix="signature"
           c:type="PpsSignature"
           parent="GObject.Object"
           glib:type-name="PpsSignature"
           glib:get-type="pps_signature_get_type"
           glib:type-struct="SignatureClass">
      <source-position filename="libdocument/pps-signature.h" line="24"/>
      <constructor name="new" c:identifier="pps_signature_new">
        <source-position filename="libdocument/pps-signature.h" line="42"/>
        <return-value transfer-ownership="full">
          <type name="Signature" c:type="PpsSignature*"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <type name="SignatureStatus" c:type="PpsSignatureStatus"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <type name="CertificateInfo" c:type="PpsCertificateInfo*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_background_color"
              c:identifier="pps_signature_get_background_color">
        <source-position filename="libdocument/pps-signature.h" line="134"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="color" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_border_color"
              c:identifier="pps_signature_get_border_color">
        <source-position filename="libdocument/pps-signature.h" line="126"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="color" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_border_width"
              c:identifier="pps_signature_get_border_width">
        <source-position filename="libdocument/pps-signature.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_destination_file"
              c:identifier="pps_signature_get_destination_file">
        <source-position filename="libdocument/pps-signature.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_font_color"
              c:identifier="pps_signature_get_font_color">
        <source-position filename="libdocument/pps-signature.h" line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="color" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_font_size" c:identifier="pps_signature_get_font_size">
        <source-position filename="libdocument/pps-signature.h" line="89"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_left_font_size"
              c:identifier="pps_signature_get_left_font_size">
        <source-position filename="libdocument/pps-signature.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_owner_password"
              c:identifier="pps_signature_get_owner_password">
        <source-position filename="libdocument/pps-signature.h" line="143"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page" c:identifier="pps_signature_get_page">
        <source-position filename="libdocument/pps-signature.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_password" c:identifier="pps_signature_get_password">
        <source-position filename="libdocument/pps-signature.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rect" c:identifier="pps_signature_get_rect">
        <source-position filename="libdocument/pps-signature.h" line="66"/>
        <return-value transfer-ownership="full">
          <type name="Rectangle" c:type="PpsRectangle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_signature" c:identifier="pps_signature_get_signature">
        <source-position filename="libdocument/pps-signature.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_signature_left"
              c:identifier="pps_signature_get_signature_left">
        <source-position filename="libdocument/pps-signature.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_password"
              c:identifier="pps_signature_get_user_password">
        <source-position filename="libdocument/pps-signature.h" line="151"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_valid" c:identifier="pps_signature_is_valid">
        <doc xml:space="preserve"
             filename="libdocument/pps-signature.c"
             line="445">Checks whether signature is valid</doc>
        <source-position filename="libdocument/pps-signature.h" line="155"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-signature.c"
               line="451">signature valid status</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libdocument/pps-signature.c"
                 line="447">a #PpsSignature</doc>
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_background_color"
              c:identifier="pps_signature_set_background_color">
        <source-position filename="libdocument/pps-signature.h" line="130"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="color" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_border_color"
              c:identifier="pps_signature_set_border_color">
        <source-position filename="libdocument/pps-signature.h" line="122"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="color" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_border_width"
              c:identifier="pps_signature_set_border_width">
        <source-position filename="libdocument/pps-signature.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_destination_file"
              c:identifier="pps_signature_set_destination_file">
        <source-position filename="libdocument/pps-signature.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_font_color"
              c:identifier="pps_signature_set_font_color">
        <source-position filename="libdocument/pps-signature.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="color" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_font_size" c:identifier="pps_signature_set_font_size">
        <source-position filename="libdocument/pps-signature.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_left_font_size"
              c:identifier="pps_signature_set_left_font_size">
        <source-position filename="libdocument/pps-signature.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_owner_password"
              c:identifier="pps_signature_set_owner_password">
        <source-position filename="libdocument/pps-signature.h" line="138"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_page" c:identifier="pps_signature_set_page">
        <source-position filename="libdocument/pps-signature.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password" c:identifier="pps_signature_set_password">
        <source-position filename="libdocument/pps-signature.h" line="106"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rect" c:identifier="pps_signature_set_rect">
        <source-position filename="libdocument/pps-signature.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const PpsRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_signature" c:identifier="pps_signature_set_signature">
        <source-position filename="libdocument/pps-signature.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="signature" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_signature_left"
              c:identifier="pps_signature_set_signature_left">
        <source-position filename="libdocument/pps-signature.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="signature_left" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_user_password"
              c:identifier="pps_signature_set_user_password">
        <source-position filename="libdocument/pps-signature.h" line="146"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Signature" c:type="PpsSignature*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="certificate-info"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="CertificateInfo"/>
      </property>
      <property name="signature-time"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GLib.DateTime"/>
      </property>
      <property name="status"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="PPS_SIGNATURE_STATUS_INVALID">
        <type name="SignatureStatus"/>
      </property>
      <field name="base_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="SignatureClass"
            c:type="PpsSignatureClass"
            glib:is-gtype-struct-for="Signature">
      <source-position filename="libdocument/pps-signature.h" line="24"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="SignaturePasswordCallback"
              c:type="PpsSignaturePasswordCallback">
      <source-position filename="libdocument/pps-document-signatures.h"
                       line="33"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="libdocument/pps-document-signatures.h"
             line="31">The password.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="text" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="SignatureStatus"
                 glib:type-name="PpsSignatureStatus"
                 glib:get-type="pps_signature_status_get_type"
                 c:type="PpsSignatureStatus">
      <member name="valid"
              value="0"
              c:identifier="PPS_SIGNATURE_STATUS_VALID"
              glib:nick="valid"
              glib:name="PPS_SIGNATURE_STATUS_VALID">
      </member>
      <member name="invalid"
              value="1"
              c:identifier="PPS_SIGNATURE_STATUS_INVALID"
              glib:nick="invalid"
              glib:name="PPS_SIGNATURE_STATUS_INVALID">
      </member>
      <member name="digest_mismatch"
              value="2"
              c:identifier="PPS_SIGNATURE_STATUS_DIGEST_MISMATCH"
              glib:nick="digest-mismatch"
              glib:name="PPS_SIGNATURE_STATUS_DIGEST_MISMATCH">
      </member>
      <member name="decoding_error"
              value="3"
              c:identifier="PPS_SIGNATURE_STATUS_DECODING_ERROR"
              glib:nick="decoding-error"
              glib:name="PPS_SIGNATURE_STATUS_DECODING_ERROR">
      </member>
      <member name="generic_error"
              value="4"
              c:identifier="PPS_SIGNATURE_STATUS_GENERIC_ERROR"
              glib:nick="generic-error"
              glib:name="PPS_SIGNATURE_STATUS_GENERIC_ERROR">
      </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="23"/>
      <constructor name="new"
                   c:identifier="pps_transition_effect_new"
                   introspectable="0">
        <source-position filename="libdocument/pps-transition-effect.h"
                         line="55"/>
        <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="23"/>
      <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="11"/>
      <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="261"/>
      <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="615">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="68"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="632">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="617">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="618">the compression type</doc>
          <type name="CompressionType" c:type="PpsCompressionType"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_copy_metadata"
              c:identifier="pps_file_copy_metadata"
              throws="1">
      <doc xml:space="preserve"
           filename="libdocument/pps-file-helpers.c"
           line="282">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="50"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="291">%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="284">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="285">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="55"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="393">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="389">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="390">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="60"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="409">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="406">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="44"/>
      <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="587">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="64"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="603">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="589">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="590">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="20">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="20"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libdocument/pps-init.c"
             line="29">%TRUE if any backends were found; %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="mkstemp" c:identifier="pps_mkstemp" throws="1">
      <doc xml:space="preserve"
           filename="libdocument/pps-file-helpers.c"
           line="101">Creates a temp file in the papers temp directory.</doc>
      <source-position filename="libdocument/pps-file-helpers.h" line="31"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="109">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="103">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="104">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="152">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="35"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="159">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="154">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="8">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="223"/>
      <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="shutdown" c:identifier="pps_shutdown">
      <doc xml:space="preserve"
           filename="libdocument/pps-init.c"
           line="51">Shuts the papers document library down.</doc>
      <source-position filename="libdocument/pps-init.h" line="23"/>
      <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="40"/>
      <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="38"/>
      <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="42"/>
      <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="247">Performs a g_file_copy() from @from to @to.</doc>
      <source-position filename="libdocument/pps-file-helpers.h" line="46"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libdocument/pps-file-helpers.c"
             line="255">%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="249">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="250">the target URI</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xmp_parse" c:identifier="pps_xmp_parse">
      <doc xml:space="preserve"
           filename="libdocument/pps-xmp.c"
           line="228">Parse XMP based document metadata into [struct@DocumentInfo]</doc>
      <source-position filename="libdocument/pps-xmp.h" line="16"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libdocument/pps-xmp.c"
             line="236">%TRUE iff @metadata could be successfully parsed</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="metadata" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-xmp.c"
               line="230">XMP document data</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-xmp.c"
               line="231">size of @metadata in bytes</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libdocument/pps-xmp.c"
               line="232">target to update</doc>
          <type name="DocumentInfo" c:type="PpsDocumentInfo*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
