<?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="Clutter" version="1.0"/>
  <package name="champlain-0.12"/>
  <c:include name="champlain/champlain.h"/>
  <namespace name="Champlain"
             version="0.12"
             shared-library="libchamplain-0.12.so.1.4"
             c:identifier-prefixes="Champlain"
             c:symbol-prefixes="champlain">
    <class name="Adjustment"
           c:symbol-prefix="adjustment"
           c:type="ChamplainAdjustment"
           parent="GObject.Object"
           glib:type-name="ChamplainAdjustment"
           glib:get-type="champlain_adjustment_get_type"
           glib:type-struct="AdjustmentClass">
      <doc xml:space="preserve">Class for handling an interval between to values. The contents of
the #ChamplainAdjustment are private and should be accessed using the
public API.</doc>
      <constructor name="new" c:identifier="champlain_adjustment_new">
        <return-value transfer-ownership="full">
          <type name="Adjustment" c:type="ChamplainAdjustment*"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="lower" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="upper" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="step_increment" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="ChamplainAdjustment*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="clamp" c:identifier="champlain_adjustment_clamp">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="ChamplainAdjustment*"/>
          </instance-parameter>
          <parameter name="interpolate" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="n_frames" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="fps" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value" c:identifier="champlain_adjustment_get_value">
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="ChamplainAdjustment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_values" c:identifier="champlain_adjustment_get_values">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="ChamplainAdjustment*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="lower" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="upper" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="step_increment" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="interpolate"
              c:identifier="champlain_adjustment_interpolate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="ChamplainAdjustment*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="n_frames" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="fps" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="interpolate_stop"
              c:identifier="champlain_adjustment_interpolate_stop">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="ChamplainAdjustment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_value" c:identifier="champlain_adjustment_set_value">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="ChamplainAdjustment*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_values" c:identifier="champlain_adjustment_set_values">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="ChamplainAdjustment*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="lower" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="upper" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="step_increment" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <property name="lower" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="step-increment" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="upper" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="value" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <field name="parent_instance" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="AdjustmentPrivate" c:type="ChamplainAdjustmentPrivate*"/>
      </field>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="AdjustmentClass"
            c:type="ChamplainAdjustmentClass"
            glib:is-gtype-struct-for="Adjustment">
      <doc xml:space="preserve">Base class for #ChamplainAdjustment.</doc>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="adjustment" transfer-ownership="none">
              <type name="Adjustment" c:type="ChamplainAdjustment*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="AdjustmentPrivate"
            c:type="ChamplainAdjustmentPrivate"
            disguised="1">
    </record>
    <record name="BoundingBox"
            c:type="ChamplainBoundingBox"
            version="0.6"
            glib:type-name="ChamplainBoundingBox"
            glib:get-type="champlain_bounding_box_get_type"
            c:symbol-prefix="bounding_box">
      <doc xml:space="preserve">Defines the area of a ChamplainMapDataSource that contains data.</doc>
      <field name="left" writable="1">
        <doc xml:space="preserve">left coordinate</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="top" writable="1">
        <doc xml:space="preserve">top coordinate</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="right" writable="1">
        <doc xml:space="preserve">right coordinate</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="bottom" writable="1">
        <doc xml:space="preserve">bottom coordinate</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <constructor name="new"
                   c:identifier="champlain_bounding_box_new"
                   version="0.6">
        <doc xml:space="preserve">Creates a newly allocated #ChamplainBoundingBox to be freed
with champlain_bounding_box_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #ChamplainBoundingBox</doc>
          <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
        </return-value>
      </constructor>
      <method name="compose"
              c:identifier="champlain_bounding_box_compose"
              version="0.10">
        <doc xml:space="preserve">Sets bbox equal to the bounding box containing both @bbox and @other.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bbox" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainBoundingBox</doc>
            <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainBoundingBox</doc>
            <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy"
              c:identifier="champlain_bounding_box_copy"
              version="0.6">
        <doc xml:space="preserve">Makes a copy of the bounding box structure. The result must be
freed using champlain_bounding_box_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an allocated copy of @bbox.</doc>
          <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
        </return-value>
        <parameters>
          <instance-parameter name="bbox" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainBoundingBox</doc>
            <type name="BoundingBox" c:type="const ChamplainBoundingBox*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="covers"
              c:identifier="champlain_bounding_box_covers"
              version="0.12.4">
        <doc xml:space="preserve">Checks whether @bbox covers the given coordinates.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE when the bounding box covers given coordinates, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="bbox" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainBoundingBox</doc>
            <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">the latitude of the point</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">the longitude of the point</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="extend"
              c:identifier="champlain_bounding_box_extend"
              version="0.10">
        <doc xml:space="preserve">Extend the bounding box so it contains a point with @latitude and @longitude.
Do nothing if the point is already inside the bounding box.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bbox" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainBoundingBox</doc>
            <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">the latitude of the point</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">the longitude of the point</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="champlain_bounding_box_free"
              version="0.6">
        <doc xml:space="preserve">Frees a bounding box structure created with champlain_bounding_box_new() or
champlain_bounding_box_copy().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bbox" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainBoundingBox</doc>
            <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_center"
              c:identifier="champlain_bounding_box_get_center"
              version="0.6">
        <doc xml:space="preserve">Gets the center's latitude and longitude of the box to @latitude and @longitude.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bbox" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainBoundingBox</doc>
            <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
          </instance-parameter>
          <parameter name="latitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the latitude of the box center</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="longitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the longitude of the box center</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_valid"
              c:identifier="champlain_bounding_box_is_valid"
              version="0.10">
        <doc xml:space="preserve">Checks whether @bbox represents a valid bounding box on the map.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE when the bounding box is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="bbox" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainBoundingBox</doc>
            <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="Coordinate"
           c:symbol-prefix="coordinate"
           c:type="ChamplainCoordinate"
           version="0.10"
           parent="GObject.InitiallyUnowned"
           glib:type-name="ChamplainCoordinate"
           glib:get-type="champlain_coordinate_get_type"
           glib:type-struct="CoordinateClass">
      <doc xml:space="preserve">The #ChamplainCoordinate structure contains only private data
and should be accessed using the provided API</doc>
      <implements name="Location"/>
      <constructor name="new"
                   c:identifier="champlain_coordinate_new"
                   version="0.10">
        <doc xml:space="preserve">Creates a new instance of #ChamplainCoordinate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the created instance.</doc>
          <type name="Coordinate" c:type="ChamplainCoordinate*"/>
        </return-value>
      </constructor>
      <constructor name="new_full"
                   c:identifier="champlain_coordinate_new_full"
                   version="0.10">
        <doc xml:space="preserve">Creates a new instance of #ChamplainCoordinate initialized with the given
coordinates.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the created instance.</doc>
          <type name="Coordinate" c:type="ChamplainCoordinate*"/>
        </return-value>
        <parameters>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">the latitude coordinate</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">the longitude coordinate</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
      </field>
      <field name="priv">
        <type name="CoordinatePrivate" c:type="ChamplainCoordinatePrivate*"/>
      </field>
    </class>
    <record name="CoordinateClass"
            c:type="ChamplainCoordinateClass"
            glib:is-gtype-struct-for="Coordinate">
      <field name="parent_class">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
    </record>
    <record name="CoordinatePrivate"
            c:type="ChamplainCoordinatePrivate"
            disguised="1">
    </record>
    <class name="CustomMarker"
           c:symbol-prefix="custom_marker"
           c:type="ChamplainCustomMarker"
           version="0.10"
           deprecated="1"
           deprecated-version="0.12.4"
           parent="Marker"
           glib:type-name="ChamplainCustomMarker"
           glib:get-type="champlain_custom_marker_get_type"
           glib:type-struct="CustomMarkerClass">
      <doc xml:space="preserve">The #ChamplainCustomMarker structure contains only private data
and should be accessed using the provided API</doc>
      <doc-deprecated xml:space="preserve">#ChamplainMarker is a concrete class now and can be used
instead.</doc-deprecated>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Location"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_custom_marker_new"
                   version="0.10"
                   deprecated="1"
                   deprecated-version="0.12.4">
        <doc xml:space="preserve">Creates an instance of #ChamplainCustomMarker.</doc>
        <doc-deprecated xml:space="preserve">#ChamplainMarker is a concrete class now and can be used
instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainCustomMarker.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </constructor>
      <field name="parent">
        <type name="Marker" c:type="ChamplainMarker"/>
      </field>
      <field name="priv">
        <type name="CustomMarkerPrivate"
              c:type="ChamplainCustomMarkerPrivate*"/>
      </field>
    </class>
    <record name="CustomMarkerClass"
            c:type="ChamplainCustomMarkerClass"
            glib:is-gtype-struct-for="CustomMarker">
      <field name="parent_class">
        <type name="MarkerClass" c:type="ChamplainMarkerClass"/>
      </field>
    </record>
    <record name="CustomMarkerPrivate"
            c:type="ChamplainCustomMarkerPrivate"
            disguised="1">
    </record>
    <class name="ErrorTileRenderer"
           c:symbol-prefix="error_tile_renderer"
           c:type="ChamplainErrorTileRenderer"
           version="0.8"
           parent="Renderer"
           glib:type-name="ChamplainErrorTileRenderer"
           glib:get-type="champlain_error_tile_renderer_get_type"
           glib:type-struct="ErrorTileRendererClass">
      <doc xml:space="preserve">The #ChamplainErrorTileRenderer structure contains only private data
and should be accessed using the provided API</doc>
      <constructor name="new"
                   c:identifier="champlain_error_tile_renderer_new"
                   version="0.8">
        <doc xml:space="preserve">Constructor of a #ChamplainErrorTileRenderer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a constructed #ChamplainErrorTileRenderer</doc>
          <type name="ErrorTileRenderer" c:type="ChamplainErrorTileRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:space="preserve">the size of the rendered error tile</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_tile_size"
              c:identifier="champlain_error_tile_renderer_get_tile_size"
              version="0.8">
        <doc xml:space="preserve">Gets the size of the rendered error tiles.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the size of the rendered error tiles</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainErrorTileRenderer</doc>
            <type name="ErrorTileRenderer"
                  c:type="ChamplainErrorTileRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_tile_size"
              c:identifier="champlain_error_tile_renderer_set_tile_size"
              version="0.8">
        <doc xml:space="preserve">Sets the size of the rendered error tile.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainErrorTileRenderer</doc>
            <type name="ErrorTileRenderer"
                  c:type="ChamplainErrorTileRenderer*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the size of the rendered error tiles</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="tile-size"
                version="0.8"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The size of the rendered tile.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent">
        <type name="Renderer" c:type="ChamplainRenderer"/>
      </field>
      <field name="priv">
        <type name="ErrorTileRendererPrivate"
              c:type="ChamplainErrorTileRendererPrivate*"/>
      </field>
    </class>
    <record name="ErrorTileRendererClass"
            c:type="ChamplainErrorTileRendererClass"
            glib:is-gtype-struct-for="ErrorTileRenderer">
      <field name="parent_class">
        <type name="RendererClass" c:type="ChamplainRendererClass"/>
      </field>
    </record>
    <record name="ErrorTileRendererPrivate"
            c:type="ChamplainErrorTileRendererPrivate"
            disguised="1">
    </record>
    <interface name="Exportable"
               c:symbol-prefix="exportable"
               c:type="ChamplainExportable"
               glib:type-name="ChamplainExportable"
               glib:get-type="champlain_exportable_get_type"
               glib:type-struct="ExportableIface">
      <doc xml:space="preserve">An interface common to objects having a #cairo_surface_t representation.</doc>
      <virtual-method name="get_surface"
                      invoker="get_surface"
                      version="0.12.12">
        <doc xml:space="preserve">Gets the surface</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #cairo_surface_t of the object</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="exportable" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainExportable</doc>
            <type name="Exportable" c:type="ChamplainExportable*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_surface"
                      invoker="set_surface"
                      version="0.12.12">
        <doc xml:space="preserve">Set a #cairo_surface_t to be associated with this tile.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="exportable" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainExportable</doc>
            <type name="Exportable" c:type="ChamplainExportable*"/>
          </instance-parameter>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:space="preserve">the #cairo_surface_t</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_surface"
              c:identifier="champlain_exportable_get_surface"
              version="0.12.12">
        <doc xml:space="preserve">Gets the surface</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #cairo_surface_t of the object</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="exportable" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainExportable</doc>
            <type name="Exportable" c:type="ChamplainExportable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_surface"
              c:identifier="champlain_exportable_set_surface"
              version="0.12.12">
        <doc xml:space="preserve">Set a #cairo_surface_t to be associated with this tile.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="exportable" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainExportable</doc>
            <type name="Exportable" c:type="ChamplainExportable*"/>
          </instance-parameter>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:space="preserve">the #cairo_surface_t</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
        </parameters>
      </method>
      <property name="surface"
                version="0.12.12"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">A #cairo_surface_t representation</doc>
        <type name="cairo.Surface"/>
      </property>
    </interface>
    <record name="ExportableIface"
            c:type="ChamplainExportableIface"
            glib:is-gtype-struct-for="Exportable">
      <doc xml:space="preserve">An interface common to objects having a #cairo_surface_t representation.</doc>
      <field name="g_iface" readable="0" private="1">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_surface">
        <callback name="get_surface">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the #cairo_surface_t of the object</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </return-value>
          <parameters>
            <parameter name="exportable" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainExportable</doc>
              <type name="Exportable" c:type="ChamplainExportable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_surface">
        <callback name="set_surface">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="exportable" transfer-ownership="none">
              <doc xml:space="preserve">the #ChamplainExportable</doc>
              <type name="Exportable" c:type="ChamplainExportable*"/>
            </parameter>
            <parameter name="surface" transfer-ownership="none">
              <doc xml:space="preserve">the #cairo_surface_t</doc>
              <type name="cairo.Surface" c:type="cairo_surface_t*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="FileCache"
           c:symbol-prefix="file_cache"
           c:type="ChamplainFileCache"
           version="0.6"
           parent="TileCache"
           glib:type-name="ChamplainFileCache"
           glib:get-type="champlain_file_cache_get_type"
           glib:type-struct="FileCacheClass">
      <doc xml:space="preserve">The #ChamplainFileCache structure contains only private data
and should be accessed using the provided API</doc>
      <constructor name="new_full"
                   c:identifier="champlain_file_cache_new_full"
                   version="0.8">
        <doc xml:space="preserve">Constructor of #ChamplainFileCache.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a constructed #ChamplainFileCache</doc>
          <type name="FileCache" c:type="ChamplainFileCache*"/>
        </return-value>
        <parameters>
          <parameter name="size_limit" transfer-ownership="none">
            <doc xml:space="preserve">maximum size of the cache in bytes</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cache_dir"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the directory where the cache is created. When cache_dir == NULL,
a cache in ~/.cache/champlain is used.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainRenderer used for tiles rendering</doc>
            <type name="Renderer" c:type="ChamplainRenderer*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_cache_dir"
              c:identifier="champlain_file_cache_get_cache_dir"
              version="0.6">
        <doc xml:space="preserve">Gets the directory where the cache database is stored.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the directory</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainFileCache</doc>
            <type name="FileCache" c:type="ChamplainFileCache*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size_limit"
              c:identifier="champlain_file_cache_get_size_limit"
              version="0.4">
        <doc xml:space="preserve">Gets the cache size limit in bytes.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">size limit</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="file_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainFileCache</doc>
            <type name="FileCache" c:type="ChamplainFileCache*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="purge"
              c:identifier="champlain_file_cache_purge"
              version="0.4">
        <doc xml:space="preserve">Purge the cache from the less popular tiles until cache's size limit is reached.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainFileCache</doc>
            <type name="FileCache" c:type="ChamplainFileCache*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="purge_on_idle"
              c:identifier="champlain_file_cache_purge_on_idle"
              version="0.4">
        <doc xml:space="preserve">Purge the cache from the less popular tiles until cache's size limit is reached.
This is a non blocking call as the purge will happen when the application is idle</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainFileCache</doc>
            <type name="FileCache" c:type="ChamplainFileCache*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_size_limit"
              c:identifier="champlain_file_cache_set_size_limit"
              version="0.4">
        <doc xml:space="preserve">Sets the cache size limit in bytes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainFileCache</doc>
            <type name="FileCache" c:type="ChamplainFileCache*"/>
          </instance-parameter>
          <parameter name="size_limit" transfer-ownership="none">
            <doc xml:space="preserve">the cache limit in bytes</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="cache-dir"
                version="0.6"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The directory where the tile database is stored.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="size-limit"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The cache size limit in bytes.

Note: this new value will not be applied until you call champlain_file_cache_purge()</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent_instance">
        <type name="TileCache" c:type="ChamplainTileCache"/>
      </field>
      <field name="priv">
        <type name="FileCachePrivate" c:type="ChamplainFileCachePrivate*"/>
      </field>
    </class>
    <record name="FileCacheClass"
            c:type="ChamplainFileCacheClass"
            glib:is-gtype-struct-for="FileCache">
      <field name="parent_class">
        <type name="TileCacheClass" c:type="ChamplainTileCacheClass"/>
      </field>
    </record>
    <record name="FileCachePrivate"
            c:type="ChamplainFileCachePrivate"
            disguised="1">
    </record>
    <class name="FileTileSource"
           c:symbol-prefix="file_tile_source"
           c:type="ChamplainFileTileSource"
           version="0.8"
           parent="TileSource"
           glib:type-name="ChamplainFileTileSource"
           glib:get-type="champlain_file_tile_source_get_type"
           glib:type-struct="FileTileSourceClass">
      <doc xml:space="preserve">The #ChamplainFileTileSource structure contains only private data
