<?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="Atk" version="1.0"/>
  <include name="Clutter" version="1.0"/>
  <include name="Cogl" version="1.0"/>
  <include name="GL" version="1.0"/>
  <include name="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gdk" version="2.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Gtk" version="2.0"/>
  <include name="Json" version="1.0"/>
  <include name="Pango" version="1.0"/>
  <include name="PangoCairo" version="1.0"/>
  <include name="PangoFT2" version="1.0"/>
  <include name="cairo" version="1.0"/>
  <include name="fontconfig" version="2.0"/>
  <include name="freetype2" version="2.0"/>
  <package name="gobject-2.0"/>
  <package name="gtk+-2.0"/>
  <namespace name="Champlain"
             version="0.8"
             shared-library="libchamplain-0.8.so.0.0"
             c:identifier-prefixes="Champlain"
             c:symbol-prefixes="champlain">
    <class name="BaseMarker"
           c:symbol-prefix="base_marker"
           c:type="ChamplainBaseMarker"
           parent="Clutter.Group"
           glib:type-name="ChamplainBaseMarker"
           glib:get-type="champlain_base_marker_get_type"
           glib:type-struct="BaseMarkerClass">
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_base_marker_new"
                   version="0.4">
        <doc xml:whitespace="preserve">Creates a new instance of #ChamplainBaseMarker.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new #ChamplainBaseMarker ready to be used as a #ClutterActor.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </constructor>
      <method name="animate_in"
              c:identifier="champlain_base_marker_animate_in"
              version="0.4">
        <doc xml:whitespace="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>
      </method>
      <method name="animate_in_with_delay"
              c:identifier="champlain_base_marker_animate_in_with_delay">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="delay" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="animate_out"
              c:identifier="champlain_base_marker_animate_out"
              version="0.4">
        <doc xml:whitespace="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>
      </method>
      <method name="animate_out_with_delay"
              c:identifier="champlain_base_marker_animate_out_with_delay">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="delay" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_highlighted"
              c:identifier="champlain_base_marker_get_highlighted"
              version="0.4">
        <doc xml:whitespace="preserve">Checks whether the marker is highlighted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the highlighted or not state of the marker.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_latitude"
              c:identifier="champlain_base_marker_get_latitude"
              version="0.6">
        <doc xml:whitespace="preserve">Gets the latitude of the marker.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the latitude of the marker.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
      </method>
      <method name="get_longitude"
              c:identifier="champlain_base_marker_get_longitude"
              version="0.6">
        <doc xml:whitespace="preserve">Gets the longitude of the marker.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the longitude of the marker.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
      </method>
      <method name="set_highlighted"
              c:identifier="champlain_base_marker_set_highlighted"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the marker as highlighted 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>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">the highlighted state</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_position"
              c:identifier="champlain_base_marker_set_position"
              version="0.4">
        <doc xml:whitespace="preserve">Positions the base_marker on the map at the coordinates</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:whitespace="preserve">the longitude to center the map at</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:whitespace="preserve">the longitude to center the map at</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <property name="highlighted"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The highlighted state of the marker</doc>
        <type name="gboolean"/>
      </property>
      <property name="latitude"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The latitude coordonate of the map</doc>
        <type name="gdouble"/>
      </property>
      <property name="longitude"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The longitude coordonate of the map</doc>
        <type name="gdouble"/>
      </property>
      <field name="group">
        <type name="Clutter.Group" c:type="ClutterGroup"/>
      </field>
      <field name="priv">
        <type name="BaseMarkerPrivate" c:type="ChamplainBaseMarkerPrivate*"/>
      </field>
    </class>
    <record name="BaseMarkerClass"
            c:type="ChamplainBaseMarkerClass"
            glib:is-gtype-struct-for="BaseMarker">
      <field name="parent_class">
        <type name="Clutter.GroupClass" c:type="ClutterGroupClass"/>
      </field>
    </record>
    <record name="BaseMarkerPrivate"
            c:type="ChamplainBaseMarkerPrivate"
            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:whitespace="preserve">Defines the area of a ChamplainMapDataSource that contains data.</doc>
      <field name="left" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="bottom" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="right" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="top" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <constructor name="new"
                   c:identifier="champlain_bounding_box_new"
                   version="0.6">
        <doc xml:whitespace="preserve">Creates a newly allocated #ChamplainBoundingBox to be freed
with champlain_bounding_box_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #ChamplainBoundingBox</doc>
          <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
        </return-value>
      </constructor>
      <method name="copy"
              c:identifier="champlain_bounding_box_copy"
              version="0.6">
        <doc xml:whitespace="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:whitespace="preserve">an allocated copy of @bbox.</doc>
          <type name="BoundingBox" c:type="ChamplainBoundingBox*"/>
        </return-value>
      </method>
      <method name="free"
              c:identifier="champlain_bounding_box_free"
              version="0.6">
        <doc xml:whitespace="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>
      </method>
      <method name="get_center"
              c:identifier="champlain_bounding_box_get_center"
              version="0.6">
        <doc xml:whitespace="preserve">Sets the latitude and longitude of the box to @lat and @lon.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="lat"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">the latitude of the box center</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="lon"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">the longitude of the box center</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <class name="ErrorTileRenderer"
           c:symbol-prefix="error_tile_renderer"
           c:type="ChamplainErrorTileRenderer"
           parent="Renderer"
           glib:type-name="ChamplainErrorTileRenderer"
           glib:get-type="champlain_error_tile_renderer_get_type"
           glib:type-struct="ErrorTileRendererClass">
      <constructor name="new"
                   c:identifier="champlain_error_tile_renderer_new"
                   version="0.8">
        <doc xml:whitespace="preserve">Constructor of a #ChamplainErrorTileRenderer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a constructed #ChamplainErrorTileRenderer</doc>
          <type name="ErrorTileRenderer" c:type="ChamplainErrorTileRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Gets the size of the rendered error tiles.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the size of the rendered error tiles</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="set_tile_size"
              c:identifier="champlain_error_tile_renderer_set_tile_size"
              version="0.8">
        <doc xml:whitespace="preserve">Sets the size of the rendered error tile.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="size" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">The size of the rendered tile.</doc>
        <type name="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>
    <class name="FileCache"
           c:symbol-prefix="file_cache"
           c:type="ChamplainFileCache"
           parent="TileCache"
           glib:type-name="ChamplainFileCache"
           glib:get-type="champlain_file_cache_get_type"
           glib:type-struct="FileCacheClass">
      <constructor name="new_full"
                   c:identifier="champlain_file_cache_new_full"
                   version="0.8">
        <doc xml:whitespace="preserve">Constructor of #ChamplainFileCache.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a constructed #ChamplainFileCache</doc>
          <type name="FileCache" c:type="ChamplainFileCache*"/>
        </return-value>
        <parameters>
          <parameter name="size_limit" transfer-ownership="none">
            <doc xml:whitespace="preserve">maximal size of the cache in bytes</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cache_dir" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="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="gchar*"/>
          </parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Gets the directory where the cache database is stored.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the directory</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_size_limit"
              c:identifier="champlain_file_cache_get_size_limit"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the cache size limit in bytes.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">size limit</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="purge"
              c:identifier="champlain_file_cache_purge"
              version="0.4">
        <doc xml:whitespace="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>
      </method>
      <method name="purge_on_idle"
              c:identifier="champlain_file_cache_purge_on_idle"
              version="0.4">
        <doc xml:whitespace="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>
      </method>
      <method name="set_size_limit"
              c:identifier="champlain_file_cache_set_size_limit"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the cache size limit in bytes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="size_limit" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">The directory where the tile database is stored.</doc>
        <type name="utf8"/>
      </property>
      <property name="size-limit"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The cache size limit in bytes.</doc>
        <type name="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"
           parent="TileSource"
           glib:type-name="ChamplainFileTileSource"
           glib:get-type="champlain_file_tile_source_get_type"
           glib:type-struct="FileTileSourceClass">
      <constructor name="new_full"
                   c:identifier="champlain_file_tile_source_new_full"
                   version="0.8">
        <doc xml:whitespace="preserve">Constructor of #ChamplainFileTileSource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a constructed #ChamplainFileTileSource object</doc>
          <type name="FileTileSource" c:type="ChamplainFileTileSource*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">the map source's id</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">the map source's name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:whitespace="preserve">the map source's license</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="license_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the map source's license URI</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="min_zoom" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="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:whitespace="preserve">the map source's projection</doc>
            <type name="MapProjection" c:type="ChamplainMapProjection"/>
          </parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="map_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">a path to a map data file</doc>
            <type name="utf8" c:type="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"
           parent="Renderer"
           glib:type-name="ChamplainImageRenderer"
           glib:get-type="champlain_image_renderer_get_type"
           glib:type-struct="ImageRendererClass">
      <constructor name="new"
                   c:identifier="champlain_image_renderer_new"
                   version="0.8">
        <doc xml:whitespace="preserve">Constructor of #ChamplainImageRenderer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="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="Layer"
           c:symbol-prefix="layer"
           c:type="ChamplainLayer"
           parent="Clutter.Group"
           glib:type-name="ChamplainLayer"
           glib:get-type="champlain_layer_get_type"
           glib:type-struct="LayerClass">
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_layer_new"
                   version="0.2.2">
        <doc xml:whitespace="preserve">Creates a new instance of #ChamplainLayer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new #ChamplainLayer ready to be used as a #ClutterContainer for the markers.</doc>
          <type name="Layer" c:type="ChamplainLayer*"/>
        </return-value>
      </constructor>
      <method name="add_marker"
              c:identifier="champlain_layer_add_marker"
              version="0.4">
        <doc xml:whitespace="preserve">Adds the marker to the layer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainBaseMarker</doc>
            <type name="BaseMarker" c:type="ChamplainBaseMarker*"/>
          </parameter>
        </parameters>
      </method>
      <method name="animate_in_all_markers"
              c:identifier="champlain_layer_animate_in_all_markers"
              version="0.4">
        <doc xml:whitespace="preserve">Fade in all markers with an animation</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="animate_out_all_markers"
              c:identifier="champlain_layer_animate_out_all_markers"
              version="0.4">
        <doc xml:whitespace="preserve">Fade out all markers with an animation</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="hide" c:identifier="champlain_layer_hide" version="0.4">
        <doc xml:whitespace="preserve">Makes the layer and its markers invisible.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="hide_all_markers"
              c:identifier="champlain_layer_hide_all_markers"
              version="0.4">
        <doc xml:whitespace="preserve">Calls clutter_actor_hide on all markers</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="remove_marker"
              c:identifier="champlain_layer_remove_marker"
              version="0.4">
        <doc xml:whitespace="preserve">Removes the marker from the layer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainBaseMarker</doc>
            <type name="BaseMarker" c:type="ChamplainBaseMarker*"/>
          </parameter>
        </parameters>
      </method>
      <method name="show" c:identifier="champlain_layer_show" version="0.4">
        <doc xml:whitespace="preserve">Makes the layer and its markers visible.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="show_all_markers"
              c:identifier="champlain_layer_show_all_markers"
              version="0.4">
        <doc xml:whitespace="preserve">Calls clutter_actor_show on all markers</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <field name="parent">
        <type name="Clutter.Group" c:type="ClutterGroup"/>
      </field>
    </class>
    <record name="LayerClass"
            c:type="ChamplainLayerClass"
            glib:is-gtype-struct-for="Layer">
      <field name="parent_class">
        <type name="Clutter.GroupClass" c:type="ClutterGroupClass"/>
      </field>
    </record>
    <constant name="MAJOR_VERSION" value="0">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MAP_SOURCE_MEMPHIS_LOCAL" value="memphis-local">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_MEMPHIS_NETWORK" value="memphis-network">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_MFF_RELIEF" value="mff-relief">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OAM" value="OpenAerialMap">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_CYCLE_MAP" value="osm-cyclemap">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_MAPNIK" value="osm-mapnik">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_MAPQUEST" value="osm-mapquest">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_OSMARENDER" value="osm-osmarender">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_TRANSPORT_MAP" value="osm-transportmap">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MICRO_VERSION" value="3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="8">
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="MapProjection" c:type="ChamplainMapProjection">
      <doc xml:whitespace="preserve">Projections supported by the library.</doc>
      <member name="map_projection_mercator"
              value="0"
              c:identifier="CHAMPLAIN_MAP_PROJECTION_MERCATOR"/>
    </enumeration>
    <class name="MapSource"
           c:symbol-prefix="map_source"
           c:type="ChamplainMapSource"
           parent="GObject.InitiallyUnowned"
           glib:type-name="ChamplainMapSource"
           glib:get-type="champlain_map_source_get_type"
           glib:type-struct="MapSourceClass">
      <virtual-method name="fill_tile" invoker="fill_tile" version="0.4">
        <doc xml:whitespace="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>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Gets map source's id.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the map source's id.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_license" invoker="get_license" version="0.4">
        <doc xml:whitespace="preserve">Gets map source's license.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the map source's license.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_license_uri"
                      invoker="get_license_uri"
                      version="0.4">
        <doc xml:whitespace="preserve">Gets map source's license URI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the map source's license URI.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_max_zoom_level"
                      invoker="get_max_zoom_level"
                      version="0.4">
        <doc xml:whitespace="preserve">Gets map source's maximum zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the maximum zoom level this map source supports</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_min_zoom_level"
                      invoker="get_min_zoom_level"
                      version="0.4">
        <doc xml:whitespace="preserve">Gets map source's minimum zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the miminum zoom level this map source supports</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_name" invoker="get_name" version="0.4">
        <doc xml:whitespace="preserve">Gets map source's name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the map source's name.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_projection"
                      invoker="get_projection"
                      version="0.4">
        <doc xml:whitespace="preserve">Gets map source's projection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the map source's projection.</doc>
          <type name="MapProjection" c:type="ChamplainMapProjection"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_tile_size"
                      invoker="get_tile_size"
                      version="0.4">
        <doc xml:whitespace="preserve">Gets map source's tile size.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the tile's size (width and height) in pixels for this map source</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </virtual-method>
      <method name="fill_tile"
              c:identifier="champlain_map_source_fill_tile"
              version="0.4">
        <doc xml:whitespace="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>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="preserve">the number of tiles in a column</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Gets map source's id.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the map source's id.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_latitude"
              c:identifier="champlain_map_source_get_latitude"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the latitude corresponding to this y position in the map source's
