<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GLib" version="2.0"/>
  <include name="Gdk" version="3.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <package name="evince-document-3.0"/>
  <namespace name="EvinceDocument"
             version="3.0"
             shared-library="libevdocument3.so.0.2"
             c:identifier-prefixes="Ev"
             c:symbol-prefixes="ev">
    <alias name="BackendPage" c:type="EvBackendPage">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="BackendPageDestroyFunc" c:type="EvBackendPageDestroyFunc">
      <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
    </alias>
    <class name="Annotation"
           c:symbol-prefix="annotation"
           c:type="EvAnnotation"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="EvAnnotation"
           glib:get-type="ev_annotation_get_type"
           glib:type-struct="AnnotationClass">
      <method name="equal" c:identifier="ev_annotation_equal">
        <doc xml:space="preserve">Compare @annot and @other.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">an #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <doc xml:space="preserve">another #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_annotation_type"
              c:identifier="ev_annotation_get_annotation_type">
        <return-value transfer-ownership="none">
          <type name="AnnotationType" c:type="EvAnnotationType"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_area" c:identifier="ev_annotation_get_area">
        <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="EvAnnotation*"/>
          </instance-parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_color"
              c:identifier="ev_annotation_get_color"
              deprecated="1"
              deprecated-version="3.6">
        <doc xml:space="preserve">Get the color of @annot.</doc>
        <doc-deprecated xml:space="preserve">Use ev_annotation_get_rgba() instead.</doc-deprecated>
        <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">an #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
          <parameter name="color"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve">a #GdkColor to be filled with the Annotation color.</doc>
            <type name="Gdk.Color" c:type="GdkColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contents" c:identifier="ev_annotation_get_contents">
        <doc xml:space="preserve">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>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">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">an #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modified" c:identifier="ev_annotation_get_modified">
        <doc xml:space="preserve">Get the last modification date of @annot.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">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">an #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ev_annotation_get_name">
        <doc xml:space="preserve">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>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">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">an #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page" c:identifier="ev_annotation_get_page">
        <doc xml:space="preserve">Get the page where @annot appears.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #EvPage where @annot appears</doc>
          <type name="Page" c:type="EvPage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve">an #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page_index"
              c:identifier="ev_annotation_get_page_index">
        <doc xml:space="preserve">Get the index of the page where @annot appears. Note that the index
is 0 based.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the page index.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve">an #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rgba"
              c:identifier="ev_annotation_get_rgba"
              version="3.6">
        <doc xml:space="preserve">Gets the color of @annot.</doc>
        <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">an #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
          <parameter name="rgba"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve">a #GdkRGBA to be filled with the annotation color</doc>
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_area"
              c:identifier="ev_annotation_set_area"
              version="3.18">
        <doc xml:space="preserve">Set the area of the annotation to @area.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">an #Evannotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve">a #EvRectangle</doc>
            <type name="Rectangle" c:type="const EvRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color"
              c:identifier="ev_annotation_set_color"
              deprecated="1"
              deprecated-version="3.6">
        <doc xml:space="preserve">Set the color of the annotation to @color. You can monitor
changes to the annotation's color by connecting to
notify::color signal on @annot.</doc>
        <doc-deprecated xml:space="preserve">Use ev_annotation_set_rgba() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE  when 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">an #Evannotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
          <parameter name="color" transfer-ownership="none">
            <doc xml:space="preserve">a #GdkColor</doc>
            <type name="Gdk.Color" c:type="const GdkColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_contents" c:identifier="ev_annotation_set_contents">
        <doc xml:space="preserve">Set the contents of @annot. You can monitor
changes in the annotation's  contents by connecting to
notify::contents signal of @annot.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">an #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
          <parameter name="contents" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modified" c:identifier="ev_annotation_set_modified">
        <doc xml:space="preserve">Set the last modification date of @annot to @modified. To
set the last modification date using a #GTime, use
ev_annotation_set_modified_from_time() instead. You can monitor
changes to the last modification date by connecting to the
notify::modified signal on @annot.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">an #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
          <parameter name="modified" transfer-ownership="none">
            <doc xml:space="preserve">string with the last modification date.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modified_from_time"
              c:identifier="ev_annotation_set_modified_from_time">
        <doc xml:space="preserve">Set the last modification date of @annot to @utime.  You can
monitor changes to the last modification date by connectin to the
notify::modified sinal on @annot.
For the time-format used, see ev_document_misc_format_date().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">an #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
          <parameter name="utime" transfer-ownership="none">
            <doc xml:space="preserve">a #GTime</doc>
            <type name="GLib.Time" c:type="GTime"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="ev_annotation_set_name">
        <doc xml:space="preserve">Set the name of @annot.
You can monitor changes of the annotation name by connecting
to the notify::name signal on @annot.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">an #EvAnnotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rgba"
              c:identifier="ev_annotation_set_rgba"
              version="3.6">
        <doc xml:space="preserve">Set the color of the annotation to @rgba.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">an #Evannotation</doc>
            <type name="Annotation" c:type="EvAnnotation*"/>
          </instance-parameter>
          <parameter name="rgba" transfer-ownership="none">
            <doc xml:space="preserve">a #GdkRGBA</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <property name="area" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The area of the page where the annotation is placed.

Since 3.18</doc>
        <type name="Rectangle"/>
      </property>
      <property name="color"
                deprecated="1"
                deprecated-version="3.6"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The colour of the annotation as a #GdkColor.</doc>
        <doc-deprecated xml:space="preserve">Use #EvAnnotation:rgba instead.</doc-deprecated>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="contents" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="modified" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="page"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Page"/>
      </property>
      <property name="rgba"
                version="3.6"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The colour of the annotation as a #GdkRGBA.</doc>
        <type name="Gdk.RGBA"/>
      </property>
    </class>
    <class name="AnnotationAttachment"
           c:symbol-prefix="annotation_attachment"
           c:type="EvAnnotationAttachment"
           parent="Annotation"
           glib:type-name="EvAnnotationAttachment"
           glib:get-type="ev_annotation_attachment_get_type"
           glib:type-struct="AnnotationAttachmentClass">
      <implements name="AnnotationMarkup"/>
      <constructor name="new" c:identifier="ev_annotation_attachment_new">
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="EvAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="EvAttachment*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_attachment"
              c:identifier="ev_annotation_attachment_get_attachment">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #EvAttachment</doc>
          <type name="Attachment" c:type="EvAttachment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <doc xml:space="preserve">an #EvAnnotationAttachment</doc>
            <type name="AnnotationAttachment"
                  c:type="EvAnnotationAttachment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_attachment"
              c:identifier="ev_annotation_attachment_set_attachment">
        <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="EvAnnotationAttachment*"/>
          </instance-parameter>
          <parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="EvAttachment*"/>
          </parameter>
        </parameters>
      </method>
      <property name="attachment"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="Attachment"/>
      </property>
    </class>
    <record name="AnnotationAttachmentClass"
            c:type="EvAnnotationAttachmentClass"
            disguised="1"
            glib:is-gtype-struct-for="AnnotationAttachment">
    </record>
    <record name="AnnotationClass"
            c:type="EvAnnotationClass"
            disguised="1"
            glib:is-gtype-struct-for="Annotation">
    </record>
    <interface name="AnnotationMarkup"
               c:symbol-prefix="annotation_markup"
               c:type="EvAnnotationMarkup"
               glib:type-name="EvAnnotationMarkup"
               glib:get-type="ev_annotation_markup_get_type"
               glib:type-struct="AnnotationMarkupInterface">
      <prerequisite name="Annotation"/>
      <method name="can_have_popup"
              c:identifier="ev_annotation_markup_can_have_popup">
        <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="EvAnnotationMarkup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_label" c:identifier="ev_annotation_markup_get_label">
        <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="EvAnnotationMarkup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_opacity"
              c:identifier="ev_annotation_markup_get_opacity">
        <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="EvAnnotationMarkup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_popup_is_open"
              c:identifier="ev_annotation_markup_get_popup_is_open">
        <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="EvAnnotationMarkup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rectangle"
              c:identifier="ev_annotation_markup_get_rectangle">
        <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="EvAnnotationMarkup*"/>
          </instance-parameter>
          <parameter name="ev_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_popup" c:identifier="ev_annotation_markup_has_popup">
        <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="EvAnnotationMarkup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_has_popup"
              c:identifier="ev_annotation_markup_set_has_popup">
        <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="EvAnnotationMarkup*"/>
          </instance-parameter>
          <parameter name="has_popup" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label" c:identifier="ev_annotation_markup_set_label">
        <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="EvAnnotationMarkup*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_opacity"
              c:identifier="ev_annotation_markup_set_opacity">
        <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="EvAnnotationMarkup*"/>
          </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="ev_annotation_markup_set_popup_is_open">
        <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="EvAnnotationMarkup*"/>
          </instance-parameter>
          <parameter name="is_open" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rectangle"
              c:identifier="ev_annotation_markup_set_rectangle">
        <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="EvAnnotationMarkup*"/>
          </instance-parameter>
          <parameter name="ev_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const EvRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <property name="can-have-popup" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="has-popup" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="label" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="opacity" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="popup-is-open" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="rectangle" writable="1" transfer-ownership="none">
        <type name="Rectangle"/>
      </property>
    </interface>
    <record name="AnnotationMarkupInterface"
            c:type="EvAnnotationMarkupInterface"
            disguised="1"
            glib:is-gtype-struct-for="AnnotationMarkup">
    </record>
    <class name="AnnotationText"
           c:symbol-prefix="annotation_text"
           c:type="EvAnnotationText"
           parent="Annotation"
           glib:type-name="EvAnnotationText"
           glib:get-type="ev_annotation_text_get_type"
           glib:type-struct="AnnotationTextClass">
      <implements name="AnnotationMarkup"/>
      <constructor name="new" c:identifier="ev_annotation_text_new">
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="EvAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_icon" c:identifier="ev_annotation_text_get_icon">
        <return-value transfer-ownership="none">
          <type name="AnnotationTextIcon" c:type="EvAnnotationTextIcon"/>
        </return-value>
        <parameters>
          <instance-parameter name="text" transfer-ownership="none">
            <type name="AnnotationText" c:type="EvAnnotationText*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_open" c:identifier="ev_annotation_text_get_is_open">
        <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="EvAnnotationText*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_icon" c:identifier="ev_annotation_text_set_icon">
        <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="EvAnnotationText*"/>
          </instance-parameter>
          <parameter name="icon" transfer-ownership="none">
            <type name="AnnotationTextIcon" c:type="EvAnnotationTextIcon"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_is_open" c:identifier="ev_annotation_text_set_is_open">
        <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="EvAnnotationText*"/>
          </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">
        <type name="AnnotationTextIcon"/>
      </property>
      <property name="is-open" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <record name="AnnotationTextClass"
            c:type="EvAnnotationTextClass"
            disguised="1"
            glib:is-gtype-struct-for="AnnotationText">
    </record>
    <enumeration name="AnnotationTextIcon"
                 glib:type-name="EvAnnotationTextIcon"
                 glib:get-type="ev_annotation_text_icon_get_type"
                 c:type="EvAnnotationTextIcon">
      <member name="note"
              value="0"
              c:identifier="EV_ANNOTATION_TEXT_ICON_NOTE"
              glib:nick="note">
      </member>
      <member name="comment"
              value="1"
              c:identifier="EV_ANNOTATION_TEXT_ICON_COMMENT"
              glib:nick="comment">
      </member>
      <member name="key"
              value="2"
              c:identifier="EV_ANNOTATION_TEXT_ICON_KEY"
              glib:nick="key">
      </member>
      <member name="help"
              value="3"
              c:identifier="EV_ANNOTATION_TEXT_ICON_HELP"
              glib:nick="help">
      </member>
      <member name="new_paragraph"
              value="4"
              c:identifier="EV_ANNOTATION_TEXT_ICON_NEW_PARAGRAPH"
              glib:nick="new-paragraph">
      </member>
      <member name="paragraph"
              value="5"
              c:identifier="EV_ANNOTATION_TEXT_ICON_PARAGRAPH"
              glib:nick="paragraph">
      </member>
      <member name="insert"
              value="6"
              c:identifier="EV_ANNOTATION_TEXT_ICON_INSERT"
              glib:nick="insert">
      </member>
      <member name="cross"
              value="7"
              c:identifier="EV_ANNOTATION_TEXT_ICON_CROSS"
              glib:nick="cross">
      </member>
      <member name="circle"
              value="8"
              c:identifier="EV_ANNOTATION_TEXT_ICON_CIRCLE"
              glib:nick="circle">
      </member>
      <member name="unknown"
              value="9"
              c:identifier="EV_ANNOTATION_TEXT_ICON_UNKNOWN"
              glib:nick="unknown">
      </member>
    </enumeration>
    <class name="AnnotationTextMarkup"
           c:symbol-prefix="annotation_text_markup"
           c:type="EvAnnotationTextMarkup"
           parent="Annotation"
           glib:type-name="EvAnnotationTextMarkup"
           glib:get-type="ev_annotation_text_markup_get_type"
           glib:type-struct="AnnotationTextMarkupClass">
      <implements name="AnnotationMarkup"/>
      <constructor name="highlight_new"
                   c:identifier="ev_annotation_text_markup_highlight_new">
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="EvAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="squiggly_new"
                   c:identifier="ev_annotation_text_markup_squiggly_new">
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="EvAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="strike_out_new"
                   c:identifier="ev_annotation_text_markup_strike_out_new">
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="EvAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="underline_new"
                   c:identifier="ev_annotation_text_markup_underline_new">
        <return-value transfer-ownership="full">
          <type name="Annotation" c:type="EvAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_markup_type"
              c:identifier="ev_annotation_text_markup_get_markup_type">
        <return-value transfer-ownership="none">
          <type name="AnnotationTextMarkupType"
                c:type="EvAnnotationTextMarkupType"/>
        </return-value>
        <parameters>
          <instance-parameter name="annot" transfer-ownership="none">
            <type name="AnnotationTextMarkup"
                  c:type="EvAnnotationTextMarkup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_markup_type"
              c:identifier="ev_annotation_text_markup_set_markup_type">
        <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="EvAnnotationTextMarkup*"/>
          </instance-parameter>
          <parameter name="markup_type" transfer-ownership="none">
            <type name="AnnotationTextMarkupType"
                  c:type="EvAnnotationTextMarkupType"/>
          </parameter>
        </parameters>
      </method>
      <property name="type"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="AnnotationTextMarkupType"/>
      </property>
    </class>
    <record name="AnnotationTextMarkupClass"
            c:type="EvAnnotationTextMarkupClass"
            disguised="1"
            glib:is-gtype-struct-for="AnnotationTextMarkup">
    </record>
    <enumeration name="AnnotationTextMarkupType"
                 glib:type-name="EvAnnotationTextMarkupType"
                 glib:get-type="ev_annotation_text_markup_type_get_type"
                 c:type="EvAnnotationTextMarkupType">
      <member name="highlight"
              value="0"
              c:identifier="EV_ANNOTATION_TEXT_MARKUP_HIGHLIGHT"
              glib:nick="highlight">
      </member>
      <member name="strike_out"
              value="1"
              c:identifier="EV_ANNOTATION_TEXT_MARKUP_STRIKE_OUT"
              glib:nick="strike-out">
      </member>
      <member name="underline"
              value="2"
              c:identifier="EV_ANNOTATION_TEXT_MARKUP_UNDERLINE"
              glib:nick="underline">
      </member>
      <member name="squiggly"
              value="3"
              c:identifier="EV_ANNOTATION_TEXT_MARKUP_SQUIGGLY"
              glib:nick="squiggly">
      </member>
    </enumeration>
    <enumeration name="AnnotationType"
                 glib:type-name="EvAnnotationType"
                 glib:get-type="ev_annotation_type_get_type"
                 c:type="EvAnnotationType">
      <member name="unknown"
              value="0"
              c:identifier="EV_ANNOTATION_TYPE_UNKNOWN"
              glib:nick="unknown">
      </member>
      <member name="text"
              value="1"
              c:identifier="EV_ANNOTATION_TYPE_TEXT"
              glib:nick="text">
      </member>
      <member name="attachment"
              value="2"
              c:identifier="EV_ANNOTATION_TYPE_ATTACHMENT"
              glib:nick="attachment">
      </member>
      <member name="text_markup"
              value="3"
              c:identifier="EV_ANNOTATION_TYPE_TEXT_MARKUP"
              glib:nick="text-markup">
      </member>
    </enumeration>
    <bitfield name="AnnotationsSaveMask"
              glib:type-name="EvAnnotationsSaveMask"
              glib:get-type="ev_annotations_save_mask_get_type"
              c:type="EvAnnotationsSaveMask">
      <member name="none"
              value="0"
              c:identifier="EV_ANNOTATIONS_SAVE_NONE"
              glib:nick="none">
      </member>
      <member name="contents"
              value="1"
              c:identifier="EV_ANNOTATIONS_SAVE_CONTENTS"
              glib:nick="contents">
      </member>
      <member name="color"
              value="2"
              c:identifier="EV_ANNOTATIONS_SAVE_COLOR"
              glib:nick="color">
      </member>
      <member name="area"
              value="4"
              c:identifier="EV_ANNOTATIONS_SAVE_AREA"
              glib:nick="area">
      </member>
      <member name="label"
              value="8"
              c:identifier="EV_ANNOTATIONS_SAVE_LABEL"
              glib:nick="label">
      </member>
      <member name="opacity"
              value="16"
              c:identifier="EV_ANNOTATIONS_SAVE_OPACITY"
              glib:nick="opacity">
      </member>
      <member name="popup_rect"
              value="32"
              c:identifier="EV_ANNOTATIONS_SAVE_POPUP_RECT"
              glib:nick="popup-rect">
      </member>
      <member name="popup_is_open"
              value="64"
              c:identifier="EV_ANNOTATIONS_SAVE_POPUP_IS_OPEN"
              glib:nick="popup-is-open">
      </member>
      <member name="text_is_open"
              value="128"
              c:identifier="EV_ANNOTATIONS_SAVE_TEXT_IS_OPEN"
              glib:nick="text-is-open">
      </member>
      <member name="text_icon"
              value="256"
              c:identifier="EV_ANNOTATIONS_SAVE_TEXT_ICON"
              glib:nick="text-icon">
      </member>
      <member name="attachment"
              value="512"
              c:identifier="EV_ANNOTATIONS_SAVE_ATTACHMENT"
              glib:nick="attachment">
      </member>
      <member name="text_markup_type"
              value="1024"
              c:identifier="EV_ANNOTATIONS_SAVE_TEXT_MARKUP_TYPE"
              glib:nick="text-markup-type">
      </member>
      <member name="all"
              value="2047"
              c:identifier="EV_ANNOTATIONS_SAVE_ALL"
              glib:nick="all">
      </member>
    </bitfield>
    <interface name="AsyncRenderer"
               c:symbol-prefix="async_renderer"
               c:type="EvAsyncRenderer"
               glib:type-name="EvAsyncRenderer"
               glib:get-type="ev_async_renderer_get_type"
               glib:type-struct="AsyncRendererInterface">
      <virtual-method name="render_finished">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <type name="AsyncRenderer" c:type="EvAsyncRenderer*"/>
          </instance-parameter>
          <parameter name="pixbuf" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="render_pixbuf" invoker="render_pixbuf">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <type name="AsyncRenderer" c:type="EvAsyncRenderer*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="scale" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="rotation" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="render_pixbuf"
              c:identifier="ev_async_renderer_render_pixbuf">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <type name="AsyncRenderer" c:type="EvAsyncRenderer*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="scale" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="rotation" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="render-finished" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="AsyncRendererInterface"
            c:type="EvAsyncRendererInterface"
            glib:is-gtype-struct-for="AsyncRenderer">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="render_finished">
        <callback name="render_finished">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <type name="AsyncRenderer" c:type="EvAsyncRenderer*"/>
            </parameter>
            <parameter name="pixbuf" transfer-ownership="none">
              <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="render_pixbuf">
        <callback name="render_pixbuf">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <type name="AsyncRenderer" c:type="EvAsyncRenderer*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
            <parameter name="scale" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
            <parameter name="rotation" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Attachment"
           c:symbol-prefix="attachment"
           c:type="EvAttachment"
           parent="GObject.Object"
           glib:type-name="EvAttachment"
           glib:get-type="ev_attachment_get_type"
           glib:type-struct="AttachmentClass">
      <constructor name="new" c:identifier="ev_attachment_new">
        <return-value transfer-ownership="full">
          <type name="Attachment" c:type="EvAttachment*"/>
        </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.Time" c:type="GTime"/>
          </parameter>
          <parameter name="ctime" transfer-ownership="none">
            <type name="GLib.Time" c:type="GTime"/>
          </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="ev_attachment_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <method name="get_creation_date"
              c:identifier="ev_attachment_get_creation_date">
        <return-value transfer-ownership="none">
          <type name="GLib.Time" c:type="GTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="EvAttachment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="ev_attachment_get_description">
        <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="EvAttachment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mime_type" c:identifier="ev_attachment_get_mime_type">
        <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="EvAttachment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modification_date"
              c:identifier="ev_attachment_get_modification_date">
        <return-value transfer-ownership="none">
          <type name="GLib.Time" c:type="GTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="attachment" transfer-ownership="none">
            <type name="Attachment" c:type="EvAttachment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ev_attachment_get_name">
        <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="EvAttachment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="open" c:identifier="ev_attachment_open" throws="1">
        <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="EvAttachment*"/>
          </instance-parameter>
          <parameter name="screen" transfer-ownership="none">
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="save" c:identifier="ev_attachment_save" throws="1">
        <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="EvAttachment*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <property name="ctime"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gulong" c:type="gulong"/>
      </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">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="mtime"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gulong" c:type="gulong"/>
      </property>
      <property name="name"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="size"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="base_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="AttachmentPrivate" c:type="EvAttachmentPrivate*"/>
      </field>
    </class>
    <record name="AttachmentClass"
            c:type="EvAttachmentClass"
            glib:is-gtype-struct-for="Attachment">
      <field name="base_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="AttachmentPrivate"
            c:type="EvAttachmentPrivate"
            disguised="1">
    </record>
    <enumeration name="CompressionType"
                 glib:type-name="EvCompressionType"
                 glib:get-type="ev_compression_type_get_type"
                 c:type="EvCompressionType">
      <member name="none"
              value="0"
              c:identifier="EV_COMPRESSION_NONE"
              glib:nick="none">
      </member>
      <member name="bzip2"
              value="1"
              c:identifier="EV_COMPRESSION_BZIP2"
              glib:nick="bzip2">
      </member>
      <member name="gzip"
              value="2"
              c:identifier="EV_COMPRESSION_GZIP"
              glib:nick="gzip">
      </member>
      <member name="lzma"
              value="3"
              c:identifier="EV_COMPRESSION_LZMA"
              glib:nick="lzma">
      </member>
    </enumeration>
    <class name="Document"
           c:symbol-prefix="document"
           c:type="EvDocument"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="EvDocument"
           glib:get-type="ev_document_get_type"
           glib:type-struct="DocumentClass">
      <function name="doc_mutex_lock"
                c:identifier="ev_document_doc_mutex_lock">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="doc_mutex_trylock"
                c:identifier="ev_document_doc_mutex_trylock">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </function>
      <function name="doc_mutex_unlock"
                c:identifier="ev_document_doc_mutex_unlock">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="factory_add_filters"
                c:identifier="ev_document_factory_add_filters">
        <doc xml:space="preserve">Adds some file filters to @chooser.
 
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 evince
can handle.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve">a #GtkFileChooser</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve">a #EvDocument, or %NULL</doc>
            <type name="Document" c:type="EvDocument*"/>
          </parameter>
        </parameters>
      </function>
      <function name="factory_get_document"
                c:identifier="ev_document_factory_get_document"
                throws="1">
        <doc xml:space="preserve">Creates a #EvDocument 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