and should be accessed using the provided API</doc>
      <constructor name="new_full"
                   c:identifier="champlain_file_tile_source_new_full"
                   version="0.8">
        <doc xml:space="preserve">Constructor of #ChamplainFileTileSource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a constructed #ChamplainFileTileSource object</doc>
          <type name="FileTileSource" c:type="ChamplainFileTileSource*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the map source's id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the map source's name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">the map source's license</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="license_uri" transfer-ownership="none">
            <doc xml:space="preserve">the map source's license URI</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="min_zoom" transfer-ownership="none">
            <doc xml:space="preserve">the map source's minimum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="max_zoom" transfer-ownership="none">
            <doc xml:space="preserve">the map source's maximum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:space="preserve">the map source's tile size (in pixels)</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="projection" transfer-ownership="none">
            <doc xml:space="preserve">the map source's projection</doc>
            <type name="MapProjection" c:type="ChamplainMapProjection"/>
          </parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainRenderer used to render tiles</doc>
            <type name="Renderer" c:type="ChamplainRenderer*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="load_map_data"
              c:identifier="champlain_file_tile_source_load_map_data"
              version="0.8">
        <doc xml:space="preserve">Loads the OpenStreetMap XML file at the given path.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainFileTileSource</doc>
            <type name="FileTileSource" c:type="ChamplainFileTileSource*"/>
          </instance-parameter>
          <parameter name="map_path" transfer-ownership="none">
            <doc xml:space="preserve">a path to a map data file</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="TileSource" c:type="ChamplainTileSource"/>
      </field>
    </class>
    <record name="FileTileSourceClass"
            c:type="ChamplainFileTileSourceClass"
            glib:is-gtype-struct-for="FileTileSource">
      <field name="parent_class">
        <type name="TileSourceClass" c:type="ChamplainTileSourceClass"/>
      </field>
    </record>
    <record name="FileTileSourcePrivate"
            c:type="ChamplainFileTileSourcePrivate"
            disguised="1">
    </record>
    <class name="ImageRenderer"
           c:symbol-prefix="image_renderer"
           c:type="ChamplainImageRenderer"
           version="0.8"
           parent="Renderer"
           glib:type-name="ChamplainImageRenderer"
           glib:get-type="champlain_image_renderer_get_type"
           glib:type-struct="ImageRendererClass">
      <doc xml:space="preserve">The #ChamplainImageRenderer structure contains only private data
and should be accessed using the provided API</doc>
      <constructor name="new"
                   c:identifier="champlain_image_renderer_new"
                   version="0.8">
        <doc xml:space="preserve">Constructor of #ChamplainImageRenderer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a constructed #ChamplainImageRenderer object</doc>
          <type name="ImageRenderer" c:type="ChamplainImageRenderer*"/>
        </return-value>
      </constructor>
      <field name="parent">
        <type name="Renderer" c:type="ChamplainRenderer"/>
      </field>
      <field name="priv">
        <type name="ImageRendererPrivate"
              c:type="ChamplainImageRendererPrivate*"/>
      </field>
    </class>
    <record name="ImageRendererClass"
            c:type="ChamplainImageRendererClass"
            glib:is-gtype-struct-for="ImageRenderer">
      <field name="parent_class">
        <type name="RendererClass" c:type="ChamplainRendererClass"/>
      </field>
    </record>
    <record name="ImageRendererPrivate"
            c:type="ChamplainImageRendererPrivate"
            disguised="1">
    </record>
    <class name="KineticScrollView"
           c:symbol-prefix="kinetic_scroll_view"
           c:type="ChamplainKineticScrollView"
           parent="Clutter.Actor"
           glib:type-name="ChamplainKineticScrollView"
           glib:get-type="champlain_kinetic_scroll_view_get_type"
           glib:type-struct="KineticScrollViewClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="champlain_kinetic_scroll_view_new">
        <return-value transfer-ownership="none">
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="kinetic" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="viewport" transfer-ownership="none">
            <type name="Viewport" c:type="ChamplainViewport*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="stop" c:identifier="champlain_kinetic_scroll_view_stop">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="KineticScrollView"
                  c:type="ChamplainKineticScrollView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="decel-rate" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="mode" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="motion-buffer" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent_instance" readable="0" private="1">
        <type name="Clutter.Actor" c:type="ClutterActor"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="KineticScrollViewPrivate"
              c:type="ChamplainKineticScrollViewPrivate*"/>
      </field>
      <glib:signal name="panning-completed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="KineticScrollViewClass"
            c:type="ChamplainKineticScrollViewClass"
            glib:is-gtype-struct-for="KineticScrollView">
      <field name="parent_class">
        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
      </field>
    </record>
    <record name="KineticScrollViewPrivate"
            c:type="ChamplainKineticScrollViewPrivate"
            disguised="1">
    </record>
    <class name="Label"
           c:symbol-prefix="label"
           c:type="ChamplainLabel"
           version="0.10"
           parent="Marker"
           glib:type-name="ChamplainLabel"
           glib:get-type="champlain_label_get_type"
           glib:type-struct="LabelClass">
      <doc xml:space="preserve">The #ChamplainLabel structure contains only private data
and should be accessed using the provided API</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Location"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_label_new"
                   version="0.10">
        <doc xml:space="preserve">Creates a new instance of #ChamplainLabel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainLabel ready to be used as a #ClutterActor.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_file"
                   c:identifier="champlain_label_new_from_file"
                   version="0.10"
                   throws="1">
        <doc xml:space="preserve">Creates a new instance of #ChamplainLabel with image loaded from file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainLabel with a drawn label containing the given
image.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">The filename of the image.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_full"
                   c:identifier="champlain_label_new_full"
                   version="0.10">
        <doc xml:space="preserve">Creates a new instance of #ChamplainLabel consisting of a custom #ClutterActor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainLabel with a drawn label containing the given
image.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">The text of the label</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve">The image as a @ClutterActor</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_image"
                   c:identifier="champlain_label_new_with_image"
                   version="0.10">
        <doc xml:space="preserve">Creates a new instance of #ChamplainLabel with image.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainLabel with a drawn label containing the given
image.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve">The image as a @ClutterActor.</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_text"
                   c:identifier="champlain_label_new_with_text"
                   version="0.10">
        <doc xml:space="preserve">Creates a new instance of #ChamplainLabel with text value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainLabel with a drawn label containing the given text.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">the text of the label</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="font"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the font to use to draw the text, for example "Courrier Bold 11", can be NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="text_color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #ClutterColor, the color of the text, can be NULL</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
          <parameter name="label_color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #ClutterColor, the color of the label, can be NULL</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_alignment"
              c:identifier="champlain_label_get_alignment"
              version="0.10">
        <doc xml:space="preserve">Get the label's text alignment.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the label's text alignment.</doc>
          <type name="Pango.Alignment" c:type="PangoAlignment"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_attributes"
              c:identifier="champlain_label_get_attributes"
              version="0.10">
        <doc xml:space="preserve">Gets the label's text attributes.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the label's text attributes.</doc>
          <type name="Pango.AttrList" c:type="PangoAttrList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_color"
              c:identifier="champlain_label_get_color"
              version="0.10">
        <doc xml:space="preserve">Gets the label's background color.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the label's background color.</doc>
          <type name="Clutter.Color" c:type="ClutterColor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_draw_background"
              c:identifier="champlain_label_get_draw_background"
              version="0.10">
        <doc xml:space="preserve">Checks whether the label has a background.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">if the label has a background.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_draw_shadow"
              c:identifier="champlain_label_get_draw_shadow"
              version="0.12.10">
        <doc xml:space="preserve">Checks whether the label's background has a shadow.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">if the label's background has a shadow.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ellipsize"
              c:identifier="champlain_label_get_ellipsize"
              version="0.10">
        <doc xml:space="preserve">Gets the label's text ellipsize mode.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the label's text ellipsize mode.</doc>
          <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_font_name"
              c:identifier="champlain_label_get_font_name"
              version="0.10">
        <doc xml:space="preserve">Gets the label's font name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the label's font name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_image"
              c:identifier="champlain_label_get_image"
              version="0.10">
        <doc xml:space="preserve">Get the label's image.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the label's image.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_single_line_mode"
              c:identifier="champlain_label_get_single_line_mode"
              version="0.10">
        <doc xml:space="preserve">Checks the label's single line mode.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the label's text single line mode.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text"
              c:identifier="champlain_label_get_text"
              version="0.10">
        <doc xml:space="preserve">Get the label's text.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the label's text.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_color"
              c:identifier="champlain_label_get_text_color"
              version="0.10">
        <doc xml:space="preserve">Gets the label's text color.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the label's text color.</doc>
          <type name="Clutter.Color" c:type="ClutterColor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_use_markup"
              c:identifier="champlain_label_get_use_markup"
              version="0.10">
        <doc xml:space="preserve">Check whether the label uses markup.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">if the label's text contains markup.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wrap"
              c:identifier="champlain_label_get_wrap"
              version="0.10">
        <doc xml:space="preserve">Checks whether the label text wraps.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">if the label's text wraps.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wrap_mode"
              c:identifier="champlain_label_get_wrap_mode"
              version="0.10">
        <doc xml:space="preserve">Gets the label's text wrap mode.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the label's text wrap mode.</doc>
          <type name="Pango.WrapMode" c:type="PangoWrapMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_alignment"
              c:identifier="champlain_label_set_alignment"
              version="0.10">
        <doc xml:space="preserve">Sets the label's text alignment.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="alignment" transfer-ownership="none">
            <doc xml:space="preserve">The label's alignment</doc>
            <type name="Pango.Alignment" c:type="PangoAlignment"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_attributes"
              c:identifier="champlain_label_set_attributes"
              version="0.10">
        <doc xml:space="preserve">Sets the label's text attributes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">The label's text attributes.</doc>
            <type name="Pango.AttrList" c:type="PangoAttrList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color"
              c:identifier="champlain_label_set_color"
              version="0.10">
        <doc xml:space="preserve">Sets the label's background color.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The label's background color or NULL to reset the background to the
        default color. The color parameter is copied.</doc>
            <type name="Clutter.Color" c:type="const ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_draw_background"
              c:identifier="champlain_label_set_draw_background"
              version="0.10">
        <doc xml:space="preserve">Sets if the label has a background.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="background" transfer-ownership="none">
            <doc xml:space="preserve">value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_draw_shadow"
              c:identifier="champlain_label_set_draw_shadow"
              version="0.12.10">
        <doc xml:space="preserve">Sets if the label's background has a shadow.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="shadow" transfer-ownership="none">
            <doc xml:space="preserve">value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ellipsize"
              c:identifier="champlain_label_set_ellipsize"
              version="0.10">
        <doc xml:space="preserve">Sets the label's text ellipsize mode.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">The label's ellipsize mode.</doc>
            <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_font_name"
              c:identifier="champlain_label_set_font_name"
              version="0.10">
        <doc xml:space="preserve">Sets the label's font name such as "Sans 12".</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="font_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The label's font name or NULL to reset the font to the default
            value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_image"
              c:identifier="champlain_label_set_image"
              version="0.10">
        <doc xml:space="preserve">Sets the label's image.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="image"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The image as a @ClutterActor or NULL to remove the current image.</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_single_line_mode"
              c:identifier="champlain_label_set_single_line_mode"
              version="0.10">
        <doc xml:space="preserve">Sets if the label's text is on a single line.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">The label's single line mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text"
              c:identifier="champlain_label_set_text"
              version="0.10">
        <doc xml:space="preserve">Sets the label's text.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">The new text of the label</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text_color"
              c:identifier="champlain_label_set_text_color"
              version="0.10">
        <doc xml:space="preserve">Sets the label's text color.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The label's text color or NULL to reset the text to the default
        color. The color parameter is copied.</doc>
            <type name="Clutter.Color" c:type="const ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_use_markup"
              c:identifier="champlain_label_set_use_markup"
              version="0.10">
        <doc xml:space="preserve">Sets if the label's text uses markup.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="use_markup" transfer-ownership="none">
            <doc xml:space="preserve">The value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_wrap"
              c:identifier="champlain_label_set_wrap"
              version="0.10">
        <doc xml:space="preserve">Sets if the label's text wrap.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="wrap" transfer-ownership="none">
            <doc xml:space="preserve">The label's wrap.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_wrap_mode"
              c:identifier="champlain_label_set_wrap_mode"
              version="0.10">
        <doc xml:space="preserve">Sets the label's text wrap mode.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLabel</doc>
            <type name="Label" c:type="ChamplainLabel*"/>
          </instance-parameter>
          <parameter name="wrap_mode" transfer-ownership="none">
            <doc xml:space="preserve">The label's wrap mode.</doc>
            <type name="Pango.WrapMode" c:type="PangoWrapMode"/>
          </parameter>
        </parameters>
      </method>
      <property name="alignment"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The label's alignment</doc>
        <type name="Pango.Alignment"/>
      </property>
      <property name="color"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The label's color</doc>
        <type name="Clutter.Color"/>
      </property>
      <property name="draw-background"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">If the label has a background</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="draw-shadow"
                version="0.12.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">If the label background has a shadow</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="ellipsize"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The label's ellipsize mode</doc>
        <type name="Pango.EllipsizeMode"/>
      </property>
      <property name="font-name"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The label's text font name</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="image"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The image of the label</doc>
        <type name="Clutter.Actor"/>
      </property>
      <property name="single-line-mode"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">If the label is in single line mode</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="text"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The text of the label</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="text-color"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The label's text color</doc>
        <type name="Clutter.Color"/>
      </property>
      <property name="use-markup"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">If the label's text uses markup</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="wrap"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">If the label's text wrap is set</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="wrap-mode"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The label's text wrap mode</doc>
        <type name="Pango.WrapMode"/>
      </property>
      <field name="parent">
        <type name="Marker" c:type="ChamplainMarker"/>
      </field>
      <field name="priv">
        <type name="LabelPrivate" c:type="ChamplainLabelPrivate*"/>
      </field>
    </class>
    <record name="LabelClass"
            c:type="ChamplainLabelClass"
            glib:is-gtype-struct-for="Label">
      <field name="parent_class">
        <type name="MarkerClass" c:type="ChamplainMarkerClass"/>
      </field>
    </record>
    <record name="LabelPrivate" c:type="ChamplainLabelPrivate" disguised="1">
    </record>
    <class name="Layer"
           c:symbol-prefix="layer"
           c:type="ChamplainLayer"
           version="0.10"
           parent="Clutter.Actor"
           abstract="1"
           glib:type-name="ChamplainLayer"
           glib:get-type="champlain_layer_get_type"
           glib:type-struct="LayerClass">
      <doc xml:space="preserve">The #ChamplainLayer structure contains only private data
and should be accessed using the provided API</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <virtual-method name="get_bounding_box"
                      invoker="get_bounding_box"
                      version="0.10">
        <doc xml:space="preserve">Gets the bounding box occupied by the elements inside the layer.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The bounding box.</doc>
          <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLayer</doc>
            <type name="Layer" c:type="ChamplainLayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_view" invoker="set_view" version="0.10">
        <doc xml:space="preserve">#ChamplainView calls this method to pass a reference to itself to the layer
when the layer is added to the view. When the layer is removed from the
view, it passes NULL to the layer. Custom layers can implement this method
and perform the necessary initialization. This method should not be called
by user code.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLayer</doc>
            <type name="Layer" c:type="ChamplainLayer*"/>
          </instance-parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_bounding_box"
              c:identifier="champlain_layer_get_bounding_box"
              version="0.10">
        <doc xml:space="preserve">Gets the bounding box occupied by the elements inside the layer.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The bounding box.</doc>
          <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLayer</doc>
            <type name="Layer" c:type="ChamplainLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_view"
              c:identifier="champlain_layer_set_view"
              version="0.10">
        <doc xml:space="preserve">#ChamplainView calls this method to pass a reference to itself to the layer
when the layer is added to the view. When the layer is removed from the
view, it passes NULL to the layer. Custom layers can implement this method
and perform the necessary initialization. This method should not be called
by user code.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLayer</doc>
            <type name="Layer" c:type="ChamplainLayer*"/>
          </instance-parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Clutter.Actor" c:type="ClutterActor"/>
      </field>
    </class>
    <record name="LayerClass"
            c:type="ChamplainLayerClass"
            glib:is-gtype-struct-for="Layer">
      <field name="parent_class">
        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
      </field>
      <field name="set_view">
        <callback name="set_view">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="layer" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainLayer</doc>
              <type name="Layer" c:type="ChamplainLayer*"/>
            </parameter>
            <parameter name="view" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainView</doc>
              <type name="View" c:type="ChamplainView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_bounding_box">
        <callback name="get_bounding_box">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">The bounding box.</doc>
            <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
          </return-value>
          <parameters>
            <parameter name="layer" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainLayer</doc>
              <type name="Layer" c:type="ChamplainLayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="License"
           c:symbol-prefix="license"
           c:type="ChamplainLicense"
           version="0.10"
           parent="Clutter.Actor"
           glib:type-name="ChamplainLicense"
           glib:get-type="champlain_license_get_type"
           glib:type-struct="LicenseClass">
      <doc xml:space="preserve">The #ChamplainLicense structure contains only private data
and should be accessed using the provided API</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_license_new"
                   version="0.10">
        <doc xml:space="preserve">Creates an instance of #ChamplainLicense.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainLicense.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </constructor>
      <method name="connect_view"
              c:identifier="champlain_license_connect_view"
              version="0.10">
        <doc xml:space="preserve">This method connects to the necessary signals of #ChamplainView to make the