projection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the latitude</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:whitespace="preserve">a y position</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_license"
              c:identifier="champlain_map_source_get_license"
              version="0.4">
        <doc xml:whitespace="preserve">Gets map source's license.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the map source's license.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_license_uri"
              c:identifier="champlain_map_source_get_license_uri"
              version="0.4">
        <doc xml:whitespace="preserve">Gets map source's license URI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the map source's license URI.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_longitude"
              c:identifier="champlain_map_source_get_longitude"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the longitude corresponding to this x position in the map source's
projection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the longitude</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:whitespace="preserve">a x position</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_max_zoom_level"
              c:identifier="champlain_map_source_get_max_zoom_level"
              version="0.4">
        <doc xml:whitespace="preserve">Gets map source's maximum zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the maximum zoom level this map source supports</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_meters_per_pixel"
              c:identifier="champlain_map_source_get_meters_per_pixel"
              version="0.4.3">
        <doc xml:whitespace="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:whitespace="preserve">the meters per pixel</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:whitespace="preserve">a latitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Gets map source's minimum zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the miminum zoom level this map source supports</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_name"
              c:identifier="champlain_map_source_get_name"
              version="0.4">
        <doc xml:whitespace="preserve">Gets map source's name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the map source's name.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_next_source"
              c:identifier="champlain_map_source_get_next_source"
              version="0.6">
        <doc xml:whitespace="preserve">Get the next source in the chain.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the next source in the chain.</doc>
          <type name="MapSource" c:type="ChamplainMapSource*"/>
        </return-value>
      </method>
      <method name="get_projection"
              c:identifier="champlain_map_source_get_projection"
              version="0.4">
        <doc xml:whitespace="preserve">Gets map source's projection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the map source's projection.</doc>
          <type name="MapProjection" c:type="ChamplainMapProjection"/>
        </return-value>
      </method>
      <method name="get_renderer"
              c:identifier="champlain_map_source_get_renderer"
              version="0.8">
        <doc xml:whitespace="preserve">Get the renderer used for tiles rendering.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the renderer.</doc>
          <type name="Renderer" c:type="ChamplainRenderer*"/>
        </return-value>
      </method>
      <method name="get_row_count"
              c:identifier="champlain_map_source_get_row_count"
              version="0.4">
        <doc xml:whitespace="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:whitespace="preserve">the number of tiles in a row</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Gets map source's tile size.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the tile's size (width and height) in pixels for this map source</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_x"
              c:identifier="champlain_map_source_get_x"
              version="0.4">
        <doc xml:whitespace="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:whitespace="preserve">the x position</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="preserve">the y position</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Sets the next map source in the chain.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="next_source" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Sets the renderer used for tiles rendering.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="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"
           parent="MapSource"
           glib:type-name="ChamplainMapSourceChain"
           glib:get-type="champlain_map_source_chain_get_type"
           glib:type-struct="MapSourceChainClass">
      <constructor name="new"
                   c:identifier="champlain_map_source_chain_new"
                   version="0.6">
        <doc xml:whitespace="preserve">Constructor of #ChamplainMapSourceChain.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="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:whitespace="preserve">Pops the 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>
      </method>
      <method name="push"
              c:identifier="champlain_map_source_chain_push"
              version="0.6">
        <doc xml:whitespace="preserve">Pushes a map source into the chain.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="map_source" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">the map source's id.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <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:whitespace="preserve">the map source's name.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <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:whitespace="preserve">the map source's license.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <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:whitespace="preserve">the map source's license URI.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <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:whitespace="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">
              <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:whitespace="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">
              <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:whitespace="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">
              <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:whitespace="preserve">the map source's projection.</doc>
            <type name="MapProjection" c:type="ChamplainMapProjection"/>
          </return-value>
          <parameters>
            <parameter name="map_source" transfer-ownership="none">
              <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">
              <type name="MapSource" c:type="ChamplainMapSource*"/>
            </parameter>
            <parameter name="tile" transfer-ownership="none">
              <doc xml:whitespace="preserve">A #ChamplainTile</doc>
              <type name="Tile" c:type="ChamplainTile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="MapSourceConstructor"
              c:type="ChamplainMapSourceConstructor"
              version="0.4"
              introspectable="0">
      <doc xml:whitespace="preserve">A #ChamplainMapSource constructor.  It should return a ready to use