%EV_DOCUMENT_ERROR_ENCRYPTED.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #EvDocument, or %NULL</doc>
          <type name="Document" c:type="EvDocument*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">an URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="factory_get_document_for_gfile"
                c:identifier="ev_document_factory_get_document_for_gfile"
                version="3.6"
                throws="1">
        <doc xml:space="preserve">Synchronously creates a #EvDocument for the document at @file; 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
%EV_DOCUMENT_ERROR_ENCRYPTED.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #EvDocument, or %NULL</doc>
          <type name="Document" c:type="EvDocument*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #EvDocumentLoadFlags</doc>
            <type name="DocumentLoadFlags" c:type="EvDocumentLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="factory_get_document_for_stream"
                c:identifier="ev_document_factory_get_document_for_stream"
                version="3.6"
                throws="1">
        <doc xml:space="preserve">Synchronously creates a #EvDocument for the document from @stream; 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
%EV_DOCUMENT_ERROR_ENCRYPTED.

If @mime_type is non-%NULL, this overrides any type inferred from the stream.
If the mime type cannot be inferred from the stream, and @mime_type is %NULL,
an error is returned.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #EvDocument, or %NULL</doc>
          <type name="Document" c:type="EvDocument*"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GInputStream</doc>
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
          <parameter name="mime_type"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a mime type hint</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #EvDocumentLoadFlags</doc>
            <type name="DocumentLoadFlags" c:type="EvDocumentLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="fc_mutex_lock" c:identifier="ev_document_fc_mutex_lock">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="fc_mutex_trylock"
                c:identifier="ev_document_fc_mutex_trylock">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </function>
      <function name="fc_mutex_unlock"
                c:identifier="ev_document_fc_mutex_unlock">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="get_doc_mutex"
                c:identifier="ev_document_get_doc_mutex"
                introspectable="0">
        <return-value>
          <type name="GLib.Mutex" c:type="GMutex*"/>
        </return-value>
      </function>
      <function name="get_fc_mutex"
                c:identifier="ev_document_get_fc_mutex"
                introspectable="0">
        <return-value>
          <type name="GLib.Mutex" c:type="GMutex*"/>
        </return-value>
      </function>
      <function name="misc_format_date"
                c:identifier="ev_document_misc_format_date">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="utime" transfer-ownership="none">
            <type name="GLib.Time" c:type="GTime"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_get_loading_thumbnail"
                c:identifier="ev_document_misc_get_loading_thumbnail">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">the desired width</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">the desired height</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="inverted_colors" transfer-ownership="none">
            <doc xml:space="preserve">whether to invert colors</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_get_page_border_size"
                c:identifier="ev_document_misc_get_page_border_size">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="page_width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="page_height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="border" transfer-ownership="none">
            <type name="Gtk.Border" c:type="GtkBorder*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_get_pointer_position"
                c:identifier="ev_document_misc_get_pointer_position">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_get_screen_dpi"
                c:identifier="ev_document_misc_get_screen_dpi">
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_get_thumbnail_frame"
                c:identifier="ev_document_misc_get_thumbnail_frame">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">the desired width</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">the desired height</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="source_pixbuf" transfer-ownership="none">
            <doc xml:space="preserve">a #GdkPixbuf</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_invert_pixbuf"
                c:identifier="ev_document_misc_invert_pixbuf">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="pixbuf" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_invert_surface"
                c:identifier="ev_document_misc_invert_surface">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="surface" transfer-ownership="none">
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_paint_one_page"
                c:identifier="ev_document_misc_paint_one_page">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cr" transfer-ownership="none">
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="border" transfer-ownership="none">
            <type name="Gtk.Border" c:type="GtkBorder*"/>
          </parameter>
          <parameter name="highlight" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="inverted_colors" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_pixbuf_from_surface"
                c:identifier="ev_document_misc_pixbuf_from_surface">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:space="preserve">a #cairo_surface_t</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_render_loading_thumbnail"
                c:identifier="ev_document_misc_render_loading_thumbnail"
                version="3.8">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve">a #GtkWidget to use for style information</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">the desired width</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">the desired height</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="inverted_colors" transfer-ownership="none">
            <doc xml:space="preserve">whether to invert colors</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_render_loading_thumbnail_surface"
                c:identifier="ev_document_misc_render_loading_thumbnail_surface"
                version="3.14">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #cairo_surface_t</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve">a #GtkWidget to use for style information</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">the desired width</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">the desired height</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="inverted_colors" transfer-ownership="none">
            <doc xml:space="preserve">whether to invert colors</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_render_thumbnail_surface_with_frame"
                c:identifier="ev_document_misc_render_thumbnail_surface_with_frame"
                version="3.14">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #cairo_surface_t</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve">a #GtkWidget to use for style information</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="source_surface" transfer-ownership="none">
            <doc xml:space="preserve">a #cairo_surface_t</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">the desired width</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">the desired height</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_render_thumbnail_with_frame"
                c:identifier="ev_document_misc_render_thumbnail_with_frame"
                version="3.8">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve">a #GtkWidget to use for style information</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="source_pixbuf" transfer-ownership="none">
            <doc xml:space="preserve">a #GdkPixbuf</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </function>
      <function name="misc_surface_from_pixbuf"
                c:identifier="ev_document_misc_surface_from_pixbuf">
        <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="ev_document_misc_surface_rotate_and_scale">
        <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>
      <virtual-method name="get_backend_info" invoker="get_backend_info">
        <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="EvDocument*"/>
          </instance-parameter>
          <parameter name="info" transfer-ownership="none">
            <type name="DocumentBackendInfo" c:type="EvDocumentBackendInfo*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_info" invoker="get_info">
        <return-value transfer-ownership="full">
          <type name="DocumentInfo" c:type="EvDocumentInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_n_pages" invoker="get_n_pages">
        <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="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_page" invoker="get_page">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">Newly created #EvPage for the given index.</doc>
          <type name="Page" c:type="EvPage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve">index of page</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_page_label" invoker="get_page_label">
        <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="EvDocument*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_page_size" invoker="get_page_size">
        <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">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">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">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">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve">an #EvRenderContext</doc>
            <type name="RenderContext" c:type="EvRenderContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_thumbnail_surface"
                      invoker="get_thumbnail_surface"
                      version="3.14">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">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">an #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve">an #EvRenderContext</doc>
            <type name="RenderContext" c:type="EvRenderContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="load" invoker="load" throws="1">
        <doc xml:space="preserve">Loads @document from @uri.

On failure, %FALSE is returned and @error is filled in.
If the document is encrypted, EV_DEFINE_ERROR_ENCRYPTED is returned.
If the backend cannot load the specific document, EV_DOCUMENT_ERROR_INVALID
is returned. Other errors are possible too, depending on the backend
used to load the document and the URI, e.g. #GIOError, #GFileError, and
#GConvertError.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the document's URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="load_gfile"
                      invoker="load_gfile"
                      version="3.6"
                      throws="1">
        <doc xml:space="preserve">Synchronously loads the document from @file.
See ev_document_load() for more information.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #EvDocumentLoadFlags</doc>
            <type name="DocumentLoadFlags" c:type="EvDocumentLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="load_stream"
                      invoker="load_stream"
                      version="3.6"
                      throws="1">
        <doc xml:space="preserve">Synchronously loads the document from @stream.
