<?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="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="cairo" version="1.0"/>
  <namespace name="GXPS"
             version="0.1"
             shared-library="libgxps.so.2"
             c:identifier-prefixes="GXPS"
             c:symbol-prefixes="gxps">
    <class name="CoreProperties"
           c:symbol-prefix="core_properties"
           c:type="GXPSCoreProperties"
           parent="GObject.Object"
           glib:type-name="GXPSCoreProperties"
           glib:get-type="gxps_core_properties_get_type"
           glib:type-struct="CorePropertiesClass">
      <doc xml:space="preserve">The &lt;structname&gt;GXPSCoreProperties&lt;/structname&gt; struct contains
only private fields and should not be directly accessed.</doc>
      <implements name="Gio.Initable"/>
      <method name="get_category"
              c:identifier="gxps_core_properties_get_category"
              version="0.2.3">
        <doc xml:space="preserve">Get the category.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the category or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_status"
              c:identifier="gxps_core_properties_get_content_status"
              version="0.2.3">
        <doc xml:space="preserve">Get the status of the content (e.g. Draft, Reviewed, Final)</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the status of the content or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_type"
              c:identifier="gxps_core_properties_get_content_type"
              version="0.2.3">
        <doc xml:space="preserve">Get the type of content represented, generally defined by a
specific use and intended audience. This is not the MIME-Type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the type of content or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_created"
              c:identifier="gxps_core_properties_get_created"
              version="0.2.3">
        <doc xml:space="preserve">Get the creating date.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the creating date as a &lt;type&gt;time_t&lt;/type&gt; or -1.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_creator"
              c:identifier="gxps_core_properties_get_creator"
              version="0.2.3">
        <doc xml:space="preserve">Get the creator.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the creator or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="gxps_core_properties_get_description"
              version="0.2.3">
        <doc xml:space="preserve">Get the description.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the description or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_identifier"
              c:identifier="gxps_core_properties_get_identifier"
              version="0.2.3">
        <doc xml:space="preserve">Get the unique identifier.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the identifier or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keywords"
              c:identifier="gxps_core_properties_get_keywords"
              version="0.2.3">
        <doc xml:space="preserve">Get the keywords.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the keywords or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_language"
              c:identifier="gxps_core_properties_get_language"
              version="0.2.3">
        <doc xml:space="preserve">Get the language.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the language or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_last_modified_by"
              c:identifier="gxps_core_properties_get_last_modified_by"
              version="0.2.3">
        <doc xml:space="preserve">Get the user who performed the last modification.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the user who performed the
   last modification or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_last_printed"
              c:identifier="gxps_core_properties_get_last_printed"
              version="0.2.3">
        <doc xml:space="preserve">Get the date of the last printing.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the date of the last printing as a &lt;type&gt;time_t&lt;/type&gt; or -1.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modified"
              c:identifier="gxps_core_properties_get_modified"
              version="0.2.3">
        <doc xml:space="preserve">Get the last modification date.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the modification date as a &lt;type&gt;time_t&lt;/type&gt; or -1.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_revision"
              c:identifier="gxps_core_properties_get_revision"
              version="0.2.3">
        <doc xml:space="preserve">Get the revision number.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the revision number or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subject"
              c:identifier="gxps_core_properties_get_subject"
              version="0.2.3">
        <doc xml:space="preserve">Get the subject.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the subject or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="gxps_core_properties_get_title"
              version="0.2.3">
        <doc xml:space="preserve">Get the title.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the title or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version"
              c:identifier="gxps_core_properties_get_version"
              version="0.2.3">
        <doc xml:space="preserve">Get the version number.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string containing the version number or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="core_props" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSCoreProperties</doc>
            <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="archive"
                introspectable="0"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type/>
      </property>
      <property name="source"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CorePropertiesPrivate"
              c:type="GXPSCorePropertiesPrivate*"/>
      </field>
    </class>
    <record name="CorePropertiesClass"
            c:type="GXPSCorePropertiesClass"
            glib:is-gtype-struct-for="CoreProperties">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="CorePropertiesPrivate"
            c:type="GXPSCorePropertiesPrivate"
            disguised="1">
    </record>
    <class name="Document"
           c:symbol-prefix="document"
           c:type="GXPSDocument"
           parent="GObject.Object"
           glib:type-name="GXPSDocument"
           glib:get-type="gxps_document_get_type"
           glib:type-struct="DocumentClass">
      <doc xml:space="preserve">The &lt;structname&gt;GXPSDocument&lt;/structname&gt; struct contains