#ChamplainMapSource.</doc>
      <return-value>
        <doc xml:whitespace="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:whitespace="preserve">a #ChamplainMapSourceDesc</doc>
          <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <doc xml:whitespace="preserve">User data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="MapSourceDesc"
            c:type="ChamplainMapSourceDesc"
            version="0.4"
            glib:type-name="ChamplainMapSourceDesc"
            glib:get-type="champlain_map_source_desc_get_type"
            c:symbol-prefix="map_source_desc">
      <doc xml:whitespace="preserve">Describes a #ChamplainMapSource.  This is returned by #champlain_map_source_factory_get_list.</doc>
      <field name="id" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="name" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="license" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="license_uri" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="min_zoom_level" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="max_zoom_level" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="projection" writable="1">
        <type name="MapProjection" c:type="ChamplainMapProjection"/>
      </field>
      <field name="constructor" introspectable="0" writable="1">
        <type name="MapSourceConstructor"
              c:type="ChamplainMapSourceConstructor"/>
      </field>
      <field name="uri_format" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="data" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <constructor name="new"
                   c:identifier="champlain_map_source_desc_new"
                   version="0.4">
        <doc xml:whitespace="preserve">Creates a new instance of #ChamplainMapSourceDesc.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly allocated #ChamplainMapSourceDesc to be freed with #champlain_map_source_desc_free</doc>
          <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
        </return-value>
      </constructor>
      <method name="copy"
              c:identifier="champlain_map_source_desc_copy"
              version="0.4">
        <doc xml:whitespace="preserve">Makes a copy of the map source desc structure.  The result must be
freed using #champlain_map_source_desc_free.  All string fields will
be duplicated with #g_strdup.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">an allocated copy of @desc.</doc>
          <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
        </return-value>
      </method>
      <method name="free"
              c:identifier="champlain_map_source_desc_free"
              version="0.4">
        <doc xml:whitespace="preserve">Frees a desc structure created with #champlain_map_source_desc_new or
#champlain_map_source_desc_copy. All strings will be freed with #g_free.
The data pointer will not be freed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </record>
    <class name="MapSourceFactory"
           c:symbol-prefix="map_source_factory"
           c:type="ChamplainMapSourceFactory"
           parent="GObject.Object"
           glib:type-name="ChamplainMapSourceFactory"
           glib:get-type="champlain_map_source_factory_get_type"
           glib:type-struct="MapSourceFactoryClass">
      <function name="dup_default"
                c:identifier="champlain_map_source_factory_dup_default"
                version="0.4">
        <doc xml:whitespace="preserve">A method to obtain the singleton object.
using #g_object_unref when not needed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the singleton #ChamplainMapSourceFactory, it should be freed</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:whitespace="preserve">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.
NULL is none match.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a ready to use #ChamplainMapSource matching the given name, returns</doc>
          <type name="MapSource" c:type="ChamplainMapSource*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">the wanted map source id</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_cached_source"
              c:identifier="champlain_map_source_factory_create_cached_source"
              version="0.6">
        <doc xml:whitespace="preserve">Creates a cached map source.
#ChamplainMemoryCache, #ChamplainFileCache, #ChamplainMapSource matching the given name, and
an error tile source created with champlain_map_source_factory_create_error_source ().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a ready to use #ChamplainMapSourceChain consisting of</doc>
          <type name="MapSource" c:type="ChamplainMapSource*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">the wanted map source id</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_error_source"
              c:identifier="champlain_map_source_factory_create_error_source"
              version="0.8">
        <doc xml:whitespace="preserve">Creates a map source generating error tiles.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a ready to use map source generating error tiles.</doc>
          <type name="MapSource" c:type="ChamplainMapSource*"/>
        </return-value>
        <parameters>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:whitespace="preserve">the size of the error tile</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="dup_list"
              c:identifier="champlain_map_source_factory_dup_list"
              version="0.4">
        <doc xml:whitespace="preserve">Get the list of registered map sources.
the list should be freed with #g_slist_free.</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">the list of registered map sources, the items should not be freed,</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="MapSourceDesc"/>
          </type>
        </return-value>
      </method>
      <method name="register"
              c:identifier="champlain_map_source_factory_register"
              version="0.4"
              introspectable="0">
        <doc xml:whitespace="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. They will not be freed either so
you can use static structs here.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the registration suceeded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="desc" transfer-ownership="none">
            <doc xml:whitespace="preserve">the description of the map source</doc>
            <type name="MapSourceDesc" c:type="ChamplainMapSourceDesc*"/>
          </parameter>
          <parameter name="constructor"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2">
            <doc xml:whitespace="preserve">the new map source constructor function</doc>
            <type name="MapSourceConstructor"
                  c:type="ChamplainMapSourceConstructor"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">data to be passed to the constructor function, or NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </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"
           parent="BaseMarker"
           glib:type-name="ChamplainMarker"
           glib:get-type="champlain_marker_get_type"
           glib:type-struct="MarkerClass">
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_marker_new"
                   version="0.2">
        <doc xml:whitespace="preserve">Creates a new instance of #ChamplainMarker.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new #ChamplainMarker 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_marker_new_from_file"
                   version="0.4"
                   throws="1">
        <doc xml:whitespace="preserve">Creates a new instance of #ChamplainMarker with image loaded from file.
image.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new #ChamplainMarker with a drawn marker containing the given</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:whitespace="preserve">The filename of the image.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_full"
                   c:identifier="champlain_marker_new_full"
                   version="0.4">
        <doc xml:whitespace="preserve">Creates a new instance of #ChamplainMarker consisting of a custom #ClutterActor.
image.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new #ChamplainMarker with a drawn marker containing the given</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">The text</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:whitespace="preserve">The image</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_image"
                   c:identifier="champlain_marker_new_with_image"
                   version="0.4">
        <doc xml:whitespace="preserve">Creates a new instance of #ChamplainMarker with image.
image.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new #ChamplainMarker with a drawn marker containing the given</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:whitespace="preserve">The actor of the image.</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_text"
                   c:identifier="champlain_marker_new_with_text"
                   version="0.2">
        <doc xml:whitespace="preserve">Creates a new instance of #ChamplainMarker with text value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new #ChamplainMarker with a drawn marker containing the given text.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">the text of the text</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="font" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">the font to use to draw the text, for example "Courrier Bold 11", can be NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="text_color"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #ClutterColor, the color of the text, can be NULL</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
          <parameter name="marker_color"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #ClutterColor, the color of the marker, can be NULL</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="get_highlight_color"
                c:identifier="champlain_marker_get_highlight_color"
                version="0.4.1">
        <doc xml:whitespace="preserve">Gets the highlight color.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the highlight color. Should not be freed.</doc>
          <type name="Clutter.Color" c:type="ClutterColor*"/>
        </return-value>
      </function>
      <function name="get_highlight_text_color"
                c:identifier="champlain_marker_get_highlight_text_color"
                version="0.4.1">
        <doc xml:whitespace="preserve">Gets the highlight text color.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the highlight text color. Should not be freed.</doc>
          <type name="Clutter.Color" c:type="ClutterColor*"/>
        </return-value>
      </function>
      <function name="set_highlight_color"
                c:identifier="champlain_marker_set_highlight_color"
                version="0.4">
        <doc xml:whitespace="preserve">Changes the highlight 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:whitespace="preserve">a #ClutterColor</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_highlight_text_color"
                c:identifier="champlain_marker_set_highlight_text_color"
                version="0.4">
        <doc xml:whitespace="preserve">Changes the highlight 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:whitespace="preserve">a #ClutterColor</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="draw_marker">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="get_alignment"
              c:identifier="champlain_marker_get_alignment"
              version="0.4">
        <doc xml:whitespace="preserve">Get the marker's text alignment.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the marker's text alignment.</doc>
          <type name="Pango.Alignment" c:type="PangoAlignment"/>
        </return-value>
      </method>
      <method name="get_color"
              c:identifier="champlain_marker_get_color"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the marker's color.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the marker's color.</doc>
          <type name="Clutter.Color" c:type="ClutterColor*"/>
        </return-value>
      </method>
      <method name="get_draw_background"
              c:identifier="champlain_marker_get_draw_background"
              version="0.4">
        <doc xml:whitespace="preserve">Checks whether the marker has a background.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">if the marker's has a background.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_ellipsize"
              c:identifier="champlain_marker_get_ellipsize"
              version="0.4">
        <doc xml:whitespace="preserve">Get the marker's text ellipsize mode.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the marker's text ellipsize mode.</doc>
          <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
        </return-value>
      </method>
      <method name="get_font_name"
              c:identifier="champlain_marker_get_font_name"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the marker's font name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the marker's font name.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_image"
              c:identifier="champlain_marker_get_image"
              version="0.4">
        <doc xml:whitespace="preserve">Get the marker's image.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the marker's image.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </method>
      <method name="get_single_line_mode"
              c:identifier="champlain_marker_get_single_line_mode"
              version="0.4">
        <doc xml:whitespace="preserve">Checks the marker's single line mode.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the marker's text single line mode.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_text"
              c:identifier="champlain_marker_get_text"
              version="0.4">
        <doc xml:whitespace="preserve">Get the marker's text.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the marker's text.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_text_color"
              c:identifier="champlain_marker_get_text_color"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the marker's text color.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the marker's text color.</doc>
          <type name="Clutter.Color" c:type="ClutterColor*"/>
        </return-value>
      </method>
      <method name="get_use_markup"
              c:identifier="champlain_marker_get_use_markup"
              version="0.4">
        <doc xml:whitespace="preserve">Check whether the marker uses markup.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">if the marker's text contains markup.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_wrap"
              c:identifier="champlain_marker_get_wrap"
              version="0.4">
        <doc xml:whitespace="preserve">Check whether the marker text wraps.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">if the marker's text wraps.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_wrap_mode"
              c:identifier="champlain_marker_get_wrap_mode"
              version="0.4">
        <doc xml:whitespace="preserve">Get the marker's text wrap mode.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the marker's text wrap mode.</doc>
          <type name="Pango.WrapMode" c:type="PangoWrapMode"/>
        </return-value>
      </method>
      <method name="queue_redraw"
              c:identifier="champlain_marker_queue_redraw"
              version="0.4.3">
        <doc xml:whitespace="preserve">Queue a redraw of the marker as soon as possible. This function should not