license change automatically when the map source changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">The license</doc>
            <type name="License" c:type="ChamplainLicense*"/>
          </instance-parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </parameter>
        </parameters>
      </method>
      <method name="disconnect_view"
              c:identifier="champlain_license_disconnect_view"
              version="0.10">
        <doc xml:space="preserve">This method disconnects from the signals previously connected by champlain_license_connect_view().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">The license</doc>
            <type name="License" c:type="ChamplainLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_alignment"
              c:identifier="champlain_license_get_alignment"
              version="0.10">
        <doc xml:space="preserve">Get the license's text alignment.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the license's text alignment.</doc>
          <type name="Pango.Alignment" c:type="PangoAlignment"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">The license</doc>
            <type name="License" c:type="ChamplainLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_extra_text"
              c:identifier="champlain_license_get_extra_text"
              version="0.10">
        <doc xml:space="preserve">Gets the additional license text.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the additional license text</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLicense</doc>
            <type name="License" c:type="ChamplainLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_alignment"
              c:identifier="champlain_license_set_alignment"
              version="0.10">
        <doc xml:space="preserve">Set the license's text alignment.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLicense</doc>
            <type name="License" c:type="ChamplainLicense*"/>
          </instance-parameter>
          <parameter name="alignment" transfer-ownership="none">
            <doc xml:space="preserve">The license's text alignment</doc>
            <type name="Pango.Alignment" c:type="PangoAlignment"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_extra_text"
              c:identifier="champlain_license_set_extra_text"
              version="0.10">
        <doc xml:space="preserve">Show the additional license text on the map view.  The text will preceed the
map's licence when displayed. Use "\n" to separate the lines.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLicense</doc>
            <type name="License" c:type="ChamplainLicense*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">the additional license text</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="alignment"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The license's alignment</doc>
        <type name="Pango.Alignment"/>
      </property>
      <property name="extra-text"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Sets additional text to be displayed in the license area.  The map's
license will be added below it. Your text can have multiple lines, just use
"\n" in between.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="Clutter.Actor" c:type="ClutterActor"/>
      </field>
      <field name="priv">
        <type name="LicensePrivate" c:type="ChamplainLicensePrivate*"/>
      </field>
    </class>
    <record name="LicenseClass"
            c:type="ChamplainLicenseClass"
            glib:is-gtype-struct-for="License">
      <field name="parent_class">
        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
      </field>
    </record>
    <record name="LicensePrivate"
            c:type="ChamplainLicensePrivate"
            disguised="1">
    </record>
    <interface name="Location"
               c:symbol-prefix="location"
               c:type="ChamplainLocation"
               glib:type-name="ChamplainLocation"
               glib:get-type="champlain_location_get_type"
               glib:type-struct="LocationIface">
      <doc xml:space="preserve">An interface common to objects having latitude and longitude.</doc>
      <virtual-method name="get_latitude"
                      invoker="get_latitude"
                      version="0.10">
        <doc xml:space="preserve">Gets the latitude coordinate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the latitude coordinate.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLocation</doc>
            <type name="Location" c:type="ChamplainLocation*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_longitude"
                      invoker="get_longitude"
                      version="0.10">
        <doc xml:space="preserve">Gets the longitude coordinate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the longitude coordinate.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLocation</doc>
            <type name="Location" c:type="ChamplainLocation*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_location"
                      invoker="set_location"
                      version="0.10">
        <doc xml:space="preserve">Sets the coordinates of the location</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLocation</doc>
            <type name="Location" c:type="ChamplainLocation*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">the latitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">the longitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_latitude"
              c:identifier="champlain_location_get_latitude"
              version="0.10">
        <doc xml:space="preserve">Gets the latitude coordinate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the latitude coordinate.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLocation</doc>
            <type name="Location" c:type="ChamplainLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_longitude"
              c:identifier="champlain_location_get_longitude"
              version="0.10">
        <doc xml:space="preserve">Gets the longitude coordinate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the longitude coordinate.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLocation</doc>
            <type name="Location" c:type="ChamplainLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_location"
              c:identifier="champlain_location_set_location"
              version="0.10">
        <doc xml:space="preserve">Sets the coordinates of the location</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLocation</doc>
            <type name="Location" c:type="ChamplainLocation*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">the latitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">the longitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <property name="latitude"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The latitude coordonate</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="longitude"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The longitude coordonate</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
    </interface>
    <record name="LocationIface"
            c:type="ChamplainLocationIface"
            glib:is-gtype-struct-for="Location">
      <doc xml:space="preserve">An interface common to objects having latitude and longitude.</doc>
      <field name="g_iface" readable="0" private="1">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_latitude">
        <callback name="get_latitude">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the latitude coordinate.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </return-value>
          <parameters>
            <parameter name="location" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainLocation</doc>
              <type name="Location" c:type="ChamplainLocation*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_longitude">
        <callback name="get_longitude">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the longitude coordinate.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </return-value>
          <parameters>
            <parameter name="location" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainLocation</doc>
              <type name="Location" c:type="ChamplainLocation*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_location">
        <callback name="set_location">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="location" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainLocation</doc>
              <type name="Location" c:type="ChamplainLocation*"/>
            </parameter>
            <parameter name="latitude" transfer-ownership="none">
              <doc xml:space="preserve">the latitude</doc>
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
            <parameter name="longitude" transfer-ownership="none">
              <doc xml:space="preserve">the longitude</doc>
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <constant name="MAJOR_VERSION" value="0" c:type="CHAMPLAIN_MAJOR_VERSION">
      <doc xml:space="preserve">The major version of libchamplain (1, if %CHAMPLAIN_VERSION is 1.2.3)</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MAP_SOURCE_MEMPHIS_LOCAL"
              value="memphis-local"
              c:type="CHAMPLAIN_MAP_SOURCE_MEMPHIS_LOCAL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_MEMPHIS_NETWORK"
              value="memphis-network"
              c:type="CHAMPLAIN_MAP_SOURCE_MEMPHIS_NETWORK">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_MFF_RELIEF"
              value="mff-relief"
              c:type="CHAMPLAIN_MAP_SOURCE_MFF_RELIEF">
      <doc xml:space="preserve">Maps for Free Relief</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OAM"
              value="OpenAerialMap"
              c:type="CHAMPLAIN_MAP_SOURCE_OAM"
              deprecated="1">
      <doc xml:space="preserve">OpenAerialMap</doc>
      <doc-deprecated xml:space="preserve">OpenAerialMap isn't available any more and will be removed in the next release.
As it doens't exist, it isn't registered to the factory and the 'create' method won't
return any source.</doc-deprecated>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_AERIAL_MAP"
              value="osm-aerialmap"
              c:type="CHAMPLAIN_MAP_SOURCE_OSM_AERIAL_MAP">
      <doc xml:space="preserve">Mapquest Open Aerial</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_CYCLE_MAP"
              value="osm-cyclemap"
              c:type="CHAMPLAIN_MAP_SOURCE_OSM_CYCLE_MAP">
      <doc xml:space="preserve">OpenStreetMap Cycle Map</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_MAPNIK"
              value="osm-mapnik"
              c:type="CHAMPLAIN_MAP_SOURCE_OSM_MAPNIK">
      <doc xml:space="preserve">OpenStreetMap Mapnik</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_MAPQUEST"
              value="osm-mapquest"
              c:type="CHAMPLAIN_MAP_SOURCE_OSM_MAPQUEST">
      <doc xml:space="preserve">Mapquest OpenStreetMap</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_OSMARENDER"
              value="osm-osmarender"
              c:type="CHAMPLAIN_MAP_SOURCE_OSM_OSMARENDER"
              deprecated="1">
      <doc xml:space="preserve">OpenStreetMap Osmarender</doc>
      <doc-deprecated xml:space="preserve">Osmarender isn't available any more and will be removed in the next release.
As it doens't exist, it isn't registered to the factory and the 'create' method won't
return any source.</doc-deprecated>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_TRANSPORT_MAP"
              value="osm-transportmap"
              c:type="CHAMPLAIN_MAP_SOURCE_OSM_TRANSPORT_MAP">
      <doc xml:space="preserve">OpenStreetMap Transport Map</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OWM_CLOUDS"
              value="owm-clouds"
              c:type="CHAMPLAIN_MAP_SOURCE_OWM_CLOUDS">
      <doc xml:space="preserve">OpenWeatherMap clouds layer</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OWM_PRECIPITATION"
              value="owm-precipitation"
              c:type="CHAMPLAIN_MAP_SOURCE_OWM_PRECIPITATION">
      <doc xml:space="preserve">OpenWeatherMap precipitation</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OWM_PRESSURE"
              value="owm-pressure"
              c:type="CHAMPLAIN_MAP_SOURCE_OWM_PRESSURE">
      <doc xml:space="preserve">OpenWeatherMap sea level pressure</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OWM_TEMPERATURE"
              value="owm-temperature"
              c:type="CHAMPLAIN_MAP_SOURCE_OWM_TEMPERATURE">
      <doc xml:space="preserve">OpenWeatherMap temperature</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OWM_WIND"
              value="owm-wind"
              c:type="CHAMPLAIN_MAP_SOURCE_OWM_WIND">
      <doc xml:space="preserve">OpenWeatherMap wind</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAX_LATITUDE"
              value="85.051129"
              c:type="CHAMPLAIN_MAX_LATITUDE">
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <constant name="MAX_LONGITUDE"
              value="180.000000"
              c:type="CHAMPLAIN_MAX_LONGITUDE">
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <constant name="MICRO_VERSION" value="13" c:type="CHAMPLAIN_MICRO_VERSION">
      <doc xml:space="preserve">The micro version of libchamplain (3, if %CHAMPLAIN_VERSION is 1.2.3)</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="12" c:type="CHAMPLAIN_MINOR_VERSION">
      <doc xml:space="preserve">The minor version of libchamplain (2, if %CHAMPLAIN_VERSION is 1.2.3)</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MIN_LATITUDE"
              value="85.051129"
              c:type="CHAMPLAIN_MIN_LATITUDE">
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <constant name="MIN_LONGITUDE"
              value="180.000000"
              c:type="CHAMPLAIN_MIN_LONGITUDE">
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <enumeration name="MapProjection"
                 glib:type-name="ChamplainMapProjection"
                 glib:get-type="champlain_map_projection_get_type"
                 c:type="ChamplainMapProjection">
      <doc xml:space="preserve">Projections supported by the library.</doc>
      <member name="mercator"
              value="0"
              c:identifier="CHAMPLAIN_MAP_PROJECTION_MERCATOR"
              glib:nick="mercator">
        <doc xml:space="preserve">Currently the only supported projection</doc>
      </member>
    </enumeration>
    <class name="MapSource"
           c:symbol-prefix="map_source"
           c:type="ChamplainMapSource"
           version="0.4"
           parent="GObject.InitiallyUnowned"
           abstract="1"
           glib:type-name="ChamplainMapSource"
           glib:get-type="champlain_map_source_get_type"
           glib:type-struct="MapSourceClass">
      <doc xml:space="preserve">The #ChamplainMapSource structure contains only private data
and should be accessed using the provided API</doc>
      <virtual-method name="fill_tile" invoker="fill_tile" version="0.4">
        <doc xml:space="preserve">Fills the tile with image data (either from cache, network or rendered
locally).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_id" invoker="get_id" version="0.4">
        <doc xml:space="preserve">Gets map source's id.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's id.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_license" invoker="get_license" version="0.4">
        <doc xml:space="preserve">Gets map source's license.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's license.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_license_uri"
                      invoker="get_license_uri"
                      version="0.4">
        <doc xml:space="preserve">Gets map source's license URI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's license URI.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_max_zoom_level"
                      invoker="get_max_zoom_level"
                      version="0.4">
        <doc xml:space="preserve">Gets map source's maximum zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the maximum zoom level this map source supports</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_min_zoom_level"
                      invoker="get_min_zoom_level"
                      version="0.4">
        <doc xml:space="preserve">Gets map source's minimum zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the miminum zoom level this map source supports</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_name" invoker="get_name" version="0.4">
        <doc xml:space="preserve">Gets map source's name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_projection"
                      invoker="get_projection"
                      version="0.4">
        <doc xml:space="preserve">Gets map source's projection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's projection.</doc>
          <type name="MapProjection" c:type="ChamplainMapProjection"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_tile_size"
                      invoker="get_tile_size"
                      version="0.4">
        <doc xml:space="preserve">Gets map source's tile size.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tile's size (width and height) in pixels for this map source</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="fill_tile"
              c:identifier="champlain_map_source_fill_tile"
              version="0.4">
        <doc xml:space="preserve">Fills the tile with image data (either from cache, network or rendered
locally).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_column_count"
              c:identifier="champlain_map_source_get_column_count"
              version="0.4">
        <doc xml:space="preserve">Gets the number of tiles in a column at this zoom level for this map
source.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of tiles in a column</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="champlain_map_source_get_id"
              version="0.4">
        <doc xml:space="preserve">Gets map source's id.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's id.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_latitude"
              c:identifier="champlain_map_source_get_latitude"
              version="0.4">
        <doc xml:space="preserve">Gets the latitude corresponding to this y position in the map source's
projection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the latitude</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">a y position</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_license"
              c:identifier="champlain_map_source_get_license"
              version="0.4">
        <doc xml:space="preserve">Gets map source's license.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's license.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_license_uri"
              c:identifier="champlain_map_source_get_license_uri"
              version="0.4">
        <doc xml:space="preserve">Gets map source's license URI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's license URI.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_longitude"
              c:identifier="champlain_map_source_get_longitude"
              version="0.4">
        <doc xml:space="preserve">Gets the longitude corresponding to this x position in the map source's
projection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the longitude</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">a x position</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_max_zoom_level"
              c:identifier="champlain_map_source_get_max_zoom_level"
              version="0.4">
        <doc xml:space="preserve">Gets map source's maximum zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the maximum zoom level this map source supports</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_meters_per_pixel"
              c:identifier="champlain_map_source_get_meters_per_pixel"
              version="0.4.3">
        <doc xml:space="preserve">Gets meters per pixel at the position on the map using this map source's projection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the meters per pixel</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">a latitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">a longitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_min_zoom_level"
              c:identifier="champlain_map_source_get_min_zoom_level"
              version="0.4">
        <doc xml:space="preserve">Gets map source's minimum zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the miminum zoom level this map source supports</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="champlain_map_source_get_name"
              version="0.4">
        <doc xml:space="preserve">Gets map source's name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_next_source"
              c:identifier="champlain_map_source_get_next_source"
              version="0.6">
        <doc xml:space="preserve">Get the next source in the chain.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the next source in the chain.</doc>
          <type name="MapSource" c:type="ChamplainMapSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_projection"
              c:identifier="champlain_map_source_get_projection"
              version="0.4">
        <doc xml:space="preserve">Gets map source's projection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's projection.</doc>
          <type name="MapProjection" c:type="ChamplainMapProjection"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_renderer"
              c:identifier="champlain_map_source_get_renderer"
              version="0.8">
        <doc xml:space="preserve">Get the renderer used for tiles rendering.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the renderer.</doc>
          <type name="Renderer" c:type="ChamplainRenderer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_row_count"
              c:identifier="champlain_map_source_get_row_count"
              version="0.4">
        <doc xml:space="preserve">Gets the number of tiles in a row at this zoom level for this map source.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of tiles in a row</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tile_size"
              c:identifier="champlain_map_source_get_tile_size"
              version="0.4">
        <doc xml:space="preserve">Gets map source's tile size.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tile's size (width and height) in pixels for this map source</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_x"
              c:identifier="champlain_map_source_get_x"
              version="0.4">
        <doc xml:space="preserve">Gets the x position on the map using this map source's projection.
(0, 0) is located at the top left.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the x position</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">a longitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_y"
              c:identifier="champlain_map_source_get_y"
              version="0.4">
        <doc xml:space="preserve">Gets the y position on the map using this map source's projection.
(0, 0) is located at the top left.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the y position</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">a latitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_next_source"
              c:identifier="champlain_map_source_set_next_source"
              version="0.6">
        <doc xml:space="preserve">Sets the next map source in the chain.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
          <parameter name="next_source" transfer-ownership="none">
            <doc xml:space="preserve">the next #ChamplainMapSource in the chain</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_renderer"
              c:identifier="champlain_map_source_set_renderer"
              version="0.8">
        <doc xml:space="preserve">Sets the renderer used for tiles rendering.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </instance-parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">the renderer</doc>
            <type name="Renderer" c:type="ChamplainRenderer*"/>
          </parameter>
        </parameters>
      </method>
      <property name="next-source"
                version="0.6"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Next source in the loading chain.</doc>
        <type name="MapSource"/>
      </property>
      <property name="renderer"
                version="0.8"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Renderer used for tiles rendering.</doc>
        <type name="Renderer"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
      </field>
      <field name="priv">
        <type name="MapSourcePrivate" c:type="ChamplainMapSourcePrivate*"/>
      </field>
    </class>
    <class name="MapSourceChain"
           c:symbol-prefix="map_source_chain"
           c:type="ChamplainMapSourceChain"
           version="0.6"
           parent="MapSource"
           glib:type-name="ChamplainMapSourceChain"
           glib:get-type="champlain_map_source_chain_get_type"
           glib:type-struct="MapSourceChainClass">
      <doc xml:space="preserve">The #ChamplainMapSourceChain structure contains only private data