only private fields and should not be directly accessed.</doc>
      <implements name="Gio.Initable"/>
      <method name="get_n_pages" c:identifier="gxps_document_get_n_pages">
        <doc xml:space="preserve">Gets the number of pages in @doc.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of pages.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSDocument</doc>
            <type name="Document" c:type="GXPSDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page" c:identifier="gxps_document_get_page" throws="1">
        <doc xml:space="preserve">Creates a new #GXPSPage representing the page at
index @n_doc in @doc document.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GXPSPage or %NULL on error.
    Free the returned object with g_object_unref().</doc>
          <type name="Page" c:type="GXPSPage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSDocument</doc>
            <type name="Document" c:type="GXPSDocument*"/>
          </instance-parameter>
          <parameter name="n_page" transfer-ownership="none">
            <doc xml:space="preserve">the index of the page to get</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_page_for_anchor"
              c:identifier="gxps_document_get_page_for_anchor">
        <doc xml:space="preserve">Gets the index of the page in @doc where the given
anchor is.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the page index of the given anchor.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSDocument</doc>
            <type name="Document" c:type="GXPSDocument*"/>
          </instance-parameter>
          <parameter name="anchor" transfer-ownership="none">
            <doc xml:space="preserve">the name of an anchor</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_page_size" c:identifier="gxps_document_get_page_size">
        <doc xml:space="preserve">Gets the typical size of the page at index @n_page in @doc document.
This function is useful to get the advisory size of pages in a document
without creating #GXPSPage objects. This page size might be different than
the actual page size so page dimension might need to be updated once the
page is loaded. Advisory page sizes are not always available in @doc,
in which case this function returns %FALSE.
To get the authoritative size of a page you should use gxps_page_get_size()
instead.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the page size information is available in @doc,
    %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSDocument</doc>
            <type name="Document" c:type="GXPSDocument*"/>
          </instance-parameter>
          <parameter name="n_page" transfer-ownership="none">
            <doc xml:space="preserve">the index of a page in @doc</doc>
            <type name="guint" c:type="guint"/>
          </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 @n_page</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </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 @n_page</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_structure" c:identifier="gxps_document_get_structure">
        <doc xml:space="preserve">Creates a new #GXPSDocumentStructure representing the document
structure of @doc.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GXPSDocumentStructure or %NULL if document doesn't have a structure.
    Free the returned object with g_object_unref().</doc>
          <type name="DocumentStructure" c:type="GXPSDocumentStructure*"/>
        </return-value>
        <parameters>
          <instance-parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve">a a #GXPSDocument</doc>
            <type name="Document" c:type="GXPSDocument*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="archive"
                introspectable="0"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type/>
      </property>
      <property name="source"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="DocumentPrivate" c:type="GXPSDocumentPrivate*"/>
      </field>
    </class>
    <record name="DocumentClass"
            c:type="GXPSDocumentClass"
            glib:is-gtype-struct-for="Document">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="DocumentPrivate" c:type="GXPSDocumentPrivate" disguised="1">
    </record>
    <class name="DocumentStructure"
           c:symbol-prefix="document_structure"
           c:type="GXPSDocumentStructure"
           parent="GObject.Object"
           glib:type-name="GXPSDocumentStructure"
           glib:get-type="gxps_document_structure_get_type"
           glib:type-struct="DocumentStructureClass">
      <doc xml:space="preserve">The &lt;structname&gt;GXPSDocumentStructure&lt;/structname&gt; struct contains