be used unless you are subclassing ChamplainMarker and adding new properties
that affect the aspect of the marker.  When they change, call this function
to update the marker.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set_alignment"
              c:identifier="champlain_marker_set_alignment"
              version="0.4">
        <doc xml:whitespace="preserve">Set the marker's text alignment.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="alignment" transfer-ownership="none">
            <doc xml:whitespace="preserve">The marker's alignment</doc>
            <type name="Pango.Alignment" c:type="PangoAlignment"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_attributes"
              c:identifier="champlain_marker_set_attributes"
              version="0.4">
        <doc xml:whitespace="preserve">Set the marker's text attribute.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="list" transfer-ownership="none">
            <doc xml:whitespace="preserve">The marker's text attributes.</doc>
            <type name="Pango.AttrList" c:type="PangoAttrList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color"
              c:identifier="champlain_marker_set_color"
              version="0.4">
        <doc xml:whitespace="preserve">Set the marker's background color.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="color" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">The marker'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="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_draw_background"
              c:identifier="champlain_marker_set_draw_background"
              version="0.4">
        <doc xml:whitespace="preserve">Set if the marker has a background.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="background" transfer-ownership="none">
            <doc xml:whitespace="preserve">value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ellipsize"
              c:identifier="champlain_marker_set_ellipsize"
              version="0.4">
        <doc xml:whitespace="preserve">Set the marker's text ellipsize mode.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">The marker's ellipsize mode.</doc>
            <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_font_name"
              c:identifier="champlain_marker_set_font_name"
              version="0.4">
        <doc xml:whitespace="preserve">Set the marker's font name such as "Sans 12".</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="font_name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">The marker's font name or NULL to reset the font to the default value.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_image"
              c:identifier="champlain_marker_set_image"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the marker's image.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="image" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="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_marker_set_single_line_mode"
              version="0.4">
        <doc xml:whitespace="preserve">Set if the marker's text is on a single line.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">The marker's single line mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text"
              c:identifier="champlain_marker_set_text"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the marker's text.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">The text</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text_color"
              c:identifier="champlain_marker_set_text_color"
              version="0.4">
        <doc xml:whitespace="preserve">Set the marker's text color.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="color" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">The marker'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="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_use_markup"
              c:identifier="champlain_marker_set_use_markup"
              version="0.4">
        <doc xml:whitespace="preserve">Sets if the marker's text uses markup.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="use_markup" transfer-ownership="none">
            <doc xml:whitespace="preserve">The value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_wrap"
              c:identifier="champlain_marker_set_wrap"
              version="0.4">
        <doc xml:whitespace="preserve">Set if the marker's text wrap.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="wrap" transfer-ownership="none">
            <doc xml:whitespace="preserve">The marker's wrap.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_wrap_mode"
              c:identifier="champlain_marker_set_wrap_mode"
              version="0.4">
        <doc xml:whitespace="preserve">Set the marker's text color.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="wrap_mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">The marker's wrap.</doc>
            <type name="Pango.WrapMode" c:type="PangoWrapMode"/>
          </parameter>
        </parameters>
      </method>
      <property name="alignment"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The marker's alignment</doc>
        <type name="Pango.Alignment"/>
      </property>
      <property name="color"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The marker's color</doc>
        <type name="Clutter.Color"/>
      </property>
      <property name="draw-background"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">If the marker has a background</doc>
        <type name="gboolean"/>
      </property>
      <property name="ellipsize"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The marker's ellipsize mode</doc>
        <type name="Pango.EllipsizeMode"/>
      </property>
      <property name="font-name"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The marker's text font name</doc>
        <type name="utf8"/>
      </property>
      <property name="image"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The image of the marker</doc>
        <type name="Clutter.Actor"/>
      </property>
      <property name="single-line-mode"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">If the marker is in single line mode</doc>
        <type name="gboolean"/>
      </property>
      <property name="text"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The text of the marker</doc>
        <type name="utf8"/>
      </property>
      <property name="text-color"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The marker's text color</doc>
        <type name="Clutter.Color"/>
      </property>
      <property name="use-markup"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">If the marker's text uses markup</doc>
        <type name="gboolean"/>
      </property>
      <property name="wrap"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">If the marker's text wrap is set</doc>
        <type name="gboolean"/>
      </property>
      <property name="wrap-mode"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The marker's text wrap mode</doc>
        <type name="Pango.WrapMode"/>
      </property>
      <field name="base">
        <type name="BaseMarker" c:type="ChamplainBaseMarker"/>
      </field>
      <field name="priv">
        <type name="MarkerPrivate" c:type="ChamplainMarkerPrivate*"/>
      </field>
    </class>
    <record name="MarkerClass"
            c:type="ChamplainMarkerClass"
            glib:is-gtype-struct-for="Marker">
      <field name="parent_class">
        <type name="BaseMarkerClass" c:type="ChamplainBaseMarkerClass"/>
      </field>
      <field name="draw_marker">
        <callback name="draw_marker">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="marker" transfer-ownership="none">
              <type name="Marker" c:type="ChamplainMarker*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="MarkerPrivate" c:type="ChamplainMarkerPrivate" disguised="1">
    </record>
    <class name="MemoryCache"
           c:symbol-prefix="memory_cache"
           c:type="ChamplainMemoryCache"
           parent="TileCache"
           glib:type-name="ChamplainMemoryCache"
           glib:get-type="champlain_memory_cache_get_type"
           glib:type-struct="MemoryCacheClass">
      <constructor name="new_full"
                   c:identifier="champlain_memory_cache_new_full"
                   version="0.8">
        <doc xml:whitespace="preserve">Constructor of #ChamplainMemoryCache.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a constructed #ChamplainMemoryCache</doc>
          <type name="MemoryCache" c:type="ChamplainMemoryCache*"/>
        </return-value>
        <parameters>
          <parameter name="size_limit" transfer-ownership="none">
            <doc xml:whitespace="preserve">maximal number of tiles stored in the cache</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Cleans the contents of the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_size_limit"
              c:identifier="champlain_memory_cache_get_size_limit"
              version="0.8">
        <doc xml:whitespace="preserve">Gets the maximal number of tiles stored in the cache.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">maximal number of stored tiles</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="set_size_limit"
              c:identifier="champlain_memory_cache_set_size_limit"
              version="0.8">
        <doc xml:whitespace="preserve">Sets the maximal number of tiles stored in the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="size_limit" transfer-ownership="none">
            <doc xml:whitespace="preserve">maximal 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:whitespace="preserve">The maximal number of tiles that are stored in the cache.</doc>
        <type name="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"
           parent="TileSource"
           glib:type-name="ChamplainNetworkBboxTileSource"
           glib:get-type="champlain_network_bbox_tile_source_get_type"
           glib:type-struct="NetworkBboxTileSourceClass">
      <constructor name="new_full"
                   c:identifier="champlain_network_bbox_tile_source_new_full"
                   version="0.8">
        <doc xml:whitespace="preserve">Constructor of #ChamplainNetworkBboxTileSource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a constructed #ChamplainNetworkBboxTileSource object</doc>
          <type name="NetworkBboxTileSource"
                c:type="ChamplainNetworkBboxTileSource*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">the map source's id</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">the map source's name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:whitespace="preserve">the map source's license</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="license_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the map source's license URI</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="min_zoom" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="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:whitespace="preserve">the map source's projection</doc>
            <type name="MapProjection" c:type="ChamplainMapProjection"/>
          </parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Gets the URI of the API server.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the URI of the API server.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="load_map_data"
              c:identifier="champlain_network_bbox_tile_source_load_map_data"
              version="0.8">
        <doc xml:whitespace="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.
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>
          <parameter name="bound_left" transfer-ownership="none">
            <doc xml:whitespace="preserve">the left bound in degree</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="bound_bottom" transfer-ownership="none">
            <doc xml:whitespace="preserve">the lower bound in degree</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="bound_right" transfer-ownership="none">
            <doc xml:whitespace="preserve">the right bound in degree</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="bound_top" transfer-ownership="none">
            <doc xml:whitespace="preserve">the upper bound in degree</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_api_uri"
              c:identifier="champlain_network_bbox_tile_source_set_api_uri"
              version="0.8">
        <doc xml:whitespace="preserve">Sets the URI of the API server.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="api_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">an URI of an API server</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="api-uri"
                version="0.8"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The URI of an OpenStreetMap API server</doc>
        <type name="utf8"/>
      </property>
      <property name="proxy-uri"
                version="0.8"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The proxy URI to use to access network</doc>
        <type name="utf8"/>
      </property>
      <property name="state"
                version="0.8"
                introspectable="0"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The map source's state. Useful to know if the data source is loading
or not.</doc>
        <type/>
      </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"
           parent="TileSource"
           glib:type-name="ChamplainNetworkTileSource"
           glib:get-type="champlain_network_tile_source_get_type"
           glib:type-struct="NetworkTileSourceClass">
      <constructor name="new_full"
                   c:identifier="champlain_network_tile_source_new_full"
                   version="0.4">
        <doc xml:whitespace="preserve">Constructor of #ChamplainNetworkTileSource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a constructed #ChamplainNetworkTileSource object</doc>
          <type name="NetworkTileSource" c:type="ChamplainNetworkTileSource*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">the map source's id</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">the map source's name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:whitespace="preserve">the map source's license</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="license_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the map source's license URI</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="min_zoom" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="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:whitespace="preserve">the map source's projection</doc>
            <type name="MapProjection" c:type="ChamplainMapProjection"/>
          </parameter>
          <parameter name="uri_format" transfer-ownership="none">
            <doc xml:whitespace="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="renderer" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Gets offline status.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE when the tile source is set to be offline; FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_proxy_uri"
              c:identifier="champlain_network_tile_source_get_proxy_uri"
              version="0.6">
        <doc xml:whitespace="preserve">Gets the proxy uri used to access network.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the proxy uri</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_uri_format"
              c:identifier="champlain_network_tile_source_get_uri_format"
              version="0.6">
        <doc xml:whitespace="preserve">Default constructor of #ChamplainNetworkTileSource.