and should be accessed using the provided API</doc>
      <constructor name="new"
                   c:identifier="champlain_map_source_chain_new"
                   version="0.6">
        <doc xml:space="preserve">Constructor of #ChamplainMapSourceChain.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new empty #ChamplainMapSourceChain.</doc>
          <type name="MapSourceChain" c:type="ChamplainMapSourceChain*"/>
        </return-value>
      </constructor>
      <method name="pop"
              c:identifier="champlain_map_source_chain_pop"
              version="0.6">
        <doc xml:space="preserve">Pops a map source from the top of the stack from the chain.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source_chain" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceChain</doc>
            <type name="MapSourceChain" c:type="ChamplainMapSourceChain*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="push"
              c:identifier="champlain_map_source_chain_push"
              version="0.6">
        <doc xml:space="preserve">Pushes a map source into the chain.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source_chain" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceChain</doc>
            <type name="MapSourceChain" c:type="ChamplainMapSourceChain*"/>
          </instance-parameter>
          <parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainMapSource to be pushed into the chain</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="MapSource" c:type="ChamplainMapSource"/>
      </field>
      <field name="priv">
        <type name="MapSourceChainPrivate"
              c:type="ChamplainMapSourceChainPrivate*"/>
      </field>
    </class>
    <record name="MapSourceChainClass"
            c:type="ChamplainMapSourceChainClass"
            glib:is-gtype-struct-for="MapSourceChain">
      <field name="parent_class">
        <type name="MapSourceClass" c:type="ChamplainMapSourceClass"/>
      </field>
    </record>
    <record name="MapSourceChainPrivate"
            c:type="ChamplainMapSourceChainPrivate"
            disguised="1">
    </record>
    <record name="MapSourceClass"
            c:type="ChamplainMapSourceClass"
            glib:is-gtype-struct-for="MapSource">
      <field name="parent_class">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
      <field name="get_id">
        <callback name="get_id">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the map source's id.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainMapSource</doc>
              <type name="MapSource" c:type="ChamplainMapSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_name">
        <callback name="get_name">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the map source's name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainMapSource</doc>
              <type name="MapSource" c:type="ChamplainMapSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_license">
        <callback name="get_license">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the map source's license.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainMapSource</doc>
              <type name="MapSource" c:type="ChamplainMapSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_license_uri">
        <callback name="get_license_uri">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the map source's license URI.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainMapSource</doc>
              <type name="MapSource" c:type="ChamplainMapSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_min_zoom_level">
        <callback name="get_min_zoom_level">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the miminum zoom level this map source supports</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainMapSource</doc>
              <type name="MapSource" c:type="ChamplainMapSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_max_zoom_level">
        <callback name="get_max_zoom_level">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the maximum zoom level this map source supports</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainMapSource</doc>
              <type name="MapSource" c:type="ChamplainMapSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_tile_size">
        <callback name="get_tile_size">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the tile's size (width and height) in pixels for this map source</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainMapSource</doc>
              <type name="MapSource" c:type="ChamplainMapSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_projection">
        <callback name="get_projection">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the map source's projection.</doc>
            <type name="MapProjection" c:type="ChamplainMapProjection"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainMapSource</doc>
              <type name="MapSource" c:type="ChamplainMapSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="fill_tile">
        <callback name="fill_tile">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainMapSource</doc>
              <type name="MapSource" c:type="ChamplainMapSource*"/>
            </parameter>
            <parameter name="tile" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainTile</doc>
              <type name="Tile" c:type="ChamplainTile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="MapSourceConstructor"
              c:type="ChamplainMapSourceConstructor"
              version="0.10"
              introspectable="0">
      <doc xml:space="preserve">A #ChamplainMapSource constructor.  It should return a ready to use
#ChamplainMapSource.</doc>
      <return-value>
        <doc xml:space="preserve">A fully constructed #ChamplainMapSource ready to be used.</doc>
        <type name="MapSource" c:type="ChamplainMapSource*"/>
      </return-value>
      <parameters>
        <parameter name="desc" transfer-ownership="none">
          <doc xml:space="preserve">a #ChamplainMapSourceDesc</doc>
          <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
        </parameter>
      </parameters>
    </callback>
    <class name="MapSourceDesc"
           c:symbol-prefix="map_source_desc"
           c:type="ChamplainMapSourceDesc"
           version="0.10"
           parent="GObject.Object"
           glib:type-name="ChamplainMapSourceDesc"
           glib:get-type="champlain_map_source_desc_get_type"
           glib:type-struct="MapSourceDescClass">
      <doc xml:space="preserve">The #ChamplainMapSourceDesc structure contains only private data
and should be accessed using the provided API</doc>
      <constructor name="new_full"
                   c:identifier="champlain_map_source_desc_new_full"
                   version="0.10"
                   introspectable="0">
        <doc xml:space="preserve">Constructor of #ChamplainMapSourceDesc which describes a #ChamplainMapSource.
This is returned by #champlain_map_source_factory_get_registered</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a constructed #ChamplainMapSourceDesc object</doc>
          <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the map source's id</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the map source's name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">the map source's license</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="license_uri" transfer-ownership="none">
            <doc xml:space="preserve">the map source's license URI</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="min_zoom" transfer-ownership="none">
            <doc xml:space="preserve">the map source's minimum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="max_zoom" transfer-ownership="none">
            <doc xml:space="preserve">the map source's maximum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:space="preserve">the map source's tile size (in pixels)</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="projection" transfer-ownership="none">
            <doc xml:space="preserve">the map source's projection</doc>
            <type name="MapProjection" c:type="ChamplainMapProjection"/>
          </parameter>
          <parameter name="uri_format" transfer-ownership="none">
            <doc xml:space="preserve">the URI to fetch the tiles from, see #champlain_network_tile_source_set_uri_format</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="constructor" transfer-ownership="none" closure="10">
            <doc xml:space="preserve">the map source's constructor</doc>
            <type name="MapSourceConstructor"
                  c:type="ChamplainMapSourceConstructor"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data passed to the constructor</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_constructor"
              c:identifier="champlain_map_source_desc_get_constructor"
              version="0.10"
              introspectable="0">
        <doc xml:space="preserve">Gets the map source constructor.</doc>
        <return-value>
          <doc xml:space="preserve">the constructor.</doc>
          <type name="MapSourceConstructor"
                c:type="ChamplainMapSourceConstructor"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceDesc</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_data"
              c:identifier="champlain_map_source_desc_get_data"
              version="0.10">
        <doc xml:space="preserve">Gets user data.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the user data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceDesc</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="champlain_map_source_desc_get_id"
              version="0.10">
        <doc xml:space="preserve">Gets map source's id.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's id.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceDesc</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_license"
              c:identifier="champlain_map_source_desc_get_license"
              version="0.10">
        <doc xml:space="preserve">Gets map source's license.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's license.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceDesc</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_license_uri"
              c:identifier="champlain_map_source_desc_get_license_uri"
              version="0.10">
        <doc xml:space="preserve">Gets map source's license URI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's license URI.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceDesc</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_zoom_level"
              c:identifier="champlain_map_source_desc_get_max_zoom_level"
              version="0.10">
        <doc xml:space="preserve">Gets map source's maximum zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the maximum zoom level this map source supports</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceDesc</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_min_zoom_level"
              c:identifier="champlain_map_source_desc_get_min_zoom_level"
              version="0.10">
        <doc xml:space="preserve">Gets map source's minimum zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the miminum zoom level this map source supports</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceDesc</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="champlain_map_source_desc_get_name"
              version="0.10">
        <doc xml:space="preserve">Gets map source's name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceDesc</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_projection"
              c:identifier="champlain_map_source_desc_get_projection"
              version="0.10">
        <doc xml:space="preserve">Gets map source's projection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the map source's projection.</doc>
          <type name="MapProjection" c:type="ChamplainMapProjection"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceDesc</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tile_size"
              c:identifier="champlain_map_source_desc_get_tile_size"
              version="0.10">
        <doc xml:space="preserve">Gets map source's tile size.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tile's size (width and height) in pixels for this map source</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceDesc</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri_format"
              c:identifier="champlain_map_source_desc_get_uri_format"
              version="0.10">
        <doc xml:space="preserve">Gets network map source's URI format.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the URI format.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSourceDesc</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="constructor"
                version="0.10"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The map source constructor</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="data"
                version="0.10"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">User data passed to the constructor</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="id"
                version="0.10"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The id of the map source</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="license"
                version="0.10"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The license of the map source</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="license-uri"
                version="0.10"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The license's uri for more information</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="max-zoom-level"
                version="0.10"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The maximum zoom level</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="min-zoom-level"
                version="0.10"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The minimum zoom level</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="name"
                version="0.10"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The name of the map source</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="projection"
                version="0.10"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The map projection of the map source</doc>
        <type name="MapProjection"/>
      </property>
      <property name="tile-size"
                version="0.10"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The tile size of the map source</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="uri-format"
                version="0.10"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The URI format of a network map source</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MapSourceDescPrivate"
              c:type="ChamplainMapSourceDescPrivate*"/>
      </field>
    </class>
    <record name="MapSourceDescClass"
            c:type="ChamplainMapSourceDescClass"
            glib:is-gtype-struct-for="MapSourceDesc">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="MapSourceDescPrivate"
            c:type="ChamplainMapSourceDescPrivate"
            disguised="1">
    </record>
    <class name="MapSourceFactory"
           c:symbol-prefix="map_source_factory"
           c:type="ChamplainMapSourceFactory"
           version="0.4"
           parent="GObject.Object"
           glib:type-name="ChamplainMapSourceFactory"
           glib:get-type="champlain_map_source_factory_get_type"
           glib:type-struct="MapSourceFactoryClass">
      <doc xml:space="preserve">The #ChamplainMapSourceFactory structure contains only private data
and should be accessed using the provided API</doc>
      <function name="dup_default"
                c:identifier="champlain_map_source_factory_dup_default"
                version="0.4">
        <doc xml:space="preserve">A method to obtain the singleton object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the singleton #ChamplainMapSourceFactory, it should be freed
using #g_object_unref() when not needed.</doc>
          <type name="MapSourceFactory" c:type="ChamplainMapSourceFactory*"/>
        </return-value>
      </function>
      <method name="create"
              c:identifier="champlain_map_source_factory_create"
              version="0.4">
        <doc xml:space="preserve">Note: The id should not contain any character that can't be in a filename as it
will be used as the cache directory name for that map source.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a ready to use #ChamplainMapSource matching the given name, returns
NULL is none match.</doc>
          <type name="MapSource" c:type="ChamplainMapSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">the Factory</doc>
            <type name="MapSourceFactory" c:type="ChamplainMapSourceFactory*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the wanted map source id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_cached_source"
              c:identifier="champlain_map_source_factory_create_cached_source"
              version="0.6">
        <doc xml:space="preserve">Creates a cached map source.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a ready to use #ChamplainMapSourceChain consisting of
#ChamplainMemoryCache, #ChamplainFileCache, #ChamplainMapSource matching the given name, and
an error tile source created with champlain_map_source_factory_create_error_source ().</doc>
          <type name="MapSource" c:type="ChamplainMapSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">the Factory</doc>
            <type name="MapSourceFactory" c:type="ChamplainMapSourceFactory*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the wanted map source id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_error_source"
              c:identifier="champlain_map_source_factory_create_error_source"
              version="0.8">
        <doc xml:space="preserve">Creates a map source generating error tiles.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a ready to use map source generating error tiles.</doc>
          <type name="MapSource" c:type="ChamplainMapSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">the Factory</doc>
            <type name="MapSourceFactory" c:type="ChamplainMapSourceFactory*"/>
          </instance-parameter>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:space="preserve">the size of the error tile</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_memcached_source"
              c:identifier="champlain_map_source_factory_create_memcached_source"
              version="0.12.5">
        <doc xml:space="preserve">Creates a memory cached map source.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a ready to use #ChamplainMapSourceChain consisting of
#ChamplainMemoryCache and #ChamplainMapSource matching the given name</doc>
          <type name="MapSource" c:type="ChamplainMapSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">the Factory</doc>
            <type name="MapSourceFactory" c:type="ChamplainMapSourceFactory*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the wanted map source id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_registered"
              c:identifier="champlain_map_source_factory_get_registered"
              version="0.4">
        <doc xml:space="preserve">Get the list of registered map sources.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list of registered map sources, the items should not be freed,
the list should be freed with #g_slist_free.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="MapSourceDesc"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">the Factory</doc>
            <type name="MapSourceFactory" c:type="ChamplainMapSourceFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="register"
              c:identifier="champlain_map_source_factory_register"
              version="0.10">
        <doc xml:space="preserve">Registers the new map source with the given constructor.  When this map
source is requested, the given constructor will be used to build the
map source.  #ChamplainMapSourceFactory will take ownership of the passed
#ChamplainMapSourceDesc, so don't free it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the registration suceeded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">A #ChamplainMapSourceFactory</doc>
            <type name="MapSourceFactory" c:type="ChamplainMapSourceFactory*"/>
          </instance-parameter>
          <parameter name="desc" transfer-ownership="none">
            <doc xml:space="preserve">the description of the map source</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MapSourceFactoryPrivate"
              c:type="ChamplainMapSourceFactoryPrivate*"/>
      </field>
    </class>
    <record name="MapSourceFactoryClass"
            c:type="ChamplainMapSourceFactoryClass"
            glib:is-gtype-struct-for="MapSourceFactory">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="MapSourceFactoryPrivate"
            c:type="ChamplainMapSourceFactoryPrivate"
            disguised="1">
    </record>
    <record name="MapSourcePrivate"
            c:type="ChamplainMapSourcePrivate"
            disguised="1">
    </record>
    <class name="Marker"
           c:symbol-prefix="marker"
           c:type="ChamplainMarker"
           version="0.10"
           parent="Clutter.Actor"
           glib:type-name="ChamplainMarker"
           glib:get-type="champlain_marker_get_type"
           glib:type-struct="MarkerClass">
      <doc xml:space="preserve">The #ChamplainMarker structure contains only private data
and should be accessed using the provided API</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Location"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_marker_new"
                   version="0.12.4">
        <doc xml:space="preserve">Creates an instance of #ChamplainMarker.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainMarker.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </constructor>
      <function name="get_selection_color"
                c:identifier="champlain_marker_get_selection_color"
                version="0.10">
        <doc xml:space="preserve">Gets the selection color.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the selection color. Should not be freed.</doc>
          <type name="Clutter.Color" c:type="const ClutterColor*"/>
        </return-value>
      </function>
      <function name="get_selection_text_color"
                c:identifier="champlain_marker_get_selection_text_color"
                version="0.10">
        <doc xml:space="preserve">Gets the selection text color.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the selection text color. Should not be freed.</doc>
          <type name="Clutter.Color" c:type="const ClutterColor*"/>
        </return-value>
      </function>
      <function name="set_selection_color"
                c:identifier="champlain_marker_set_selection_color"
                version="0.10">
        <doc xml:space="preserve">Changes the selection color, this is to ensure a better integration with
the desktop, this is automatically done by GtkChamplainEmbed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="color" transfer-ownership="none">
            <doc xml:space="preserve">a #ClutterColor</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_selection_text_color"
                c:identifier="champlain_marker_set_selection_text_color"
                version="0.10">
        <doc xml:space="preserve">Changes the selection text color, this is to ensure a better integration with
the desktop, this is automatically done by GtkChamplainEmbed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="color" transfer-ownership="none">
            <doc xml:space="preserve">a #ClutterColor</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </function>
      <method name="animate_in"
              c:identifier="champlain_marker_animate_in"
              version="0.10">
        <doc xml:space="preserve">Animates the marker as if it were falling from the sky onto the map.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarker</doc>
            <type name="Marker" c:type="ChamplainMarker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="animate_in_with_delay"
              c:identifier="champlain_marker_animate_in_with_delay"
              version="0.10">
        <doc xml:space="preserve">Animates the marker as if it were falling from the sky onto the map after
delay.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarker</doc>
            <type name="Marker" c:type="ChamplainMarker*"/>
          </instance-parameter>
          <parameter name="delay" transfer-ownership="none">
            <doc xml:space="preserve">The delay in milliseconds</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="animate_out"
              c:identifier="champlain_marker_animate_out"
              version="0.10">
        <doc xml:space="preserve">Animates the marker as if it were drawn through the sky.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarker</doc>
            <type name="Marker" c:type="ChamplainMarker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="animate_out_with_delay"
              c:identifier="champlain_marker_animate_out_with_delay"
              version="0.10">
        <doc xml:space="preserve">Animates the marker as if it were drawn through the sky after
delay.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarker</doc>
            <type name="Marker" c:type="ChamplainMarker*"/>
          </instance-parameter>
          <parameter name="delay" transfer-ownership="none">
            <doc xml:space="preserve">The delay in milliseconds</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_draggable"
              c:identifier="champlain_marker_get_draggable"
              version="0.10">
        <doc xml:space="preserve">Checks whether the marker is draggable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the draggable or not state of the marker.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarker</doc>
            <type name="Marker" c:type="ChamplainMarker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selectable"
              c:identifier="champlain_marker_get_selectable"
              version="0.10">
        <doc xml:space="preserve">Checks whether the marker is selectable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the selectable or not state of the marker.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarker</doc>
            <type name="Marker" c:type="ChamplainMarker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selected"
              c:identifier="champlain_marker_get_selected"
              version="0.10">
        <doc xml:space="preserve">Checks whether the marker is selected.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the selected or not state of the marker.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarker</doc>
            <type name="Marker" c:type="ChamplainMarker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_draggable"
              c:identifier="champlain_marker_set_draggable"
              version="0.10">
        <doc xml:space="preserve">Sets the marker as draggable or not.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarker</doc>
            <type name="Marker" c:type="ChamplainMarker*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the draggable state</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_selectable"
              c:identifier="champlain_marker_set_selectable"
              version="0.10">
        <doc xml:space="preserve">Sets the marker as selectable or not.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarker</doc>
            <type name="Marker" c:type="ChamplainMarker*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the selectable state</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_selected"
              c:identifier="champlain_marker_set_selected"
              version="0.10">
        <doc xml:space="preserve">Sets the marker as selected or not. This will affect the "Selected" look
of the marker.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarker</doc>
            <type name="Marker" c:type="ChamplainMarker*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the selected state</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="draggable"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The draggable state of the marker</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="selectable"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The selectable state of the marker</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="selected"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The selected state of the marker</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="Clutter.Actor" c:type="ClutterActor"/>
      </field>
      <field name="priv">
        <type name="MarkerPrivate" c:type="ChamplainMarkerPrivate*"/>
      </field>
      <glib:signal name="button-press" when="last" version="0.10">
        <doc xml:space="preserve">Emitted when button is pressed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">the underlying ClutterEvent</doc>
            <type name="Clutter.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="button-release" when="last" version="0.10">
        <doc xml:space="preserve">Emitted when button is released. This signal is not emmitted at the end of dragging.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">the underlying ClutterEvent</doc>
            <type name="Clutter.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-finish" when="last" version="0.10">
        <doc xml:space="preserve">Emitted when marker dragging ends (i.e. the button is released at the end
of dragging).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">the underlying ClutterEvent</doc>
            <type name="Clutter.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-motion" when="last" version="0.10">
        <doc xml:space="preserve">Emmitted when the marker is dragged by mouse. dx and dy specify by how much