only private fields and should not be directly accessed.</doc>
      <function name="outline_iter_init"
                c:identifier="gxps_document_structure_outline_iter_init">
        <doc xml:space="preserve">Initializes @iter to the root item of the outline contained by @structure
and a associates it with @structure.

Here is a simple example of some code that walks the full outline:

&lt;informalexample&gt;&lt;programlisting&gt;
static void
walk_outline (GXPSOutlineIter *iter)
{
    do {
        GXPSOutlineIter child_iter;
        const gchar    *description = gxps_outline_iter_get_description (iter);
        GXPSLinkTarget *target = gxps_outline_iter_get_target (iter);

        /&lt;!-- --&gt;* Do something with description and taregt *&lt;!-- --&gt;/
        if (gxps_outline_iter_children (&amp;child_iter, iter))
            walk_outline (&amp;child_iter);
    } while (gxps_outline_iter_next (iter));
}
...
{
    GXPSOutlineIter iter;
    if (gxps_document_structure_outline_iter_init (&amp;iter, structure))
        walk_outline (&amp;iter);
}
&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @iter was successfully initialized to the root item,
    %FALSE if it failed or @structure does not have an outline.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">an uninitialized #GXPSOutlineIter</doc>
            <type name="OutlineIter" c:type="GXPSOutlineIter*"/>
          </parameter>
          <parameter name="structure" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSDocumentStructure</doc>
            <type name="DocumentStructure" c:type="GXPSDocumentStructure*"/>
          </parameter>
        </parameters>
      </function>
      <method name="has_outline"
              c:identifier="gxps_document_structure_has_outline">
        <doc xml:space="preserve">Whether @structure has an outline or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @structure has an outline, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="structure" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSDocumentStructure</doc>
            <type name="DocumentStructure" c:type="GXPSDocumentStructure*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="archive"
                introspectable="0"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type/>
      </property>
      <property name="source"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="DocumentStructurePrivate"
              c:type="GXPSDocumentStructurePrivate*"/>
      </field>
    </class>
    <record name="DocumentStructureClass"
            c:type="GXPSDocumentStructureClass"
            glib:is-gtype-struct-for="DocumentStructure">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="DocumentStructurePrivate"
            c:type="GXPSDocumentStructurePrivate"
            disguised="1">
    </record>
    <enumeration name="Error"
                 c:type="GXPSError"
                 glib:error-domain="gxps-error-quark">
      <doc xml:space="preserve">Error codes returned by GXPS functions.</doc>
      <member name="source_not_found"
              value="0"
              c:identifier="GXPS_ERROR_SOURCE_NOT_FOUND">
        <doc xml:space="preserve">Internal source file not found in XPS file</doc>
      </member>
      <member name="font" value="1" c:identifier="GXPS_ERROR_FONT">
        <doc xml:space="preserve">Error loading fonts</doc>
      </member>
      <member name="image" value="2" c:identifier="GXPS_ERROR_IMAGE">
        <doc xml:space="preserve">Error loading images</doc>
      </member>
    </enumeration>
    <class name="File"
           c:symbol-prefix="file"
           c:type="GXPSFile"
           parent="GObject.Object"
           glib:type-name="GXPSFile"
           glib:get-type="gxps_file_get_type"
           glib:type-struct="FileClass">
      <doc xml:space="preserve">The &lt;structname&gt;GXPSFile&lt;/structname&gt; struct contains
only private fields and should not be directly accessed.</doc>
      <implements name="Gio.Initable"/>
      <constructor name="new" c:identifier="gxps_file_new" throws="1">
        <doc xml:space="preserve">Creates a new #GXPSFile for the given #GFile.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GXPSFile or %NULL on error.</doc>
          <type name="File" c:type="GXPSFile*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="error_quark" c:identifier="gxps_file_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <method name="get_core_properties"
              c:identifier="gxps_file_get_core_properties"
              throws="1">
        <doc xml:space="preserve">Create a #GXPSCoreProperties object containing the metadata