champlain_network_tile_source_set_uri_format() for more information.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A URI format used for URI creation when downloading tiles. See</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="set_offline"
              c:identifier="champlain_network_tile_source_set_offline"
              version="0.6">
        <doc xml:whitespace="preserve">Sets offline status.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="offline" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Sets the proxy uri used to access network.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="proxy_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the proxy uri used to access network</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uri_format"
              c:identifier="champlain_network_tile_source_set_uri_format"
              version="0.4">
        <doc xml:whitespace="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
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>
          <parameter name="uri_format" transfer-ownership="none">
            <doc xml:whitespace="preserve">the URI format</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="offline"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Specifies whether the network tile source can access network</doc>
        <type name="gboolean"/>
      </property>
      <property name="proxy-uri"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The proxy uri used to access network</doc>
        <type name="utf8"/>
      </property>
      <property name="uri-format"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The uri format of the tile source, see #champlain_network_tile_source_set_uri_format</doc>
        <type name="utf8"/>
      </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"
           parent="TileSource"
           glib:type-name="ChamplainNullTileSource"
           glib:get-type="champlain_null_tile_source_get_type"
           glib:type-struct="NullTileSourceClass">
      <constructor name="new_full"
                   c:identifier="champlain_null_tile_source_new_full"
                   version="0.8">
        <doc xml:whitespace="preserve">Constructor of #ChamplainNullTileSource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a constructed #ChamplainNullTileSource object</doc>
          <type name="NullTileSource" c:type="ChamplainNullTileSource*"/>
        </return-value>
        <parameters>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:whitespace="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>
    <record name="Point"
            c:type="ChamplainPoint"
            glib:type-name="ChamplainPoint"
            glib:get-type="champlain_point_get_type"
            c:symbol-prefix="point">
      <doc xml:whitespace="preserve">A base struct to store a latitude and longitude.</doc>
      <field name="lat" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="lon" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <constructor name="new" c:identifier="champlain_point_new" version="0.4">
        <doc xml:whitespace="preserve">Creates an instance of #ChamplainPoint.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly allocated #ChamplainPoint to be freed with #champlain_point_free</doc>
          <type name="Point" c:type="ChamplainPoint*"/>
        </return-value>
        <parameters>
          <parameter name="lat" transfer-ownership="none">
            <doc xml:whitespace="preserve">the latitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="lon" transfer-ownership="none">
            <doc xml:whitespace="preserve">the longitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="champlain_point_copy" version="0.4">
        <doc xml:whitespace="preserve">Makes a copy of the point structure.  The result must be
freed using champlain_point_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">an allocated copy of @point.</doc>
          <type name="Point" c:type="ChamplainPoint*"/>
        </return-value>
      </method>
      <method name="free" c:identifier="champlain_point_free" version="0.4">
        <doc xml:whitespace="preserve">Frees a point structure created with #champlain_point_new or
#champlain_point_copy</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </record>
    <class name="Polygon"
           c:symbol-prefix="polygon"
           c:type="ChamplainPolygon"
           parent="Clutter.Group"
           glib:type-name="ChamplainPolygon"
           glib:get-type="champlain_polygon_get_type"
           glib:type-struct="PolygonClass">
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_polygon_new"
                   version="0.4">
        <doc xml:whitespace="preserve">Create an instance of #ChamplainPolygon.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new empty #ChamplainPolygon</doc>
          <type name="Polygon" c:type="ChamplainPolygon*"/>
        </return-value>
      </constructor>
      <method name="append_point"
              c:identifier="champlain_polygon_append_point"
              version="0.4">
        <doc xml:whitespace="preserve">Adds point at the end of the list of points in the polygon</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the added point, should not be freed.</doc>
          <type name="Point" c:type="ChamplainPoint*"/>
        </return-value>
        <parameters>
          <parameter name="lat" transfer-ownership="none">
            <doc xml:whitespace="preserve">the latitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="lon" transfer-ownership="none">
            <doc xml:whitespace="preserve">the longitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_points"
              c:identifier="champlain_polygon_clear_points"
              version="0.4">
        <doc xml:whitespace="preserve">Remove all points from the polygon</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="draw_polygon"
              c:identifier="champlain_polygon_draw_polygon">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="map_source" transfer-ownership="none">
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="shift_x" transfer-ownership="none">
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="shift_y" transfer-ownership="none">
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_fill"
              c:identifier="champlain_polygon_get_fill"
              version="0.4">
        <doc xml:whitespace="preserve">Checks whether the polygon is filled.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the polygon is filled, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_fill_color"
              c:identifier="champlain_polygon_get_fill_color"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the polygon's fill color.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the polygon's fill color.</doc>
          <type name="Clutter.Color" c:type="ClutterColor*"/>
        </return-value>
      </method>
      <method name="get_mark_points"
              c:identifier="champlain_polygon_get_mark_points"
              version="0.4.3">
        <doc xml:whitespace="preserve">Checks whether the polygon points are marked.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">wether points in polygon gets marked for extra visibility.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_points"
              c:identifier="champlain_polygon_get_points"
              version="0.4">
        <doc xml:whitespace="preserve">Gets a list of polygon points.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a list of all points from the polygon, it shouldn't be freed.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Point"/>
          </type>
        </return-value>
      </method>
      <method name="get_stroke"
              c:identifier="champlain_polygon_get_stroke"
              version="0.4">
        <doc xml:whitespace="preserve">Checks whether the polygon has a stroke.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the polygon has a stroke, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_stroke_color"
              c:identifier="champlain_polygon_get_stroke_color"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the polygon's stroke color.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the polygon's stroke color.</doc>
          <type name="Clutter.Color" c:type="ClutterColor*"/>
        </return-value>
      </method>
      <method name="get_stroke_width"
              c:identifier="champlain_polygon_get_stroke_width"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the width of the stroke.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the width of the stroke</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
      </method>
      <method name="hide" c:identifier="champlain_polygon_hide" version="0.4">
        <doc xml:whitespace="preserve">Hides the polygon</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="insert_point"
              c:identifier="champlain_polygon_insert_point"
              version="0.4">
        <doc xml:whitespace="preserve">Adds point at the given position in the list of points in the polygon</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the added point, should not be freed.</doc>
          <type name="Point" c:type="ChamplainPoint*"/>
        </return-value>
        <parameters>
          <parameter name="lat" transfer-ownership="none">
            <doc xml:whitespace="preserve">the latitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="lon" transfer-ownership="none">
            <doc xml:whitespace="preserve">the longitude</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="pos" transfer-ownership="none">
            <doc xml:whitespace="preserve">where to insert the point</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_point"
              c:identifier="champlain_polygon_remove_point"
              version="0.4">
        <doc xml:whitespace="preserve">Removes the point from the polygon.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="point" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #ChamplainPoint to remove</doc>
            <type name="Point" c:type="ChamplainPoint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fill"
              c:identifier="champlain_polygon_set_fill"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the polygon to have be filled</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">if the polygon is filled</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fill_color"
              c:identifier="champlain_polygon_set_fill_color"
              version="0.4">
        <doc xml:whitespace="preserve">Set the polygon's fill color.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="color" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">The polygon's fill color or NULL to reset to the default color. The color parameter is copied.</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mark_points"
              c:identifier="champlain_polygon_set_mark_points"
              version="0.4.3">
        <doc xml:whitespace="preserve">Sets the property determining if the points in the polygon