the marker has been dragged since last time.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dx" transfer-ownership="none">
            <doc xml:space="preserve">by how much the marker has been moved in the x direction</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="dy" transfer-ownership="none">
            <doc xml:space="preserve">by how much the marker has been moved in the y direction</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">the underlying ClutterEvent</doc>
            <type name="Clutter.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="MarkerClass"
            c:type="ChamplainMarkerClass"
            glib:is-gtype-struct-for="Marker">
      <field name="parent_class">
        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
      </field>
    </record>
    <class name="MarkerLayer"
           c:symbol-prefix="marker_layer"
           c:type="ChamplainMarkerLayer"
           version="0.10"
           parent="Layer"
           glib:type-name="ChamplainMarkerLayer"
           glib:get-type="champlain_marker_layer_get_type"
           glib:type-struct="MarkerLayerClass">
      <doc xml:space="preserve">The #ChamplainMarkerLayer structure contains only private data
and should be accessed using the provided API</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Exportable"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_marker_layer_new"
                   version="0.10">
        <doc xml:space="preserve">Creates a new instance of #ChamplainMarkerLayer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainMarkerLayer ready to be used as a container for the markers.</doc>
          <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
        </return-value>
      </constructor>
      <constructor name="new_full"
                   c:identifier="champlain_marker_layer_new_full"
                   version="0.10">
        <doc xml:space="preserve">Creates a new instance of #ChamplainMarkerLayer with the specified selection mode.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainMarkerLayer ready to be used as a container for the markers.</doc>
          <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">Selection mode</doc>
            <type name="SelectionMode" c:type="ChamplainSelectionMode"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_marker"
              c:identifier="champlain_marker_layer_add_marker"
              version="0.10">
        <doc xml:space="preserve">Adds the marker to the layer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarker</doc>
            <type name="Marker" c:type="ChamplainMarker*"/>
          </parameter>
        </parameters>
      </method>
      <method name="animate_in_all_markers"
              c:identifier="champlain_marker_layer_animate_in_all_markers"
              version="0.10">
        <doc xml:space="preserve">Fade in all markers in the layer with an animation</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="animate_out_all_markers"
              c:identifier="champlain_marker_layer_animate_out_all_markers"
              version="0.10">
        <doc xml:space="preserve">Fade out all markers in the layer with an animation</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_markers"
              c:identifier="champlain_marker_layer_get_markers"
              version="0.10">
        <doc xml:space="preserve">Gets a copy of the list of all markers inserted into the layer. You should
free the list but not its contents.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Marker"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selected"
              c:identifier="champlain_marker_layer_get_selected"
              version="0.10">
        <doc xml:space="preserve">Gets a list of selected markers in the layer.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Marker"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selection_mode"
              c:identifier="champlain_marker_layer_get_selection_mode"
              version="0.10">
        <doc xml:space="preserve">Gets the selection mode of the layer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the selection mode of the layer.</doc>
          <type name="SelectionMode" c:type="ChamplainSelectionMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide_all_markers"
              c:identifier="champlain_marker_layer_hide_all_markers"
              version="0.10">
        <doc xml:space="preserve">Hides all the markers in the layer</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_all"
              c:identifier="champlain_marker_layer_remove_all"
              version="0.10">
        <doc xml:space="preserve">Removes all markers from the layer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_marker"
              c:identifier="champlain_marker_layer_remove_marker"
              version="0.10">
        <doc xml:space="preserve">Removes the marker from the layer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarker</doc>
            <type name="Marker" c:type="ChamplainMarker*"/>
          </parameter>
        </parameters>
      </method>
      <method name="select_all_markers"
              c:identifier="champlain_marker_layer_select_all_markers"
              version="0.10">
        <doc xml:space="preserve">Selects all markers in the layer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_all_markers_draggable"
              c:identifier="champlain_marker_layer_set_all_markers_draggable"
              version="0.10">
        <doc xml:space="preserve">Sets all markers draggable in the layer</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_all_markers_undraggable"
              c:identifier="champlain_marker_layer_set_all_markers_undraggable"
              version="0.10">
        <doc xml:space="preserve">Sets all markers undraggable in the layer</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_selection_mode"
              c:identifier="champlain_marker_layer_set_selection_mode"
              version="0.10">
        <doc xml:space="preserve">Sets the selection mode of the layer.

NOTE: changing selection mode to CHAMPLAIN_SELECTION_NONE or
CHAMPLAIN_SELECTION_SINGLE will clear all previously selected markers.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainSelectionMode value</doc>
            <type name="SelectionMode" c:type="ChamplainSelectionMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_all_markers"
              c:identifier="champlain_marker_layer_show_all_markers"
              version="0.10">
        <doc xml:space="preserve">Shows all markers in the layer</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unselect_all_markers"
              c:identifier="champlain_marker_layer_unselect_all_markers"
              version="0.10">
        <doc xml:space="preserve">Unselects all markers in the layer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ChamplainMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="selection-mode"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Determines the type of selection that will be performed.</doc>
        <type name="SelectionMode"/>
      </property>
      <field name="parent">
        <type name="Layer" c:type="ChamplainLayer"/>
      </field>
      <field name="priv">
        <type name="MarkerLayerPrivate" c:type="ChamplainMarkerLayerPrivate*"/>
      </field>
    </class>
    <record name="MarkerLayerClass"
            c:type="ChamplainMarkerLayerClass"
            glib:is-gtype-struct-for="MarkerLayer">
      <field name="parent_class">
        <type name="LayerClass" c:type="ChamplainLayerClass"/>
      </field>
    </record>
    <record name="MarkerLayerPrivate"
            c:type="ChamplainMarkerLayerPrivate"
            disguised="1">
    </record>
    <record name="MarkerPrivate" c:type="ChamplainMarkerPrivate" disguised="1">
    </record>
    <class name="MemoryCache"
           c:symbol-prefix="memory_cache"
           c:type="ChamplainMemoryCache"
           version="0.8"
           parent="TileCache"
           glib:type-name="ChamplainMemoryCache"
           glib:get-type="champlain_memory_cache_get_type"
           glib:type-struct="MemoryCacheClass">
      <doc xml:space="preserve">The #ChamplainMemoryCache structure contains only private data
and should be accessed using the provided API</doc>
      <constructor name="new_full"
                   c:identifier="champlain_memory_cache_new_full"
                   version="0.8">
        <doc xml:space="preserve">Constructor of #ChamplainMemoryCache.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a constructed #ChamplainMemoryCache</doc>
          <type name="MemoryCache" c:type="ChamplainMemoryCache*"/>
        </return-value>
        <parameters>
          <parameter name="size_limit" transfer-ownership="none">
            <doc xml:space="preserve">maximum number of tiles stored in the cache</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainRenderer used for tiles rendering</doc>
            <type name="Renderer" c:type="ChamplainRenderer*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="clean"
              c:identifier="champlain_memory_cache_clean"
              version="0.8">
        <doc xml:space="preserve">Cleans the contents of the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="memory_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMemoryCache</doc>
            <type name="MemoryCache" c:type="ChamplainMemoryCache*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size_limit"
              c:identifier="champlain_memory_cache_get_size_limit"
              version="0.8">
        <doc xml:space="preserve">Gets the maximum number of tiles stored in the cache.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">maximum number of stored tiles</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="memory_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMemoryCache</doc>
            <type name="MemoryCache" c:type="ChamplainMemoryCache*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_size_limit"
              c:identifier="champlain_memory_cache_set_size_limit"
              version="0.8">
        <doc xml:space="preserve">Sets the maximum number of tiles stored in the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="memory_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMemoryCache</doc>
            <type name="MemoryCache" c:type="ChamplainMemoryCache*"/>
          </instance-parameter>
          <parameter name="size_limit" transfer-ownership="none">
            <doc xml:space="preserve">maximum number of tiles stored in the cache</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="size-limit"
                version="0.8"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The maximum number of tiles that are stored in the cache.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent_instance">
        <type name="TileCache" c:type="ChamplainTileCache"/>
      </field>
      <field name="priv">
        <type name="MemoryCachePrivate" c:type="ChamplainMemoryCachePrivate*"/>
      </field>
    </class>
    <record name="MemoryCacheClass"
            c:type="ChamplainMemoryCacheClass"
            glib:is-gtype-struct-for="MemoryCache">
      <field name="parent_class">
        <type name="TileCacheClass" c:type="ChamplainTileCacheClass"/>
      </field>
    </record>
    <record name="MemoryCachePrivate"
            c:type="ChamplainMemoryCachePrivate"
            disguised="1">
    </record>
    <class name="NetworkBboxTileSource"
           c:symbol-prefix="network_bbox_tile_source"
           c:type="ChamplainNetworkBboxTileSource"
           version="0.8"
           parent="TileSource"
           glib:type-name="ChamplainNetworkBboxTileSource"
           glib:get-type="champlain_network_bbox_tile_source_get_type"
           glib:type-struct="NetworkBboxTileSourceClass">
      <doc xml:space="preserve">The #ChamplainNetworkBboxTileSource structure contains only private data
and should be accessed using the provided API</doc>
      <constructor name="new_full"
                   c:identifier="champlain_network_bbox_tile_source_new_full"
                   version="0.8">
        <doc xml:space="preserve">Constructor of #ChamplainNetworkBboxTileSource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a constructed #ChamplainNetworkBboxTileSource object</doc>
          <type name="NetworkBboxTileSource"
                c:type="ChamplainNetworkBboxTileSource*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the map source's id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the map source's name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">the map source's license</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="license_uri" transfer-ownership="none">
            <doc xml:space="preserve">the map source's license URI</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="min_zoom" transfer-ownership="none">
            <doc xml:space="preserve">the map source's minimum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="max_zoom" transfer-ownership="none">
            <doc xml:space="preserve">the map source's maximum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:space="preserve">the map source's tile size (in pixels)</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="projection" transfer-ownership="none">
            <doc xml:space="preserve">the map source's projection</doc>
            <type name="MapProjection" c:type="ChamplainMapProjection"/>
          </parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainRenderer used to render tiles</doc>
            <type name="Renderer" c:type="ChamplainRenderer*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_api_uri"
              c:identifier="champlain_network_bbox_tile_source_get_api_uri"
              version="0.8">
        <doc xml:space="preserve">Gets the URI of the API server.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the URI of the API server.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_data_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainNetworkBboxTileSource</doc>
            <type name="NetworkBboxTileSource"
                  c:type="ChamplainNetworkBboxTileSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_map_data"
              c:identifier="champlain_network_bbox_tile_source_load_map_data"
              version="0.10">
        <doc xml:space="preserve">Asynchronously loads map data within a bounding box from the server.
The box must not exceed an edge size of 0.25 degree. There are also
limitations on the maximum number of nodes that can be requested.

For details, see: &lt;ulink role="online-location"
url="http://api.openstreetmap.org/api/capabilities"&gt;
http://api.openstreetmap.org/api/capabilities&lt;/ulink&gt;</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_data_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainNetworkBboxTileSource</doc>
            <type name="NetworkBboxTileSource"
                  c:type="ChamplainNetworkBboxTileSource*"/>
          </instance-parameter>
          <parameter name="bbox" transfer-ownership="none">
            <doc xml:space="preserve">bounding box of the requested area</doc>
            <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_api_uri"
              c:identifier="champlain_network_bbox_tile_source_set_api_uri"
              version="0.8">
        <doc xml:space="preserve">Sets the URI of the API server.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_data_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainNetworkBboxTileSource</doc>
            <type name="NetworkBboxTileSource"
                  c:type="ChamplainNetworkBboxTileSource*"/>
          </instance-parameter>
          <parameter name="api_uri" transfer-ownership="none">
            <doc xml:space="preserve">an URI of an API server</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="api-uri"
                version="0.8"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The URI of an OpenStreetMap API server</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="proxy-uri"
                version="0.8"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Used to override the default proxy for accessing the network.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="state"
                version="0.8"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The map source's state. Useful to know if the data source is loading
or not.</doc>
        <type name="State"/>
      </property>
      <field name="parent">
        <type name="TileSource" c:type="ChamplainTileSource"/>
      </field>
      <field name="priv">
        <type name="NetworkBboxTileSourcePrivate"
              c:type="ChamplainNetworkBboxTileSourcePrivate*"/>
      </field>
    </class>
    <record name="NetworkBboxTileSourceClass"
            c:type="ChamplainNetworkBboxTileSourceClass"
            glib:is-gtype-struct-for="NetworkBboxTileSource">
      <field name="parent_class">
        <type name="TileSourceClass" c:type="ChamplainTileSourceClass"/>
      </field>
    </record>
    <record name="NetworkBboxTileSourcePrivate"
            c:type="ChamplainNetworkBboxTileSourcePrivate"
            disguised="1">
    </record>
    <class name="NetworkTileSource"
           c:symbol-prefix="network_tile_source"
           c:type="ChamplainNetworkTileSource"
           version="0.6"
           parent="TileSource"
           glib:type-name="ChamplainNetworkTileSource"
           glib:get-type="champlain_network_tile_source_get_type"
           glib:type-struct="NetworkTileSourceClass">
      <doc xml:space="preserve">The #ChamplainNetworkTileSource structure contains only private data
and should be accessed using the provided API</doc>
      <constructor name="new_full"
                   c:identifier="champlain_network_tile_source_new_full"
                   version="0.4">
        <doc xml:space="preserve">Constructor of #ChamplainNetworkTileSource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a constructed #ChamplainNetworkTileSource object</doc>
          <type name="NetworkTileSource" c:type="ChamplainNetworkTileSource*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the map source's id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the map source's name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">the map source's license</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="license_uri" transfer-ownership="none">
            <doc xml:space="preserve">the map source's license URI</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="min_zoom" transfer-ownership="none">
            <doc xml:space="preserve">the map source's minimum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="max_zoom" transfer-ownership="none">
            <doc xml:space="preserve">the map source's maximum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:space="preserve">the map source's tile size (in pixels)</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="projection" transfer-ownership="none">
            <doc xml:space="preserve">the map source's projection</doc>
            <type name="MapProjection" c:type="ChamplainMapProjection"/>
          </parameter>
          <parameter name="uri_format" transfer-ownership="none">
            <doc xml:space="preserve">the URI to fetch the tiles from, see #champlain_network_tile_source_set_uri_format</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainRenderer used to render tiles</doc>
            <type name="Renderer" c:type="ChamplainRenderer*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_offline"
              c:identifier="champlain_network_tile_source_get_offline"
              version="0.6">
        <doc xml:space="preserve">Gets offline status.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE when the tile source is set to be offline; FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainNetworkTileSource</doc>
            <type name="NetworkTileSource"
                  c:type="ChamplainNetworkTileSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_proxy_uri"
              c:identifier="champlain_network_tile_source_get_proxy_uri"
              version="0.6">
        <doc xml:space="preserve">Gets the proxy uri used to access network.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the proxy uri</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainNetworkTileSource</doc>
            <type name="NetworkTileSource"
                  c:type="ChamplainNetworkTileSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri_format"
              c:identifier="champlain_network_tile_source_get_uri_format"
              version="0.6">
        <doc xml:space="preserve">Default constructor of #ChamplainNetworkTileSource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A URI format used for URI creation when downloading tiles. See
champlain_network_tile_source_set_uri_format() for more information.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainNetworkTileSource</doc>
            <type name="NetworkTileSource"
                  c:type="ChamplainNetworkTileSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_offline"
              c:identifier="champlain_network_tile_source_set_offline"
              version="0.6">
        <doc xml:space="preserve">Sets offline status.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainNetworkTileSource</doc>
            <type name="NetworkTileSource"
                  c:type="ChamplainNetworkTileSource*"/>
          </instance-parameter>
          <parameter name="offline" transfer-ownership="none">
            <doc xml:space="preserve">TRUE when the tile source should be offline; FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_proxy_uri"
              c:identifier="champlain_network_tile_source_set_proxy_uri"
              version="0.6">
        <doc xml:space="preserve">Override the default proxy for accessing the network.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainNetworkTileSource</doc>
            <type name="NetworkTileSource"
                  c:type="ChamplainNetworkTileSource*"/>
          </instance-parameter>
          <parameter name="proxy_uri" transfer-ownership="none">
            <doc xml:space="preserve">the proxy uri used to access network</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uri_format"
              c:identifier="champlain_network_tile_source_set_uri_format"
              version="0.4">
        <doc xml:space="preserve">A URI format is a URI where x, y and zoom level information have been
marked for parsing and insertion.  There can be an unlimited number of
marked items in a URI format.  They are delimited by "#" before and after
the variable name. There are 4 defined variable names: X, Y, Z, and TMSY for
Y in TMS coordinates.

For example, this is the OpenStreetMap URI format:
"http://tile.openstreetmap.org/\#Z\#/\#X\#/\#Y\#.png"</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainNetworkTileSource</doc>
            <type name="NetworkTileSource"
                  c:type="ChamplainNetworkTileSource*"/>
          </instance-parameter>
          <parameter name="uri_format" transfer-ownership="none">
            <doc xml:space="preserve">the URI format</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="offline"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Specifies whether the network tile source can access network</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="proxy-uri"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Used to override the default proxy for accessing the network.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="uri-format"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The uri format of the tile source, see #champlain_network_tile_source_set_uri_format</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="TileSource" c:type="ChamplainTileSource"/>
      </field>
      <field name="priv">
        <type name="NetworkTileSourcePrivate"
              c:type="ChamplainNetworkTileSourcePrivate*"/>
      </field>
    </class>
    <record name="NetworkTileSourceClass"
            c:type="ChamplainNetworkTileSourceClass"
            glib:is-gtype-struct-for="NetworkTileSource">
      <field name="parent_class">
        <type name="TileSourceClass" c:type="ChamplainTileSourceClass"/>
      </field>
    </record>
    <record name="NetworkTileSourcePrivate"
            c:type="ChamplainNetworkTileSourcePrivate"
            disguised="1">
    </record>
    <class name="NullTileSource"
           c:symbol-prefix="null_tile_source"
           c:type="ChamplainNullTileSource"
           version="0.8"
           parent="TileSource"
           glib:type-name="ChamplainNullTileSource"
           glib:get-type="champlain_null_tile_source_get_type"
           glib:type-struct="NullTileSourceClass">
      <doc xml:space="preserve">The #ChamplainNullTileSource structure contains only private data