See ev_document_load() for more information.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GInputStream</doc>
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #EvDocumentLoadFlags</doc>
            <type name="DocumentLoadFlags" c:type="EvDocumentLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="render" invoker="render">
        <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="EvDocument*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="EvRenderContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="save" invoker="save" throws="1">
        <doc xml:space="preserve">Saves @document to @uri.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the target URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="support_synctex">
        <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="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="check_dimensions"
              c:identifier="ev_document_check_dimensions">
        <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="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="find_page_by_label"
              c:identifier="ev_document_find_page_by_label">
        <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="EvDocument*"/>
          </instance-parameter>
          <parameter name="page_label" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="page_index" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_backend_info"
              c:identifier="ev_document_get_backend_info">
        <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="EvDocument*"/>
          </instance-parameter>
          <parameter name="info" transfer-ownership="none">
            <type name="DocumentBackendInfo" c:type="EvDocumentBackendInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_info" c:identifier="ev_document_get_info">
        <return-value transfer-ownership="full">
          <type name="DocumentInfo" c:type="EvDocumentInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_label_len"
              c:identifier="ev_document_get_max_label_len">
        <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="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_page_size"
              c:identifier="ev_document_get_max_page_size">
        <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="EvDocument*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_min_page_size"
              c:identifier="ev_document_get_min_page_size">
        <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="EvDocument*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_n_pages" c:identifier="ev_document_get_n_pages">
        <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="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page" c:identifier="ev_document_get_page">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">Newly created #EvPage for the given index.</doc>
          <type name="Page" c:type="EvPage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve">index of page</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_page_label" c:identifier="ev_document_get_page_label">
        <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="EvDocument*"/>
          </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="ev_document_get_page_size">
        <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">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="page_index" transfer-ownership="none">
            <doc xml:space="preserve">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">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">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="ev_document_get_size">
        <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="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_thumbnail" c:identifier="ev_document_get_thumbnail">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve">an #EvRenderContext</doc>
            <type name="RenderContext" c:type="EvRenderContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_thumbnail_surface"
              c:identifier="ev_document_get_thumbnail_surface"
              version="3.14">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">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">an #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <doc xml:space="preserve">an #EvRenderContext</doc>
            <type name="RenderContext" c:type="EvRenderContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="ev_document_get_title">
        <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="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="ev_document_get_uri">
        <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="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_synctex" c:identifier="ev_document_has_synctex">
        <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="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_text_page_labels"
              c:identifier="ev_document_has_text_page_labels">
        <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="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_page_size_uniform"
              c:identifier="ev_document_is_page_size_uniform">
        <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="EvDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load" c:identifier="ev_document_load" throws="1">
        <doc xml:space="preserve">Loads @document from @uri.

On failure, %FALSE is returned and @error is filled in.
If the document is encrypted, EV_DEFINE_ERROR_ENCRYPTED is returned.
If the backend cannot load the specific document, EV_DOCUMENT_ERROR_INVALID
is returned. Other errors are possible too, depending on the backend
used to load the document and the URI, e.g. #GIOError, #GFileError, and
#GConvertError.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the document's URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_gfile"
              c:identifier="ev_document_load_gfile"
              version="3.6"
              throws="1">
        <doc xml:space="preserve">Synchronously loads the document from @file.
See ev_document_load() for more information.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #EvDocumentLoadFlags</doc>
            <type name="DocumentLoadFlags" c:type="EvDocumentLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_stream"
              c:identifier="ev_document_load_stream"
              version="3.6"
              throws="1">
        <doc xml:space="preserve">Synchronously loads the document from @stream.
See ev_document_load() for more information.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GInputStream</doc>
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #EvDocumentLoadFlags</doc>
            <type name="DocumentLoadFlags" c:type="EvDocumentLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="render" c:identifier="ev_document_render">
        <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="EvDocument*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="EvRenderContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save" c:identifier="ev_document_save" throws="1">
        <doc xml:space="preserve">Saves @document to @uri.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the target URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="synctex_backward_search"
              c:identifier="ev_document_synctex_backward_search">
        <doc xml:space="preserve">Peforms a Synctex backward search to obtain the TeX input file, line and
(possibly) column  corresponding to the  position (@x,@y) (in 72dpi
coordinates) in the  @page of @document.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A pointer to the EvSourceLink structure that holds the result. @NULL if synctex
is not enabled for the document or no result is found.
The EvSourceLink pointer should be freed with g_free after it is used.</doc>
          <type name="SourceLink" c:type="EvSourceLink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="page_index" transfer-ownership="none">
            <doc xml:space="preserve">the target page</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">X coordinate</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">Y coordinate</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="synctex_forward_search"
              c:identifier="ev_document_synctex_forward_search"
              introspectable="0">
        <doc xml:space="preserve">Peforms a Synctex forward search to obtain the area in the document
corresponding to the position @line and @column number in the source Tex file</doc>
        <return-value>
          <doc xml:space="preserve">An EvMapping with the page number and area corresponfing to