should get marked for extra visibility when drawing the polygon.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">mark points when drawing the polygon.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stroke"
              c:identifier="champlain_polygon_set_stroke"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the polygon to have a stroke</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">if the polygon is stroked</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stroke_color"
              c:identifier="champlain_polygon_set_stroke_color"
              version="0.4">
        <doc xml:whitespace="preserve">Set the polygon's stroke color.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="color" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">The polygon's stroke color or NULL to reset to the default color. The color parameter is copied.</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stroke_width"
              c:identifier="champlain_polygon_set_stroke_width"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the width of the stroke</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">the width of the stroke (in pixels)</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="show" c:identifier="champlain_polygon_show" version="0.4">
        <doc xml:whitespace="preserve">Makes the polygon visible</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="closed-path" writable="1" transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="fill"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The shape should be filled</doc>
        <type name="gboolean"/>
      </property>
      <property name="fill-color" writable="1" transfer-ownership="none">
        <type name="Clutter.Color"/>
      </property>
      <property name="mark-points"
                version="0.4.3"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Wether the polygons points should be marked for extra visibility.</doc>
        <type name="gboolean"/>
      </property>
      <property name="stroke"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The shape should be stroked</doc>
        <type name="gboolean"/>
      </property>
      <property name="stroke-color"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The polygon's stroke color</doc>
        <type name="Clutter.Color"/>
      </property>
      <property name="stroke-width"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The polygon's stroke width (in pixels)</doc>
        <type name="gdouble"/>
      </property>
      <property name="visible"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Wether the polygon is visible</doc>
        <type name="gboolean"/>
      </property>
      <field name="parent">
        <type name="Clutter.Group" c:type="ClutterGroup"/>
      </field>
      <field name="priv">
        <type name="PolygonPrivate" c:type="ChamplainPolygonPrivate*"/>
      </field>
    </class>
    <record name="PolygonClass"
            c:type="ChamplainPolygonClass"
            glib:is-gtype-struct-for="Polygon">
      <field name="parent_class">
        <type name="Clutter.GroupClass" c:type="ClutterGroupClass"/>
      </field>
    </record>
    <record name="PolygonPrivate"
            c:type="ChamplainPolygonPrivate"
            disguised="1">
    </record>
    <class name="Renderer"
           c:symbol-prefix="renderer"
           c:type="ChamplainRenderer"
           parent="GObject.InitiallyUnowned"
           glib:type-name="ChamplainRenderer"
           glib:get-type="champlain_renderer_get_type"
           glib:type-struct="RendererClass">
      <virtual-method name="render" invoker="render" version="0.8">
        <doc xml:whitespace="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>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">data used for tile rendering</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">data used for tile rendering</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:whitespace="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">
              <type name="Renderer" c:type="ChamplainRenderer*"/>
            </parameter>
            <parameter name="data" transfer-ownership="none">
              <doc xml:whitespace="preserve">data used for tile rendering</doc>
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="size" transfer-ownership="none">
              <doc xml:whitespace="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">
              <type name="Renderer" c:type="ChamplainRenderer*"/>
            </parameter>
            <parameter name="tile" transfer-ownership="none">
              <doc xml:whitespace="preserve">the tile to render</doc>
              <type name="Tile" c:type="ChamplainTile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="ScrollMode" c:type="ChamplainScrollMode">
      <doc xml:whitespace="preserve">Type of scrolling.</doc>
      <member name="push" value="0" c:identifier="CHAMPLAIN_SCROLL_MODE_PUSH"/>
      <member name="kinetic"
              value="1"
              c:identifier="CHAMPLAIN_SCROLL_MODE_KINETIC"/>
    </enumeration>
    <class name="SelectionLayer"
           c:symbol-prefix="selection_layer"
           c:type="ChamplainSelectionLayer"
           parent="Layer"
           glib:type-name="ChamplainSelectionLayer"
           glib:get-type="champlain_selection_layer_get_type"
           glib:type-struct="SelectionLayerClass">
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new"
                   c:identifier="champlain_selection_layer_new"
                   version="0.4">
        <doc xml:whitespace="preserve">Creates an instance of #ChamplainSelectionLayer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new #ChamplainSelectionLayer ready to be used as a #ClutterContainer for the markers.</doc>
          <type name="Layer" c:type="ChamplainLayer*"/>
        </return-value>
      </constructor>
      <method name="count_selected_markers"
              c:identifier="champlain_selection_layer_count_selected_markers"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the number of selected markers.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the number of selected #ChamplainBaseMarker</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_selected"
              c:identifier="champlain_selection_layer_get_selected"
              version="0.4">
        <doc xml:whitespace="preserve">This function will return NULL if in CHAMPLAIN_SELETION_MULTIPLE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the selected #ChamplainBaseMarker or NULL if none is selected.</doc>
          <type name="BaseMarker" c:type="ChamplainBaseMarker*"/>
        </return-value>
      </method>
      <method name="get_selected_markers"
              c:identifier="champlain_selection_layer_get_selected_markers"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the list of selected markers.
You shouldn't free that list.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the list of selected #ChamplainBaseMarker or NULL if none is selected.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="BaseMarker"/>
          </type>
        </return-value>
      </method>
      <method name="get_selection_mode"
              c:identifier="champlain_selection_layer_get_selection_mode"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the selection mode of the layer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the selection mode of the layer.</doc>
          <type name="SelectionMode" c:type="ChamplainSelectionMode"/>
        </return-value>
      </method>
      <method name="marker_is_selected"
              c:identifier="champlain_selection_layer_marker_is_selected"
              version="0.4">
        <doc xml:whitespace="preserve">Checks whether the marker is selected.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">whether the marker is selected or not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainBaseMarker</doc>
            <type name="BaseMarker" c:type="ChamplainBaseMarker*"/>
          </parameter>
        </parameters>
      </method>
      <method name="select"
              c:identifier="champlain_selection_layer_select"
              version="0.4">
        <doc xml:whitespace="preserve">Selects the marker.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainBaseMarker</doc>
            <type name="BaseMarker" c:type="ChamplainBaseMarker*"/>
          </parameter>
        </parameters>
      </method>
      <method name="select_all"
              c:identifier="champlain_selection_layer_select_all"
              version="0.4">
        <doc xml:whitespace="preserve">Selects all markers in the layer. This call will only work if the selection
mode is set CHAMPLAIN_SELETION_MULTIPLE.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set_selection_mode"
              c:identifier="champlain_selection_layer_set_selection_mode"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the selection mode of the layer.
CHAMPLAIN_SELECTION_SINGLE will clear all previously selected markers.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainSelectionMode value</doc>
            <type name="SelectionMode" c:type="ChamplainSelectionMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="unselect"
              c:identifier="champlain_selection_layer_unselect"
              version="0.4">
        <doc xml:whitespace="preserve">Unselect the marker.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainBaseMarker</doc>
            <type name="BaseMarker" c:type="ChamplainBaseMarker*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unselect_all"
              c:identifier="champlain_selection_layer_unselect_all"
              version="0.4">
        <doc xml:whitespace="preserve">Unselects all markers.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="selection-mode"
                version="0.4"
                introspectable="0"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Determines the type of selection that will be performed.</doc>
        <type/>
      </property>
      <field name="parent">
        <type name="Layer" c:type="ChamplainLayer"/>
      </field>
      <field name="priv">
        <type name="SelectionLayerPrivate"
              c:type="ChamplainSelectionLayerPrivate*"/>
      </field>
      <glib:signal name="changed" version="0.4.1">
        <doc xml:whitespace="preserve">The changed signal is emitted when the selected marker(s) change.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SelectionLayerClass"
            c:type="ChamplainSelectionLayerClass"
            glib:is-gtype-struct-for="SelectionLayer">
      <field name="parent_class">
        <type name="LayerClass" c:type="ChamplainLayerClass"/>
      </field>
    </record>
    <record name="SelectionLayerPrivate"
            c:type="ChamplainSelectionLayerPrivate"
            disguised="1">
    </record>
    <enumeration name="SelectionMode" c:type="ChamplainSelectionMode">
      <doc xml:whitespace="preserve">Selection mode</doc>
      <member name="none" value="0" c:identifier="CHAMPLAIN_SELECTION_NONE"/>
      <member name="single"
              value="1"
              c:identifier="CHAMPLAIN_SELECTION_SINGLE"/>
      <member name="multiple"
              value="2"
              c:identifier="CHAMPLAIN_SELECTION_MULTIPLE"/>
    </enumeration>
    <enumeration name="State" c:type="ChamplainState">
      <doc xml:whitespace="preserve">Tile loading state.</doc>
      <member name="none" value="0" c:identifier="CHAMPLAIN_STATE_NONE"/>
      <member name="loading" value="1" c:identifier="CHAMPLAIN_STATE_LOADING"/>
      <member name="loaded" value="2" c:identifier="CHAMPLAIN_STATE_LOADED"/>
      <member name="done" value="3" c:identifier="CHAMPLAIN_STATE_DONE"/>
    </enumeration>
    <class name="Tile"
           c:symbol-prefix="tile"
           c:type="ChamplainTile"
           parent="Clutter.Group"
           glib:type-name="ChamplainTile"
           glib:get-type="champlain_tile_get_type"
           glib:type-struct="TileClass">
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="champlain_tile_new" version="0.4">
        <doc xml:whitespace="preserve">Creates an instance of #ChamplainTile.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="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:whitespace="preserve">Creates an instance of #ChamplainTile.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #ChamplainTile</doc>
          <type name="Tile" c:type="ChamplainTile*"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:whitespace="preserve">the x position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:whitespace="preserve">the y position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:whitespace="preserve">the size in pixels</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="preserve">the zoom level</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="display_content"
              c:identifier="champlain_tile_display_content"
              version="0.8">
        <doc xml:whitespace="preserve">Displays the tile's content.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_content"
              c:identifier="champlain_tile_get_content"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the tile's content actor.