and should be accessed using the provided API</doc>
      <constructor name="new_full"
                   c:identifier="champlain_null_tile_source_new_full"
                   version="0.8">
        <doc xml:space="preserve">Constructor of #ChamplainNullTileSource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a constructed #ChamplainNullTileSource object</doc>
          <type name="NullTileSource" c:type="ChamplainNullTileSource*"/>
        </return-value>
        <parameters>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainRenderer used to render tiles</doc>
            <type name="Renderer" c:type="ChamplainRenderer*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="TileSource" c:type="ChamplainTileSource"/>
      </field>
    </class>
    <record name="NullTileSourceClass"
            c:type="ChamplainNullTileSourceClass"
            glib:is-gtype-struct-for="NullTileSource">
      <field name="parent_class">
        <type name="TileSourceClass" c:type="ChamplainTileSourceClass"/>
      </field>
    </record>
    <record name="NullTileSourcePrivate"
            c:type="ChamplainNullTileSourcePrivate"
            disguised="1">
    </record>
    <class name="PathLayer"
           c:symbol-prefix="path_layer"
           c:type="ChamplainPathLayer"
           version="0.10"
           parent="Layer"
           glib:type-name="ChamplainPathLayer"
           glib:get-type="champlain_path_layer_get_type"
           glib:type-struct="PathLayerClass">
      <doc xml:space="preserve">The #ChamplainPathLayer structure contains only private data
and should be accessed using the provided API</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Exportable"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_path_layer_new"
                   version="0.10">
        <doc xml:space="preserve">Creates a new instance of #ChamplainPathLayer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new instance of #ChamplainPathLayer.</doc>
          <type name="PathLayer" c:type="ChamplainPathLayer*"/>
        </return-value>
      </constructor>
      <method name="add_node"
              c:identifier="champlain_path_layer_add_node"
              version="0.10">
        <doc xml:space="preserve">Adds a #ChamplainLocation object to the layer.
The node is prepended to the list.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLocation</doc>
            <type name="Location" c:type="ChamplainLocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_closed"
              c:identifier="champlain_path_layer_get_closed"
              version="0.10">
        <doc xml:space="preserve">Gets information whether the path is closed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE when the path is closed, FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dash"
              c:identifier="champlain_path_layer_get_dash"
              version="0.12.4">
        <doc xml:space="preserve">Returns the list of dash segment lengths.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="guint"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fill"
              c:identifier="champlain_path_layer_get_fill"
              version="0.10">
        <doc xml:space="preserve">Checks whether the path is filled.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the path is filled, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fill_color"
              c:identifier="champlain_path_layer_get_fill_color"
              version="0.10">
        <doc xml:space="preserve">Gets the path's fill color.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the path's fill color.</doc>
          <type name="Clutter.Color" c:type="ClutterColor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nodes"
              c:identifier="champlain_path_layer_get_nodes"
              version="0.10">
        <doc xml:space="preserve">Gets a copy of the list of all #ChamplainLocation objects inserted into the layer. You should
free the list but not its contents.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Location"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stroke"
              c:identifier="champlain_path_layer_get_stroke"
              version="0.10">
        <doc xml:space="preserve">Checks whether the path is stroked.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the path is stroked, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stroke_color"
              c:identifier="champlain_path_layer_get_stroke_color"
              version="0.10">
        <doc xml:space="preserve">Gets the path's stroke color.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the path's stroke color.</doc>
          <type name="Clutter.Color" c:type="ClutterColor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stroke_width"
              c:identifier="champlain_path_layer_get_stroke_width"
              version="0.10">
        <doc xml:space="preserve">Gets the width of the stroke.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the width of the stroke</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible"
              c:identifier="champlain_path_layer_get_visible"
              version="0.10">
        <doc xml:space="preserve">Gets path visibility.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE when the path is visible, FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="insert_node"
              c:identifier="champlain_path_layer_insert_node"
              version="0.10">
        <doc xml:space="preserve">Inserts a #ChamplainLocation object to the specified position.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLocation</doc>
            <type name="Location" c:type="ChamplainLocation*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve">position in the list where the #ChamplainLocation object should be inserted</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_all"
              c:identifier="champlain_path_layer_remove_all"
              version="0.10">
        <doc xml:space="preserve">Removes all #ChamplainLocation objects from the layer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_node"
              c:identifier="champlain_path_layer_remove_node"
              version="0.10">
        <doc xml:space="preserve">Removes the #ChamplainLocation object from the layer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLocation</doc>
            <type name="Location" c:type="ChamplainLocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_closed"
              c:identifier="champlain_path_layer_set_closed"
              version="0.10">
        <doc xml:space="preserve">Makes the path closed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">TRUE to make the path closed</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dash"
              c:identifier="champlain_path_layer_set_dash"
              version="0.12.4">
        <doc xml:space="preserve">Sets dashed line pattern in a way similar to cairo_set_dash() of cairo. This
method supports only integer values for segment lengths. The values have to be
passed inside the data pointer of the list (using the GUINT_TO_POINTER conversion)

Pass NULL to use solid line.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
          <parameter name="dash_pattern" transfer-ownership="none">
            <doc xml:space="preserve">list of integer values representing lengths
    of dashes/spaces (see cairo documentation of cairo_set_dash())</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="guint"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_fill"
              c:identifier="champlain_path_layer_set_fill"
              version="0.10">
        <doc xml:space="preserve">Sets the path to be filled</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">if the path is filled</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fill_color"
              c:identifier="champlain_path_layer_set_fill_color"
              version="0.10">
        <doc xml:space="preserve">Set the path's fill color.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The path's fill color or NULL to reset to the
        default color. The color parameter is copied.</doc>
            <type name="Clutter.Color" c:type="const ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stroke"
              c:identifier="champlain_path_layer_set_stroke"
              version="0.10">
        <doc xml:space="preserve">Sets the path to be stroked</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">if the path is stroked</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stroke_color"
              c:identifier="champlain_path_layer_set_stroke_color"
              version="0.10">
        <doc xml:space="preserve">Set the path's stroke color.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The path's stroke color or NULL to reset to the
        default color. The color parameter is copied.</doc>
            <type name="Clutter.Color" c:type="const ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stroke_width"
              c:identifier="champlain_path_layer_set_stroke_width"
              version="0.10">
        <doc xml:space="preserve">Sets the width of the stroke</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the width of the stroke (in pixels)</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible"
              c:identifier="champlain_path_layer_set_visible"
              version="0.10">
        <doc xml:space="preserve">Sets path visibility.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPathLayer</doc>
            <type name="PathLayer" c:type="ChamplainPathLayer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">TRUE to make the path visible</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="closed"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The shape is a closed path</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="fill"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The shape should be filled</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="fill-color"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The path's fill color</doc>
        <type name="Clutter.Color"/>
      </property>
      <property name="stroke"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The shape should be stroked</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="stroke-color"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The path's stroke color</doc>
        <type name="Clutter.Color"/>
      </property>
      <property name="stroke-width"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The path's stroke width (in pixels)</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="visible"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Wether the path is visible</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="Layer" c:type="ChamplainLayer"/>
      </field>
      <field name="priv">
        <type name="PathLayerPrivate" c:type="ChamplainPathLayerPrivate*"/>
      </field>
    </class>
    <record name="PathLayerClass"
            c:type="ChamplainPathLayerClass"
            glib:is-gtype-struct-for="PathLayer">
      <field name="parent_class">
        <type name="LayerClass" c:type="ChamplainLayerClass"/>
      </field>
    </record>
    <record name="PathLayerPrivate"
            c:type="ChamplainPathLayerPrivate"
            disguised="1">
    </record>
    <class name="Point"
           c:symbol-prefix="point"
           c:type="ChamplainPoint"
           version="0.10"
           parent="Marker"
           glib:type-name="ChamplainPoint"
           glib:get-type="champlain_point_get_type"
           glib:type-struct="PointClass">
      <doc xml:space="preserve">The #ChamplainPoint structure contains only private data
and should be accessed using the provided API</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Exportable"/>
      <implements name="Location"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_point_new"
                   version="0.10">
        <doc xml:space="preserve">Creates an instance of #ChamplainPoint with default size and color.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainPoint.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </constructor>
      <constructor name="new_full"
                   c:identifier="champlain_point_new_full"
                   version="0.10">
        <doc xml:space="preserve">Creates an instance of #ChamplainPoint with the specified size and color.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainPoint.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">Marker size</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="color" transfer-ownership="none">
            <doc xml:space="preserve">Marker color</doc>
            <type name="Clutter.Color" c:type="const ClutterColor*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_color"
              c:identifier="champlain_point_get_color"
              version="0.10">
        <doc xml:space="preserve">Gets the color of the point.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the color.</doc>
          <type name="Clutter.Color" c:type="ClutterColor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="point" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPoint</doc>
            <type name="Point" c:type="ChamplainPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size"
              c:identifier="champlain_point_get_size"
              version="0.10">
        <doc xml:space="preserve">Gets the size of the point.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the size.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="point" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPoint</doc>
            <type name="Point" c:type="ChamplainPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_color"
              c:identifier="champlain_point_set_color"
              version="0.10">
        <doc xml:space="preserve">Set the color of the point.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="point" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPoint</doc>
            <type name="Point" c:type="ChamplainPoint*"/>
          </instance-parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The color of the point or NULL to reset the background to the
        default color. The color parameter is copied.</doc>
            <type name="Clutter.Color" c:type="const ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size"
              c:identifier="champlain_point_set_size"
              version="0.10">
        <doc xml:space="preserve">Set the size of the point.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="point" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainPoint</doc>
            <type name="Point" c:type="ChamplainPoint*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">The size of the point.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <property name="color" writable="1" transfer-ownership="none">
        <type name="Clutter.Color"/>
      </property>
      <property name="size" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <field name="parent">
        <type name="Marker" c:type="ChamplainMarker"/>
      </field>
      <field name="priv">
        <type name="PointPrivate" c:type="ChamplainPointPrivate*"/>
      </field>
    </class>
    <record name="PointClass"
            c:type="ChamplainPointClass"
            glib:is-gtype-struct-for="Point">
      <field name="parent_class">
        <type name="MarkerClass" c:type="ChamplainMarkerClass"/>
      </field>
    </record>
    <record name="PointPrivate" c:type="ChamplainPointPrivate" disguised="1">
    </record>
    <class name="Renderer"
           c:symbol-prefix="renderer"
           c:type="ChamplainRenderer"
           version="0.8"
           parent="GObject.InitiallyUnowned"
           glib:type-name="ChamplainRenderer"
           glib:get-type="champlain_renderer_get_type"
           glib:type-struct="RendererClass">
      <doc xml:space="preserve">The #ChamplainRenderer structure contains only private data
and should be accessed using the provided API</doc>
      <virtual-method name="render" invoker="render" version="0.8">
        <doc xml:space="preserve">Renders the texture for the provided tile and calls champlain_tile_set_content()
to set the content of the tile. When the rendering is finished, the renderer
emits the #ChamplainTile::render-complete signal. The tile has to be displayed manually by
calling champlain_tile_display_content().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainRenderer</doc>
            <type name="Renderer" c:type="ChamplainRenderer*"/>
          </instance-parameter>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:space="preserve">the tile to render</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_data" invoker="set_data" version="0.8">
        <doc xml:space="preserve">Sets the data which is used to render tiles by the renderer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainRenderer</doc>
            <type name="Renderer" c:type="ChamplainRenderer*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">data used for tile rendering</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">size of the data in bytes</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="render"
              c:identifier="champlain_renderer_render"
              version="0.8">
        <doc xml:space="preserve">Renders the texture for the provided tile and calls champlain_tile_set_content()
to set the content of the tile. When the rendering is finished, the renderer
emits the #ChamplainTile::render-complete signal. The tile has to be displayed manually by
calling champlain_tile_display_content().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainRenderer</doc>
            <type name="Renderer" c:type="ChamplainRenderer*"/>
          </instance-parameter>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:space="preserve">the tile to render</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_data"
              c:identifier="champlain_renderer_set_data"
              version="0.8">
        <doc xml:space="preserve">Sets the data which is used to render tiles by the renderer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainRenderer</doc>
            <type name="Renderer" c:type="ChamplainRenderer*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">data used for tile rendering</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">size of the data in bytes</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
      </field>
    </class>
    <record name="RendererClass"
            c:type="ChamplainRendererClass"
            glib:is-gtype-struct-for="Renderer">
      <field name="parent_class">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
      <field name="set_data">
        <callback name="set_data">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainRenderer</doc>
              <type name="Renderer" c:type="ChamplainRenderer*"/>
            </parameter>
            <parameter name="data" transfer-ownership="none">
              <doc xml:space="preserve">data used for tile rendering</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="size" transfer-ownership="none">
              <doc xml:space="preserve">size of the data in bytes</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="render">
        <callback name="render">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainRenderer</doc>
              <type name="Renderer" c:type="ChamplainRenderer*"/>
            </parameter>
            <parameter name="tile" transfer-ownership="none">
              <doc xml:space="preserve">the tile to render</doc>
              <type name="Tile" c:type="ChamplainTile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Scale"
           c:symbol-prefix="scale"
           c:type="ChamplainScale"
           version="0.10"
           parent="Clutter.Actor"
           glib:type-name="ChamplainScale"
           glib:get-type="champlain_scale_get_type"
           glib:type-struct="ScaleClass">
      <doc xml:space="preserve">The #ChamplainScale structure contains only private data
and should be accessed using the provided API</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_scale_new"
                   version="0.10">
        <doc xml:space="preserve">Creates an instance of #ChamplainScale.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainScale.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </constructor>
      <method name="connect_view"
              c:identifier="champlain_scale_connect_view"
              version="0.10">
        <doc xml:space="preserve">This method connects to the necessary signals of #ChamplainView to make the
scale adapt to the current latitude and longitude.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainScale</doc>
            <type name="Scale" c:type="ChamplainScale*"/>
          </instance-parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </parameter>
        </parameters>
      </method>
      <method name="disconnect_view"
              c:identifier="champlain_scale_disconnect_view"
              version="0.10">
        <doc xml:space="preserve">This method disconnects from the signals previously connected by champlain_scale_connect_view().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainScale</doc>
            <type name="Scale" c:type="ChamplainScale*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_width"
              c:identifier="champlain_scale_get_max_width"
              version="0.10">
        <doc xml:space="preserve">Gets the maximum scale width.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The maximum scale width in pixels.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainScale</doc>
            <type name="Scale" c:type="ChamplainScale*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_unit"
              c:identifier="champlain_scale_get_unit"
              version="0.10">
        <doc xml:space="preserve">Gets the unit used by the scale.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The unit used by the scale</doc>
          <type name="Unit" c:type="ChamplainUnit"/>
        </return-value>
        <parameters>
          <instance-parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainScale</doc>
            <type name="Scale" c:type="ChamplainScale*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_max_width"
              c:identifier="champlain_scale_set_max_width"
              version="0.10">
        <doc xml:space="preserve">Sets the maximum width of the scale on the screen in pixels</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainScale</doc>
            <type name="Scale" c:type="ChamplainScale*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the number of pixels</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_unit"
              c:identifier="champlain_scale_set_unit"
              version="0.10">
        <doc xml:space="preserve">Sets the scale unit.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainScale</doc>
            <type name="Scale" c:type="ChamplainScale*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainUnit</doc>
            <type name="Unit" c:type="ChamplainUnit"/>
          </parameter>
        </parameters>
      </method>
      <property name="max-width"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The size of the map scale on screen in pixels.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="unit"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The scale's units.</doc>
        <type name="Unit"/>
      </property>
      <field name="parent">
        <type name="Clutter.Actor" c:type="ClutterActor"/>
      </field>
      <field name="priv">
        <type name="ScalePrivate" c:type="ChamplainScalePrivate*"/>
      </field>
    </class>
    <record name="ScaleClass"
            c:type="ChamplainScaleClass"
            glib:is-gtype-struct-for="Scale">
      <field name="parent_class">
        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
      </field>
    </record>
    <record name="ScalePrivate" c:type="ChamplainScalePrivate" disguised="1">
    </record>
    <enumeration name="SelectionMode"
                 glib:type-name="ChamplainSelectionMode"
                 glib:get-type="champlain_selection_mode_get_type"
                 c:type="ChamplainSelectionMode">
      <doc xml:space="preserve">Selection mode</doc>
      <member name="none"
              value="0"
              c:identifier="CHAMPLAIN_SELECTION_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No marker can be selected.</doc>
      </member>
      <member name="single"
              value="1"
              c:identifier="CHAMPLAIN_SELECTION_SINGLE"
              glib:nick="single">
        <doc xml:space="preserve">Only one marker can be selected.</doc>
      </member>
      <member name="multiple"
              value="2"
              c:identifier="CHAMPLAIN_SELECTION_MULTIPLE"
              glib:nick="multiple">
        <doc xml:space="preserve">Multiple marker can be selected.</doc>
      </member>
    </enumeration>
    <enumeration name="State"
                 glib:type-name="ChamplainState"
                 glib:get-type="champlain_state_get_type"
                 c:type="ChamplainState">
      <doc xml:space="preserve">Tile loading state.</doc>
      <member name="none"
              value="0"
              c:identifier="CHAMPLAIN_STATE_NONE"
              glib:nick="none">
        <doc xml:space="preserve">Initial or undefined state</doc>
      </member>
      <member name="loading"
              value="1"
              c:identifier="CHAMPLAIN_STATE_LOADING"
              glib:nick="loading">
        <doc xml:space="preserve">Tile is loading</doc>
      </member>
      <member name="loaded"
              value="2"
              c:identifier="CHAMPLAIN_STATE_LOADED"
              glib:nick="loaded">
        <doc xml:space="preserve">Tile is loaded but not yet displayed</doc>
      </member>
      <member name="done"
              value="3"
              c:identifier="CHAMPLAIN_STATE_DONE"
              glib:nick="done">
        <doc xml:space="preserve">Tile loading finished. Also used to inform map sources
    that tile loading has been cancelled.</doc>
      </member>
    </enumeration>
    <class name="Tile"
           c:symbol-prefix="tile"
           c:type="ChamplainTile"
           version="0.4"
           parent="Clutter.Actor"
           glib:type-name="ChamplainTile"
           glib:get-type="champlain_tile_get_type"
           glib:type-struct="TileClass">
      <doc xml:space="preserve">The #ChamplainTile structure contains only private data