of @xpsm, or %NULL in case of error or if the #GXPSFile
doesn't contain core properties.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GXPSCoreProperties or %NULL.
   Free the returned object with g_object_unref().</doc>
          <type name="CoreProperties" c:type="GXPSCoreProperties*"/>
        </return-value>
        <parameters>
          <instance-parameter name="xps" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSFile</doc>
            <type name="File" c:type="GXPSFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_document"
              c:identifier="gxps_file_get_document"
              throws="1">
        <doc xml:space="preserve">Creates a new #GXPSDocument representing the document at
index @n_doc in @xps file.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GXPSDocument or %NULL on error.
    Free the returned object with g_object_unref().</doc>
          <type name="Document" c:type="GXPSDocument*"/>
        </return-value>
        <parameters>
          <instance-parameter name="xps" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSFile</doc>
            <type name="File" c:type="GXPSFile*"/>
          </instance-parameter>
          <parameter name="n_doc" transfer-ownership="none">
            <doc xml:space="preserve">the index of the document to get</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_document_for_link_target"
              c:identifier="gxps_file_get_document_for_link_target">
        <doc xml:space="preserve">Gets the index of the document in @xps pointed by @target.
If the #GXPSLinkTarget does not reference a document, or
referenced document is not found in @xps file -1 will be
returned. In this case you can look for the page pointed by
the link target by calling gxps_document_get_page_for_anchor()
with the anchor of the #GXPSLinkTarget for every document in
@xps.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the index of the document pointed by the given
    #GXPSLinkTarget or -1.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="xps" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSFile</doc>
            <type name="File" c:type="GXPSFile*"/>
          </instance-parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSLinkTarget</doc>
            <type name="LinkTarget" c:type="GXPSLinkTarget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_n_documents" c:identifier="gxps_file_get_n_documents">
        <doc xml:space="preserve">Gets the number of documents in @xps.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of documents.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="xps" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSFile</doc>
            <type name="File" c:type="GXPSFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="file"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="FilePrivate" c:type="GXPSFilePrivate*"/>
      </field>
    </class>
    <record name="FileClass"
            c:type="GXPSFileClass"
            glib:is-gtype-struct-for="File">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="FileError" c:type="GXPSFileError">
      <doc xml:space="preserve">Error codes returned by #GXPSFile functions.</doc>
      <member name="file_error_invalid"
              value="0"
              c:identifier="GXPS_FILE_ERROR_INVALID">
        <doc xml:space="preserve">The XPS is invalid.</doc>
      </member>
    </enumeration>
    <record name="FilePrivate" c:type="GXPSFilePrivate" disguised="1">
    </record>
    <record name="Link"
            c:type="GXPSLink"
            glib:type-name="GXPSLink"
            glib:get-type="gxps_link_get_type"
            c:symbol-prefix="link">
      <doc xml:space="preserve">GXPSLink maps a location in a page to a #GXPSLinkTarget.</doc>
      <method name="copy" c:identifier="gxps_link_copy">
        <doc xml:space="preserve">Creates a copy of a #GXPSLink.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of @link.
    Free the returned object with gxps_link_free().</doc>
          <type name="Link" c:type="GXPSLink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSLink</doc>
            <type name="Link" c:type="GXPSLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gxps_link_free">
        <doc xml:space="preserve">Frees a #GXPSLink.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSLink</doc>
            <type name="Link" c:type="GXPSLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_area"
              c:identifier="gxps_link_get_area"
              introspectable="0">
        <doc xml:space="preserve">Gets the rectangle of a page where the #GXPSLinkTarget