You should not unref this content, it is owned by the tile.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the tile's content, this actor will change each time the tile's content changes.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </method>
      <method name="get_etag"
              c:identifier="champlain_tile_get_etag"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the tile's ETag.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the tile's ETag</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_fade_in"
              c:identifier="champlain_tile_get_fade_in"
              version="0.6">
        <doc xml:whitespace="preserve">Checks whether the tile should fade in.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the return value determines whether the tile should fade in when loading.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_modified_time"
              c:identifier="champlain_tile_get_modified_time"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the tile's last modified time.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the tile's last modified time</doc>
          <type name="GLib.TimeVal" c:type="GTimeVal*"/>
        </return-value>
      </method>
      <method name="get_size"
              c:identifier="champlain_tile_get_size"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the tile's size.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the tile's size in pixels</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_state"
              c:identifier="champlain_tile_get_state"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the current state of tile loading.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the tile's #ChamplainState</doc>
          <type name="State" c:type="ChamplainState"/>
        </return-value>
      </method>
      <method name="get_x" c:identifier="champlain_tile_get_x" version="0.4">
        <doc xml:whitespace="preserve">Gets the tile's x position.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the tile's x position</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_y" c:identifier="champlain_tile_get_y" version="0.4">
        <doc xml:whitespace="preserve">Gets the tile's y position.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the tile's y position</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_zoom_level"
              c:identifier="champlain_tile_get_zoom_level"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the tile's zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the tile's zoom level</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="set_content"
              c:identifier="champlain_tile_set_content"
              version="0.4">
        <doc xml:whitespace="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>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Sets the tile's ETag</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="etag" transfer-ownership="none">
            <doc xml:whitespace="preserve">the tile's ETag as sent by the server</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fade_in"
              c:identifier="champlain_tile_set_fade_in"
              version="0.6">
        <doc xml:whitespace="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>
          <parameter name="fade_in" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Sets the tile's modified time</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="time" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GTimeVal, the value will be copied</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size"
              c:identifier="champlain_tile_set_size"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the tile's size</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="size" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Sets the tile's #ChamplainState</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Sets the tile's x position</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:whitespace="preserve">the position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_y" c:identifier="champlain_tile_set_y" version="0.4">
        <doc xml:whitespace="preserve">Sets the tile's y position</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="y" transfer-ownership="none">
            <doc xml:whitespace="preserve">the position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_zoom_level"
              c:identifier="champlain_tile_set_zoom_level"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the tile's zoom level</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="preserve">the zoom level</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="content"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="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:whitespace="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"/>
      </property>
      <property name="fade-in"
                version="0.6"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Specifies whether the tile should fade in when loading</doc>
        <type name="gboolean"/>
      </property>
      <property name="size"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The size of the tile in pixels</doc>
        <type name="guint"/>
      </property>
      <property name="state"
                version="0.4"
                introspectable="0"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The state of the tile</doc>
        <type/>
      </property>
      <property name="x" version="0.4" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The x position of the tile</doc>
        <type name="gint"/>
      </property>
      <property name="y" version="0.4" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The y position of the tile</doc>
        <type name="gint"/>
      </property>
      <property name="zoom-level"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The zoom level of the tile</doc>
        <type name="gint"/>
      </property>
      <field name="parent">
        <type name="Clutter.Group" c:type="ClutterGroup"/>
      </field>
      <field name="priv">
        <type name="TilePrivate" c:type="ChamplainTilePrivate*"/>
      </field>
      <glib:signal name="render-complete" version="0.8">
        <doc xml:whitespace="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"/>
        </return-value>
        <parameters>
          <parameter name="calback_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainRenderCallbackData struct</doc>
            <type name="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <class name="TileCache"
           c:symbol-prefix="tile_cache"
           c:type="ChamplainTileCache"
           parent="MapSource"
           glib:type-name="ChamplainTileCache"
           glib:get-type="champlain_tile_cache_get_type"
           glib:type-struct="TileCacheClass">
      <virtual-method name="on_tile_filled"
                      invoker="on_tile_filled"
                      version="0.6">
        <doc xml:whitespace="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>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Refreshes the tile access time in the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </parameter>
          <parameter name="contents" transfer-ownership="none">
            <doc xml:whitespace="preserve">the tile contents that should be stored</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Refreshes the tile access time in the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainTile</doc>
            <type name="Tile" c:type="ChamplainTile*"/>
          </parameter>
          <parameter name="contents" transfer-ownership="none">
            <doc xml:whitespace="preserve">the tile contents that should be stored</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:whitespace="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">
              <type name="TileCache" c:type="ChamplainTileCache*"/>
            </parameter>
            <parameter name="tile" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #ChamplainTile</doc>
              <type name="Tile" c:type="ChamplainTile*"/>
            </parameter>
            <parameter name="contents" transfer-ownership="none">
              <doc xml:whitespace="preserve">the tile contents that should be stored</doc>
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="size" transfer-ownership="none">
              <doc xml:whitespace="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">
              <type name="TileCache" c:type="ChamplainTileCache*"/>
            </parameter>
            <parameter name="tile" transfer-ownership="none">
              <doc xml:whitespace="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">
              <type name="TileCache" c:type="ChamplainTileCache*"/>
            </parameter>
            <parameter name="tile" transfer-ownership="none">
              <doc xml:whitespace="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.GroupClass" c:type="ClutterGroupClass"/>
      </field>
    </record>
    <record name="TilePrivate" c:type="ChamplainTilePrivate" disguised="1">
    </record>
    <class name="TileSource"
           c:symbol-prefix="tile_source"
           c:type="ChamplainTileSource"
           parent="MapSource"
           glib:type-name="ChamplainTileSource"
           glib:get-type="champlain_tile_source_get_type"
           glib:type-struct="TileSourceClass">
      <method name="get_cache"
              c:identifier="champlain_tile_source_get_cache"
              version="0.6">
        <doc xml:whitespace="preserve">Gets the cache used for storing tiles by this tile source.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the cache</doc>
          <type name="TileCache" c:type="ChamplainTileCache*"/>
        </return-value>
      </method>
      <method name="set_cache"
              c:identifier="champlain_tile_source_set_cache"
              version="0.6">
        <doc xml:whitespace="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>
          <parameter name="cache" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Sets the tile source's id.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">an id</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_license"
              c:identifier="champlain_tile_source_set_license"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the tile source's license.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="license" transfer-ownership="none">
            <doc xml:whitespace="preserve">the licence</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_license_uri"
              c:identifier="champlain_tile_source_set_license_uri"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the tile source's license URI.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="license_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the licence URI</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_zoom_level"
              c:identifier="champlain_tile_source_set_max_zoom_level"
              version="0.6">
        <doc xml:whitespace="preserve">Sets the tile source's maximal zoom level.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="preserve">the maximal 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:whitespace="preserve">Sets the tile source's minimal zoom level.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Sets the tile source's name.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">a name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_projection"
              c:identifier="champlain_tile_source_set_projection"
              version="0.4">
        <doc xml:whitespace="preserve">Sets the tile source's projection.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="projection" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Sets the tile source's tile size.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="preserve">The name of the tile source</doc>
        <type name="utf8"/>
      </property>
      <property name="license"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The usage license of the tile source</doc>
        <type name="utf8"/>
      </property>
      <property name="license-uri"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The usage license's uri for more information</doc>
        <type name="utf8"/>
      </property>
      <property name="max-zoom-level"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The maximum zoom level</doc>
        <type name="guint"/>
      </property>
      <property name="min-zoom-level"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The minimum zoom level</doc>
        <type name="guint"/>
      </property>
      <property name="name"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The name of the tile source</doc>
        <type name="utf8"/>
      </property>
      <property name="projection"
                version="0.4"
                introspectable="0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The map projection of the tile source</doc>
        <type/>
      </property>
      <property name="tile-size"
                version="0.4"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The tile size of the tile source</doc>
        <type name="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" c:type="ChamplainUnit">
      <doc xml:whitespace="preserve">Units used by the scale.</doc>
      <member name="km" value="0" c:identifier="CHAMPLAIN_UNIT_KM"/>
      <member name="miles" value="1" c:identifier="CHAMPLAIN_UNIT_MILES"/>
    </enumeration>
    <constant name="VERSION" value="0.800000">
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <constant name="VERSION_HEX" value="0">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="VERSION_S" value="0.8.3">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="View"
           c:symbol-prefix="view"
           c:type="ChamplainView"
           parent="Clutter.Group"
           glib:type-name="ChamplainView"
           glib:get-type="champlain_view_get_type"
           glib:type-struct="ViewClass">
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="champlain_view_new" version="0.4">
        <doc xml:whitespace="preserve">Creates an instance of #ChamplainView.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="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:whitespace="preserve">Adds a new layer to the view</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="layer" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainLayer</doc>
            <type name="Layer" c:type="ChamplainLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_polygon"
              c:identifier="champlain_view_add_polygon"
              version="0.4">
        <doc xml:whitespace="preserve">Adds a #ChamplainPolygon to the #ChamplainView</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="polygon" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainPolygon</doc>
            <type name="Polygon" c:type="ChamplainPolygon*"/>
          </parameter>
        </parameters>
      </method>
      <method name="center_on"
              c:identifier="champlain_view_center_on"
              version="0.1">
        <doc xml:whitespace="preserve">Centers the map on these coordinates.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:whitespace="preserve">the longitude to center the map at</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:whitespace="preserve">the longitude to center the map at</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_markers_visible"
              c:identifier="champlain_view_ensure_markers_visible"
              version="0.4">
        <doc xml:whitespace="preserve">Changes the map's zoom level and center to make sure those markers are
visible.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="markers" transfer-ownership="none">
            <doc xml:whitespace="preserve">a NULL terminated array of #ChamplainMarker elements</doc>
            <array c:type="ChamplainBaseMarker*">
              <type name="BaseMarker" c:type="ChamplainBaseMarker"/>
            </array>
          </parameter>
          <parameter name="animate" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #gboolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_visible"
              c:identifier="champlain_view_ensure_visible"
              version="0.4">
        <doc xml:whitespace="preserve">Changes the map's zoom level and center to make sure the two given
positions are visible</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="lat1" transfer-ownership="none">
            <doc xml:whitespace="preserve">the latitude of position 1</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="lon1" transfer-ownership="none">
            <doc xml:whitespace="preserve">the longitude of position 1</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="lat2" transfer-ownership="none">
            <doc xml:whitespace="preserve">the latitude of position 2</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="lon2" transfer-ownership="none">
            <doc xml:whitespace="preserve">the longitude of position 2</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="animate" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #gboolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_coords_at"
              c:identifier="champlain_view_get_coords_at"
              version="0.4">
        <doc xml:whitespace="preserve">Gets latitude and longitude for the given x, y position in
the view. Use if you get coordinates from GtkEvents for example.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE when successful.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:whitespace="preserve">the x position in the view</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:whitespace="preserve">the y position in the view</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="lat"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">a variable where to put the latitude of the event</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="lon"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">a variable where to put the longitude of the event</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_coords_from_event"
              c:identifier="champlain_view_get_coords_from_event"
              version="0.2.8">
        <doc xml:whitespace="preserve">Gets coordinates from button-press-event and button-release-event signals.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the latitude, longitude coordinates for the given ClutterEvent.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ClutterEvent</doc>
            <type name="Clutter.Event" c:type="ClutterEvent*"/>
          </parameter>
          <parameter name="lat"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">a variable where to put the latitude of the event</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="lon"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">a variable where to put the longitude of the event</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_decel_rate"
              c:identifier="champlain_view_get_decel_rate"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the view's deceleration rate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the view's deceleration rate.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
      </method>
      <method name="get_keep_center_on_resize"
              c:identifier="champlain_view_get_keep_center_on_resize"
              version="0.4">
        <doc xml:whitespace="preserve">Checks whether to keep the center on resize</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the view keeps the center on resize, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_license_text"
              c:identifier="champlain_view_get_license_text"
              version="0.4.3">
        <doc xml:whitespace="preserve">Gets the additional license text.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the additional license text</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_map_source"
              c:identifier="champlain_view_get_map_source"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the view's current map source.