the given line in the source file. It must be free with g_free when done</doc>
          <type name="Mapping" c:type="EvMapping*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve">a #EvDocument</doc>
            <type name="Document" c:type="EvDocument*"/>
          </instance-parameter>
          <parameter name="source_link" transfer-ownership="none">
            <doc xml:space="preserve">a #EvSourceLink</doc>
            <type name="SourceLink" c:type="EvSourceLink*"/>
          </parameter>
        </parameters>
      </method>
      <field name="base">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DocumentPrivate" c:type="EvDocumentPrivate*"/>
      </field>
    </class>
    <interface name="DocumentAnnotations"
               c:symbol-prefix="document_annotations"
               c:type="EvDocumentAnnotations"
               glib:type-name="EvDocumentAnnotations"
               glib:get-type="ev_document_annotations_get_type"
               glib:type-struct="DocumentAnnotationsInterface">
      <virtual-method name="add_annotation" invoker="add_annotation">
        <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="EvDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="EvAnnotation*"/>
          </parameter>
          <parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="document_is_modified"
                      invoker="document_is_modified">
        <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="EvDocumentAnnotations*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_annotations" invoker="get_annotations">
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="EvMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="EvDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_annotation" invoker="remove_annotation">
        <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="EvDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="EvAnnotation*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="save_annotation" invoker="save_annotation">
        <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="EvDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="EvAnnotation*"/>
          </parameter>
          <parameter name="mask" transfer-ownership="none">
            <type name="AnnotationsSaveMask" c:type="EvAnnotationsSaveMask"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_annotation"
              c:identifier="ev_document_annotations_add_annotation">
        <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="EvDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="EvAnnotation*"/>
          </parameter>
          <parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="can_add_annotation"
              c:identifier="ev_document_annotations_can_add_annotation">
        <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="EvDocumentAnnotations*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="can_remove_annotation"
              c:identifier="ev_document_annotations_can_remove_annotation">
        <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="EvDocumentAnnotations*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="document_is_modified"
              c:identifier="ev_document_annotations_document_is_modified">
        <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="EvDocumentAnnotations*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_annotations"
              c:identifier="ev_document_annotations_get_annotations">
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="EvMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_annots" transfer-ownership="none">
            <type name="DocumentAnnotations" c:type="EvDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_annotation"
              c:identifier="ev_document_annotations_remove_annotation">
        <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="EvDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="EvAnnotation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_annotation"
              c:identifier="ev_document_annotations_save_annotation">
        <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="EvDocumentAnnotations*"/>
          </instance-parameter>
          <parameter name="annot" transfer-ownership="none">
            <type name="Annotation" c:type="EvAnnotation*"/>
          </parameter>
          <parameter name="mask" transfer-ownership="none">
            <type name="AnnotationsSaveMask" c:type="EvAnnotationsSaveMask"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentAnnotationsInterface"
            c:type="EvDocumentAnnotationsInterface"
            glib:is-gtype-struct-for="DocumentAnnotations">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_annotations">
        <callback name="get_annotations">
          <return-value transfer-ownership="full">
            <type name="MappingList" c:type="EvMappingList*"/>
          </return-value>
          <parameters>
            <parameter name="document_annots" transfer-ownership="none">
              <type name="DocumentAnnotations"
                    c:type="EvDocumentAnnotations*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="EvPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="document_is_modified">
        <callback name="document_is_modified">
          <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="EvDocumentAnnotations*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_annotation">
        <callback name="add_annotation">
          <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="EvDocumentAnnotations*"/>
            </parameter>
            <parameter name="annot" transfer-ownership="none">
              <type name="Annotation" c:type="EvAnnotation*"/>
            </parameter>
            <parameter name="rect" transfer-ownership="none">
              <type name="Rectangle" c:type="EvRectangle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="save_annotation">
        <callback name="save_annotation">
          <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="EvDocumentAnnotations*"/>
            </parameter>
            <parameter name="annot" transfer-ownership="none">
              <type name="Annotation" c:type="EvAnnotation*"/>
            </parameter>
            <parameter name="mask" transfer-ownership="none">
              <type name="AnnotationsSaveMask" c:type="EvAnnotationsSaveMask"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_annotation">
        <callback name="remove_annotation">
          <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="EvDocumentAnnotations*"/>
            </parameter>
            <parameter name="annot" transfer-ownership="none">
              <type name="Annotation" c:type="EvAnnotation*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentAttachments"
               c:symbol-prefix="document_attachments"
               c:type="EvDocumentAttachments"
               glib:type-name="EvDocumentAttachments"
               glib:get-type="ev_document_attachments_get_type"
               glib:type-struct="DocumentAttachmentsInterface">
      <virtual-method name="get_attachments" invoker="get_attachments">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of #EvAttachment 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">an #EvDocumentAttachments</doc>
            <type name="DocumentAttachments" c:type="EvDocumentAttachments*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="has_attachments" invoker="has_attachments">
        <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="EvDocumentAttachments*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_attachments"
              c:identifier="ev_document_attachments_get_attachments">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of #EvAttachment 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">an #EvDocumentAttachments</doc>
            <type name="DocumentAttachments" c:type="EvDocumentAttachments*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_attachments"
              c:identifier="ev_document_attachments_has_attachments">
        <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="EvDocumentAttachments*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentAttachmentsInterface"
            c:type="EvDocumentAttachmentsInterface"
            glib:is-gtype-struct-for="DocumentAttachments">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="has_attachments">
        <callback name="has_attachments">
          <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="EvDocumentAttachments*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_attachments">
        <callback name="get_attachments">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">a list of #EvAttachment 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">an #EvDocumentAttachments</doc>
              <type name="DocumentAttachments"
                    c:type="EvDocumentAttachments*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="DocumentBackendInfo" c:type="EvDocumentBackendInfo">
      <field name="name" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="version" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
    </record>
    <record name="DocumentClass"
            c:type="EvDocumentClass"
            glib:is-gtype-struct-for="Document">
      <field name="base_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="load">
        <callback name="load" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%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">a #EvDocument</doc>
              <type name="Document" c:type="EvDocument*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:space="preserve">the document's URI</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="save">
        <callback name="save" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%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">a #EvDocument</doc>
              <type name="Document" c:type="EvDocument*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:space="preserve">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">
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <type name="Document" c:type="EvDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_page">
        <callback name="get_page">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">Newly created #EvPage for the given index.</doc>
            <type name="Page" c:type="EvPage*"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <doc xml:space="preserve">a #EvDocument</doc>
              <type name="Document" c:type="EvDocument*"/>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <doc xml:space="preserve">index of page</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_page_size">
        <callback name="get_page_size">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <doc xml:space="preserve">a #EvDocument</doc>
              <type name="Document" c:type="EvDocument*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="EvPage*"/>
            </parameter>
            <parameter name="width"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full"
                       optional="1"
                       allow-none="1">
              <doc xml:space="preserve">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">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">
          <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="EvDocument*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="EvPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="render">
        <callback name="render">
          <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="EvDocument*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <type name="RenderContext" c:type="EvRenderContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_thumbnail">
        <callback name="get_thumbnail">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">a #GdkPixbuf</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <doc xml:space="preserve">an #EvDocument</doc>
              <type name="Document" c:type="EvDocument*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <doc xml:space="preserve">an #EvRenderContext</doc>
              <type name="RenderContext" c:type="EvRenderContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_info">
        <callback name="get_info">
          <return-value transfer-ownership="full">
            <type name="DocumentInfo" c:type="EvDocumentInfo*"/>
          </return-value>
          <parameters>
            <parameter name="document" transfer-ownership="none">
              <type name="Document" c:type="EvDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_backend_info">
        <callback name="get_backend_info">
          <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="EvDocument*"/>
            </parameter>
            <parameter name="info" transfer-ownership="none">
              <type name="DocumentBackendInfo"
                    c:type="EvDocumentBackendInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="support_synctex">
        <callback name="support_synctex">
          <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="EvDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="load_stream">
        <callback name="load_stream" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%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">a #EvDocument</doc>
              <type name="Document" c:type="EvDocument*"/>
            </parameter>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve">a #GInputStream</doc>
              <type name="Gio.InputStream" c:type="GInputStream*"/>
            </parameter>
            <parameter name="flags" transfer-ownership="none">
              <doc xml:space="preserve">flags from #EvDocumentLoadFlags</doc>
              <type name="DocumentLoadFlags" c:type="EvDocumentLoadFlags"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="load_gfile">
        <callback name="load_gfile" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%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">a #EvDocument</doc>
              <type name="Document" c:type="EvDocument*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:space="preserve">a #GFile</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="flags" transfer-ownership="none">
              <doc xml:space="preserve">flags from #EvDocumentLoadFlags</doc>
              <type name="DocumentLoadFlags" c:type="EvDocumentLoadFlags"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_thumbnail_surface">
        <callback name="get_thumbnail_surface">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">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">an #EvDocument</doc>
              <type name="Document" c:type="EvDocument*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <doc xml:space="preserve">an #EvRenderContext</doc>
              <type name="RenderContext" c:type="EvRenderContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="DocumentError"
                 glib:type-name="EvDocumentError"
                 glib:get-type="ev_document_error_get_type"
                 c:type="EvDocumentError"
                 glib:error-domain="ev-document-error-quark">
      <member name="invalid"
              value="0"
              c:identifier="EV_DOCUMENT_ERROR_INVALID"
              glib:nick="invalid">
      </member>
      <member name="encrypted"
              value="1"
              c:identifier="EV_DOCUMENT_ERROR_ENCRYPTED"
              glib:nick="encrypted">
      </member>
      <function name="quark" c:identifier="ev_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="EvDocumentFind"
               glib:type-name="EvDocumentFind"
               glib:get-type="ev_document_find_get_type"
               glib:type-struct="DocumentFindInterface">
      <virtual-method name="find_text" invoker="find_text">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of results</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Rectangle"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_find" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocumentFind</doc>
            <type name="DocumentFind" c:type="EvDocumentFind*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">an #EvPage</doc>
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">text to find</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="case_sensitive" transfer-ownership="none">
            <doc xml:space="preserve">whether to match the string case</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="find_text_with_options"
                      invoker="find_text_with_options">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of results</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Rectangle"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_find" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocumentFind</doc>
            <type name="DocumentFind" c:type="EvDocumentFind*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">an #EvPage</doc>
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">text to find</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve">a set of #EvFindOptions</doc>
            <type name="FindOptions" c:type="EvFindOptions"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_supported_options"
                      invoker="get_supported_options">
        <return-value transfer-ownership="none">
          <type name="FindOptions" c:type="EvFindOptions"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_find" transfer-ownership="none">
            <type name="DocumentFind" c:type="EvDocumentFind*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="find_text" c:identifier="ev_document_find_find_text">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of results</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Rectangle"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_find" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocumentFind</doc>
            <type name="DocumentFind" c:type="EvDocumentFind*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">an #EvPage</doc>
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">text to find</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="case_sensitive" transfer-ownership="none">
            <doc xml:space="preserve">whether to match the string case</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_text_with_options"
              c:identifier="ev_document_find_find_text_with_options">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of results</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Rectangle"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="document_find" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocumentFind</doc>
            <type name="DocumentFind" c:type="EvDocumentFind*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">an #EvPage</doc>
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">text to find</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve">a set of #EvFindOptions</doc>
            <type name="FindOptions" c:type="EvFindOptions"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_supported_options"
              c:identifier="ev_document_find_get_supported_options">
        <return-value transfer-ownership="none">
          <type name="FindOptions" c:type="EvFindOptions"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_find" transfer-ownership="none">
            <type name="DocumentFind" c:type="EvDocumentFind*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentFindInterface"
            c:type="EvDocumentFindInterface"
            glib:is-gtype-struct-for="DocumentFind">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="find_text">
        <callback name="find_text">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">a list of results</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Rectangle"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="document_find" transfer-ownership="none">
              <doc xml:space="preserve">an #EvDocumentFind</doc>
              <type name="DocumentFind" c:type="EvDocumentFind*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <doc xml:space="preserve">an #EvPage</doc>
              <type name="Page" c:type="EvPage*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <doc xml:space="preserve">text to find</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="case_sensitive" transfer-ownership="none">
              <doc xml:space="preserve">whether to match the string case</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="find_text_with_options">
        <callback name="find_text_with_options">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">a list of results</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Rectangle"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="document_find" transfer-ownership="none">
              <doc xml:space="preserve">an #EvDocumentFind</doc>
              <type name="DocumentFind" c:type="EvDocumentFind*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <doc xml:space="preserve">an #EvPage</doc>
              <type name="Page" c:type="EvPage*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <doc xml:space="preserve">text to find</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="options" transfer-ownership="none">
              <doc xml:space="preserve">a set of #EvFindOptions</doc>
              <type name="FindOptions" c:type="EvFindOptions"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_supported_options">
        <callback name="get_supported_options">
          <return-value transfer-ownership="none">
            <type name="FindOptions" c:type="EvFindOptions"/>
          </return-value>
          <parameters>
            <parameter name="document_find" transfer-ownership="none">
              <type name="DocumentFind" c:type="EvDocumentFind*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentFonts"
               c:symbol-prefix="document_fonts"
               c:type="EvDocumentFonts"
               glib:type-name="EvDocumentFonts"
               glib:get-type="ev_document_fonts_get_type"
               glib:type-struct="DocumentFontsInterface">
      <virtual-method name="fill_model" invoker="fill_model">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_fonts" transfer-ownership="none">
            <type name="DocumentFonts" c:type="EvDocumentFonts*"/>
          </instance-parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="Gtk.TreeModel" c:type="GtkTreeModel*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_fonts_summary" invoker="get_fonts_summary">
        <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="EvDocumentFonts*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_progress" invoker="get_progress">
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_fonts" transfer-ownership="none">
            <type name="DocumentFonts" c:type="EvDocumentFonts*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="scan" invoker="scan">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_fonts" transfer-ownership="none">
            <type name="DocumentFonts" c:type="EvDocumentFonts*"/>
          </instance-parameter>
          <parameter name="n_pages" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="fill_model" c:identifier="ev_document_fonts_fill_model">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_fonts" transfer-ownership="none">
            <type name="DocumentFonts" c:type="EvDocumentFonts*"/>
          </instance-parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="Gtk.TreeModel" c:type="GtkTreeModel*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_fonts_summary"
              c:identifier="ev_document_fonts_get_fonts_summary">
        <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="EvDocumentFonts*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_progress"
              c:identifier="ev_document_fonts_get_progress">
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_fonts" transfer-ownership="none">
            <type name="DocumentFonts" c:type="EvDocumentFonts*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="scan" c:identifier="ev_document_fonts_scan">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_fonts" transfer-ownership="none">
            <type name="DocumentFonts" c:type="EvDocumentFonts*"/>
          </instance-parameter>
          <parameter name="n_pages" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentFontsInterface"
            c:type="EvDocumentFontsInterface"
            glib:is-gtype-struct-for="DocumentFonts">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="scan">
        <callback name="scan">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_fonts" transfer-ownership="none">
              <type name="DocumentFonts" c:type="EvDocumentFonts*"/>
            </parameter>
            <parameter name="n_pages" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_progress">
        <callback name="get_progress">
          <return-value transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </return-value>
          <parameters>
            <parameter name="document_fonts" transfer-ownership="none">
              <type name="DocumentFonts" c:type="EvDocumentFonts*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="fill_model">
        <callback name="fill_model">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="document_fonts" transfer-ownership="none">
              <type name="DocumentFonts" c:type="EvDocumentFonts*"/>
            </parameter>
            <parameter name="model" transfer-ownership="none">
              <type name="Gtk.TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_fonts_summary">
        <callback name="get_fonts_summary">
          <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="EvDocumentFonts*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentForms"
               c:symbol-prefix="document_forms"
               c:type="EvDocumentForms"
               glib:type-name="EvDocumentForms"
               glib:get-type="ev_document_forms_get_type"
               glib:type-struct="DocumentFormsInterface">
      <virtual-method name="document_is_modified"
                      invoker="document_is_modified">
        <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="EvDocumentForms*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_button_get_state"
                      invoker="form_field_button_get_state">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_button_set_state"
                      invoker="form_field_button_set_state">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_choice_get_text"
                      invoker="form_field_choice_get_text">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_choice_is_item_selected"
                      invoker="form_field_choice_is_item_selected">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_text_get_text"
                      invoker="form_field_text_get_text">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="form_field_text_set_text"
                      invoker="form_field_text_set_text">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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">
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="EvMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="document_is_modified"
              c:identifier="ev_document_forms_document_is_modified">
        <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="EvDocumentForms*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="form_field_button_get_state"
              c:identifier="ev_document_forms_form_field_button_get_state">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_button_set_state"
              c:identifier="ev_document_forms_form_field_button_set_state">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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="ev_document_forms_form_field_choice_get_item">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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="ev_document_forms_form_field_choice_get_n_items">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_choice_get_text"
              c:identifier="ev_document_forms_form_field_choice_get_text">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_choice_is_item_selected"
              c:identifier="ev_document_forms_form_field_choice_is_item_selected">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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="ev_document_forms_form_field_choice_select_item">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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="ev_document_forms_form_field_choice_set_text">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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="ev_document_forms_form_field_choice_toggle_item">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </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="ev_document_forms_form_field_choice_unselect_all">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_text_get_text"
              c:identifier="ev_document_forms_form_field_text_get_text">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </parameter>
        </parameters>
      </method>
      <method name="form_field_text_set_text"
              c:identifier="ev_document_forms_form_field_text_set_text">
        <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="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="FormField" c:type="EvFormField*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_form_fields"
              c:identifier="ev_document_forms_get_form_fields">
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="EvMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_forms" transfer-ownership="none">
            <type name="DocumentForms" c:type="EvDocumentForms*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentFormsInterface"
            c:type="EvDocumentFormsInterface"
            glib:is-gtype-struct-for="DocumentForms">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_form_fields">
        <callback name="get_form_fields">
          <return-value transfer-ownership="full">
            <type name="MappingList" c:type="EvMappingList*"/>
          </return-value>
          <parameters>
            <parameter name="document_forms" transfer-ownership="none">
              <type name="DocumentForms" c:type="EvDocumentForms*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="EvPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="document_is_modified">
        <callback name="document_is_modified">
          <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="EvDocumentForms*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_text_get_text">
        <callback name="form_field_text_get_text">
          <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="EvDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="EvFormField*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_text_set_text">
        <callback name="form_field_text_set_text">
          <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="EvDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="EvFormField*"/>
            </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">
          <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="EvDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="EvFormField*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_button_set_state">
        <callback name="form_field_button_set_state">
          <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="EvDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="EvFormField*"/>
            </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">
          <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="EvDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="EvFormField*"/>
            </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">
          <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="EvDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="EvFormField*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_choice_is_item_selected">
        <callback name="form_field_choice_is_item_selected">
          <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="EvDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="EvFormField*"/>
            </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">
          <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="EvDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="EvFormField*"/>
            </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">
          <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="EvDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="EvFormField*"/>
            </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">
          <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="EvDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="EvFormField*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="form_field_choice_set_text">
        <callback name="form_field_choice_set_text">
          <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="EvDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="EvFormField*"/>
            </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">
          <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="EvDocumentForms*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="FormField" c:type="EvFormField*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentImages"
               c:symbol-prefix="document_images"
               c:type="EvDocumentImages"
               glib:type-name="EvDocumentImages"
               glib:get-type="ev_document_images_get_type"
               glib:type-struct="DocumentImagesInterface">
      <virtual-method name="get_image" invoker="get_image">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">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">an #EvDocumentImages</doc>
            <type name="DocumentImages" c:type="EvDocumentImages*"/>
          </instance-parameter>
          <parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">an #EvImage</doc>
            <type name="Image" c:type="EvImage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_image_mapping" invoker="get_image_mapping">
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="EvMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_images" transfer-ownership="none">
            <type name="DocumentImages" c:type="EvDocumentImages*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_image" c:identifier="ev_document_images_get_image">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">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">an #EvDocumentImages</doc>
            <type name="DocumentImages" c:type="EvDocumentImages*"/>
          </instance-parameter>
          <parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">an #EvImage</doc>
            <type name="Image" c:type="EvImage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_image_mapping"
              c:identifier="ev_document_images_get_image_mapping">
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="EvMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_images" transfer-ownership="none">
            <type name="DocumentImages" c:type="EvDocumentImages*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentImagesInterface"
            c:type="EvDocumentImagesInterface"
            glib:is-gtype-struct-for="DocumentImages">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_image_mapping">
        <callback name="get_image_mapping">
          <return-value transfer-ownership="full">
            <type name="MappingList" c:type="EvMappingList*"/>
          </return-value>
          <parameters>
            <parameter name="document_images" transfer-ownership="none">
              <type name="DocumentImages" c:type="EvDocumentImages*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="EvPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_image">
        <callback name="get_image">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">a #GdkPixbuf</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </return-value>
          <parameters>
            <parameter name="document_images" transfer-ownership="none">
              <doc xml:space="preserve">an #EvDocumentImages</doc>
              <type name="DocumentImages" c:type="EvDocumentImages*"/>
            </parameter>
            <parameter name="image" transfer-ownership="none">
              <doc xml:space="preserve">an #EvImage</doc>
              <type name="Image" c:type="EvImage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="DocumentInfo"
            c:type="EvDocumentInfo"
            glib:type-name="EvDocumentInfo"
            glib:get-type="ev_document_info_get_type"
            c:symbol-prefix="document_info">
      <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_date" writable="1">
        <type name="GLib.Time" c:type="GTime"/>
      </field>
      <field name="modified_date" writable="1">
        <type name="GLib.Time" c:type="GTime"/>
      </field>
      <field name="layout" writable="1">
        <type name="DocumentLayout" c:type="EvDocumentLayout"/>
      </field>
      <field name="mode" writable="1">
        <type name="DocumentMode" c:type="EvDocumentMode"/>
      </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="EvDocumentLicense*"/>
      </field>
      <field name="fields_mask" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <method name="copy" c:identifier="ev_document_info_copy">
        <return-value transfer-ownership="full">
          <type name="DocumentInfo" c:type="EvDocumentInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="DocumentInfo" c:type="EvDocumentInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ev_document_info_free">
        <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="EvDocumentInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <bitfield name="DocumentInfoFields"
              glib:type-name="EvDocumentInfoFields"
              glib:get-type="ev_document_info_fields_get_type"
              c:type="EvDocumentInfoFields">
      <member name="title"
              value="1"
              c:identifier="EV_DOCUMENT_INFO_TITLE"
              glib:nick="title">
      </member>
      <member name="format"
              value="2"
              c:identifier="EV_DOCUMENT_INFO_FORMAT"
              glib:nick="format">
      </member>
      <member name="author"
              value="4"
              c:identifier="EV_DOCUMENT_INFO_AUTHOR"
              glib:nick="author">
      </member>
      <member name="subject"
              value="8"
              c:identifier="EV_DOCUMENT_INFO_SUBJECT"
              glib:nick="subject">
      </member>
      <member name="keywords"
              value="16"
              c:identifier="EV_DOCUMENT_INFO_KEYWORDS"
              glib:nick="keywords">
      </member>
      <member name="layout"
              value="32"
              c:identifier="EV_DOCUMENT_INFO_LAYOUT"
              glib:nick="layout">
      </member>
      <member name="creator"
              value="64"
              c:identifier="EV_DOCUMENT_INFO_CREATOR"
              glib:nick="creator">
      </member>
      <member name="producer"
              value="128"
              c:identifier="EV_DOCUMENT_INFO_PRODUCER"
              glib:nick="producer">
      </member>
      <member name="creation_date"
              value="256"
              c:identifier="EV_DOCUMENT_INFO_CREATION_DATE"
              glib:nick="creation-date">
      </member>
      <member name="mod_date"
              value="512"
              c:identifier="EV_DOCUMENT_INFO_MOD_DATE"
              glib:nick="mod-date">
      </member>
      <member name="linearized"
              value="1024"
              c:identifier="EV_DOCUMENT_INFO_LINEARIZED"
              glib:nick="linearized">
      </member>
      <member name="start_mode"
              value="2048"
              c:identifier="EV_DOCUMENT_INFO_START_MODE"
              glib:nick="start-mode">
      </member>
      <member name="ui_hints"
              value="4096"
              c:identifier="EV_DOCUMENT_INFO_UI_HINTS"
              glib:nick="ui-hints">
      </member>
      <member name="permissions"
              value="8192"
              c:identifier="EV_DOCUMENT_INFO_PERMISSIONS"
              glib:nick="permissions">
      </member>
      <member name="n_pages"
              value="16384"
              c:identifier="EV_DOCUMENT_INFO_N_PAGES"
              glib:nick="n-pages">
      </member>
      <member name="security"
              value="32768"
              c:identifier="EV_DOCUMENT_INFO_SECURITY"
              glib:nick="security">
      </member>
      <member name="paper_size"
              value="65536"
              c:identifier="EV_DOCUMENT_INFO_PAPER_SIZE"
              glib:nick="paper-size">
      </member>
      <member name="license"
              value="131072"
              c:identifier="EV_DOCUMENT_INFO_LICENSE"
              glib:nick="license">
      </member>
    </bitfield>
    <interface name="DocumentLayers"
               c:symbol-prefix="document_layers"
               c:type="EvDocumentLayers"
               glib:type-name="EvDocumentLayers"
               glib:get-type="ev_document_layers_get_type"
               glib:type-struct="DocumentLayersInterface">
      <virtual-method name="get_layers" invoker="get_layers">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GtkTreeModel</doc>
          <type name="Gtk.TreeModel" c:type="GtkTreeModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_layers" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocumentLayers</doc>
            <type name="DocumentLayers" c:type="EvDocumentLayers*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="has_layers" invoker="has_layers">
        <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="EvDocumentLayers*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hide_layer" invoker="hide_layer">
        <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="EvDocumentLayers*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="EvLayer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="layer_is_visible" invoker="layer_is_visible">
        <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="EvDocumentLayers*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="EvLayer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show_layer" invoker="show_layer">
        <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="EvDocumentLayers*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="EvLayer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_layers" c:identifier="ev_document_layers_get_layers">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GtkTreeModel</doc>
          <type name="Gtk.TreeModel" c:type="GtkTreeModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_layers" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocumentLayers</doc>
            <type name="DocumentLayers" c:type="EvDocumentLayers*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_layers" c:identifier="ev_document_layers_has_layers">
        <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="EvDocumentLayers*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide_layer" c:identifier="ev_document_layers_hide_layer">
        <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="EvDocumentLayers*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="EvLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="layer_is_visible"
              c:identifier="ev_document_layers_layer_is_visible">
        <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="EvDocumentLayers*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="EvLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_layer" c:identifier="ev_document_layers_show_layer">
        <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="EvDocumentLayers*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="EvLayer*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentLayersInterface"
            c:type="EvDocumentLayersInterface"
            glib:is-gtype-struct-for="DocumentLayers">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="has_layers">
        <callback name="has_layers">
          <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="EvDocumentLayers*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_layers">
        <callback name="get_layers">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">a #GtkTreeModel</doc>
            <type name="Gtk.TreeModel" c:type="GtkTreeModel*"/>
          </return-value>
          <parameters>
            <parameter name="document_layers" transfer-ownership="none">
              <doc xml:space="preserve">an #EvDocumentLayers</doc>
              <type name="DocumentLayers" c:type="EvDocumentLayers*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_layer">
        <callback name="show_layer">
          <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="EvDocumentLayers*"/>
            </parameter>
            <parameter name="layer" transfer-ownership="none">
              <type name="Layer" c:type="EvLayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide_layer">
        <callback name="hide_layer">
          <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="EvDocumentLayers*"/>
            </parameter>
            <parameter name="layer" transfer-ownership="none">
              <type name="Layer" c:type="EvLayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="layer_is_visible">
        <callback name="layer_is_visible">
          <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="EvDocumentLayers*"/>
            </parameter>
            <parameter name="layer" transfer-ownership="none">
              <type name="Layer" c:type="EvLayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="DocumentLayout"
                 glib:type-name="EvDocumentLayout"
                 glib:get-type="ev_document_layout_get_type"
                 c:type="EvDocumentLayout">
      <member name="single_page"
              value="0"
              c:identifier="EV_DOCUMENT_LAYOUT_SINGLE_PAGE"
              glib:nick="single-page">
      </member>
      <member name="one_column"
              value="1"
              c:identifier="EV_DOCUMENT_LAYOUT_ONE_COLUMN"
              glib:nick="one-column">
      </member>
      <member name="two_column_left"
              value="2"
              c:identifier="EV_DOCUMENT_LAYOUT_TWO_COLUMN_LEFT"
              glib:nick="two-column-left">
      </member>
      <member name="two_column_right"
              value="3"
              c:identifier="EV_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT"
              glib:nick="two-column-right">
      </member>
      <member name="two_page_left"
              value="4"
              c:identifier="EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT"
              glib:nick="two-page-left">
      </member>
      <member name="two_page_right"
              value="5"
              c:identifier="EV_DOCUMENT_LAYOUT_TWO_PAGE_RIGHT"
              glib:nick="two-page-right">
      </member>
    </enumeration>
    <record name="DocumentLicense"
            c:type="EvDocumentLicense"
            glib:type-name="EvDocumentLicense"
            glib:get-type="ev_document_license_get_type"
            c:symbol-prefix="document_license">
      <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="ev_document_license_new">
        <return-value transfer-ownership="full">
          <type name="DocumentLicense" c:type="EvDocumentLicense*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="ev_document_license_copy">
        <return-value transfer-ownership="full">
          <type name="DocumentLicense" c:type="EvDocumentLicense*"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <type name="DocumentLicense" c:type="EvDocumentLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ev_document_license_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <type name="DocumentLicense" c:type="EvDocumentLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="ev_document_license_get_text">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <type name="DocumentLicense" c:type="EvDocumentLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="ev_document_license_get_uri">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <type name="DocumentLicense" c:type="EvDocumentLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_web_statement"
              c:identifier="ev_document_license_get_web_statement">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <type name="DocumentLicense" c:type="EvDocumentLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <interface name="DocumentLinks"
               c:symbol-prefix="document_links"
               c:type="EvDocumentLinks"
               glib:type-name="EvDocumentLinks"
               glib:get-type="ev_document_links_get_type"
               glib:type-struct="DocumentLinksInterface">
      <virtual-method name="find_link_dest" invoker="find_link_dest">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an #EvLinkDest</doc>
          <type name="LinkDest" c:type="EvLinkDest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocumentLinks</doc>
            <type name="DocumentLinks" c:type="EvDocumentLinks*"/>
          </instance-parameter>
          <parameter name="link_name" transfer-ownership="none">
            <doc xml:space="preserve">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">
        <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="EvDocumentLinks*"/>
          </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">
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="EvMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <type name="DocumentLinks" c:type="EvDocumentLinks*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_links_model" invoker="get_links_model">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GtkTreeModel</doc>
          <type name="Gtk.TreeModel" c:type="GtkTreeModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocumentLinks</doc>
            <type name="DocumentLinks" c:type="EvDocumentLinks*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="has_document_links" invoker="has_document_links">
        <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="EvDocumentLinks*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="find_link_dest"
              c:identifier="ev_document_links_find_link_dest">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an #EvLinkDest</doc>
          <type name="LinkDest" c:type="EvLinkDest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocumentLinks</doc>
            <type name="DocumentLinks" c:type="EvDocumentLinks*"/>
          </instance-parameter>
          <parameter name="link_name" transfer-ownership="none">
            <doc xml:space="preserve">the link name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_link_page"
              c:identifier="ev_document_links_find_link_page">
        <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="EvDocumentLinks*"/>
          </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="ev_document_links_get_dest_page">
        <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="EvDocumentLinks*"/>
          </instance-parameter>
          <parameter name="dest" transfer-ownership="none">
            <type name="LinkDest" c:type="EvLinkDest*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_dest_page_label"
              c:identifier="ev_document_links_get_dest_page_label">
        <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="EvDocumentLinks*"/>
          </instance-parameter>
          <parameter name="dest" transfer-ownership="none">
            <type name="LinkDest" c:type="EvLinkDest*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_link_page"
              c:identifier="ev_document_links_get_link_page">
        <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="EvDocumentLinks*"/>
          </instance-parameter>
          <parameter name="link" transfer-ownership="none">
            <type name="Link" c:type="EvLink*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_link_page_label"
              c:identifier="ev_document_links_get_link_page_label">
        <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="EvDocumentLinks*"/>
          </instance-parameter>
          <parameter name="link" transfer-ownership="none">
            <type name="Link" c:type="EvLink*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_links" c:identifier="ev_document_links_get_links">
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="EvMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <type name="DocumentLinks" c:type="EvDocumentLinks*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_links_model"
              c:identifier="ev_document_links_get_links_model">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GtkTreeModel</doc>
          <type name="Gtk.TreeModel" c:type="GtkTreeModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_links" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocumentLinks</doc>
            <type name="DocumentLinks" c:type="EvDocumentLinks*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_document_links"
              c:identifier="ev_document_links_has_document_links">
        <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="EvDocumentLinks*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentLinksInterface"
            c:type="EvDocumentLinksInterface"
            glib:is-gtype-struct-for="DocumentLinks">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="has_document_links">
        <callback name="has_document_links">
          <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="EvDocumentLinks*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_links_model">
        <callback name="get_links_model">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">a #GtkTreeModel</doc>
            <type name="Gtk.TreeModel" c:type="GtkTreeModel*"/>
          </return-value>
          <parameters>
            <parameter name="document_links" transfer-ownership="none">
              <doc xml:space="preserve">an #EvDocumentLinks</doc>
              <type name="DocumentLinks" c:type="EvDocumentLinks*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_links">
        <callback name="get_links">
          <return-value transfer-ownership="full">
            <type name="MappingList" c:type="EvMappingList*"/>
          </return-value>
          <parameters>
            <parameter name="document_links" transfer-ownership="none">
              <type name="DocumentLinks" c:type="EvDocumentLinks*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="EvPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="find_link_dest">
        <callback name="find_link_dest">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">an #EvLinkDest</doc>
            <type name="LinkDest" c:type="EvLinkDest*"/>
          </return-value>
          <parameters>
            <parameter name="document_links" transfer-ownership="none">
              <doc xml:space="preserve">an #EvDocumentLinks</doc>
              <type name="DocumentLinks" c:type="EvDocumentLinks*"/>
            </parameter>
            <parameter name="link_name" transfer-ownership="none">
              <doc xml:space="preserve">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">
          <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="EvDocumentLinks*"/>
            </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="EvDocumentLoadFlags"
              glib:get-type="ev_document_load_flags_get_type"
              c:type="EvDocumentLoadFlags">
      <member name="none"
              value="0"
              c:identifier="EV_DOCUMENT_LOAD_FLAG_NONE"
              glib:nick="none">
      </member>
    </bitfield>
    <interface name="DocumentMedia"
               c:symbol-prefix="document_media"
               c:type="EvDocumentMedia"
               glib:type-name="EvDocumentMedia"
               glib:get-type="ev_document_media_get_type"
               glib:type-struct="DocumentMediaInterface">
      <virtual-method name="get_media_mapping" invoker="get_media_mapping">
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="EvMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_media" transfer-ownership="none">
            <type name="DocumentMedia" c:type="EvDocumentMedia*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_media_mapping"
              c:identifier="ev_document_media_get_media_mapping">
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="EvMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_media" transfer-ownership="none">
            <type name="DocumentMedia" c:type="EvDocumentMedia*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentMediaInterface"
            c:type="EvDocumentMediaInterface"
            glib:is-gtype-struct-for="DocumentMedia">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_media_mapping">
        <callback name="get_media_mapping">
          <return-value transfer-ownership="full">
            <type name="MappingList" c:type="EvMappingList*"/>
          </return-value>
          <parameters>
            <parameter name="document_media" transfer-ownership="none">
              <type name="DocumentMedia" c:type="EvDocumentMedia*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="EvPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="DocumentMode"
                 glib:type-name="EvDocumentMode"
                 glib:get-type="ev_document_mode_get_type"
                 c:type="EvDocumentMode">
      <member name="none"
              value="0"
              c:identifier="EV_DOCUMENT_MODE_NONE"
              glib:nick="none">
      </member>
      <member name="use_oc"
              value="1"
              c:identifier="EV_DOCUMENT_MODE_USE_OC"
              glib:nick="use-oc">
      </member>
      <member name="use_thumbs"
              value="2"
              c:identifier="EV_DOCUMENT_MODE_USE_THUMBS"
              glib:nick="use-thumbs">
      </member>
      <member name="full_screen"
              value="3"
              c:identifier="EV_DOCUMENT_MODE_FULL_SCREEN"
              glib:nick="full-screen">
      </member>
      <member name="use_attachments"
              value="4"
              c:identifier="EV_DOCUMENT_MODE_USE_ATTACHMENTS"
              glib:nick="use-attachments">
      </member>
      <member name="presentation"
              value="3"
              c:identifier="EV_DOCUMENT_MODE_PRESENTATION"
              glib:nick="presentation">
      </member>
    </enumeration>
    <bitfield name="DocumentPermissions"
              glib:type-name="EvDocumentPermissions"
              glib:get-type="ev_document_permissions_get_type"
              c:type="EvDocumentPermissions">
      <member name="ok_to_print"
              value="1"
              c:identifier="EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT"
              glib:nick="ok-to-print">
      </member>
      <member name="ok_to_modify"
              value="2"
              c:identifier="EV_DOCUMENT_PERMISSIONS_OK_TO_MODIFY"
              glib:nick="ok-to-modify">
      </member>
      <member name="ok_to_copy"
              value="4"
              c:identifier="EV_DOCUMENT_PERMISSIONS_OK_TO_COPY"
              glib:nick="ok-to-copy">
      </member>
      <member name="ok_to_add_notes"
              value="8"
              c:identifier="EV_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES"
              glib:nick="ok-to-add-notes">
      </member>
      <member name="full"
              value="15"
              c:identifier="EV_DOCUMENT_PERMISSIONS_FULL"
              glib:nick="full">
      </member>
    </bitfield>
    <interface name="DocumentPrint"
               c:symbol-prefix="document_print"
               c:type="EvDocumentPrint"
               glib:type-name="EvDocumentPrint"
               glib:get-type="ev_document_print_get_type"
               glib:type-struct="DocumentPrintInterface">
      <virtual-method name="print_page" invoker="print_page">
        <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="EvDocumentPrint*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </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="ev_document_print_print_page">
        <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="EvDocumentPrint*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="cr" transfer-ownership="none">
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentPrintInterface"
            c:type="EvDocumentPrintInterface"
            glib:is-gtype-struct-for="DocumentPrint">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="print_page">
        <callback name="print_page">
          <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="EvDocumentPrint*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="EvPage*"/>
            </parameter>
            <parameter name="cr" transfer-ownership="none">
              <type name="cairo.Context" c:type="cairo_t*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="DocumentPrivate" c:type="EvDocumentPrivate" disguised="1">
    </record>
    <interface name="DocumentSecurity"
               c:symbol-prefix="document_security"
               c:type="EvDocumentSecurity"
               glib:type-name="EvDocumentSecurity"
               glib:get-type="ev_document_security_get_type"
               glib:type-struct="DocumentSecurityInterface">
      <virtual-method name="has_document_security"
                      invoker="has_document_security">
        <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="EvDocumentSecurity*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_password" invoker="set_password">
        <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="EvDocumentSecurity*"/>
          </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="ev_document_security_has_document_security">
        <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="EvDocumentSecurity*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_password"
              c:identifier="ev_document_security_set_password">
        <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="EvDocumentSecurity*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentSecurityInterface"
            c:type="EvDocumentSecurityInterface"
            glib:is-gtype-struct-for="DocumentSecurity">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="has_document_security">
        <callback name="has_document_security">
          <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="EvDocumentSecurity*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_password">
        <callback name="set_password">
          <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="EvDocumentSecurity*"/>
            </parameter>
            <parameter name="password" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentText"
               c:symbol-prefix="document_text"
               c:type="EvDocumentText"
               glib:type-name="EvDocumentText"
               glib:get-type="ev_document_text_get_type"
               glib:type-struct="DocumentTextInterface">
      <virtual-method name="get_text" invoker="get_text">
        <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="EvDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_text_attrs"
                      invoker="get_text_attrs"
                      version="3.10">
        <doc xml:space="preserve">FIXME</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">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">a #EvDocumentText</doc>
            <type name="DocumentText" c:type="EvDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">a #EvPage</doc>
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_text_layout" invoker="get_text_layout">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_text" transfer-ownership="none">
            <type name="DocumentText" c:type="EvDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="areas" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle**"/>
          </parameter>
          <parameter name="n_areas" transfer-ownership="none">
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_text_mapping" invoker="get_text_mapping">
        <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="EvDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_text" c:identifier="ev_document_text_get_text">
        <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="EvDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_text_attrs"
              c:identifier="ev_document_text_get_text_attrs"
              version="3.10">
        <doc xml:space="preserve">FIXME</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">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">a #EvDocumentText</doc>
            <type name="DocumentText" c:type="EvDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">a #EvPage</doc>
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_text_layout"
              c:identifier="ev_document_text_get_text_layout">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_text" transfer-ownership="none">
            <type name="DocumentText" c:type="EvDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="areas" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle**"/>
          </parameter>
          <parameter name="n_areas" transfer-ownership="none">
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_text_mapping"
              c:identifier="ev_document_text_get_text_mapping">
        <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="EvDocumentText*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentTextInterface"
            c:type="EvDocumentTextInterface"
            glib:is-gtype-struct-for="DocumentText">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_text_mapping">
        <callback name="get_text_mapping">
          <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="EvDocumentText*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="EvPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text">
        <callback name="get_text">
          <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="EvDocumentText*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="EvPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text_layout">
        <callback name="get_text_layout">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="document_text" transfer-ownership="none">
              <type name="DocumentText" c:type="EvDocumentText*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="EvPage*"/>
            </parameter>
            <parameter name="areas" transfer-ownership="none">
              <type name="Rectangle" c:type="EvRectangle**"/>
            </parameter>
            <parameter name="n_areas" transfer-ownership="none">
              <type name="guint" c:type="guint*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text_attrs">
        <callback name="get_text_attrs">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">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">a #EvDocumentText</doc>
              <type name="DocumentText" c:type="EvDocumentText*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <doc xml:space="preserve">a #EvPage</doc>
              <type name="Page" c:type="EvPage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentTransition"
               c:symbol-prefix="document_transition"
               c:type="EvDocumentTransition"
               glib:type-name="EvDocumentTransition"
               glib:get-type="ev_document_transition_get_type"
               glib:type-struct="DocumentTransitionInterface">
      <virtual-method name="get_effect" invoker="get_effect">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an #EvTransitionEffect</doc>
          <type name="TransitionEffect" c:type="EvTransitionEffect*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_trans" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocumentTransition</doc>
            <type name="DocumentTransition" c:type="EvDocumentTransition*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">a page index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_page_duration" invoker="get_page_duration">
        <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="EvDocumentTransition*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_effect"
              c:identifier="ev_document_transition_get_effect">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an #EvTransitionEffect</doc>
          <type name="TransitionEffect" c:type="EvTransitionEffect*"/>
        </return-value>
        <parameters>
          <instance-parameter name="document_trans" transfer-ownership="none">
            <doc xml:space="preserve">an #EvDocumentTransition</doc>
            <type name="DocumentTransition" c:type="EvDocumentTransition*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">a page index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_page_duration"
              c:identifier="ev_document_transition_get_page_duration">
        <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="EvDocumentTransition*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DocumentTransitionInterface"
            c:type="EvDocumentTransitionInterface"
            glib:is-gtype-struct-for="DocumentTransition">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_page_duration">
        <callback name="get_page_duration">
          <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="EvDocumentTransition*"/>
            </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">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">an #EvTransitionEffect</doc>
            <type name="TransitionEffect" c:type="EvTransitionEffect*"/>
          </return-value>
          <parameters>
            <parameter name="document_trans" transfer-ownership="none">
              <doc xml:space="preserve">an #EvDocumentTransition</doc>
              <type name="DocumentTransition" c:type="EvDocumentTransition*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <doc xml:space="preserve">a page index</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <bitfield name="DocumentUIHints"
              glib:type-name="EvDocumentUIHints"
              glib:get-type="ev_document_ui_hints_get_type"
              c:type="EvDocumentUIHints">
      <member name="hide_toolbar"
              value="1"
              c:identifier="EV_DOCUMENT_UI_HINT_HIDE_TOOLBAR"
              glib:nick="hide-toolbar">
      </member>
      <member name="hide_menubar"
              value="2"
              c:identifier="EV_DOCUMENT_UI_HINT_HIDE_MENUBAR"
              glib:nick="hide-menubar">
      </member>
      <member name="hide_windowui"
              value="4"
              c:identifier="EV_DOCUMENT_UI_HINT_HIDE_WINDOWUI"
              glib:nick="hide-windowui">
      </member>
      <member name="fit_window"
              value="8"
              c:identifier="EV_DOCUMENT_UI_HINT_FIT_WINDOW"
              glib:nick="fit-window">
      </member>
      <member name="center_window"
              value="16"
              c:identifier="EV_DOCUMENT_UI_HINT_CENTER_WINDOW"
              glib:nick="center-window">
      </member>
      <member name="display_doc_title"
              value="32"
              c:identifier="EV_DOCUMENT_UI_HINT_DISPLAY_DOC_TITLE"
              glib:nick="display-doc-title">
      </member>
      <member name="direction_rtl"
              value="64"
              c:identifier="EV_DOCUMENT_UI_HINT_DIRECTION_RTL"
              glib:nick="direction-rtl">
      </member>
    </bitfield>
    <interface name="FileExporter"
               c:symbol-prefix="file_exporter"
               c:type="EvFileExporter"
               glib:type-name="EvFileExporter"
               glib:get-type="ev_file_exporter_get_type"
               glib:type-struct="FileExporterInterface">
      <virtual-method name="begin" invoker="begin">
        <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="EvFileExporter*"/>
          </instance-parameter>
          <parameter name="fc" transfer-ownership="none">
            <type name="FileExporterContext" c:type="EvFileExporterContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="begin_page" invoker="begin_page">
        <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="EvFileExporter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="do_page" invoker="do_page">
        <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="EvFileExporter*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="EvRenderContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="end" invoker="end">
        <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="EvFileExporter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="end_page" invoker="end_page">
        <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="EvFileExporter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_capabilities" invoker="get_capabilities">
        <return-value transfer-ownership="none">
          <type name="FileExporterCapabilities"
                c:type="EvFileExporterCapabilities"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="EvFileExporter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="begin" c:identifier="ev_file_exporter_begin">
        <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="EvFileExporter*"/>
          </instance-parameter>
          <parameter name="fc" transfer-ownership="none">
            <type name="FileExporterContext" c:type="EvFileExporterContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="begin_page" c:identifier="ev_file_exporter_begin_page">
        <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="EvFileExporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="do_page" c:identifier="ev_file_exporter_do_page">
        <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="EvFileExporter*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="EvRenderContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="end" c:identifier="ev_file_exporter_end">
        <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="EvFileExporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="end_page" c:identifier="ev_file_exporter_end_page">
        <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="EvFileExporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_capabilities"
              c:identifier="ev_file_exporter_get_capabilities">
        <return-value transfer-ownership="none">
          <type name="FileExporterCapabilities"
                c:type="EvFileExporterCapabilities"/>
        </return-value>
        <parameters>
          <instance-parameter name="exporter" transfer-ownership="none">
            <type name="FileExporter" c:type="EvFileExporter*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <bitfield name="FileExporterCapabilities"
              glib:type-name="EvFileExporterCapabilities"
              glib:get-type="ev_file_exporter_capabilities_get_type"
              c:type="EvFileExporterCapabilities">
      <member name="page_set"
              value="1"
              c:identifier="EV_FILE_EXPORTER_CAN_PAGE_SET"
              glib:nick="page-set">
      </member>
      <member name="copies"
              value="2"
              c:identifier="EV_FILE_EXPORTER_CAN_COPIES"
              glib:nick="copies">
      </member>
      <member name="collate"
              value="4"
              c:identifier="EV_FILE_EXPORTER_CAN_COLLATE"
              glib:nick="collate">
      </member>
      <member name="reverse"
              value="8"
              c:identifier="EV_FILE_EXPORTER_CAN_REVERSE"
              glib:nick="reverse">
      </member>
      <member name="scale"
              value="16"
              c:identifier="EV_FILE_EXPORTER_CAN_SCALE"
              glib:nick="scale">
      </member>
      <member name="generate_pdf"
              value="32"
              c:identifier="EV_FILE_EXPORTER_CAN_GENERATE_PDF"
              glib:nick="generate-pdf">
      </member>
      <member name="generate_ps"
              value="64"
              c:identifier="EV_FILE_EXPORTER_CAN_GENERATE_PS"
              glib:nick="generate-ps">
      </member>
      <member name="preview"
              value="128"
              c:identifier="EV_FILE_EXPORTER_CAN_PREVIEW"
              glib:nick="preview">
      </member>
      <member name="number_up"
              value="256"
              c:identifier="EV_FILE_EXPORTER_CAN_NUMBER_UP"
              glib:nick="number-up">
      </member>
    </bitfield>
    <record name="FileExporterContext" c:type="EvFileExporterContext">
      <field name="format" writable="1">
        <type name="FileExporterFormat" c:type="EvFileExporterFormat"/>
      </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="EvFileExporterFormat"
                 glib:get-type="ev_file_exporter_format_get_type"
                 c:type="EvFileExporterFormat">
      <member name="unknown"
              value="0"
              c:identifier="EV_FILE_FORMAT_UNKNOWN"
              glib:nick="unknown">
      </member>
      <member name="ps"
              value="1"
              c:identifier="EV_FILE_FORMAT_PS"
              glib:nick="ps">
      </member>
      <member name="pdf"
              value="2"
              c:identifier="EV_FILE_FORMAT_PDF"
              glib:nick="pdf">
      </member>
    </enumeration>
    <record name="FileExporterInterface"
            c:type="EvFileExporterInterface"
            glib:is-gtype-struct-for="FileExporter">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="begin">
        <callback name="begin">
          <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="EvFileExporter*"/>
            </parameter>
            <parameter name="fc" transfer-ownership="none">
              <type name="FileExporterContext"
                    c:type="EvFileExporterContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="begin_page">
        <callback name="begin_page">
          <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="EvFileExporter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="do_page">
        <callback name="do_page">
          <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="EvFileExporter*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <type name="RenderContext" c:type="EvRenderContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end_page">
        <callback name="end_page">
          <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="EvFileExporter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end">
        <callback name="end">
          <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="EvFileExporter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_capabilities">
        <callback name="get_capabilities">
          <return-value transfer-ownership="none">
            <type name="FileExporterCapabilities"
                  c:type="EvFileExporterCapabilities"/>
          </return-value>
          <parameters>
            <parameter name="exporter" transfer-ownership="none">
              <type name="FileExporter" c:type="EvFileExporter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <bitfield name="FindOptions"
              glib:type-name="EvFindOptions"
              glib:get-type="ev_find_options_get_type"
              c:type="EvFindOptions">
      <member name="default"
              value="0"
              c:identifier="EV_FIND_DEFAULT"
              glib:nick="default">
      </member>
      <member name="case_sensitive"
              value="1"
              c:identifier="EV_FIND_CASE_SENSITIVE"
              glib:nick="case-sensitive">
      </member>
      <member name="whole_words_only"
              value="2"
              c:identifier="EV_FIND_WHOLE_WORDS_ONLY"
              glib:nick="whole-words-only">
      </member>
    </bitfield>
    <class name="FormField"
           c:symbol-prefix="form_field"
           c:type="EvFormField"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="EvFormField"
           glib:get-type="ev_form_field_get_type"
           glib:type-struct="FormFieldClass">
      <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="EvLink*"/>
      </field>
      <field name="page">
        <type name="Page" c:type="EvPage*"/>
      </field>
      <field name="changed">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <class name="FormFieldButton"
           c:symbol-prefix="form_field_button"
           c:type="EvFormFieldButton"
           parent="FormField"
           glib:type-name="EvFormFieldButton"
           glib:get-type="ev_form_field_button_get_type"
           glib:type-struct="FormFieldButtonClass">
      <constructor name="new" c:identifier="ev_form_field_button_new">
        <return-value transfer-ownership="full">
          <type name="FormField" c:type="EvFormField*"/>
        </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="EvFormFieldButtonType"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="FormField" c:type="EvFormField"/>
      </field>
      <field name="type">
        <type name="FormFieldButtonType" c:type="EvFormFieldButtonType"/>
      </field>
      <field name="state">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="FormFieldButtonClass"
            c:type="EvFormFieldButtonClass"
            glib:is-gtype-struct-for="FormFieldButton">
      <field name="parent_class">
        <type name="FormFieldClass" c:type="EvFormFieldClass"/>
      </field>
    </record>
    <enumeration name="FormFieldButtonType"
                 glib:type-name="EvFormFieldButtonType"
                 glib:get-type="ev_form_field_button_type_get_type"
                 c:type="EvFormFieldButtonType">
      <member name="push"
              value="0"
              c:identifier="EV_FORM_FIELD_BUTTON_PUSH"
              glib:nick="push">
      </member>
      <member name="check"
              value="1"
              c:identifier="EV_FORM_FIELD_BUTTON_CHECK"
              glib:nick="check">
      </member>
      <member name="radio"
              value="2"
              c:identifier="EV_FORM_FIELD_BUTTON_RADIO"
              glib:nick="radio">
      </member>
    </enumeration>
    <class name="FormFieldChoice"
           c:symbol-prefix="form_field_choice"
           c:type="EvFormFieldChoice"
           parent="FormField"
           glib:type-name="EvFormFieldChoice"
           glib:get-type="ev_form_field_choice_get_type"
           glib:type-struct="FormFieldChoiceClass">
      <constructor name="new" c:identifier="ev_form_field_choice_new">
        <return-value transfer-ownership="full">
          <type name="FormField" c:type="EvFormField*"/>
        </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="EvFormFieldChoiceType"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="FormField" c:type="EvFormField"/>
      </field>
      <field name="type">
        <type name="FormFieldChoiceType" c:type="EvFormFieldChoiceType"/>
      </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="EvFormFieldChoiceClass"
            glib:is-gtype-struct-for="FormFieldChoice">
      <field name="parent_class">
        <type name="FormFieldClass" c:type="EvFormFieldClass"/>
      </field>
    </record>
    <enumeration name="FormFieldChoiceType"
                 glib:type-name="EvFormFieldChoiceType"
                 glib:get-type="ev_form_field_choice_type_get_type"
                 c:type="EvFormFieldChoiceType">
      <member name="combo"
              value="0"
              c:identifier="EV_FORM_FIELD_CHOICE_COMBO"
              glib:nick="combo">
      </member>
      <member name="list"
              value="1"
              c:identifier="EV_FORM_FIELD_CHOICE_LIST"
              glib:nick="list">
      </member>
    </enumeration>
    <record name="FormFieldClass"
            c:type="EvFormFieldClass"
            glib:is-gtype-struct-for="FormField">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="FormFieldSignature"
           c:symbol-prefix="form_field_signature"
           c:type="EvFormFieldSignature"
           parent="FormField"
           glib:type-name="EvFormFieldSignature"
           glib:get-type="ev_form_field_signature_get_type"
           glib:type-struct="FormFieldSignatureClass">
      <constructor name="new" c:identifier="ev_form_field_signature_new">
        <return-value transfer-ownership="full">
          <type name="FormField" c:type="EvFormField*"/>
        </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="EvFormField"/>
      </field>
    </class>
    <record name="FormFieldSignatureClass"
            c:type="EvFormFieldSignatureClass"
            glib:is-gtype-struct-for="FormFieldSignature">
      <field name="parent_class">
        <type name="FormFieldClass" c:type="EvFormFieldClass"/>
      </field>
    </record>
    <class name="FormFieldText"
           c:symbol-prefix="form_field_text"
           c:type="EvFormFieldText"
           parent="FormField"
           glib:type-name="EvFormFieldText"
           glib:get-type="ev_form_field_text_get_type"
           glib:type-struct="FormFieldTextClass">
      <constructor name="new" c:identifier="ev_form_field_text_new">
        <return-value transfer-ownership="full">
          <type name="FormField" c:type="EvFormField*"/>
        </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="EvFormFieldTextType"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="FormField" c:type="EvFormField"/>
      </field>
      <field name="type">
        <type name="FormFieldTextType" c:type="EvFormFieldTextType"/>
      </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="EvFormFieldTextClass"
            glib:is-gtype-struct-for="FormFieldText">
      <field name="parent_class">
        <type name="FormFieldClass" c:type="EvFormFieldClass"/>
      </field>
    </record>
    <enumeration name="FormFieldTextType"
                 glib:type-name="EvFormFieldTextType"
                 glib:get-type="ev_form_field_text_type_get_type"
                 c:type="EvFormFieldTextType">
      <member name="normal"
              value="0"
              c:identifier="EV_FORM_FIELD_TEXT_NORMAL"
              glib:nick="normal">
      </member>
      <member name="multiline"
              value="1"
              c:identifier="EV_FORM_FIELD_TEXT_MULTILINE"
              glib:nick="multiline">
      </member>
      <member name="file_select"
              value="2"
              c:identifier="EV_FORM_FIELD_TEXT_FILE_SELECT"
              glib:nick="file-select">
      </member>
    </enumeration>
    <class name="Image"
           c:symbol-prefix="image"
           c:type="EvImage"
           parent="GObject.Object"
           glib:type-name="EvImage"
           glib:get-type="ev_image_get_type"
           glib:type-struct="ImageClass">
      <constructor name="new" c:identifier="ev_image_new">
        <return-value transfer-ownership="full">
          <type name="Image" c:type="EvImage*"/>
        </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="ev_image_new_from_pixbuf">
        <return-value transfer-ownership="full">
          <type name="Image" c:type="EvImage*"/>
        </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="ev_image_get_id">
        <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="EvImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page" c:identifier="ev_image_get_page">
        <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="EvImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixbuf" c:identifier="ev_image_get_pixbuf">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">an #EvImage</doc>
            <type name="Image" c:type="EvImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tmp_uri" c:identifier="ev_image_get_tmp_uri">
        <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="EvImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="save_tmp" c:identifier="ev_image_save_tmp">
        <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="EvImage*"/>
          </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>
      <field name="priv">
        <type name="ImagePrivate" c:type="EvImagePrivate*"/>
      </field>
    </class>
    <record name="ImageClass"
            c:type="EvImageClass"
            glib:is-gtype-struct-for="Image">
      <field name="base_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="ImagePrivate" c:type="EvImagePrivate" disguised="1">
    </record>
    <class name="Layer"
           c:symbol-prefix="layer"
           c:type="EvLayer"
           parent="GObject.Object"
           glib:type-name="EvLayer"
           glib:get-type="ev_layer_get_type"
           glib:type-struct="LayerClass">
      <constructor name="new" c:identifier="ev_layer_new">
        <return-value transfer-ownership="full">
          <type name="Layer" c:type="EvLayer*"/>
        </return-value>
        <parameters>
          <parameter name="is_parent" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="rb_group" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_rb_group" c:identifier="ev_layer_get_rb_group">
        <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="EvLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_parent" c:identifier="ev_layer_is_parent">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="EvLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="base_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="LayerPrivate" c:type="EvLayerPrivate*"/>
      </field>
    </class>
    <record name="LayerClass"
            c:type="EvLayerClass"
            glib:is-gtype-struct-for="Layer">
      <field name="base_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="LayerPrivate" c:type="EvLayerPrivate" disguised="1">
    </record>
    <class name="Link"
           c:symbol-prefix="link"
           c:type="EvLink"
           parent="GObject.Object"
           glib:type-name="EvLink"
           glib:get-type="ev_link_get_type"
           glib:type-struct="LinkClass">
      <constructor name="new" c:identifier="ev_link_new">
        <return-value transfer-ownership="full">
          <type name="Link" c:type="EvLink*"/>
        </return-value>
        <parameters>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="LinkAction" c:type="EvLinkAction*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_action" c:identifier="ev_link_get_action">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #EvLinkAction</doc>
          <type name="LinkAction" c:type="EvLinkAction*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an #EvLink</doc>
            <type name="Link" c:type="EvLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="ev_link_get_title">
        <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="EvLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="action"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="LinkAction"/>
      </property>
      <property name="title"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <class name="LinkAction"
           c:symbol-prefix="link_action"
           c:type="EvLinkAction"
           parent="GObject.Object"
           glib:type-name="EvLinkAction"
           glib:get-type="ev_link_action_get_type"
           glib:type-struct="LinkActionClass">
      <constructor name="new_dest" c:identifier="ev_link_action_new_dest">
        <return-value transfer-ownership="full">
          <type name="LinkAction" c:type="EvLinkAction*"/>
        </return-value>
        <parameters>
          <parameter name="dest" transfer-ownership="none">
            <type name="LinkDest" c:type="EvLinkDest*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_external_uri"
                   c:identifier="ev_link_action_new_external_uri">
        <return-value transfer-ownership="full">
          <type name="LinkAction" c:type="EvLinkAction*"/>
        </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="ev_link_action_new_launch">
        <return-value transfer-ownership="full">
          <type name="LinkAction" c:type="EvLinkAction*"/>
        </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="ev_link_action_new_layers_state">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #EvLinkAction</doc>
          <type name="LinkAction" c:type="EvLinkAction*"/>
        </return-value>
        <parameters>
          <parameter name="show_list" transfer-ownership="none">
            <doc xml:space="preserve">a list of #EvLayer 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">a list of #EvLayer 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">a list of #EvLayer objects</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Layer"/>
            </type>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_named" c:identifier="ev_link_action_new_named">
        <return-value transfer-ownership="full">
          <type name="LinkAction" c:type="EvLinkAction*"/>
        </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="ev_link_action_new_remote">
        <return-value transfer-ownership="full">
          <type name="LinkAction" c:type="EvLinkAction*"/>
        </return-value>
        <parameters>
          <parameter name="dest" transfer-ownership="none">
            <type name="LinkDest" c:type="EvLinkDest*"/>
          </parameter>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="equal" c:identifier="ev_link_action_equal" version="3.8">
        <doc xml:space="preserve">Checks whether @a and @b are equal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">a #EvLinkAction</doc>
            <type name="LinkAction" c:type="EvLinkAction*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve">a #EvLinkAction</doc>
            <type name="LinkAction" c:type="EvLinkAction*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_action_type"
              c:identifier="ev_link_action_get_action_type">
        <return-value transfer-ownership="none">
          <type name="LinkActionType" c:type="EvLinkActionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkAction" c:type="EvLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dest" c:identifier="ev_link_action_get_dest">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #EvLinkDest</doc>
          <type name="LinkDest" c:type="EvLinkDest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an #EvLinkAction</doc>
            <type name="LinkAction" c:type="EvLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename" c:identifier="ev_link_action_get_filename">
        <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="EvLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hide_list" c:identifier="ev_link_action_get_hide_list">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a list of #EvLayer 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">an #EvLinkAction</doc>
            <type name="LinkAction" c:type="EvLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ev_link_action_get_name">
        <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="EvLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_params" c:identifier="ev_link_action_get_params">
        <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="EvLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_list" c:identifier="ev_link_action_get_show_list">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a list of #EvLayer 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">an #EvLinkAction</doc>
            <type name="LinkAction" c:type="EvLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_toggle_list"
              c:identifier="ev_link_action_get_toggle_list">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a list of #EvLayer 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">an #EvLinkAction</doc>
            <type name="LinkAction" c:type="EvLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="ev_link_action_get_uri">
        <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="EvLinkAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="dest"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="LinkDest"/>
      </property>
      <property name="filename"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="hide-list"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="params"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="show-list"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="toggle-list"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="type"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="LinkActionType"/>
      </property>
      <property name="uri"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="LinkActionClass"
            c:type="EvLinkActionClass"
            disguised="1"
            glib:is-gtype-struct-for="LinkAction">
    </record>
    <record name="LinkActionPrivate"
            c:type="EvLinkActionPrivate"
            disguised="1">
    </record>
    <enumeration name="LinkActionType"
                 glib:type-name="EvLinkActionType"
                 glib:get-type="ev_link_action_type_get_type"
                 c:type="EvLinkActionType">
      <member name="goto_dest"
              value="0"
              c:identifier="EV_LINK_ACTION_TYPE_GOTO_DEST"
              glib:nick="goto-dest">
      </member>
      <member name="goto_remote"
              value="1"
              c:identifier="EV_LINK_ACTION_TYPE_GOTO_REMOTE"
              glib:nick="goto-remote">
      </member>
      <member name="external_uri"
              value="2"
              c:identifier="EV_LINK_ACTION_TYPE_EXTERNAL_URI"
              glib:nick="external-uri">
      </member>
      <member name="launch"
              value="3"
              c:identifier="EV_LINK_ACTION_TYPE_LAUNCH"
              glib:nick="launch">
      </member>
      <member name="named"
              value="4"
              c:identifier="EV_LINK_ACTION_TYPE_NAMED"
              glib:nick="named">
      </member>
      <member name="layers_state"
              value="5"
              c:identifier="EV_LINK_ACTION_TYPE_LAYERS_STATE"
              glib:nick="layers-state">
      </member>
    </enumeration>
    <record name="LinkClass"
            c:type="EvLinkClass"
            disguised="1"
            glib:is-gtype-struct-for="Link">
    </record>
    <class name="LinkDest"
           c:symbol-prefix="link_dest"
           c:type="EvLinkDest"
           parent="GObject.Object"
           glib:type-name="EvLinkDest"
           glib:get-type="ev_link_dest_get_type"
           glib:type-struct="LinkDestClass">
      <constructor name="new_fit" c:identifier="ev_link_dest_new_fit">
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="EvLinkDest*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_fith" c:identifier="ev_link_dest_new_fith">
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="EvLinkDest*"/>
        </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="ev_link_dest_new_fitr">
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="EvLinkDest*"/>
        </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="ev_link_dest_new_fitv">
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="EvLinkDest*"/>
        </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="ev_link_dest_new_named">
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="EvLinkDest*"/>
        </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="ev_link_dest_new_page">
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="EvLinkDest*"/>
        </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="ev_link_dest_new_page_label">
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="EvLinkDest*"/>
        </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="ev_link_dest_new_xyz">
        <return-value transfer-ownership="full">
          <type name="LinkDest" c:type="EvLinkDest*"/>
        </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="ev_link_dest_equal" version="3.8">
        <doc xml:space="preserve">Checks whether @a and @b are equal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%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">a #EvLinkDest</doc>
            <type name="LinkDest" c:type="EvLinkDest*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve">a #EvLinkDest</doc>
            <type name="LinkDest" c:type="EvLinkDest*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bottom" c:identifier="ev_link_dest_get_bottom">
        <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="EvLinkDest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dest_type" c:identifier="ev_link_dest_get_dest_type">
        <return-value transfer-ownership="none">
          <type name="LinkDestType" c:type="EvLinkDestType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LinkDest" c:type="EvLinkDest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_left" c:identifier="ev_link_dest_get_left">
        <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="EvLinkDest*"/>
          </instance-parameter>
          <parameter name="change_left" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_named_dest" c:identifier="ev_link_dest_get_named_dest">
        <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="EvLinkDest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page" c:identifier="ev_link_dest_get_page">
        <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="EvLinkDest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page_label" c:identifier="ev_link_dest_get_page_label">
        <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="EvLinkDest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_right" c:identifier="ev_link_dest_get_right">
        <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="EvLinkDest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_top" c:identifier="ev_link_dest_get_top">
        <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="EvLinkDest*"/>
          </instance-parameter>
          <parameter name="change_top" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_zoom" c:identifier="ev_link_dest_get_zoom">
        <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="EvLinkDest*"/>
          </instance-parameter>
          <parameter name="change_zoom" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <property name="bottom"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="change"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="left"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="named"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="page"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="page-label"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="right"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="top"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="type"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="LinkDestType"/>
      </property>
      <property name="zoom"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
    </class>
    <record name="LinkDestClass"
            c:type="EvLinkDestClass"
            disguised="1"
            glib:is-gtype-struct-for="LinkDest">
    </record>
    <record name="LinkDestPrivate" c:type="EvLinkDestPrivate" disguised="1">
    </record>
    <enumeration name="LinkDestType"
                 glib:type-name="EvLinkDestType"
                 glib:get-type="ev_link_dest_type_get_type"
                 c:type="EvLinkDestType">
      <member name="page"
              value="0"
              c:identifier="EV_LINK_DEST_TYPE_PAGE"
              glib:nick="page">
      </member>
      <member name="xyz"
              value="1"
              c:identifier="EV_LINK_DEST_TYPE_XYZ"
              glib:nick="xyz">
      </member>
      <member name="fit"
              value="2"
              c:identifier="EV_LINK_DEST_TYPE_FIT"
              glib:nick="fit">
      </member>
      <member name="fith"
              value="3"
              c:identifier="EV_LINK_DEST_TYPE_FITH"
              glib:nick="fith">
      </member>
      <member name="fitv"
              value="4"
              c:identifier="EV_LINK_DEST_TYPE_FITV"
              glib:nick="fitv">
      </member>
      <member name="fitr"
              value="5"
              c:identifier="EV_LINK_DEST_TYPE_FITR"
              glib:nick="fitr">
      </member>
      <member name="named"
              value="6"
              c:identifier="EV_LINK_DEST_TYPE_NAMED"
              glib:nick="named">
      </member>
      <member name="page_label"
              value="7"
              c:identifier="EV_LINK_DEST_TYPE_PAGE_LABEL"
              glib:nick="page-label">
      </member>
      <member name="unknown"
              value="8"
              c:identifier="EV_LINK_DEST_TYPE_UNKNOWN"
              glib:nick="unknown">
      </member>
    </enumeration>
    <record name="LinkPrivate" c:type="EvLinkPrivate" disguised="1">
    </record>
    <constant name="MAJOR_VERSION" value="3" c:type="EV_MAJOR_VERSION">
      <doc xml:space="preserve">The major version number of the EV library