and should be accessed using the provided API</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Exportable"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="champlain_tile_new" version="0.4">
        <doc xml:space="preserve">Creates an instance of #ChamplainTile.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainTile</doc>
          <type name="Tile" c:type="ChamplainTile*"/>
        </return-value>
      </constructor>
      <constructor name="new_full"
                   c:identifier="champlain_tile_new_full"
                   version="0.4">
        <doc xml:space="preserve">Creates an instance of #ChamplainTile.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #ChamplainTile</doc>
          <type name="Tile" c:type="ChamplainTile*"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">the x position</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">the y position</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the size in pixels</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="display_content"
              c:identifier="champlain_tile_display_content"
              version="0.8">
        <doc xml:space="preserve">Displays the tile's content.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content"
              c:identifier="champlain_tile_get_content"
              version="0.4">
        <doc xml:space="preserve">Gets the tile's content actor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tile's content, this actor will change each time the tile's content changes.
You should not unref this content, it is owned by the tile.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_etag"
              c:identifier="champlain_tile_get_etag"
              version="0.4">
        <doc xml:space="preserve">Gets the tile's ETag.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tile's ETag</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fade_in"
              c:identifier="champlain_tile_get_fade_in"
              version="0.6">
        <doc xml:space="preserve">Checks whether the tile should fade in.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the return value determines whether the tile should fade in when loading.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modified_time"
              c:identifier="champlain_tile_get_modified_time"
              version="0.4">
        <doc xml:space="preserve">Gets the tile's last modified time.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tile's last modified time</doc>
          <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size"
              c:identifier="champlain_tile_get_size"
              version="0.4">
        <doc xml:space="preserve">Gets the tile's size.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tile's size in pixels</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_state"
              c:identifier="champlain_tile_get_state"
              version="0.4">
        <doc xml:space="preserve">Gets the current state of tile loading.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tile's #ChamplainState</doc>
          <type name="State" c:type="ChamplainState"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_x" c:identifier="champlain_tile_get_x" version="0.4">
        <doc xml:space="preserve">Gets the tile's x position.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tile's x position</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_y" c:identifier="champlain_tile_get_y" version="0.4">
        <doc xml:space="preserve">Gets the tile's y position.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tile's y position</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_zoom_level"
              c:identifier="champlain_tile_get_zoom_level"
              version="0.4">
        <doc xml:space="preserve">Gets the tile's zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tile's zoom level</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_content"
              c:identifier="champlain_tile_set_content"
              version="0.4">
        <doc xml:space="preserve">Sets the tile's content. To also disppay the tile, you have to call
champlain_tile_display_content() in addition.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve">the new content</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_etag"
              c:identifier="champlain_tile_set_etag"
              version="0.4">
        <doc xml:space="preserve">Sets the tile's ETag</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
          <parameter name="etag" transfer-ownership="none">
            <doc xml:space="preserve">the tile's ETag as sent by the server</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fade_in"
              c:identifier="champlain_tile_set_fade_in"
              version="0.6">
        <doc xml:space="preserve">Sets the flag determining whether the tile should fade in when loading</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
          <parameter name="fade_in" transfer-ownership="none">
            <doc xml:space="preserve">determines whether the tile should fade in when loading</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modified_time"
              c:identifier="champlain_tile_set_modified_time"
              version="0.4">
        <doc xml:space="preserve">Sets the tile's modified time</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
          <parameter name="time" transfer-ownership="none">
            <doc xml:space="preserve">a #GTimeVal, the value will be copied</doc>
            <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size"
              c:identifier="champlain_tile_set_size"
              version="0.4">
        <doc xml:space="preserve">Sets the tile's size</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the size in pixels</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_state"
              c:identifier="champlain_tile_set_state"
              version="0.4">
        <doc xml:space="preserve">Sets the tile's #ChamplainState</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainState</doc>
            <type name="State" c:type="ChamplainState"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_x" c:identifier="champlain_tile_set_x" version="0.4">
        <doc xml:space="preserve">Sets the tile's x position</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">the position</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_y" c:identifier="champlain_tile_set_y" version="0.4">
        <doc xml:space="preserve">Sets the tile's y position</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">the position</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_zoom_level"
              c:identifier="champlain_tile_set_zoom_level"
              version="0.4">
        <doc xml:space="preserve">Sets the tile's zoom level</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="content"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The #ClutterActor with the specific image content.  When changing this
property, the new actor will be faded in.</doc>
        <type name="Clutter.Actor"/>
      </property>
      <property name="etag"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The tile's ETag. This information is sent by some web servers as a mean
to identify if a tile has changed.  This information is saved in the cache
and sent in GET queries.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="fade-in"
                version="0.6"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Specifies whether the tile should fade in when loading</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="size"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The size of the tile in pixels</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="state"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The state of the tile</doc>
        <type name="State"/>
      </property>
      <property name="x" version="0.4" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The x position of the tile</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="y" version="0.4" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The y position of the tile</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="zoom-level"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The zoom level of the tile</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent">
        <type name="Clutter.Actor" c:type="ClutterActor"/>
      </field>
      <field name="priv">
        <type name="TilePrivate" c:type="ChamplainTilePrivate*"/>
      </field>
      <glib:signal name="render-complete" when="last" version="0.10">
        <doc xml:space="preserve">The #ChamplainTile::render-complete signal is emitted when rendering of the tile is
completed by the renderer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the result of the rendering</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">size of data</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:space="preserve">TRUE if there was an error during rendering</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <class name="TileCache"
           c:symbol-prefix="tile_cache"
           c:type="ChamplainTileCache"
           version="0.6"
           parent="MapSource"
           abstract="1"
           glib:type-name="ChamplainTileCache"
           glib:get-type="champlain_tile_cache_get_type"
           glib:type-struct="TileCacheClass">
      <doc xml:space="preserve">The #ChamplainTileCache structure contains only private data
and should be accessed using the provided API</doc>
      <virtual-method name="on_tile_filled"
                      invoker="on_tile_filled"
                      version="0.6">
        <doc xml:space="preserve">When a cache fills a tile and the next source in the chain is a tile cache,
it should call this function on the next source. This way all the caches
preceding a tile source in the chain get informed that the tile was used and
can modify their metadata accordingly in the implementation of this function.
In addition, the call of this function should be chained so within the
implementation of this function it should be called on the next source
in the chain when next source is a tile cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileCache</doc>
            <type name="TileCache" c:type="ChamplainTileCache*"/>
          </instance-parameter>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="refresh_tile_time"
                      invoker="refresh_tile_time"
                      version="0.6">
        <doc xml:space="preserve">Refreshes the tile access time in the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileCache</doc>
            <type name="TileCache" c:type="ChamplainTileCache*"/>
          </instance-parameter>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="store_tile" invoker="store_tile" version="0.6">
        <doc xml:space="preserve">Stores the tile including the metadata into the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileCache</doc>
            <type name="TileCache" c:type="ChamplainTileCache*"/>
          </instance-parameter>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </parameter>
          <parameter name="contents" transfer-ownership="none">
            <doc xml:space="preserve">the tile contents that should be stored</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">size of the contents in bytes</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="on_tile_filled"
              c:identifier="champlain_tile_cache_on_tile_filled"
              version="0.6">
        <doc xml:space="preserve">When a cache fills a tile and the next source in the chain is a tile cache,
it should call this function on the next source. This way all the caches
preceding a tile source in the chain get informed that the tile was used and
can modify their metadata accordingly in the implementation of this function.
In addition, the call of this function should be chained so within the
implementation of this function it should be called on the next source
in the chain when next source is a tile cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileCache</doc>
            <type name="TileCache" c:type="ChamplainTileCache*"/>
          </instance-parameter>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="refresh_tile_time"
              c:identifier="champlain_tile_cache_refresh_tile_time"
              version="0.6">
        <doc xml:space="preserve">Refreshes the tile access time in the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileCache</doc>
            <type name="TileCache" c:type="ChamplainTileCache*"/>
          </instance-parameter>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="store_tile"
              c:identifier="champlain_tile_cache_store_tile"
              version="0.6">
        <doc xml:space="preserve">Stores the tile including the metadata into the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileCache</doc>
            <type name="TileCache" c:type="ChamplainTileCache*"/>
          </instance-parameter>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </parameter>
          <parameter name="contents" transfer-ownership="none">
            <doc xml:space="preserve">the tile contents that should be stored</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">size of the contents in bytes</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="MapSource" c:type="ChamplainMapSource"/>
      </field>
      <field name="priv">
        <type name="TileCachePrivate" c:type="ChamplainTileCachePrivate*"/>
      </field>
    </class>
    <record name="TileCacheClass"
            c:type="ChamplainTileCacheClass"
            glib:is-gtype-struct-for="TileCache">
      <field name="parent_class">
        <type name="MapSourceClass" c:type="ChamplainMapSourceClass"/>
      </field>
      <field name="store_tile">
        <callback name="store_tile">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tile_cache" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainTileCache</doc>
              <type name="TileCache" c:type="ChamplainTileCache*"/>
            </parameter>
            <parameter name="tile" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainTile</doc>
              <type name="Tile" c:type="ChamplainTile*"/>
            </parameter>
            <parameter name="contents" transfer-ownership="none">
              <doc xml:space="preserve">the tile contents that should be stored</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="size" transfer-ownership="none">
              <doc xml:space="preserve">size of the contents in bytes</doc>
              <type name="gsize" c:type="gsize"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="refresh_tile_time">
        <callback name="refresh_tile_time">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tile_cache" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainTileCache</doc>
              <type name="TileCache" c:type="ChamplainTileCache*"/>
            </parameter>
            <parameter name="tile" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainTile</doc>
              <type name="Tile" c:type="ChamplainTile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="on_tile_filled">
        <callback name="on_tile_filled">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tile_cache" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainTileCache</doc>
              <type name="TileCache" c:type="ChamplainTileCache*"/>
            </parameter>
            <parameter name="tile" transfer-ownership="none">
              <doc xml:space="preserve">a #ChamplainTile</doc>
              <type name="Tile" c:type="ChamplainTile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="TileCachePrivate"
            c:type="ChamplainTileCachePrivate"
            disguised="1">
    </record>
    <record name="TileClass"
            c:type="ChamplainTileClass"
            glib:is-gtype-struct-for="Tile">
      <field name="parent_class">
        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
      </field>
    </record>
    <record name="TilePrivate" c:type="ChamplainTilePrivate" disguised="1">
    </record>
    <class name="TileSource"
           c:symbol-prefix="tile_source"
           c:type="ChamplainTileSource"
           version="0.6"
           parent="MapSource"
           abstract="1"
           glib:type-name="ChamplainTileSource"
           glib:get-type="champlain_tile_source_get_type"
           glib:type-struct="TileSourceClass">
      <doc xml:space="preserve">The #ChamplainTileSource structure contains only private data
and should be accessed using the provided API</doc>
      <method name="get_cache"
              c:identifier="champlain_tile_source_get_cache"
              version="0.6">
        <doc xml:space="preserve">Gets the cache used for storing tiles by this tile source.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the cache</doc>
          <type name="TileCache" c:type="ChamplainTileCache*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileSource</doc>
            <type name="TileSource" c:type="ChamplainTileSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_cache"
              c:identifier="champlain_tile_source_set_cache"
              version="0.6">
        <doc xml:space="preserve">Sets the map source's cache used for storing tiles.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileSource</doc>
            <type name="TileSource" c:type="ChamplainTileSource*"/>
          </instance-parameter>
          <parameter name="cache" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileCache</doc>
            <type name="TileCache" c:type="ChamplainTileCache*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id"
              c:identifier="champlain_tile_source_set_id"
              version="0.4">
        <doc xml:space="preserve">Sets the tile source's id.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileSource</doc>
            <type name="TileSource" c:type="ChamplainTileSource*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">an id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_license"
              c:identifier="champlain_tile_source_set_license"
              version="0.4">
        <doc xml:space="preserve">Sets the tile source's license.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileSource</doc>
            <type name="TileSource" c:type="ChamplainTileSource*"/>
          </instance-parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">the licence</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_license_uri"
              c:identifier="champlain_tile_source_set_license_uri"
              version="0.4">
        <doc xml:space="preserve">Sets the tile source's license URI.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileSource</doc>
            <type name="TileSource" c:type="ChamplainTileSource*"/>
          </instance-parameter>
          <parameter name="license_uri" transfer-ownership="none">
            <doc xml:space="preserve">the licence URI</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_zoom_level"
              c:identifier="champlain_tile_source_set_max_zoom_level"
              version="0.6">
        <doc xml:space="preserve">Sets the tile source's maximum zoom level.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileSource</doc>
            <type name="TileSource" c:type="ChamplainTileSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the maximum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_min_zoom_level"
              c:identifier="champlain_tile_source_set_min_zoom_level"
              version="0.6">
        <doc xml:space="preserve">Sets the tile source's minimal zoom level.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileSource</doc>
            <type name="TileSource" c:type="ChamplainTileSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the minimal zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="champlain_tile_source_set_name"
              version="0.4">
        <doc xml:space="preserve">Sets the tile source's name.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileSource</doc>
            <type name="TileSource" c:type="ChamplainTileSource*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">a name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_projection"
              c:identifier="champlain_tile_source_set_projection"
              version="0.4">
        <doc xml:space="preserve">Sets the tile source's projection.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileSource</doc>
            <type name="TileSource" c:type="ChamplainTileSource*"/>
          </instance-parameter>
          <parameter name="projection" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapProjection</doc>
            <type name="MapProjection" c:type="ChamplainMapProjection"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tile_size"
              c:identifier="champlain_tile_source_set_tile_size"
              version="0.6">
        <doc xml:space="preserve">Sets the tile source's tile size.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tile_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainTileSource</doc>
            <type name="TileSource" c:type="ChamplainTileSource*"/>
          </instance-parameter>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:space="preserve">the tile size</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="cache"
                version="0.6"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The cache used for tile storage</doc>
        <type name="TileCache"/>
      </property>
      <property name="id"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The id of the tile source</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="license"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The usage license of the tile source</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="license-uri"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The usage license's uri for more information</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="max-zoom-level"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The maximum zoom level</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="min-zoom-level"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The minimum zoom level</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="name"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The name of the tile source</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="projection"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The map projection of the tile source</doc>
        <type name="MapProjection"/>
      </property>
      <property name="tile-size"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The tile size of the tile source</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent_instance">
        <type name="MapSource" c:type="ChamplainMapSource"/>
      </field>
      <field name="priv">
        <type name="TileSourcePrivate" c:type="ChamplainTileSourcePrivate*"/>
      </field>
    </class>
    <record name="TileSourceClass"
            c:type="ChamplainTileSourceClass"
            glib:is-gtype-struct-for="TileSource">
      <field name="parent_class">
        <type name="MapSourceClass" c:type="ChamplainMapSourceClass"/>
      </field>
    </record>
    <record name="TileSourcePrivate"
            c:type="ChamplainTileSourcePrivate"
            disguised="1">
    </record>
    <enumeration name="Unit"
                 glib:type-name="ChamplainUnit"
                 glib:get-type="champlain_unit_get_type"
                 c:type="ChamplainUnit">
      <doc xml:space="preserve">Units used by the scale.</doc>
      <member name="km"
              value="0"
              c:identifier="CHAMPLAIN_UNIT_KM"
              glib:nick="km">
        <doc xml:space="preserve">kilometers</doc>
      </member>
      <member name="miles"
              value="1"
              c:identifier="CHAMPLAIN_UNIT_MILES"
              glib:nick="miles">
        <doc xml:space="preserve">miles</doc>
      </member>
    </enumeration>
    <constant name="VERSION" value="0.120000" c:type="CHAMPLAIN_VERSION">
      <doc xml:space="preserve">The full version of libchamplain, like 1.2.3</doc>
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <constant name="VERSION_HEX" value="0" c:type="CHAMPLAIN_VERSION_HEX">
      <doc xml:space="preserve">Numerically encoded version of libchamplain, like 0x010203</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="VERSION_S" value="0.12.13" c:type="CHAMPLAIN_VERSION_S">
      <doc xml:space="preserve">The full version of libchamplain, in string form (suited for
string concatenation)</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="View"
           c:symbol-prefix="view"
           c:type="ChamplainView"
           version="0.1"
           parent="Clutter.Actor"
           glib:type-name="ChamplainView"
           glib:get-type="champlain_view_get_type"
           glib:type-struct="ViewClass">
      <doc xml:space="preserve">The #ChamplainView structure contains only private data