map source then you have to call #g_object_ref.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the view's current map source. If you need to keep a reference to the</doc>
          <type name="MapSource" c:type="ChamplainMapSource*"/>
        </return-value>
      </method>
      <method name="get_max_scale_width"
              c:identifier="champlain_view_get_max_scale_width"
              version="0.4.3">
        <doc xml:whitespace="preserve">Gets the maximal scale width.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The max scale width in pixels.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_max_zoom_level"
              c:identifier="champlain_view_get_max_zoom_level"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the view's maximal allowed zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the view's maximal allowed zoom level.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_min_zoom_level"
              c:identifier="champlain_view_get_min_zoom_level"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the view's minimal allowed zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the view's minimal allowed zoom level.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_scale_unit"
              c:identifier="champlain_view_get_scale_unit"
              version="0.4.3">
        <doc xml:whitespace="preserve">Gets the unit used by the scale.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The unit used by the scale</doc>
          <type name="Unit" c:type="ChamplainUnit"/>
        </return-value>
      </method>
      <method name="get_scroll_mode"
              c:identifier="champlain_view_get_scroll_mode"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the view's scroll mode behaviour.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the view's scroll mode behaviour.</doc>
          <type name="ScrollMode" c:type="ChamplainScrollMode"/>
        </return-value>
      </method>
      <method name="get_show_license"
              c:identifier="champlain_view_get_show_license"
              version="0.4">
        <doc xml:whitespace="preserve">Checks whether the view displays the license.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the view displays the license, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_show_scale"
              c:identifier="champlain_view_get_show_scale"
              version="0.4.3">
        <doc xml:whitespace="preserve">Checks whether the view displays the scale.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the view displays the scale, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_zoom_level"
              c:identifier="champlain_view_get_zoom_level"
              version="0.4">
        <doc xml:whitespace="preserve">Gets the view's current zoom level.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the view's current zoom level.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_zoom_on_double_click"
              c:identifier="champlain_view_get_zoom_on_double_click"
              version="0.4">
        <doc xml:whitespace="preserve">Checks whether the view zooms on double click.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the view zooms on double click, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="go_to" c:identifier="champlain_view_go_to" version="0.4">
        <doc xml:whitespace="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>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:whitespace="preserve">the longitude to center the map at</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:whitespace="preserve">the longitude to center the map at</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:whitespace="preserve">Reloads all visible tiles.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="remove_layer"
              c:identifier="champlain_view_remove_layer"
              version="0.4.1">
        <doc xml:whitespace="preserve">Removes the layer from the view</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="layer" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainLayer</doc>
            <type name="Layer" c:type="ChamplainLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_polygon"
              c:identifier="champlain_view_remove_polygon"
              version="0.4">
        <doc xml:whitespace="preserve">Removes a #ChamplainPolygon from #ChamplainView</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="polygon" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainPolygon</doc>
            <type name="Polygon" c:type="ChamplainPolygon*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_decel_rate"
              c:identifier="champlain_view_set_decel_rate"
              version="0.4">
        <doc xml:whitespace="preserve">The deceleration rate for the kinetic mode.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="rate" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #gboolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_license_text"
              c:identifier="champlain_view_set_license_text"
              version="0.4.3">
        <doc xml:whitespace="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>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">a license</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_map_source"
              c:identifier="champlain_view_set_map_source"
              version="0.4">
        <doc xml:whitespace="preserve">Changes the currently used map source.  #g_object_unref will be called on
the previous one.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="map_source" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainMapSource</doc>
            <type name="MapSource" c:type="ChamplainMapSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_scale_width"
              c:identifier="champlain_view_set_max_scale_width"
              version="0.4.3">
        <doc xml:whitespace="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>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #guint in pixels</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_zoom_level"
              c:identifier="champlain_view_set_max_zoom_level"
              version="0.4">
        <doc xml:whitespace="preserve">Changes the highest allowed zoom level</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="preserve">a gint</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_min_zoom_level"
              c:identifier="champlain_view_set_min_zoom_level"
              version="0.4">
        <doc xml:whitespace="preserve">Changes the lowest allowed zoom level</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="preserve">a gint</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scale_unit"
              c:identifier="champlain_view_set_scale_unit"
              version="0.4.3">
        <doc xml:whitespace="preserve">Sets the scales unit.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainUnit</doc>
            <type name="Unit" c:type="ChamplainUnit"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scroll_mode"
              c:identifier="champlain_view_set_scroll_mode"
              version="0.4">
        <doc xml:whitespace="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>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #ChamplainScrollMode value</doc>
            <type name="ScrollMode" c:type="ChamplainScrollMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_license"
              c:identifier="champlain_view_set_show_license"
              version="0.4">
        <doc xml:whitespace="preserve">Show the license on the map view.  The license information should always be
available in a way or another in your application.  You can have it in
About, or on the map.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #gboolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_scale"
              c:identifier="champlain_view_set_show_scale"
              version="0.4.3">
        <doc xml:whitespace="preserve">Show the scale on the map view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #gboolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size"
              c:identifier="champlain_view_set_size"
              version="0.1">
        <doc xml:whitespace="preserve">Sets the size of the view.  This function is deprecated and should not be used in new code
Use #clutter_actor_set_size instead.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:whitespace="preserve">the width in pixels</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:whitespace="preserve">the height in pixels</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_zoom_level"
              c:identifier="champlain_view_set_zoom_level"
              version="0.4">
        <doc xml:whitespace="preserve">Changes the current zoom level</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:whitespace="preserve">a gint</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_zoom_on_double_click"
              c:identifier="champlain_view_set_zoom_on_double_click"
              version="0.4">
        <doc xml:whitespace="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>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
      </method>
      <method name="zoom_in"
              c:identifier="champlain_view_zoom_in"
              version="0.1">
        <doc xml:whitespace="preserve">Zoom in the map by one level.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="zoom_out"
              c:identifier="champlain_view_zoom_out"
              version="0.1">
        <doc xml:whitespace="preserve">Zoom out the map by one level.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="decel-rate"
                version="0.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The deceleration rate for the kinetic mode. The default value is 1.1.</doc>
        <type name="gdouble"/>
      </property>
      <property name="keep-center-on-resize"
                version="0.2.7"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Keep the current centered position when resizing the view.</doc>
        <type name="gboolean"/>
      </property>
      <property name="latitude"
                version="0.1"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The latitude coordonate of the map</doc>
        <type name="gdouble"/>
      </property>
      <property name="license-text"
                version="0.4.3"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="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 line, just use
"\n" in between.</doc>
        <type name="utf8"/>
      </property>
      <property name="longitude"
                version="0.1"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The longitude coordonate of the map</doc>
        <type name="gdouble"/>
      </property>
      <property name="map-source"
                version="0.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The #ChamplainMapSource being displayed</doc>
        <type name="MapSource"/>
      </property>
      <property name="max-scale-width"
                version="0.4.3"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The size of the map scale on screen in pixels.</doc>
        <type name="guint"/>
      </property>
      <property name="max-zoom-level"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The highest allowed level of zoom of the content.</doc>
        <type name="gint"/>
      </property>
      <property name="min-zoom-level"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The lowest allowed level of zoom of the content.</doc>
        <type name="gint"/>
      </property>
      <property name="scale-unit"
                version="0.4.3"
                introspectable="0"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The scale's units.</doc>
        <type/>
      </property>
      <property name="scroll-mode"
                version="0.4"
                introspectable="0"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Determines the way the view reacts to scroll events.</doc>
        <type/>
      </property>
      <property name="show-license"
                version="0.2.8"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Show the license on the map view.  The license information should always be
available in a way or another in your application.  You can have it in
About, or on the map.</doc>
        <type name="gboolean"/>
      </property>
      <property name="show-scale"
                version="0.4.3"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Display the map scale.</doc>
        <type name="gboolean"/>
      </property>
      <property name="state"
                version="0.4"
                introspectable="0"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The view's global state. Useful to inform using if the view is busy loading
tiles or not.</doc>
        <type/>
      </property>
      <property name="zoom-level"
                version="0.1"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The level of zoom of the content.</doc>
        <type name="gint"/>
      </property>
      <property name="zoom-on-double-click"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Should the view zoom in and recenter when the user double click on the map.</doc>
        <type name="gboolean"/>
      </property>
      <field name="group">
        <type name="Clutter.Group" c:type="ClutterGroup"/>
      </field>
      <field name="priv">
        <type name="ViewPrivate" c:type="ChamplainViewPrivate*"/>
      </field>
      <glib:signal name="animation-completed" version="0.4">
        <doc xml:whitespace="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".</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ViewClass"
            c:type="ChamplainViewClass"
            glib:is-gtype-struct-for="View">
      <field name="parent_class">
        <type name="Clutter.GroupClass" c:type="ClutterGroupClass"/>
      </field>
    </record>
    <record name="ViewPrivate" c:type="ChamplainViewPrivate" disguised="1">
    </record>
    <record name="_RenderCallbackData" c:type="_ChamplainRenderCallbackData">
      <field name="error" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="data" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="size" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
  </namespace>
</repository>