mapped by @link is.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSLink</doc>
            <type name="Link" c:type="GXPSLink*"/>
          </instance-parameter>
          <parameter name="area"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">return location for page area</doc>
            <type c:type="cairo_rectangle_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_target" c:identifier="gxps_link_get_target">
        <doc xml:space="preserve">Gets the #GXPSLinkTarget mapped by @link.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GXPSLinkTarget of @link.</doc>
          <type name="LinkTarget" c:type="GXPSLinkTarget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSLink</doc>
            <type name="Link" c:type="GXPSLink*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="LinkTarget"
            c:type="GXPSLinkTarget"
            glib:type-name="GXPSLinkTarget"
            glib:get-type="gxps_link_target_get_type"
            c:symbol-prefix="link_target">
      <doc xml:space="preserve">GXPSLinkTarget represents a hyperlink source.</doc>
      <method name="copy" c:identifier="gxps_link_target_copy">
        <doc xml:space="preserve">Creates a copy of a #GXPSLinkTarget</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of @target.
    Free the returned object with gxps_link_target_free()</doc>
          <type name="LinkTarget" c:type="GXPSLinkTarget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSLinkTarget</doc>
            <type name="LinkTarget" c:type="GXPSLinkTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gxps_link_target_free">
        <doc xml:space="preserve">Frees a #GXPSLinkTarget.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSLinkTarget</doc>
            <type name="LinkTarget" c:type="GXPSLinkTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_anchor" c:identifier="gxps_link_target_get_anchor">
        <doc xml:space="preserve">Gets the anchor name @target links to. If @target is
an internal #GXPSLinkTarget this function always returns
and anchor, if it is external it might return %NULL if the
@target does not have an anchor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of the anchor of @target.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSLinkTarget</doc>
            <type name="LinkTarget" c:type="GXPSLinkTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="gxps_link_target_get_uri">
        <doc xml:space="preserve">Gets the URI @target links to.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the URI of @target.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSLinkTarget</doc>
            <type name="LinkTarget" c:type="GXPSLinkTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_internal" c:identifier="gxps_link_target_is_internal">
        <doc xml:space="preserve">Gets whether @target destination is internal or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the #GXPSLinkTarget points to an internal location,
    %FALSE if it points to a external one.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSLinkTarget</doc>
            <type name="LinkTarget" c:type="GXPSLinkTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="OutlineIter" c:type="GXPSOutlineIter">
      <doc xml:space="preserve">GXPSOutlineIter represents an iterator that can be
used to iterate over the items of an outline
contained in a #GXPSDocumentStructure</doc>
      <field name="dummy1" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy2" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <method name="children" c:identifier="gxps_outline_iter_children">
        <doc xml:space="preserve">Initializes @iter to the first child item of @parent.
See gxps_document_structure_outline_iter_init() for
more details.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @iter was set to the first child of @parent,
    %FALSE if @parent does not have children.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">an uninitialized #GXPSOutlineIter</doc>
            <type name="OutlineIter" c:type="GXPSOutlineIter*"/>
          </instance-parameter>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:space="preserve">an initialized #GXPSOutlineIter</doc>
            <type name="OutlineIter" c:type="GXPSOutlineIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="gxps_outline_iter_get_description">
        <doc xml:space="preserve">Gets the description of the outline item associated with @iter.
See gxps_document_structure_outline_iter_init() for
more details.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the description of the outline item</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">an initialized #GXPSOutlineIter</doc>
            <type name="OutlineIter" c:type="GXPSOutlineIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_target" c:identifier="gxps_outline_iter_get_target">
        <doc xml:space="preserve">Gets the #GXPSLinkTarget of the outline item associated with @iter.
See gxps_document_structure_outline_iter_init() for
more details.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new allocated #GXPSLinkTarget.
    Free the returned object with gxps_link_target_free().</doc>
          <type name="LinkTarget" c:type="GXPSLinkTarget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">an initialized #GXPSOutlineIter</doc>
            <type name="OutlineIter" c:type="GXPSOutlineIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="gxps_outline_iter_next">
        <doc xml:space="preserve">Advances @iter to the next item at the current level.