and should be accessed using the provided API</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="champlain_view_new" version="0.4">
        <doc xml:space="preserve">Creates an instance of #ChamplainView.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #ChamplainView ready to be used as a #ClutterActor.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </constructor>
      <method name="add_layer"
              c:identifier="champlain_view_add_layer"
              version="0.2">
        <doc xml:space="preserve">Adds a new layer to the view</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLayer</doc>
            <type name="Layer" c:type="ChamplainLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_overlay_source"
              c:identifier="champlain_view_add_overlay_source"
              version="0.12.5">
        <doc xml:space="preserve">Adds a new overlay map source to render tiles with the supplied opacity on top
of the ordinary map source. Multiple overlay sources can be added.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </parameter>
          <parameter name="opacity" transfer-ownership="none">
            <doc xml:space="preserve">opacity to use</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
        </parameters>
      </method>
      <method name="bin_layout_add"
              c:identifier="champlain_view_bin_layout_add"
              version="0.10"
              deprecated="1"
              deprecated-version="0.12.4">
        <doc xml:space="preserve">This function inserts a custom actor to the undrelying #ClutterBinLayout
manager. The inserted actors appear on top of the map. See clutter_bin_layout_add()
for reference.</doc>
        <doc-deprecated xml:space="preserve">Use #ClutterActorAlign and the #ClutterActor
API instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve">The child to be inserted</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
          <parameter name="x_align" transfer-ownership="none">
            <doc xml:space="preserve">x alignment</doc>
            <type name="Clutter.BinAlignment" c:type="ClutterBinAlignment"/>
          </parameter>
          <parameter name="y_align" transfer-ownership="none">
            <doc xml:space="preserve">y alignment</doc>
            <type name="Clutter.BinAlignment" c:type="ClutterBinAlignment"/>
          </parameter>
        </parameters>
      </method>
      <method name="center_on"
              c:identifier="champlain_view_center_on"
              version="0.1">
        <doc xml:space="preserve">Centers the map on these coordinates.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">the longitude to center the map at</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">the longitude to center the map at</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_layers_visible"
              c:identifier="champlain_view_ensure_layers_visible"
              version="0.10">
        <doc xml:space="preserve">Changes the map's zoom level and center to make sure that the bounding
boxes of all inserted layers are visible.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="animate" transfer-ownership="none">
            <doc xml:space="preserve">TRUE to perform animation, FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_visible"
              c:identifier="champlain_view_ensure_visible"
              version="0.10">
        <doc xml:space="preserve">Changes the map's zoom level and center to make sure the given area
is visible</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="bbox" transfer-ownership="none">
            <doc xml:space="preserve">bounding box of the area that should be visible</doc>
            <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
          </parameter>
          <parameter name="animate" transfer-ownership="none">
            <doc xml:space="preserve">TRUE to perform animation, FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_animate_zoom"
              c:identifier="champlain_view_get_animate_zoom"
              version="0.12">
        <doc xml:space="preserve">Checks whether the view animates zoom level changes.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the view animates zooms, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_background_pattern"
              c:identifier="champlain_view_get_background_pattern"
              version="0.12.4">
        <doc xml:space="preserve">Gets the current background texture displayed behind the map.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The texture.</doc>
          <type name="Clutter.Content" c:type="ClutterContent*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bounding_box"
              c:identifier="champlain_view_get_bounding_box"
              version="0.12.4">
        <doc xml:space="preserve">Gets the bounding box for view @view at current zoom-level.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the bounding box</doc>
          <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bounding_box_for_zoom_level"
              c:identifier="champlain_view_get_bounding_box_for_zoom_level"
              version="0.12.6">
        <doc xml:space="preserve">Gets the bounding box for view @view at @zoom_level.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the bounding box for the view at @zoom_level.</doc>
          <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the level of zoom, a guint between 1 and 20</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_center_latitude"
              c:identifier="champlain_view_get_center_latitude"
              version="0.10">
        <doc xml:space="preserve">Gets the latitude of the view's center.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the latitude.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_center_longitude"
              c:identifier="champlain_view_get_center_longitude"
              version="0.10">
        <doc xml:space="preserve">Gets the longitude of the view's center.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the longitude.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_deceleration"
              c:identifier="champlain_view_get_deceleration"
              version="0.4">
        <doc xml:space="preserve">Gets the view's deceleration rate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the view's deceleration rate.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keep_center_on_resize"
              c:identifier="champlain_view_get_keep_center_on_resize"
              version="0.4">
        <doc xml:space="preserve">Checks whether to keep the center on resize</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the view keeps the center on resize, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kinetic_mode"
              c:identifier="champlain_view_get_kinetic_mode"
              version="0.10">
        <doc xml:space="preserve">Gets the view's scroll mode behaviour.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE for kinetic mode, FALSE for push mode.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_license_actor"
              c:identifier="champlain_view_get_license_actor"
              version="0.10">
        <doc xml:space="preserve">Returns the #ChamplainLicense actor which is inserted by default into the
layout manager. It can be manipulated using standard #ClutterActor methods
(hidden and so on).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the license actor</doc>
          <type name="License" c:type="ChamplainLicense*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_map_source"
              c:identifier="champlain_view_get_map_source"
              version="0.4">
        <doc xml:space="preserve">Gets the view's current map source.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the view's current map source. If you need to keep a reference to the
map source then you have to call #g_object_ref().</doc>
          <type name="MapSource" c:type="ChamplainMapSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_zoom_level"
              c:identifier="champlain_view_get_max_zoom_level"
              version="0.4">
        <doc xml:space="preserve">Gets the view's maximum allowed zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the view's maximum allowed zoom level.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_min_zoom_level"
              c:identifier="champlain_view_get_min_zoom_level"
              version="0.4">
        <doc xml:space="preserve">Gets the view's minimal allowed zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the view's minimal allowed zoom level.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_overlay_sources"
              c:identifier="champlain_view_get_overlay_sources"
              version="0.12.5">
        <doc xml:space="preserve">Gets a list of overlay sources.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="MapSource"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_state"
              c:identifier="champlain_view_get_state"
              version="0.10">
        <doc xml:space="preserve">Gets the view's state.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the state.</doc>
          <type name="State" c:type="ChamplainState"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_viewport_origin"
              c:identifier="champlain_view_get_viewport_origin"
              version="0.10">
        <doc xml:space="preserve">Gets the x and y coordinate of the viewport in respect to the layer origin.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the x coordinate of the viewport</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the y coordinate of the viewport</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_world"
              c:identifier="champlain_view_get_world"
              version="0.12.11">
        <doc xml:space="preserve">Get the bounding box that represents the extent of the world.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #ChamplainBoundingBox that represents the current world</doc>
          <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_zoom_level"
              c:identifier="champlain_view_get_zoom_level"
              version="0.4">
        <doc xml:space="preserve">Gets the view's current zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the view's current zoom level.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_zoom_on_double_click"
              c:identifier="champlain_view_get_zoom_on_double_click"
              version="0.4">
        <doc xml:space="preserve">Checks whether the view zooms on double click.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the view zooms on double click, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="go_to" c:identifier="champlain_view_go_to" version="0.4">
        <doc xml:space="preserve">Move from the current position to these coordinates. All tiles in the
intermediate view WILL be loaded!</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">the longitude to center the map at</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">the longitude to center the map at</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="latitude_to_y"
              c:identifier="champlain_view_latitude_to_y"
              version="0.10">
        <doc xml:space="preserve">Converts the latitude to view's y coordinate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the y coordinate</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">the latitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="longitude_to_x"
              c:identifier="champlain_view_longitude_to_x"
              version="0.10">
        <doc xml:space="preserve">Converts the longitude to view's x coordinate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the x coordinate</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">the longitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="reload_tiles"
              c:identifier="champlain_view_reload_tiles"
              version="0.8">
        <doc xml:space="preserve">Reloads all visible tiles.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_layer"
              c:identifier="champlain_view_remove_layer"
              version="0.4.1">
        <doc xml:space="preserve">Removes the given layer from the view</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainLayer</doc>
            <type name="Layer" c:type="ChamplainLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_overlay_source"
              c:identifier="champlain_view_remove_overlay_source"
              version="0.12.5">
        <doc xml:space="preserve">Removes an overlay source from #ChamplainView.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_animate_zoom"
              c:identifier="champlain_view_set_animate_zoom"
              version="0.12">
        <doc xml:space="preserve">Should the view animate zoom level changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">a #gboolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_background_pattern"
              c:identifier="champlain_view_set_background_pattern"
              version="0.12.4">
        <doc xml:space="preserve">Sets the background texture displayed behind the map. Setting the background
pattern affects performence slightly - use reasonably large patterns for
better performance.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="background" transfer-ownership="none">
            <doc xml:space="preserve">The background texture</doc>
            <type name="Clutter.Content" c:type="ClutterContent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_deceleration"
              c:identifier="champlain_view_set_deceleration"
              version="0.4">
        <doc xml:space="preserve">The deceleration rate for the kinetic mode.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="rate" transfer-ownership="none">
            <doc xml:space="preserve">a #gdouble between 1.001 and 2.0</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keep_center_on_resize"
              c:identifier="champlain_view_set_keep_center_on_resize"
              version="0.4">
        <doc xml:space="preserve">Keep the current centered position when resizing the view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">a #gboolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kinetic_mode"
              c:identifier="champlain_view_set_kinetic_mode"
              version="0.10">
        <doc xml:space="preserve">Determines the way the view reacts to scroll events.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="kinetic" transfer-ownership="none">
            <doc xml:space="preserve">TRUE for kinetic mode, FALSE for push mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_map_source"
              c:identifier="champlain_view_set_map_source"
              version="0.4">
        <doc xml:space="preserve">Changes the currently used map source. #g_object_unref() will be called on
the previous one.

As a side effect, changing the primary map source will also clear all
secondary map sources.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_zoom_level"
              c:identifier="champlain_view_set_max_zoom_level"
              version="0.4">
        <doc xml:space="preserve">Changes the highest allowed level of zoom</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the level of zoom</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_min_zoom_level"
              c:identifier="champlain_view_set_min_zoom_level"
              version="0.4">
        <doc xml:space="preserve">Changes the lowest allowed level of zoom</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the level of zoom</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_world"
              c:identifier="champlain_view_set_world"
              version="0.12.11">
        <doc xml:space="preserve">Set a bounding box to limit the world to. No tiles will be loaded
outside of this bounding box. It will not be possible to scroll outside
of this bounding box.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="bbox" transfer-ownership="none">
            <doc xml:space="preserve">the #ChamplainBoundingBox of the world</doc>
            <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_zoom_level"
              c:identifier="champlain_view_set_zoom_level"
              version="0.4">
        <doc xml:space="preserve">Changes the current level of zoom</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the level of zoom, a guint between 1 and 20</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_zoom_on_double_click"
              c:identifier="champlain_view_set_zoom_on_double_click"
              version="0.4">
        <doc xml:space="preserve">Should the view zoom in and recenter when the user double click on the map.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">a #gboolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop_go_to"
              c:identifier="champlain_view_stop_go_to"
              version="0.4">
        <doc xml:space="preserve">Stop the go to animation.  The view will stay where it was when the
animation was stopped.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_surface" c:identifier="champlain_view_to_surface">
        <doc xml:space="preserve">Will generate a #cairo_surface_t that represents the current view
of the map. Without any markers or layers. If the current #ChamplainRenderer
used does not support this, this function will return %NULL.

If @include_layers is set to %TRUE all layers that implement
#ChamplainExportable will be included in the surface.

The #ChamplainView also need to be in #CHAMPLAIN_STATE_DONE state.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #cairo_surface_t or %NULL on failure. Free with
         cairo_surface_destroy() when done.</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="include_layers" transfer-ownership="none">
            <doc xml:space="preserve">Set to %TRUE if you want to include layers</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="x_to_longitude"
              c:identifier="champlain_view_x_to_longitude"
              version="0.10">
        <doc xml:space="preserve">Converts the view's x coordinate to longitude.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the longitude</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">x coordinate of the view</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="y_to_latitude"
              c:identifier="champlain_view_y_to_latitude"
              version="0.10">
        <doc xml:space="preserve">Converts the view's y coordinate to latitude.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the latitude</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">y coordinate of the view</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="zoom_in"
              c:identifier="champlain_view_zoom_in"
              version="0.1">
        <doc xml:space="preserve">Zoom in the map by one level.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="zoom_out"
              c:identifier="champlain_view_zoom_out"
              version="0.1">
        <doc xml:space="preserve">Zoom out the map by one level.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #ChamplainView</doc>
            <type name="View" c:type="ChamplainView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="animate-zoom"
                version="0.12"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Animate zoom change when zooming in/out.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="background-pattern"
                version="0.12.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The pattern displayed in the background of the map.</doc>
        <type name="Clutter.Actor"/>
      </property>
      <property name="deceleration"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The deceleration rate for the kinetic mode. The default value is 1.1.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="goto-animation-duration"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The duration of an animation when going to a location.
A value of 0 means that the duration is calculated automatically for you.

Please note that animation of #champlain_view_ensure_visible also
involves a 'goto' animation.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="goto-animation-mode"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The mode of animation when going to a location.

Please note that animation of #champlain_view_ensure_visible also
involves a 'goto' animation.</doc>
        <type name="Clutter.AnimationMode"/>
      </property>
      <property name="keep-center-on-resize"
                version="0.2.7"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Keep the current centered position when resizing the view.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="kinetic-mode"
                version="0.10"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Determines whether the view should use kinetic mode.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="latitude"
                version="0.1"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The latitude coordonate of the map</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="longitude"
                version="0.1"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The longitude coordonate of the map</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="map-source"
                version="0.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The #ChamplainMapSource being displayed</doc>
        <type name="MapSource"/>
      </property>
      <property name="max-zoom-level"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The highest allowed level of zoom of the content.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="min-zoom-level"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The lowest allowed level of zoom of the content.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="state" version="0.4" transfer-ownership="none">
        <doc xml:space="preserve">The view's global state. Useful to inform using if the view is busy loading
tiles or not.</doc>
        <type name="State"/>
      </property>
      <property name="world"
                version="0.12.11"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Set a bounding box to limit the world to. No tiles will be loaded
outside of this bounding box. It will not be possible to scroll outside
of this bounding box.

Default world is the actual world.</doc>
        <type name="BoundingBox"/>
      </property>
      <property name="zoom-level"
                version="0.1"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The level of zoom of the content.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="zoom-on-double-click"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Should the view zoom in and recenter when the user double click on the map.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="Clutter.Actor" c:type="ClutterActor"/>
      </field>
      <field name="priv">
        <type name="ViewPrivate" c:type="ChamplainViewPrivate*"/>
      </field>
      <glib:signal name="animation-completed"
                   when="last"
                   detailed="1"
                   version="0.4">
        <doc xml:space="preserve">The #ChamplainView::animation-completed signal is emitted when any animation in the view
ends.  This is a detailed signal.  For example, if you want to be signaled
only for go-to animation, you should connect to
"animation-completed::go-to". And for zoom, connect to "animation-completed::zoom".</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="layer-relocated" when="last" version="0.10">
        <doc xml:space="preserve">Indicates that the layers have been "relocated". In practice this means that
every layer should connect to this signal and redraw itself when the signal is
emitted. Layer relocation happens when zooming in/out and when panning for more
than MAX_INT pixels.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ViewClass"
            c:type="ChamplainViewClass"
            glib:is-gtype-struct-for="View">
      <field name="parent_class">
        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
      </field>
    </record>
    <record name="ViewPrivate" c:type="ChamplainViewPrivate" disguised="1">
    </record>
    <class name="Viewport"
           c:symbol-prefix="viewport"
           c:type="ChamplainViewport"
           parent="Clutter.Actor"
           glib:type-name="ChamplainViewport"
           glib:get-type="champlain_viewport_get_type"
           glib:type-struct="ViewportClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="champlain_viewport_new">
        <return-value transfer-ownership="none">
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </constructor>
      <method name="get_adjustments"
              c:identifier="champlain_viewport_get_adjustments">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <type name="Viewport" c:type="ChamplainViewport*"/>
          </instance-parameter>
          <parameter name="hadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="ChamplainAdjustment**"/>
          </parameter>
          <parameter name="vadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="ChamplainAdjustment**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_anchor" c:identifier="champlain_viewport_get_anchor">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <type name="Viewport" c:type="ChamplainViewport*"/>
          </instance-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>
      </method>
      <method name="get_origin" c:identifier="champlain_viewport_get_origin">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <type name="Viewport" c:type="ChamplainViewport*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_actor_position"
              c:identifier="champlain_viewport_set_actor_position">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <type name="Viewport" c:type="ChamplainViewport*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_adjustments"
              c:identifier="champlain_viewport_set_adjustments">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <type name="Viewport" c:type="ChamplainViewport*"/>
          </instance-parameter>
          <parameter name="hadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="ChamplainAdjustment*"/>
          </parameter>
          <parameter name="vadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="ChamplainAdjustment*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_child" c:identifier="champlain_viewport_set_child">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <type name="Viewport" c:type="ChamplainViewport*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_origin" c:identifier="champlain_viewport_set_origin">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <type name="Viewport" c:type="ChamplainViewport*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="champlain_viewport_stop">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <type name="Viewport" c:type="ChamplainViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="hadjustment" writable="1" transfer-ownership="none">
        <type name="Adjustment"/>
      </property>
      <property name="vadjustment" writable="1" transfer-ownership="none">
        <type name="Adjustment"/>
      </property>
      <property name="x-origin" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="y-origin" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent">
        <type name="Clutter.Actor" c:type="ClutterActor"/>
      </field>
      <field name="priv">
        <type name="ViewportPrivate" c:type="ChamplainViewportPrivate*"/>
      </field>
      <glib:signal name="relocated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ViewportClass"
            c:type="ChamplainViewportClass"
            glib:is-gtype-struct-for="Viewport">
      <field name="parent_class">
        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
      </field>
    </record>
    <record name="ViewportPrivate"
            c:type="ChamplainViewportPrivate"
            disguised="1">
    </record>
  </namespace>
</repository>