(e.g. in version 3.1.4 this is 3).</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION" value="1" c:type="EV_MICRO_VERSION">
      <doc xml:space="preserve">The micro version number of the EV library
(e.g. in version 3.1.4 this is 4).</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="20" c:type="EV_MINOR_VERSION">
      <doc xml:space="preserve">The minor version number of the EV library
(e.g. in version 3.1.4 this is 1).</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="Mapping" c:type="EvMapping">
      <field name="area" writable="1">
        <type name="Rectangle" c:type="EvRectangle"/>
      </field>
      <field name="data" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <record name="MappingList"
            c:type="EvMappingList"
            glib:type-name="EvMappingList"
            glib:get-type="ev_mapping_list_get_type"
            c:symbol-prefix="mapping_list">
      <constructor name="new" c:identifier="ev_mapping_list_new">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an #EvMappingList</doc>
          <type name="MappingList" c:type="EvMappingList*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">page index for this mapping</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">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">function to free a list element</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="find" c:identifier="ev_mapping_list_find">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #EvMapping</doc>
          <type name="Mapping" c:type="EvMapping*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <doc xml:space="preserve">an #EvMappingList</doc>
            <type name="MappingList" c:type="EvMappingList*"/>
          </instance-parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">mapping data to find</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_custom" c:identifier="ev_mapping_list_find_custom">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #EvMapping</doc>
          <type name="Mapping" c:type="EvMapping*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <doc xml:space="preserve">an #EvMappingList</doc>
            <type name="MappingList" c:type="EvMappingList*"/>
          </instance-parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">mapping data to find</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="func" transfer-ownership="none" scope="call">
            <doc xml:space="preserve">function to use for equality check</doc>
            <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
          </parameter>
        </parameters>
      </method>
      <method name="get" c:identifier="ev_mapping_list_get" version="3.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #EvMapping in the list at coordinates (x, y)</doc>
          <type name="Mapping" c:type="EvMapping*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <doc xml:space="preserve">an #EvMappingList</doc>
            <type name="MappingList" c:type="EvMappingList*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">X coordinate</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">Y coordinate</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_data" c:identifier="ev_mapping_list_get_data">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">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">an #EvMappingList</doc>
            <type name="MappingList" c:type="EvMappingList*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">X coordinate</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">Y coordinate</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_list" c:identifier="ev_mapping_list_get_list">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">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">an #EvMappingList</doc>
            <type name="MappingList" c:type="EvMappingList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page" c:identifier="ev_mapping_list_get_page">
        <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="EvMappingList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="length" c:identifier="ev_mapping_list_length">
        <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="EvMappingList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="nth" c:identifier="ev_mapping_list_nth">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #Evmapping at position @n in @mapping_list</doc>
          <type name="Mapping" c:type="EvMapping*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <doc xml:space="preserve">an #EvMappingList</doc>
            <type name="MappingList" c:type="EvMappingList*"/>
          </instance-parameter>
          <parameter name="n" transfer-ownership="none">
            <doc xml:space="preserve">the position to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ev_mapping_list_ref">
        <return-value transfer-ownership="full">
          <type name="MappingList" c:type="EvMappingList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mapping_list" transfer-ownership="none">
            <type name="MappingList" c:type="EvMappingList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove"
              c:identifier="ev_mapping_list_remove"
              version="3.14">
        <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">an #EvMappingList</doc>
            <type name="MappingList" c:type="EvMappingList*"/>
          </instance-parameter>
          <parameter name="mapping" transfer-ownership="none">
            <doc xml:space="preserve">#EvMapping to remove</doc>
            <type name="Mapping" c:type="EvMapping*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ev_mapping_list_unref">
        <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="EvMappingList*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="Media"
           c:symbol-prefix="media"
           c:type="EvMedia"
           parent="GObject.Object"
           glib:type-name="EvMedia"
           glib:get-type="ev_media_get_type"
           glib:type-struct="MediaClass">
      <constructor name="new_for_uri" c:identifier="ev_media_new_for_uri">
        <return-value transfer-ownership="full">
          <type name="Media" c:type="EvMedia*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_page_index" c:identifier="ev_media_get_page_index">
        <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="EvMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_controls"
              c:identifier="ev_media_get_show_controls">
        <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="EvMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="ev_media_get_uri">
        <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="EvMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_show_controls"
              c:identifier="ev_media_set_show_controls">
        <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="EvMedia*"/>
          </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>
      <field name="priv">
        <type name="MediaPrivate" c:type="EvMediaPrivate*"/>
      </field>
    </class>
    <record name="MediaClass"
            c:type="EvMediaClass"
            glib:is-gtype-struct-for="Media">
      <field name="base_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="MediaPrivate" c:type="EvMediaPrivate" disguised="1">
    </record>
    <class name="Page"
           c:symbol-prefix="page"
           c:type="EvPage"
           parent="GObject.Object"
           glib:type-name="EvPage"
           glib:get-type="ev_page_get_type"
           glib:type-struct="PageClass">
      <constructor name="new" c:identifier="ev_page_new">
        <return-value transfer-ownership="full">
          <type name="Page" c:type="EvPage*"/>
        </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="EvBackendPage"/>
      </field>
      <field name="backend_destroy_func">
        <type name="BackendPageDestroyFunc" c:type="EvBackendPageDestroyFunc"/>
      </field>
    </class>
    <record name="PageClass"
            c:type="EvPageClass"
            glib:is-gtype-struct-for="Page">
      <field name="base_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="Point" c:type="EvPoint">
      <field name="x" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="y" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
    </record>
    <record name="Rectangle"
            c:type="EvRectangle"
            glib:type-name="EvRectangle"
            glib:get-type="ev_rectangle_get_type"
            c:symbol-prefix="rectangle">
      <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="ev_rectangle_new">
        <return-value transfer-ownership="full">
          <type name="Rectangle" c:type="EvRectangle*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="ev_rectangle_copy">
        <return-value transfer-ownership="full">
          <type name="Rectangle" c:type="EvRectangle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ev_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ev_rectangle_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ev_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="RenderContext"
           c:symbol-prefix="render_context"
           c:type="EvRenderContext"
           parent="GObject.Object"
           glib:type-name="EvRenderContext"
           glib:get-type="ev_render_context_get_type"
           glib:type-struct="RenderContextClass">
      <constructor name="new" c:identifier="ev_render_context_new">
        <return-value transfer-ownership="full">
          <type name="RenderContext" c:type="EvRenderContext*"/>
        </return-value>
        <parameters>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="rotation" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="scale" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="compute_scaled_size"
              c:identifier="ev_render_context_compute_scaled_size">
        <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="EvRenderContext*"/>
          </instance-parameter>
          <parameter name="width_points" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="height_points" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="scaled_width" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="scaled_height" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="compute_scales"
              c:identifier="ev_render_context_compute_scales">
        <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="EvRenderContext*"/>
          </instance-parameter>
          <parameter name="width_points" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="height_points" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="scale_x" transfer-ownership="none">
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="scale_y" transfer-ownership="none">
            <type name="gdouble" c:type="double*"/>
          </parameter>
        </parameters>
      </method>
      <method name="compute_transformed_size"
              c:identifier="ev_render_context_compute_transformed_size">
        <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="EvRenderContext*"/>
          </instance-parameter>
          <parameter name="width_points" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="height_points" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="transformed_width" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="transformed_height" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_page" c:identifier="ev_render_context_set_page">
        <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="EvRenderContext*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rotation"
              c:identifier="ev_render_context_set_rotation">
        <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="EvRenderContext*"/>
          </instance-parameter>
          <parameter name="rotation" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scale" c:identifier="ev_render_context_set_scale">
        <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="EvRenderContext*"/>
          </instance-parameter>
          <parameter name="scale" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_target_size"
              c:identifier="ev_render_context_set_target_size">
        <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="EvRenderContext*"/>
          </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="EvPage*"/>
      </field>
      <field name="rotation">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="scale">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="target_width">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="target_height">
        <type name="gint" c:type="gint"/>
      </field>
    </class>
    <record name="RenderContextClass"
            c:type="EvRenderContextClass"
            glib:is-gtype-struct-for="RenderContext">
      <field name="klass">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <interface name="Selection"
               c:symbol-prefix="selection"
               c:type="EvSelection"
               glib:type-name="EvSelection"
               glib:get-type="ev_selection_get_type"
               glib:type-struct="SelectionInterface">
      <virtual-method name="get_selected_text" invoker="get_selected_text">
        <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="EvSelection*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="SelectionStyle" c:type="EvSelectionStyle"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_selection_region"
                      invoker="get_selection_region">
        <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="EvSelection*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="EvRenderContext*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="SelectionStyle" c:type="EvSelectionStyle"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="render_selection" invoker="render_selection">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <type name="Selection" c:type="EvSelection*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="EvRenderContext*"/>
          </parameter>
          <parameter name="surface" transfer-ownership="none">
            <type name="cairo.Surface" c:type="cairo_surface_t**"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </parameter>
          <parameter name="old_points" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="SelectionStyle" c:type="EvSelectionStyle"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="Gdk.Color" c:type="GdkColor*"/>
          </parameter>
          <parameter name="base" transfer-ownership="none">
            <type name="Gdk.Color" c:type="GdkColor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_selected_text"
              c:identifier="ev_selection_get_selected_text">
        <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="EvSelection*"/>
          </instance-parameter>
          <parameter name="page" transfer-ownership="none">
            <type name="Page" c:type="EvPage*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="SelectionStyle" c:type="EvSelectionStyle"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_selection_region"
              c:identifier="ev_selection_get_selection_region">
        <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="EvSelection*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="EvRenderContext*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="SelectionStyle" c:type="EvSelectionStyle"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="render_selection"
              c:identifier="ev_selection_render_selection">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <type name="Selection" c:type="EvSelection*"/>
          </instance-parameter>
          <parameter name="rc" transfer-ownership="none">
            <type name="RenderContext" c:type="EvRenderContext*"/>
          </parameter>
          <parameter name="surface" transfer-ownership="none">
            <type name="cairo.Surface" c:type="cairo_surface_t**"/>
          </parameter>
          <parameter name="points" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </parameter>
          <parameter name="old_points" transfer-ownership="none">
            <type name="Rectangle" c:type="EvRectangle*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="SelectionStyle" c:type="EvSelectionStyle"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="Gdk.Color" c:type="GdkColor*"/>
          </parameter>
          <parameter name="base" transfer-ownership="none">
            <type name="Gdk.Color" c:type="GdkColor*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="SelectionInterface"
            c:type="EvSelectionInterface"
            glib:is-gtype-struct-for="Selection">
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="render_selection">
        <callback name="render_selection">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="selection" transfer-ownership="none">
              <type name="Selection" c:type="EvSelection*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <type name="RenderContext" c:type="EvRenderContext*"/>
            </parameter>
            <parameter name="surface" transfer-ownership="none">
              <type name="cairo.Surface" c:type="cairo_surface_t**"/>
            </parameter>
            <parameter name="points" transfer-ownership="none">
              <type name="Rectangle" c:type="EvRectangle*"/>
            </parameter>
            <parameter name="old_points" transfer-ownership="none">
              <type name="Rectangle" c:type="EvRectangle*"/>
            </parameter>
            <parameter name="style" transfer-ownership="none">
              <type name="SelectionStyle" c:type="EvSelectionStyle"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="Gdk.Color" c:type="GdkColor*"/>
            </parameter>
            <parameter name="base" transfer-ownership="none">
              <type name="Gdk.Color" c:type="GdkColor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_selected_text">
        <callback name="get_selected_text">
          <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="EvSelection*"/>
            </parameter>
            <parameter name="page" transfer-ownership="none">
              <type name="Page" c:type="EvPage*"/>
            </parameter>
            <parameter name="style" transfer-ownership="none">
              <type name="SelectionStyle" c:type="EvSelectionStyle"/>
            </parameter>
            <parameter name="points" transfer-ownership="none">
              <type name="Rectangle" c:type="EvRectangle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_selection_region">
        <callback name="get_selection_region">
          <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="EvSelection*"/>
            </parameter>
            <parameter name="rc" transfer-ownership="none">
              <type name="RenderContext" c:type="EvRenderContext*"/>
            </parameter>
            <parameter name="style" transfer-ownership="none">
              <type name="SelectionStyle" c:type="EvSelectionStyle"/>
            </parameter>
            <parameter name="points" transfer-ownership="none">
              <type name="Rectangle" c:type="EvRectangle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="SelectionStyle"
                 glib:type-name="EvSelectionStyle"
                 glib:get-type="ev_selection_style_get_type"
                 c:type="EvSelectionStyle">
      <member name="glyph"
              value="0"
              c:identifier="EV_SELECTION_STYLE_GLYPH"
              glib:nick="glyph">
      </member>
      <member name="word"
              value="1"
              c:identifier="EV_SELECTION_STYLE_WORD"
              glib:nick="word">
      </member>
      <member name="line"
              value="2"
              c:identifier="EV_SELECTION_STYLE_LINE"
              glib:nick="line">
      </member>
    </enumeration>
    <record name="SourceLink"
            c:type="EvSourceLink"
            glib:type-name="EvSourceLink"
            glib:get-type="ev_source_link_get_type"
            c:symbol-prefix="source_link">
      <field name="filename" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="line" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="col" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <constructor name="new" c:identifier="ev_source_link_new">
        <return-value transfer-ownership="full">
          <type name="SourceLink" c:type="EvSourceLink*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="col" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="ev_source_link_copy">
        <return-value transfer-ownership="full">
          <type name="SourceLink" c:type="EvSourceLink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <type name="SourceLink" c:type="EvSourceLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ev_source_link_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <type name="SourceLink" c:type="EvSourceLink*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="TransitionEffect"
           c:symbol-prefix="transition_effect"
           c:type="EvTransitionEffect"
           parent="GObject.Object"
           glib:type-name="EvTransitionEffect"
           glib:get-type="ev_transition_effect_get_type"
           glib:type-struct="TransitionEffectClass">
      <constructor name="new"
                   c:identifier="ev_transition_effect_new"
                   introspectable="0">
        <return-value transfer-ownership="full">
          <type name="TransitionEffect" c:type="EvTransitionEffect*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <type name="TransitionEffectType" c:type="EvTransitionEffectType"/>
          </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">
        <type name="TransitionEffectAlignment"/>
      </property>
      <property name="angle" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="direction" writable="1" transfer-ownership="none">
        <type name="TransitionEffectDirection"/>
      </property>
      <property name="duration" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="rectangular" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="scale" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="type" writable="1" transfer-ownership="none">
        <type name="TransitionEffectType"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <enumeration name="TransitionEffectAlignment"
                 glib:type-name="EvTransitionEffectAlignment"
                 glib:get-type="ev_transition_effect_alignment_get_type"
                 c:type="EvTransitionEffectAlignment">
      <member name="horizontal"
              value="0"
              c:identifier="EV_TRANSITION_ALIGNMENT_HORIZONTAL"
              glib:nick="horizontal">
      </member>
      <member name="vertical"
              value="1"
              c:identifier="EV_TRANSITION_ALIGNMENT_VERTICAL"
              glib:nick="vertical">
      </member>
    </enumeration>
    <record name="TransitionEffectClass"
            c:type="EvTransitionEffectClass"
            glib:is-gtype-struct-for="TransitionEffect">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="TransitionEffectDirection"
                 glib:type-name="EvTransitionEffectDirection"
                 glib:get-type="ev_transition_effect_direction_get_type"
                 c:type="EvTransitionEffectDirection">
      <member name="inward"
              value="0"
              c:identifier="EV_TRANSITION_DIRECTION_INWARD"
              glib:nick="inward">
      </member>
      <member name="outward"
              value="1"
              c:identifier="EV_TRANSITION_DIRECTION_OUTWARD"
              glib:nick="outward">
      </member>
    </enumeration>
    <enumeration name="TransitionEffectType"
                 glib:type-name="EvTransitionEffectType"
                 glib:get-type="ev_transition_effect_type_get_type"
                 c:type="EvTransitionEffectType">
      <member name="replace"
              value="0"
              c:identifier="EV_TRANSITION_EFFECT_REPLACE"
              glib:nick="replace">
      </member>
      <member name="split"
              value="1"
              c:identifier="EV_TRANSITION_EFFECT_SPLIT"
              glib:nick="split">
      </member>
      <member name="blinds"
              value="2"
              c:identifier="EV_TRANSITION_EFFECT_BLINDS"
              glib:nick="blinds">
      </member>
      <member name="box"
              value="3"
              c:identifier="EV_TRANSITION_EFFECT_BOX"
              glib:nick="box">
      </member>
      <member name="wipe"
              value="4"
              c:identifier="EV_TRANSITION_EFFECT_WIPE"
              glib:nick="wipe">
      </member>
      <member name="dissolve"
              value="5"
              c:identifier="EV_TRANSITION_EFFECT_DISSOLVE"
              glib:nick="dissolve">
      </member>
      <member name="glitter"
              value="6"
              c:identifier="EV_TRANSITION_EFFECT_GLITTER"
              glib:nick="glitter">
      </member>
      <member name="fly"
              value="7"
              c:identifier="EV_TRANSITION_EFFECT_FLY"
              glib:nick="fly">
      </member>
      <member name="push"
              value="8"
              c:identifier="EV_TRANSITION_EFFECT_PUSH"
              glib:nick="push">
      </member>
      <member name="cover"
              value="9"
              c:identifier="EV_TRANSITION_EFFECT_COVER"
              glib:nick="cover">
      </member>
      <member name="uncover"
              value="10"
              c:identifier="EV_TRANSITION_EFFECT_UNCOVER"
              glib:nick="uncover">
      </member>
      <member name="fade"
              value="11"
              c:identifier="EV_TRANSITION_EFFECT_FADE"
              glib:nick="fade">
      </member>
    </enumeration>
    <record name="TypeInfo" c:type="EvTypeInfo">
      <field name="desc" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="mime_types" writable="1">
        <type name="utf8" c:type="const gchar**"/>
      </field>
    </record>
    <function name="backends_manager_get_all_types_info"
              c:identifier="ev_backends_manager_get_all_types_info"
              introspectable="0">
      <return-value>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
    </function>
    <function name="backends_manager_get_document"
              c:identifier="ev_backends_manager_get_document">
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new #EvDocument</doc>
        <type name="Document" c:type="EvDocument*"/>
      </return-value>
      <parameters>
        <parameter name="mime_type" transfer-ownership="none">
          <doc xml:space="preserve">a mime type hint</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="backends_manager_get_document_module_name"
              c:identifier="ev_backends_manager_get_document_module_name">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="document" transfer-ownership="none">
          <type name="Document" c:type="EvDocument*"/>
        </parameter>
      </parameters>
    </function>
    <function name="backends_manager_get_document_type_info"
              c:identifier="ev_backends_manager_get_document_type_info"
              introspectable="0">
      <return-value>
        <type name="TypeInfo" c:type="EvTypeInfo*"/>
      </return-value>
      <parameters>
        <parameter name="document" transfer-ownership="none">
          <type name="Document" c:type="EvDocument*"/>
        </parameter>
      </parameters>
    </function>
    <function name="document_error_quark"
              c:identifier="ev_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="ev_file_compress" throws="1">
      <doc xml:space="preserve">Compresses the file at @uri.
 