See gxps_document_structure_outline_iter_init() for
more details.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @iter was set to the next item,
    %FALSE if the end of the current level has been reached</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">an initialized #GXPSOutlineIter</doc>
            <type name="OutlineIter" c:type="GXPSOutlineIter*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="Page"
           c:symbol-prefix="page"
           c:type="GXPSPage"
           parent="GObject.Object"
           glib:type-name="GXPSPage"
           glib:get-type="gxps_page_get_type"
           glib:type-struct="PageClass">
      <doc xml:space="preserve">The &lt;structname&gt;GXPSPage&lt;/structname&gt; struct contains
only private fields and should not be directly accessed.</doc>
      <implements name="Gio.Initable"/>
      <function name="error_quark" c:identifier="gxps_page_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <method name="get_anchor_destination"
              c:identifier="gxps_page_get_anchor_destination"
              introspectable="0"
              throws="1">
        <doc xml:space="preserve">Gets the rectangle of @page corresponding to the destination
of the given anchor. If @anchor is not found in @page, %FALSE
will be returned and @error will contain %GXPS_PAGE_ERROR_INVALID_ANCHOR</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the destination for the anchor was found in page
    and @area contains the rectangle, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSPage</doc>
            <type name="Page" c:type="GXPSPage*"/>
          </instance-parameter>
          <parameter name="anchor" transfer-ownership="none">
            <doc xml:space="preserve">the name of an anchor in @page</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="area"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">return location for page area of @anchor</doc>
            <type c:type="cairo_rectangle_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_links" c:identifier="gxps_page_get_links" throws="1">
        <doc xml:space="preserve">Gets a list of #GXPSLink items that map from a location
in @page to a #GXPSLinkTarget. Items in the list should
be freed with gxps_link_free() and the list itself with
g_list_free() when done.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GList
    of #GXPSLink items.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Link"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSPage</doc>
            <type name="Page" c:type="GXPSPage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="gxps_page_get_size">
        <doc xml:space="preserve">Gets the size of the page.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSPage</doc>
            <type name="Page" c:type="GXPSPage*"/>
          </instance-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 page width</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </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 page height</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="render" c:identifier="gxps_page_render" throws="1">
        <doc xml:space="preserve">Render the page to the given cairo context. In case of
error, %FALSE is returned and @error is filled with
information about error.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if page was successfully rendered,
    %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">a #GXPSPage</doc>
            <type name="Page" c:type="GXPSPage*"/>
          </instance-parameter>
          <parameter name="cr" transfer-ownership="none">
            <doc xml:space="preserve">a cairo context to render to</doc>
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
        </parameters>
      </method>
      <property name="archive"
                introspectable="0"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type/>
      </property>
      <property name="source"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="PagePrivate" c:type="GXPSPagePrivate*"/>
      </field>
    </class>
    <record name="PageClass"
            c:type="GXPSPageClass"
            glib:is-gtype-struct-for="Page">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="PageError" c:type="GXPSPageError">
      <doc xml:space="preserve">Error codes returned by #GXPSPage functions</doc>
      <member name="invalid" value="0" c:identifier="GXPS_PAGE_ERROR_INVALID">
        <doc xml:space="preserve">The page is invalid.</doc>
      </member>
      <member name="render" value="1" c:identifier="GXPS_PAGE_ERROR_RENDER">
        <doc xml:space="preserve">Error rendering the page.</doc>
      </member>
      <member name="invalid_anchor"
              value="2"
              c:identifier="GXPS_PAGE_ERROR_INVALID_ANCHOR">
        <doc xml:space="preserve">Anchor is invalid for the page.</doc>
      </member>
    </enumeration>
    <record name="PagePrivate" c:type="GXPSPagePrivate" disguised="1">
    </record>
    <function name="error_quark" c:identifier="gxps_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