If @type is %EV_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>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">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">a file URI</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve">the compression type</doc>
          <type name="CompressionType" c:type="EvCompressionType"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_copy_metadata"
              c:identifier="ev_file_copy_metadata"
              version="3.4"
              throws="1">
      <doc xml:space="preserve">Performs a g_file_copy_attributes() with %G_FILE_COPY_ALL_METADATA
from @from to @to.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%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">the source URI</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="to" transfer-ownership="none">
          <doc xml:space="preserve">the target URI</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_get_mime_type"
              c:identifier="ev_file_get_mime_type"
              throws="1">
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">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">the URI</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="fast" transfer-ownership="none">
          <doc xml:space="preserve">whether to use fast MIME type detection</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_is_temp" c:identifier="ev_file_is_temp">
      <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="ev_file_uncompress"
              throws="1">
      <doc xml:space="preserve">Uncompresses the file at @uri.

If @type is %EV_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>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">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">a file URI</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve">the compression type</doc>
          <type name="CompressionType" c:type="EvCompressionType"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_locale_dir" c:identifier="ev_get_locale_dir">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
    </function>
    <function name="init" c:identifier="ev_init">
      <doc xml:space="preserve">Initializes the evince document library, and binds the evince
gettext domain.

You must call this before calling any other function in the evince
document library.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if any backends were found; %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="mkdtemp" c:identifier="ev_mkdtemp" throws="1">
      <doc xml:space="preserve">Creates a temp directory in the evince temp directory.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a newly allocated string with the temp directory name, or %NULL
  on error with @error filled in</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="tmpl" transfer-ownership="none">
          <doc xml:space="preserve">a template string; must end in 'XXXXXX'</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mkstemp" c:identifier="ev_mkstemp" throws="1">
      <doc xml:space="preserve">Creates a temp file in the evince temp directory.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">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">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" transfer-ownership="none">
          <doc xml:space="preserve">a location to store the filename of the temp file</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="mkstemp_file" c:identifier="ev_mkstemp_file" throws="1">
      <doc xml:space="preserve">Creates a temp #GFile in the evince temp directory. See ev_mkstemp() for more information.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">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">a template string; must contain 'XXXXXX', but not necessarily as a suffix</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rect_cmp" c:identifier="ev_rect_cmp">
      <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="EvRectangle*"/>
        </parameter>
        <parameter name="b" transfer-ownership="none">
          <type name="Rectangle" c:type="EvRectangle*"/>
        </parameter>
      </parameters>
    </function>
    <function name="shutdown" c:identifier="ev_shutdown">
      <doc xml:space="preserve">Shuts the evince document library down.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="tmp_file_unlink" c:identifier="ev_tmp_file_unlink">
      <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="ev_tmp_filename_unlink">
      <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="ev_tmp_uri_unlink">
      <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="ev_xfer_uri_simple"
              throws="1">
      <doc xml:space="preserve">Performs a g_file_copy() from @from to @to.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%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">the source URI</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="to" transfer-ownership="none">
          <doc xml:space="preserve">the target URI</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
