<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gdk" version="4.0"/>
  <include name="Gsk" version="4.0"/>
  <include name="Gtk" version="4.0"/>
  <package name="shumate-1.0"/>
  <c:include name="shumate/shumate.h"/>
  <namespace name="Shumate"
             version="1.0"
             shared-library="libshumate-1.0.so.0.0"
             c:identifier-prefixes="Shumate"
             c:symbol-prefixes="shumate">
    <function-macro name="CHECK_VERSION"
                    c:identifier="SHUMATE_CHECK_VERSION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="../shumate/shumate-version.h"
           line="55">Returns %TRUE if the version of the Shumate header files
is the same as or newer than the passed-in version.</doc>
      <source-position filename="../shumate/shumate-version.h" line="66"/>
      <parameters>
        <parameter name="major">
          <doc xml:space="preserve"
               filename="../shumate/shumate-version.h"
               line="57">major version (e.g. 1 for version 1.2.5)</doc>
        </parameter>
        <parameter name="minor">
          <doc xml:space="preserve"
               filename="../shumate/shumate-version.h"
               line="58">minor version (e.g. 2 for version 1.2.5)</doc>
        </parameter>
        <parameter name="micro">
          <doc xml:space="preserve"
               filename="../shumate/shumate-version.h"
               line="59">micro version (e.g. 5 for version 1.2.5)</doc>
        </parameter>
      </parameters>
    </function-macro>
    <class name="Compass"
           c:symbol-prefix="compass"
           c:type="ShumateCompass"
           parent="Gtk.Widget"
           glib:type-name="ShumateCompass"
           glib:get-type="shumate_compass_get_type"
           glib:type-struct="CompassClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-compass.c"
           line="20">A widget displaying a compass.

# CSS nodes

```
map-compass
├── revealer
├──── image
```

`ShumateCompass` uses a single CSS node with name map-compass. It also uses an
image named "map-compass".</doc>
      <source-position filename="../shumate/shumate-compass.h" line="36"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <constructor name="new" c:identifier="shumate_compass_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-compass.c"
             line="198">Creates an instance of #ShumateCompass.</doc>
        <source-position filename="../shumate/shumate-compass.h" line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-compass.c"
               line="204">a new #ShumateCompass.</doc>
          <type name="Compass" c:type="ShumateCompass*"/>
        </return-value>
        <parameters>
          <parameter name="viewport"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-compass.c"
                 line="200">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_viewport"
              c:identifier="shumate_compass_get_viewport"
              glib:get-property="viewport">
        <doc xml:space="preserve"
             filename="../shumate/shumate-compass.c"
             line="245">Gets the viewport used by the compass.</doc>
        <source-position filename="../shumate/shumate-compass.h" line="40"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../shumate/shumate-compass.c"
               line="251">The #ShumateViewport used by the compass</doc>
          <type name="Viewport" c:type="ShumateViewport*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compass" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-compass.c"
                 line="247">a #ShumateCompass</doc>
            <type name="Compass" c:type="ShumateCompass*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_viewport"
              c:identifier="shumate_compass_set_viewport"
              glib:set-property="viewport">
        <doc xml:space="preserve"
             filename="../shumate/shumate-compass.c"
             line="214">Sets the compass viewport.</doc>
        <source-position filename="../shumate/shumate-compass.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compass" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-compass.c"
                 line="216">a [class@Compass]</doc>
            <type name="Compass" c:type="ShumateCompass*"/>
          </instance-parameter>
          <parameter name="viewport"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-compass.c"
                 line="217">a [class@Viewport]</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </parameter>
        </parameters>
      </method>
      <property name="viewport"
                writable="1"
                transfer-ownership="none"
                setter="set_viewport"
                getter="get_viewport">
        <doc xml:space="preserve"
             filename="../shumate/shumate-compass.c"
             line="162">The viewport to use.</doc>
        <type name="Viewport"/>
      </property>
    </class>
    <record name="CompassClass"
            c:type="ShumateCompassClass"
            glib:is-gtype-struct-for="Compass">
      <source-position filename="../shumate/shumate-compass.h" line="36"/>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
    </record>
    <class name="Coordinate"
           c:symbol-prefix="coordinate"
           c:type="ShumateCoordinate"
           parent="GObject.InitiallyUnowned"
           glib:type-name="ShumateCoordinate"
           glib:get-type="shumate_coordinate_get_type"
           glib:type-struct="CoordinateClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-coordinate.c"
           line="20">A simple object implementing [iface@Location].</doc>
      <source-position filename="../shumate/shumate-coordinate.h" line="42"/>
      <implements name="Location"/>
      <constructor name="new" c:identifier="shumate_coordinate_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-coordinate.c"
             line="189">Creates a new instance of #ShumateCoordinate.</doc>
        <source-position filename="../shumate/shumate-coordinate.h" line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-coordinate.c"
               line="194">the created instance.</doc>
          <type name="Coordinate" c:type="ShumateCoordinate*"/>
        </return-value>
      </constructor>
      <constructor name="new_full" c:identifier="shumate_coordinate_new_full">
        <doc xml:space="preserve"
             filename="../shumate/shumate-coordinate.c"
             line="203">Creates a new instance of #ShumateCoordinate initialized with the given
coordinates.</doc>
        <source-position filename="../shumate/shumate-coordinate.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-coordinate.c"
               line="211">the created instance.</doc>
          <type name="Coordinate" c:type="ShumateCoordinate*"/>
        </return-value>
        <parameters>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-coordinate.c"
                 line="205">the latitude coordinate</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-coordinate.c"
                 line="206">the longitude coordinate</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent_instance">
        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
      </field>
    </class>
    <record name="CoordinateClass"
            c:type="ShumateCoordinateClass"
            glib:is-gtype-struct-for="Coordinate">
      <source-position filename="../shumate/shumate-coordinate.h" line="42"/>
      <field name="parent_class">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="DataSource"
           c:symbol-prefix="data_source"
           c:type="ShumateDataSource"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="ShumateDataSource"
           glib:get-type="shumate_data_source_get_type"
           glib:type-struct="DataSourceClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-data-source.c"
           line="20">The base class used to retrieve tiles as [struct@GLib.Bytes].</doc>
      <source-position filename="../shumate/shumate-data-source.h" line="46"/>
      <virtual-method name="get_tile_data_async" invoker="get_tile_data_async">
        <doc xml:space="preserve"
             filename="../shumate/shumate-data-source.c"
             line="83">Gets the data for the tile at the given coordinates.

Some data sources may return data multiple times. For example,
[class@TileDownloader] may return data from a cache, then return updated
data from the network. [signal@ShumateDataSource::received-data] is emitted
each time data is received, then @callback is called after the last update.</doc>
        <source-position filename="../shumate/shumate-data-source.h"
                         line="33"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="85">a [class@DataSource]</doc>
            <type name="DataSource" c:type="ShumateDataSource*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="86">the X coordinate to fetch</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="87">the Y coordinate to fetch</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="88">the Z coordinate to fetch</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="89">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="90">a #GAsyncReadyCallback to execute upon completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="5">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="91">closure data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_tile_data_finish"
                      invoker="get_tile_data_finish"
                      throws="1">
        <doc xml:space="preserve"
             filename="../shumate/shumate-data-source.c"
             line="116">Gets the final result of a request started with
shumate_data_source_get_tile_data_async().</doc>
        <source-position filename="../shumate/shumate-data-source.h"
                         line="40"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="../shumate/shumate-data-source.c"
               line="125">The requested data, or %NULL if an
error occurred</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="118">a [class@DataSource]</doc>
            <type name="DataSource" c:type="ShumateDataSource*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="119">a #GAsyncResult provided to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_tile_data_async"
              c:identifier="shumate_data_source_get_tile_data_async">
        <doc xml:space="preserve"
             filename="../shumate/shumate-data-source.c"
             line="83">Gets the data for the tile at the given coordinates.

Some data sources may return data multiple times. For example,
[class@TileDownloader] may return data from a cache, then return updated
data from the network. [signal@ShumateDataSource::received-data] is emitted
each time data is received, then @callback is called after the last update.</doc>
        <source-position filename="../shumate/shumate-data-source.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="85">a [class@DataSource]</doc>
            <type name="DataSource" c:type="ShumateDataSource*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="86">the X coordinate to fetch</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="87">the Y coordinate to fetch</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="88">the Z coordinate to fetch</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="89">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="90">a #GAsyncReadyCallback to execute upon completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="91">closure data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tile_data_finish"
              c:identifier="shumate_data_source_get_tile_data_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../shumate/shumate-data-source.c"
             line="116">Gets the final result of a request started with
shumate_data_source_get_tile_data_async().</doc>
        <source-position filename="../shumate/shumate-data-source.h"
                         line="56"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="../shumate/shumate-data-source.c"
               line="125">The requested data, or %NULL if an
error occurred</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="118">a [class@DataSource]</doc>
            <type name="DataSource" c:type="ShumateDataSource*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="119">a #GAsyncResult provided to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="received-data" when="last">
        <doc xml:space="preserve"
             filename="../shumate/shumate-data-source.c"
             line="56">Emitted when data is received for any tile. This includes any intermediate
steps, such as data from the file cache, as well as the final result.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="59">the X coordinate of the tile</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="60">the Y coordinate of the tile</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="61">the zoom level of the tile</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="62">the received data</doc>
            <type name="GLib.Bytes"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="DataSourceClass"
            c:type="ShumateDataSourceClass"
            glib:is-gtype-struct-for="DataSource">
      <source-position filename="../shumate/shumate-data-source.h" line="46"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="get_tile_data_async">
        <callback name="get_tile_data_async">
          <source-position filename="../shumate/shumate-data-source.h"
                           line="33"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-data-source.c"
                   line="85">a [class@DataSource]</doc>
              <type name="DataSource" c:type="ShumateDataSource*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-data-source.c"
                   line="86">the X coordinate to fetch</doc>
              <type name="gint" c:type="int"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-data-source.c"
                   line="87">the Y coordinate to fetch</doc>
              <type name="gint" c:type="int"/>
            </parameter>
            <parameter name="zoom_level" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-data-source.c"
                   line="88">the Z coordinate to fetch</doc>
              <type name="gint" c:type="int"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-data-source.c"
                   line="89">a #GCancellable</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="6">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-data-source.c"
                   line="90">a #GAsyncReadyCallback to execute upon completion</doc>
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="6">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-data-source.c"
                   line="91">closure data for @callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_tile_data_finish">
        <callback name="get_tile_data_finish" throws="1">
          <source-position filename="../shumate/shumate-data-source.h"
                           line="40"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-data-source.c"
                 line="125">The requested data, or %NULL if an
error occurred</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-data-source.c"
                   line="118">a [class@DataSource]</doc>
              <type name="DataSource" c:type="ShumateDataSource*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-data-source.c"
                   line="119">a #GAsyncResult provided to callback</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="FileCache"
           c:symbol-prefix="file_cache"
           c:type="ShumateFileCache"
           parent="GObject.Object"
           glib:type-name="ShumateFileCache"
           glib:get-type="shumate_file_cache_get_type"
           glib:type-struct="FileCacheClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-file-cache.c"
           line="21">A cache that stores and retrieves tiles from the file system. It is mainly
used by [class@TileDownloader], but can also be used by custom data
sources.

The cache will be filled up to a certain size limit. When this limit is
reached, the cache can be purged, and the tiles that are accessed least are
deleted.

## ETags

The cache can optionally store an ETag string with each tile. This is
useful to avoid redownloading old tiles that haven't changed (for example,
using the HTTP If-None-Match header).</doc>
      <source-position filename="../shumate/shumate-file-cache.h" line="54"/>
      <constructor name="new_full" c:identifier="shumate_file_cache_new_full">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="366">Constructor of #ShumateFileCache.</doc>
        <source-position filename="../shumate/shumate-file-cache.h" line="56"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-file-cache.c"
               line="375">a constructed #ShumateFileCache</doc>
          <type name="FileCache" c:type="ShumateFileCache*"/>
        </return-value>
        <parameters>
          <parameter name="size_limit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="368">maximum size of the cache in bytes</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cache_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="369">an ID for the tileset to store/retrieve</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="cache_dir"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="370">the directory where the cache is created. When cache_dir == NULL,
a cache in ~/.cache/shumate is used.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_cache_dir"
              c:identifier="shumate_file_cache_get_cache_dir"
              glib:get-property="cache-dir">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="412">Gets the directory where the cache database is stored.</doc>
        <source-position filename="../shumate/shumate-file-cache.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-file-cache.c"
               line="418">the directory</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file_cache" transfer-ownership="none">
            <type name="FileCache" c:type="ShumateFileCache*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cache_key"
              c:identifier="shumate_file_cache_get_cache_key"
              glib:get-property="cache-key">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="429">Gets the key used to store and retrieve tiles from the cache. Different keys
can be used to store multiple tilesets in the same cache directory.</doc>
        <source-position filename="../shumate/shumate-file-cache.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-file-cache.c"
               line="436">the cache key</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file_cache" transfer-ownership="none">
            <type name="FileCache" c:type="ShumateFileCache*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size_limit"
              c:identifier="shumate_file_cache_get_size_limit"
              glib:get-property="size-limit">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="395">Gets the cache size limit in bytes.</doc>
        <source-position filename="../shumate/shumate-file-cache.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-file-cache.c"
               line="401">size limit</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="file_cache" transfer-ownership="none">
            <type name="FileCache" c:type="ShumateFileCache*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tile_async"
              c:identifier="shumate_file_cache_get_tile_async">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="790">Gets tile data from the cache, if it is available.</doc>
        <source-position filename="../shumate/shumate-file-cache.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="792">a #ShumateFileCache</doc>
            <type name="FileCache" c:type="ShumateFileCache*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="793">the X coordinate of the tile</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="794">the Y coordinate of the tile</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="795">the zoom level of the tile</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="796">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="797">a #GAsyncReadyCallback to execute upon completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="798">closure data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tile_finish"
              c:identifier="shumate_file_cache_get_tile_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="881">Gets the tile data from a completed shumate_file_cache_get_tile_async()
operation.

@modtime will be set to the time the tile was added to the cache, or the
latest time it was confirmed to be up to date.

@etag will be set to the data's ETag, if present.</doc>
        <source-position filename="../shumate/shumate-file-cache.h" line="82"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-file-cache.c"
               line="897">a #GBytes containing the tile data, or %NULL if the tile was not in
the cache or an error occurred</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="883">a #ShumateFileCache</doc>
            <type name="FileCache" c:type="ShumateFileCache*"/>
          </instance-parameter>
          <parameter name="etag"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="884">a location for the data's ETag, or %NULL</doc>
            <type name="utf8" c:type="char**"/>
          </parameter>
          <parameter name="modtime"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="885">a location to return the tile's last modification time, or %NULL</doc>
            <type name="GLib.DateTime" c:type="GDateTime**"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="886">a #GAsyncResult provided to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="mark_up_to_date"
              c:identifier="shumate_file_cache_mark_up_to_date">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="530">Marks a tile in the cache as being up to date, without changing its data.

For example, a network source might call this function when it gets an HTTP
304 Not Modified response.</doc>
        <source-position filename="../shumate/shumate-file-cache.h"
                         line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="532">a #ShumateFileCache</doc>
            <type name="FileCache" c:type="ShumateFileCache*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="533">the X coordinate of the tile</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="534">the Y coordinate of the tile</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="535">the zoom level of the tile</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="purge_cache_async"
              c:identifier="shumate_file_cache_purge_cache_async">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="717">Removes less used tiles from the cache, if necessary, until it fits in
the size limit.</doc>
        <source-position filename="../shumate/shumate-file-cache.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="719">a #ShumateFileCache</doc>
            <type name="FileCache" c:type="ShumateFileCache*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="720">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="721">a #GAsyncReadyCallback to execute upon completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="722">closure data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="purge_cache_finish"
              c:identifier="shumate_file_cache_purge_cache_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="751">Gets the result of an async operation started using
shumate_file_cache_purge_cache_async().</doc>
        <source-position filename="../shumate/shumate-file-cache.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-file-cache.c"
               line="760">%TRUE if any tiles were removed, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="753">a #ShumateFileCache</doc>
            <type name="FileCache" c:type="ShumateFileCache*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="754">a #GAsyncResult provided to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size_limit"
              c:identifier="shumate_file_cache_set_size_limit"
              glib:set-property="size-limit">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="447">Sets the cache size limit in bytes.</doc>
        <source-position filename="../shumate/shumate-file-cache.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file_cache" transfer-ownership="none">
            <type name="FileCache" c:type="ShumateFileCache*"/>
          </instance-parameter>
          <parameter name="size_limit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="450">the cache limit in bytes</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="store_tile_async"
              c:identifier="shumate_file_cache_store_tile_async">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="942">Stores a tile in the cache.</doc>
        <source-position filename="../shumate/shumate-file-cache.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="944">a #ShumateFileCache</doc>
            <type name="FileCache" c:type="ShumateFileCache*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="945">the X coordinate of the tile</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="946">the Y coordinate of the tile</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="947">the zoom level of the tile</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="948">a #GBytes</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
          <parameter name="etag"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="949">an ETag string, or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="950">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="7">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="951">a #GAsyncReadyCallback to execute upon completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="952">closure data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="store_tile_finish"
              c:identifier="shumate_file_cache_store_tile_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="1079">Gets the success value of a completed shumate_file_cache_store_tile_async()
operation.</doc>
        <source-position filename="../shumate/shumate-file-cache.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-file-cache.c"
               line="1088">%TRUE if the operation was successful, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="1081">an #ShumateFileCache</doc>
            <type name="FileCache" c:type="ShumateFileCache*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-file-cache.c"
                 line="1082">a #GAsyncResult provided to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="cache-dir"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_cache_dir">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="323">The directory where the tile database is stored.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="cache-key"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_cache_key">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="335">The key used to store and retrieve tiles from the cache. Different keys
can be used to store multiple tilesets in the same cache directory.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="size-limit"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_size_limit"
                getter="get_size_limit">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="307">The cache size limit in bytes.

Note: this new value will not be applied until you call shumate_file_cache_purge()</doc>
        <type name="guint" c:type="guint"/>
      </property>
    </class>
    <record name="FileCacheClass"
            c:type="ShumateFileCacheClass"
            glib:is-gtype-struct-for="FileCache">
      <source-position filename="../shumate/shumate-file-cache.h" line="54"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="FileCacheError"
                 glib:type-name="ShumateFileCacheError"
                 glib:get-type="shumate_file_cache_error_get_type"
                 c:type="ShumateFileCacheError"
                 glib:error-domain="shumate-file-cache-error-quark">
      <doc xml:space="preserve"
           filename="../shumate/shumate-file-cache.h"
           line="43">Error codes in the #SHUMATE_FILE_CACHE_ERROR domain.</doc>
      <member name="failed"
              value="0"
              c:identifier="SHUMATE_FILE_CACHE_ERROR_FAILED"
              glib:nick="failed"
              glib:name="SHUMATE_FILE_CACHE_ERROR_FAILED">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.h"
             line="45">An unspecified error occurred during the operation.</doc>
      </member>
      <function name="quark" c:identifier="shumate_file_cache_error_quark">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="1101">Gets the #ShumateFileCache error quark.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-file-cache.c"
               line="1106">a #GQuark</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="Layer"
           c:symbol-prefix="layer"
           c:type="ShumateLayer"
           parent="Gtk.Widget"
           abstract="1"
           glib:type-name="ShumateLayer"
           glib:get-type="shumate_layer_get_type"
           glib:type-struct="LayerClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-layer.c"
           line="20">Every layer (overlay that moves together with the map) has to inherit this
class and implement its virtual methods.

You can use the same layer to display many types of maps.  In Shumate they
are called map sources.  You can change the [property@MapLayer:map-source]
property at any time to replace the current displayed map.</doc>
      <source-position filename="../shumate/shumate-layer.h" line="41"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <method name="get_viewport"
              c:identifier="shumate_layer_get_viewport"
              glib:get-property="viewport">
        <doc xml:space="preserve"
             filename="../shumate/shumate-layer.c"
             line="156">Gets the #ShumateViewport used by this layer.</doc>
        <source-position filename="../shumate/shumate-layer.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-layer.c"
               line="162">The #ShumateViewport.</doc>
          <type name="Viewport" c:type="ShumateViewport*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-layer.c"
                 line="158">a #ShumateLayer</doc>
            <type name="Layer" c:type="ShumateLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="viewport"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_viewport">
        <type name="Viewport"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Widget" c:type="GtkWidget"/>
      </field>
    </class>
    <record name="LayerClass"
            c:type="ShumateLayerClass"
            glib:is-gtype-struct-for="Layer">
      <source-position filename="../shumate/shumate-layer.h" line="41"/>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="License"
           c:symbol-prefix="license"
           c:type="ShumateLicense"
           parent="Gtk.Widget"
           glib:type-name="ShumateLicense"
           glib:get-type="shumate_license_get_type"
           glib:type-struct="LicenseClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-license.c"
           line="20">A widget that displays license text.</doc>
      <source-position filename="../shumate/shumate-license.h" line="35"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <constructor name="new" c:identifier="shumate_license_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-license.c"
             line="212">Creates an instance of #ShumateLicense.</doc>
        <source-position filename="../shumate/shumate-license.h" line="37"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-license.c"
               line="217">a new #ShumateLicense.</doc>
          <type name="License" c:type="ShumateLicense*"/>
        </return-value>
      </constructor>
      <method name="append_map_source"
              c:identifier="shumate_license_append_map_source">
        <source-position filename="../shumate/shumate-license.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <type name="License" c:type="ShumateLicense*"/>
          </instance-parameter>
          <parameter name="map_source" transfer-ownership="none">
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_extra_text"
              c:identifier="shumate_license_get_extra_text"
              glib:get-property="extra-text">
        <doc xml:space="preserve"
             filename="../shumate/shumate-license.c"
             line="246">Gets the additional license text.</doc>
        <source-position filename="../shumate/shumate-license.h" line="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-license.c"
               line="252">the additional license text</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-license.c"
                 line="248">a #ShumateLicense</doc>
            <type name="License" c:type="ShumateLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xalign"
              c:identifier="shumate_license_get_xalign"
              glib:get-property="xalign">
        <doc xml:space="preserve"
             filename="../shumate/shumate-license.c"
             line="283">Get the license's text horizontal alignment.</doc>
        <source-position filename="../shumate/shumate-license.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-license.c"
               line="289">the license's text horizontal alignment.</doc>
          <type name="gfloat" c:type="float"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-license.c"
                 line="285">The license</doc>
            <type name="License" c:type="ShumateLicense*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prepend_map_source"
              c:identifier="shumate_license_prepend_map_source">
        <source-position filename="../shumate/shumate-license.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <type name="License" c:type="ShumateLicense*"/>
          </instance-parameter>
          <parameter name="map_source" transfer-ownership="none">
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_map_source"
              c:identifier="shumate_license_remove_map_source">
        <source-position filename="../shumate/shumate-license.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <type name="License" c:type="ShumateLicense*"/>
          </instance-parameter>
          <parameter name="map_source" transfer-ownership="none">
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_extra_text"
              c:identifier="shumate_license_set_extra_text"
              glib:set-property="extra-text">
        <doc xml:space="preserve"
             filename="../shumate/shumate-license.c"
             line="225">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>
        <source-position filename="../shumate/shumate-license.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-license.c"
                 line="227">a #ShumateLicense</doc>
            <type name="License" c:type="ShumateLicense*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-license.c"
                 line="228">the additional license text</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_xalign"
              c:identifier="shumate_license_set_xalign"
              glib:set-property="xalign">
        <doc xml:space="preserve"
             filename="../shumate/shumate-license.c"
             line="263">Set the license's text horizontal alignment.</doc>
        <source-position filename="../shumate/shumate-license.h" line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-license.c"
                 line="265">a #ShumateLicense</doc>
            <type name="License" c:type="ShumateLicense*"/>
          </instance-parameter>
          <parameter name="xalign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-license.c"
                 line="266">The license's text horizontal alignment</doc>
            <type name="gfloat" c:type="float"/>
          </parameter>
        </parameters>
      </method>
      <property name="extra-text"
                writable="1"
                transfer-ownership="none"
                setter="set_extra_text"
                getter="get_extra_text">
        <doc xml:space="preserve"
             filename="../shumate/shumate-license.c"
             line="144">Sets additional text to be displayed in the license area.  The map's
license will be added below it. Your text can have multiple lines, just use
"\n" in between.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="xalign"
                writable="1"
                transfer-ownership="none"
                setter="set_xalign"
                getter="get_xalign">
        <doc xml:space="preserve"
             filename="../shumate/shumate-license.c"
             line="158">The license's horizontal alignment</doc>
        <type name="gfloat" c:type="gfloat"/>
      </property>
    </class>
    <record name="LicenseClass"
            c:type="ShumateLicenseClass"
            glib:is-gtype-struct-for="License">
      <source-position filename="../shumate/shumate-license.h" line="35"/>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
    </record>
    <interface name="Location"
               c:symbol-prefix="location"
               c:type="ShumateLocation"
               glib:type-name="ShumateLocation"
               glib:get-type="shumate_location_get_type"
               glib:type-struct="LocationInterface">
      <doc xml:space="preserve"
           filename="../shumate/shumate-location.c"
           line="20">An interface common to objects having latitude and longitude

By implementing #ShumateLocation the object declares that it has latitude
and longitude and can be used to specify location on the map.</doc>
      <source-position filename="../shumate/shumate-location.h" line="81"/>
      <virtual-method name="get_latitude" invoker="get_latitude">
        <doc xml:space="preserve"
             filename="../shumate/shumate-location.c"
             line="86">Gets the latitude coordinate in degrees.</doc>
        <source-position filename="../shumate/shumate-location.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-location.c"
               line="92">the latitude coordinate in degrees.</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-location.c"
                 line="88">a #ShumateLocation</doc>
            <type name="Location" c:type="ShumateLocation*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_longitude" invoker="get_longitude">
        <doc xml:space="preserve"
             filename="../shumate/shumate-location.c"
             line="101">Gets the longitude coordinate in degrees.</doc>
        <source-position filename="../shumate/shumate-location.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-location.c"
               line="107">the longitude coordinate in degrees.</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-location.c"
                 line="103">a #ShumateLocation</doc>
            <type name="Location" c:type="ShumateLocation*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_location" invoker="set_location">
        <doc xml:space="preserve"
             filename="../shumate/shumate-location.c"
             line="67">Sets the coordinates of the location</doc>
        <source-position filename="../shumate/shumate-location.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-location.c"
                 line="69">a #ShumateLocation</doc>
            <type name="Location" c:type="ShumateLocation*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-location.c"
                 line="70">the latitude in degrees</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-location.c"
                 line="71">the longitude in degrees</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_latitude"
              c:identifier="shumate_location_get_latitude"
              glib:get-property="latitude">
        <doc xml:space="preserve"
             filename="../shumate/shumate-location.c"
             line="86">Gets the latitude coordinate in degrees.</doc>
        <source-position filename="../shumate/shumate-location.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-location.c"
               line="92">the latitude coordinate in degrees.</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-location.c"
                 line="88">a #ShumateLocation</doc>
            <type name="Location" c:type="ShumateLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_longitude"
              c:identifier="shumate_location_get_longitude"
              glib:get-property="longitude">
        <doc xml:space="preserve"
             filename="../shumate/shumate-location.c"
             line="101">Gets the longitude coordinate in degrees.</doc>
        <source-position filename="../shumate/shumate-location.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-location.c"
               line="107">the longitude coordinate in degrees.</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-location.c"
                 line="103">a #ShumateLocation</doc>
            <type name="Location" c:type="ShumateLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_location" c:identifier="shumate_location_set_location">
        <doc xml:space="preserve"
             filename="../shumate/shumate-location.c"
             line="67">Sets the coordinates of the location</doc>
        <source-position filename="../shumate/shumate-location.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-location.c"
                 line="69">a #ShumateLocation</doc>
            <type name="Location" c:type="ShumateLocation*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-location.c"
                 line="70">the latitude in degrees</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-location.c"
                 line="71">the longitude in degrees</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <property name="latitude"
                writable="1"
                transfer-ownership="none"
                getter="get_latitude">
        <doc xml:space="preserve"
             filename="../shumate/shumate-location.c"
             line="51">The latitude coordonate in degrees</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="longitude"
                writable="1"
                transfer-ownership="none"
                getter="get_longitude">
        <doc xml:space="preserve"
             filename="../shumate/shumate-location.c"
             line="37">The longitude coordonate in degrees</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
    </interface>
    <record name="LocationInterface"
            c:type="ShumateLocationInterface"
            glib:is-gtype-struct-for="Location">
      <doc xml:space="preserve"
           filename="../shumate/shumate-location.h"
           line="62">An interface common to objects having latitude and longitude.</doc>
      <source-position filename="../shumate/shumate-location.h" line="81"/>
      <field name="g_iface" readable="0" private="1">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_latitude">
        <callback name="get_latitude">
          <source-position filename="../shumate/shumate-location.h" line="76"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-location.c"
                 line="92">the latitude coordinate in degrees.</doc>
            <type name="gdouble" c:type="double"/>
          </return-value>
          <parameters>
            <parameter name="location" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-location.c"
                   line="88">a #ShumateLocation</doc>
              <type name="Location" c:type="ShumateLocation*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_longitude">
        <callback name="get_longitude">
          <source-position filename="../shumate/shumate-location.h" line="77"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-location.c"
                 line="107">the longitude coordinate in degrees.</doc>
            <type name="gdouble" c:type="double"/>
          </return-value>
          <parameters>
            <parameter name="location" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-location.c"
                   line="103">a #ShumateLocation</doc>
              <type name="Location" c:type="ShumateLocation*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_location">
        <callback name="set_location">
          <source-position filename="../shumate/shumate-location.h" line="78"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="location" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-location.c"
                   line="69">a #ShumateLocation</doc>
              <type name="Location" c:type="ShumateLocation*"/>
            </parameter>
            <parameter name="latitude" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-location.c"
                   line="70">the latitude in degrees</doc>
              <type name="gdouble" c:type="double"/>
            </parameter>
            <parameter name="longitude" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-location.c"
                   line="71">the longitude in degrees</doc>
              <type name="gdouble" c:type="double"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <constant name="MAJOR_VERSION" value="1" c:type="SHUMATE_MAJOR_VERSION">
      <doc xml:space="preserve"
           filename="../shumate/shumate-version.h"
           line="34">The major version of libshumate (1, if %SHUMATE_VERSION is 1.2.3)</doc>
      <source-position filename="../shumate/shumate-version.h" line="39"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MAP_SOURCE_MFF_RELIEF"
              value="mff-relief"
              c:type="SHUMATE_MAP_SOURCE_MFF_RELIEF">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-source-registry.h"
           line="68">Maps for Free Relief</doc>
      <source-position filename="../shumate/shumate-map-source-registry.h"
                       line="73"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_CYCLE_MAP"
              value="osm-cyclemap"
              c:type="SHUMATE_MAP_SOURCE_OSM_CYCLE_MAP">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-source-registry.h"
           line="56">OpenStreetMap Cycle Map</doc>
      <source-position filename="../shumate/shumate-map-source-registry.h"
                       line="61"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_MAPNIK"
              value="osm-mapnik"
              c:type="SHUMATE_MAP_SOURCE_OSM_MAPNIK">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-source-registry.h"
           line="50">OpenStreetMap Mapnik</doc>
      <source-position filename="../shumate/shumate-map-source-registry.h"
                       line="55"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OSM_TRANSPORT_MAP"
              value="osm-transportmap"
              c:type="SHUMATE_MAP_SOURCE_OSM_TRANSPORT_MAP">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-source-registry.h"
           line="62">OpenStreetMap Transport Map</doc>
      <source-position filename="../shumate/shumate-map-source-registry.h"
                       line="67"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OWM_CLOUDS"
              value="owm-clouds"
              c:type="SHUMATE_MAP_SOURCE_OWM_CLOUDS">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-source-registry.h"
           line="74">OpenWeatherMap clouds layer</doc>
      <source-position filename="../shumate/shumate-map-source-registry.h"
                       line="79"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OWM_PRECIPITATION"
              value="owm-precipitation"
              c:type="SHUMATE_MAP_SOURCE_OWM_PRECIPITATION">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-source-registry.h"
           line="80">OpenWeatherMap precipitation</doc>
      <source-position filename="../shumate/shumate-map-source-registry.h"
                       line="85"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OWM_PRESSURE"
              value="owm-pressure"
              c:type="SHUMATE_MAP_SOURCE_OWM_PRESSURE">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-source-registry.h"
           line="86">OpenWeatherMap sea level pressure</doc>
      <source-position filename="../shumate/shumate-map-source-registry.h"
                       line="91"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OWM_TEMPERATURE"
              value="owm-temperature"
              c:type="SHUMATE_MAP_SOURCE_OWM_TEMPERATURE">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-source-registry.h"
           line="98">OpenWeatherMap temperature</doc>
      <source-position filename="../shumate/shumate-map-source-registry.h"
                       line="103"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAP_SOURCE_OWM_WIND"
              value="owm-wind"
              c:type="SHUMATE_MAP_SOURCE_OWM_WIND">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-source-registry.h"
           line="92">OpenWeatherMap wind</doc>
      <source-position filename="../shumate/shumate-map-source-registry.h"
                       line="97"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MAX_LATITUDE"
              value="85.0511287798"
              c:type="SHUMATE_MAX_LATITUDE">
      <doc xml:space="preserve"
           filename="../shumate/shumate-location.h"
           line="38">The maximal possible latitude value.</doc>
      <source-position filename="../shumate/shumate-location.h" line="43"/>
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <constant name="MAX_LONGITUDE"
              value="180.0"
              c:type="SHUMATE_MAX_LONGITUDE">
      <doc xml:space="preserve"
           filename="../shumate/shumate-location.h"
           line="52">The maximal possible longitude value.</doc>
      <source-position filename="../shumate/shumate-location.h" line="57"/>
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <constant name="MICRO_VERSION" value="1" c:type="SHUMATE_MICRO_VERSION">
      <doc xml:space="preserve"
           filename="../shumate/shumate-version.h"
           line="48">The micro version of libshumate (3, if %SHUMATE_VERSION is 1.2.3)</doc>
      <source-position filename="../shumate/shumate-version.h" line="53"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="0" c:type="SHUMATE_MINOR_VERSION">
      <doc xml:space="preserve"
           filename="../shumate/shumate-version.h"
           line="41">The minor version of libshumate (2, if %SHUMATE_VERSION is 1.2.3)</doc>
      <source-position filename="../shumate/shumate-version.h" line="46"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MIN_LATITUDE"
              value="-85.0511287798"
              c:type="SHUMATE_MIN_LATITUDE">
      <doc xml:space="preserve"
           filename="../shumate/shumate-location.h"
           line="31">The minimal possible latitude value.</doc>
      <source-position filename="../shumate/shumate-location.h" line="36"/>
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <constant name="MIN_LONGITUDE"
              value="-180.0"
              c:type="SHUMATE_MIN_LONGITUDE">
      <doc xml:space="preserve"
           filename="../shumate/shumate-location.h"
           line="45">The minimal possible longitude value.</doc>
      <source-position filename="../shumate/shumate-location.h" line="50"/>
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <class name="Map"
           c:symbol-prefix="map"
           c:type="ShumateMap"
           parent="Gtk.Widget"
           glib:type-name="ShumateMap"
           glib:get-type="shumate_map_get_type"
           glib:type-struct="MapClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map.c"
           line="24">The Map widget is a [class@Gtk.Widget] that show and allows interaction with
the user.

This is the base widget and doesn't have advanced features. You can check the
[class@Shumate.SimpleMap] for a ready-to-use widget.

By default, a [class@Shumate.Viewport] is created and can be accessed with
[method@Shumate.Map.get_viewport].

Unless created with [ctor@Shumate.Map.new_simple], the widget doesn't hold any
layer and won't show anything. A [class@Shumate.Layer] can be added or removed
using the [method@Shumate.Map.add_layer] or [method@Shumate.Map.remove_layer]
methods.</doc>
      <source-position filename="../shumate/shumate-map.h" line="39"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <constructor name="new" c:identifier="shumate_map_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="875">Creates an instance of #ShumateMap.</doc>
        <source-position filename="../shumate/shumate-map.h" line="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map.c"
               line="880">a new #ShumateMap ready to be used as a #GtkWidget.</doc>
          <type name="Map" c:type="ShumateMap*"/>
        </return-value>
      </constructor>
      <constructor name="new_simple" c:identifier="shumate_map_new_simple">
        <source-position filename="../shumate/shumate-map.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="Map" c:type="ShumateMap*"/>
        </return-value>
      </constructor>
      <method name="add_layer" c:identifier="shumate_map_add_layer">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1117">Adds a new layer to the view</doc>
        <source-position filename="../shumate/shumate-map.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1119">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1120">a #ShumateLayer</doc>
            <type name="Layer" c:type="ShumateLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="center_on" c:identifier="shumate_map_center_on">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="924">Centers the map on these coordinates.</doc>
        <source-position filename="../shumate/shumate-map.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="926">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="927">the longitude to center the map at</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="928">the longitude to center the map at</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_animate_zoom"
              c:identifier="shumate_map_get_animate_zoom"
              glib:get-property="animate-zoom">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1283">Checks whether the view animates zoom level changes.</doc>
        <source-position filename="../shumate/shumate-map.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map.c"
               line="1289">TRUE if the view animates zooms, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1285">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_go_to_duration"
              c:identifier="shumate_map_get_go_to_duration"
              glib:get-property="go-to-duration">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1080">Get the 'go-to-duration' property.</doc>
        <source-position filename="../shumate/shumate-map.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map.c"
               line="1086">the animation duration when calling [method@Map.go_to],
  in milliseconds.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1082">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_state"
              c:identifier="shumate_map_get_state"
              glib:get-property="state">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1299">Gets the view's state.</doc>
        <source-position filename="../shumate/shumate-map.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map.c"
               line="1305">the state.</doc>
          <type name="State" c:type="ShumateState"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1301">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_viewport"
              c:identifier="shumate_map_get_viewport"
              glib:get-property="viewport">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="908">Get the #ShumateViewport used by this view.</doc>
        <source-position filename="../shumate/shumate-map.h" line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map.c"
               line="914">the #ShumateViewport</doc>
          <type name="Viewport" c:type="ShumateViewport*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="910">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_zoom_on_double_click"
              c:identifier="shumate_map_get_zoom_on_double_click"
              glib:get-property="zoom-on-double-click">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1266">Checks whether the view zooms on double click.</doc>
        <source-position filename="../shumate/shumate-map.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map.c"
               line="1272">TRUE if the view zooms on double click, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1268">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="go_to" c:identifier="shumate_map_go_to">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="964">Move from the current position to these coordinates. All tiles in the
intermediate view WILL be loaded!</doc>
        <source-position filename="../shumate/shumate-map.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="966">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="967">the longitude to center the map at</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="968">the longitude to center the map at</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="go_to_full" c:identifier="shumate_map_go_to_full">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="990">Move from the current position to these coordinates and zoom to the given
zoom level. All tiles in the intermediate view WILL be loaded!</doc>
        <source-position filename="../shumate/shumate-map.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="992">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="993">the longitude to center the map at</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="994">the longitude to center the map at</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="995">the zoom level to end at</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="go_to_full_with_duration"
              c:identifier="shumate_map_go_to_full_with_duration">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1020">Move from the current position to these coordinates and zoom to the given
zoom level. The given duration is used instead of the map's default [property@Map:go-to-duration].
All tiles in the intermediate view WILL be loaded!</doc>
        <source-position filename="../shumate/shumate-map.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1022">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1023">the longitude to center the map at</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1024">the longitude to center the map at</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1025">the zoom level to end at</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="duration_ms" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1026">animation duration in milliseconds</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_layer_above"
              c:identifier="shumate_map_insert_layer_above">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1158">Adds @layer to @self above @next_sibling or, if @next_sibling is %NULL, at
the bottom of the layer list.</doc>
        <source-position filename="../shumate/shumate-map.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1160">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1161">a #ShumateLayer</doc>
            <type name="Layer" c:type="ShumateLayer*"/>
          </parameter>
          <parameter name="next_sibling"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1162">a #ShumateLayer that is a child of @self, or %NULL</doc>
            <type name="Layer" c:type="ShumateLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_layer_behind"
              c:identifier="shumate_map_insert_layer_behind">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1135">Adds @layer to @self behind @next_sibling or, if @next_sibling is %NULL, at
the top of the layer list.</doc>
        <source-position filename="../shumate/shumate-map.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1137">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1138">a #ShumateLayer</doc>
            <type name="Layer" c:type="ShumateLayer*"/>
          </parameter>
          <parameter name="next_sibling"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1139">a #ShumateLayer that is a child of @self, or %NULL</doc>
            <type name="Layer" c:type="ShumateLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_layer" c:identifier="shumate_map_remove_layer">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1181">Removes the given layer from the view</doc>
        <source-position filename="../shumate/shumate-map.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1183">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1184">a #ShumateLayer</doc>
            <type name="Layer" c:type="ShumateLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_animate_zoom"
              c:identifier="shumate_map_set_animate_zoom"
              glib:set-property="animate-zoom">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1249">Should the view animate zoom level changes.</doc>
        <source-position filename="../shumate/shumate-map.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1251">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1252">a #gboolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_go_to_duration"
              c:identifier="shumate_map_set_go_to_duration"
              glib:set-property="go-to-duration">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1097">Set the duration of the transition of [method@Map.go_to].</doc>
        <source-position filename="../shumate/shumate-map.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1099">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
          <parameter name="duration" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1100">the animation duration, in milliseconds</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_map_source" c:identifier="shumate_map_set_map_source">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1204">Changes the currently used map source. #g_object_unref() will be called on
the previous one.

As a side effect, changing the primary map source will also clear all
secondary map sources.</doc>
        <source-position filename="../shumate/shumate-map.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1206">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
          <parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1207">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_zoom_on_double_click"
              c:identifier="shumate_map_set_zoom_on_double_click"
              glib:set-property="zoom-on-double-click">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1231">Should the view zoom in and recenter when the user double click on the map.</doc>
        <source-position filename="../shumate/shumate-map.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1233">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1234">a #gboolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop_go_to" c:identifier="shumate_map_stop_go_to">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="942">Stop the go to animation.  The view will stay where it was when the
animation was stopped.</doc>
        <source-position filename="../shumate/shumate-map.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="944">a #ShumateMap</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="zoom_in" c:identifier="shumate_map_zoom_in">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1344">Zooms the map in. If [property@Map:animate-zoom] is `TRUE`, the change will be animated.</doc>
        <source-position filename="../shumate/shumate-map.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1346">a [class@Map]</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="zoom_out" c:identifier="shumate_map_zoom_out">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="1357">Zooms the map out. If [property@Map:animate-zoom] is `TRUE`, the change will be animated.</doc>
        <source-position filename="../shumate/shumate-map.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map.c"
                 line="1359">a [class@Map]</doc>
            <type name="Map" c:type="ShumateMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="animate-zoom"
                writable="1"
                transfer-ownership="none"
                setter="set_animate_zoom"
                getter="get_animate_zoom">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="730">Animate zoom change when zooming in/out.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="go-to-duration"
                writable="1"
                transfer-ownership="none"
                setter="set_go_to_duration"
                getter="get_go_to_duration">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="756">The duration of an animation when going to a location, in milliseconds.
A value of 0 means that the duration is calculated automatically for you.

Please note that animation of #shumate_map_ensure_visible also
involves a 'go-to' animation.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="state" transfer-ownership="none" getter="get_state">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="742">The view's global state. Useful to inform using if the view is busy loading
tiles or not.</doc>
        <type name="State"/>
      </property>
      <property name="viewport"
                transfer-ownership="none"
                getter="get_viewport">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="773">The viewport, which contains information about the center, rotation, zoom,
etc. of the map.</doc>
        <type name="Viewport"/>
      </property>
      <property name="zoom-on-double-click"
                writable="1"
                transfer-ownership="none"
                setter="set_zoom_on_double_click"
                getter="get_zoom_on_double_click">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="718">Should the view zoom in and recenter when the user double click on the map.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <glib:signal name="animation-completed" when="last" detailed="1">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map.c"
             line="790">The #ShumateMap::animation-completed signal is emitted when any animation in the view
ends.  This is a detailed signal.  For example, if you want to be signaled
only for go-to animation, you should connect to
"animation-completed::go-to". And for zoom, connect to "animation-completed::zoom".</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="MapClass"
            c:type="ShumateMapClass"
            glib:is-gtype-struct-for="Map">
      <source-position filename="../shumate/shumate-map.h" line="39"/>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
    </record>
    <class name="MapLayer"
           c:symbol-prefix="map_layer"
           c:type="ShumateMapLayer"
           parent="Layer"
           glib:type-name="ShumateMapLayer"
           glib:get-type="shumate_map_layer_get_type"
           glib:type-struct="MapLayerClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-layer.c"
           line="28">A [class@Shumate.Layer] implementation that fetches tiles from a [class@Shumate.MapSource]
and draws them as a grid.</doc>
      <source-position filename="../shumate/shumate-map-layer.h" line="33"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <constructor name="new" c:identifier="shumate_map_layer_new">
        <source-position filename="../shumate/shumate-map-layer.h" line="35"/>
        <return-value transfer-ownership="none">
          <type name="MapLayer" c:type="ShumateMapLayer*"/>
        </return-value>
        <parameters>
          <parameter name="map_source" transfer-ownership="none">
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </parameter>
          <parameter name="viewport" transfer-ownership="none">
            <type name="Viewport" c:type="ShumateViewport*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="map-source"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="MapSource"/>
      </property>
    </class>
    <record name="MapLayerClass"
            c:type="ShumateMapLayerClass"
            glib:is-gtype-struct-for="MapLayer">
      <source-position filename="../shumate/shumate-map-layer.h" line="33"/>
      <field name="parent_class">
        <type name="LayerClass" c:type="ShumateLayerClass"/>
      </field>
    </record>
    <enumeration name="MapProjection"
                 glib:type-name="ShumateMapProjection"
                 glib:get-type="shumate_map_projection_get_type"
                 c:type="ShumateMapProjection">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-source.h"
           line="34">Projections supported by the library.</doc>
      <member name="mercator"
              value="0"
              c:identifier="SHUMATE_MAP_PROJECTION_MERCATOR"
              glib:nick="mercator"
              glib:name="SHUMATE_MAP_PROJECTION_MERCATOR">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.h"
             line="36">Currently the only supported projection</doc>
      </member>
    </enumeration>
    <class name="MapSource"
           c:symbol-prefix="map_source"
           c:type="ShumateMapSource"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="ShumateMapSource"
           glib:get-type="shumate_map_source_get_type"
           glib:type-struct="MapSourceClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-source.c"
           line="20">The base class for all map sources. Map sources fill [class@Tile] objects
with images from various sources: a web API, for example, or a test pattern
generated on demand.

The most common map source is [class@RasterRenderer], which fetches tiles
using a [class@TileDownloader].</doc>
      <source-position filename="../shumate/shumate-map-source.h" line="60"/>
      <virtual-method name="fill_tile_async" invoker="fill_tile_async">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="663">Asynchronous version of shumate_map_source_fill_tile().</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="665">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="666">a #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="667">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="668">a #GAsyncReadyCallback to execute upon completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="3">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="669">closure data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="fill_tile_finish"
                      invoker="fill_tile_finish"
                      throws="1">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="687">Gets the success value of a completed shumate_map_source_fill_tile_async()
operation.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="696">%TRUE if the tile was filled with valid data, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="689">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="690">a #GAsyncResult provided to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="fill_tile_async"
              c:identifier="shumate_map_source_fill_tile_async">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="663">Asynchronous version of shumate_map_source_fill_tile().</doc>
        <source-position filename="../shumate/shumate-map-source.h"
                         line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="665">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="tile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="666">a #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="667">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="668">a #GAsyncReadyCallback to execute upon completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="669">closure data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="fill_tile_finish"
              c:identifier="shumate_map_source_fill_tile_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="687">Gets the success value of a completed shumate_map_source_fill_tile_async()
operation.</doc>
        <source-position filename="../shumate/shumate-map-source.h"
                         line="115"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="696">%TRUE if the tile was filled with valid data, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="689">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="690">a #GAsyncResult provided to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_column_count"
              c:identifier="shumate_map_source_get_column_count">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="829">Gets the number of tiles in a column at this zoom level for this map
source.</doc>
        <source-position filename="../shumate/shumate-map-source.h"
                         line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="837">the number of tiles in a column</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="831">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="832">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="shumate_map_source_get_id"
              glib:get-property="id">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="306">Gets map source's id.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="312">the map source's id.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="308">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_latitude"
              c:identifier="shumate_map_source_get_latitude">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="785">Gets the latitude corresponding to this y position in the map source's
projection.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="794">the latitude</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="787">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="788">the zoom level</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="789">a y position</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_license"
              c:identifier="shumate_map_source_get_license"
              glib:get-property="license">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="390">Gets map source's license.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="396">the map source's license.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="392">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_license_uri"
              c:identifier="shumate_map_source_get_license_uri"
              glib:get-property="license-uri">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="432">Gets map source's license URI.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="438">the map source's license URI.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="434">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_longitude"
              c:identifier="shumate_map_source_get_longitude">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="759">Gets the longitude corresponding to this x position in the map source's
projection.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="768">the longitude</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="761">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="762">the zoom level</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="763">a x position</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_max_zoom_level"
              c:identifier="shumate_map_source_get_max_zoom_level"
              glib:get-property="max-zoom-level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="515">Gets map source's maximum zoom level.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="521">the maximum zoom level this map source supports</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="517">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_meters_per_pixel"
              c:identifier="shumate_map_source_get_meters_per_pixel">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="850">Gets meters per pixel at the position on the map using this map source's projection.</doc>
        <source-position filename="../shumate/shumate-map-source.h"
                         line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="859">the meters per pixel</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="852">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="853">the zoom level</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="854">a latitude</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="855">a longitude</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_min_zoom_level"
              c:identifier="shumate_map_source_get_min_zoom_level"
              glib:get-property="min-zoom-level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="474">Gets map source's minimum zoom level.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="480">the miminum zoom level this map source supports</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="476">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="shumate_map_source_get_name"
              glib:get-property="name">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="348">Gets map source's name.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="354">the map source's name.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="350">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_projection"
              c:identifier="shumate_map_source_get_projection"
              glib:get-property="projection">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="622">Gets map source's projection.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="628">the map source's projection.</doc>
          <type name="MapProjection" c:type="ShumateMapProjection"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="624">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_row_count"
              c:identifier="shumate_map_source_get_row_count">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="811">Gets the number of tiles in a row at this zoom level for this map source.</doc>
        <source-position filename="../shumate/shumate-map-source.h"
                         line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="818">the number of tiles in a row</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="813">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="814">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tile_size"
              c:identifier="shumate_map_source_get_tile_size"
              glib:get-property="tile-size">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="556">Gets map source's tile size.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="562">the tile's size (width and height) in pixels for this map source</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="558">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tile_size_at_zoom"
              c:identifier="shumate_map_source_get_tile_size_at_zoom">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="574">Gets the apparent size of the map tiles at the given fractional zoom level.

As the map is zoomed in, a tile gets bigger and bigger until, at the next
integer zoom level, it "splits" into four tiles at the next zoom level.
Thus, the size increase follows an exponential curve, base 2.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="585">the tile's size (width and height) in pixels for this map source
at this zoom level</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="576">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="577">a zoom level</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_x" c:identifier="shumate_map_source_get_x">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="709">Gets the x position on the map using this map source's projection.
(0, 0) is located at the top left.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="718">the x position</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="711">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="712">the zoom level</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="713">a longitude</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_y" c:identifier="shumate_map_source_get_y">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="733">Gets the y position on the map using this map source's projection.
(0, 0) is located at the top left.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source.c"
               line="742">the y position</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="735">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="736">the zoom level</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="737">a latitude</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id"
              c:identifier="shumate_map_source_set_id"
              glib:set-property="id">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="324">Sets the map source's id.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="326">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="327">an id</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_license"
              c:identifier="shumate_map_source_set_license"
              glib:set-property="license">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="408">Sets the map source's license.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="410">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="411">the licence</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_license_uri"
              c:identifier="shumate_map_source_set_license_uri"
              glib:set-property="license-uri">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="450">Sets the map source's license URI.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="452">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="license_uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="453">the licence URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_zoom_level"
              c:identifier="shumate_map_source_set_max_zoom_level"
              glib:set-property="max-zoom-level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="533">Sets the map source's maximum zoom level.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="535">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="536">the maximum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_min_zoom_level"
              c:identifier="shumate_map_source_set_min_zoom_level"
              glib:set-property="min-zoom-level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="492">Sets the map source's minimal zoom level.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="494">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="495">the minimal zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="shumate_map_source_set_name"
              glib:set-property="name">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="366">Sets the map source's name.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="368">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="369">a name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_projection"
              c:identifier="shumate_map_source_set_projection"
              glib:set-property="projection">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="640">Sets the map source's projection.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="642">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="projection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="643">a #ShumateMapProjection</doc>
            <type name="MapProjection" c:type="ShumateMapProjection"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tile_size"
              c:identifier="shumate_map_source_set_tile_size"
              glib:set-property="tile-size">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="599">Sets the map source's tile size.</doc>
        <source-position filename="../shumate/shumate-map-source.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="601">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </instance-parameter>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="602">the tile size</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="id"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_id"
                getter="get_id">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="192">The id of the map source</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="license"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_license"
                getter="get_license">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="216">The usage license of the map source</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="license-uri"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_license_uri"
                getter="get_license_uri">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="228">The usage license's uri for more information</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="max-zoom-level"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_max_zoom_level"
                getter="get_max_zoom_level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="252">The maximum zoom level</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="min-zoom-level"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_min_zoom_level"
                getter="get_min_zoom_level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="240">The minimum zoom level</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="name"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_name"
                getter="get_name">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="204">The name of the map source</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="projection"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_projection"
                getter="get_projection">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="276">The map projection of the map source</doc>
        <type name="MapProjection"/>
      </property>
      <property name="tile-size"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_tile_size"
                getter="get_tile_size">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source.c"
             line="264">The tile size of the map source</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="MapSourceClass"
            c:type="ShumateMapSourceClass"
            glib:is-gtype-struct-for="MapSource">
      <source-position filename="../shumate/shumate-map-source.h" line="60"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="fill_tile_async">
        <callback name="fill_tile_async">
          <source-position filename="../shumate/shumate-map-source.h"
                           line="49"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-map-source.c"
                   line="665">a #ShumateMapSource</doc>
              <type name="MapSource" c:type="ShumateMapSource*"/>
            </parameter>
            <parameter name="tile" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-map-source.c"
                   line="666">a #ShumateTile</doc>
              <type name="Tile" c:type="ShumateTile*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-map-source.c"
                   line="667">a #GCancellable</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="4">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-map-source.c"
                   line="668">a #GAsyncReadyCallback to execute upon completion</doc>
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="4">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-map-source.c"
                   line="669">closure data for @callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="fill_tile_finish">
        <callback name="fill_tile_finish" throws="1">
          <source-position filename="../shumate/shumate-map-source.h"
                           line="54"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source.c"
                 line="696">%TRUE if the tile was filled with valid data, otherwise %FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-map-source.c"
                   line="689">a #ShumateMapSource</doc>
              <type name="MapSource" c:type="ShumateMapSource*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../shumate/shumate-map-source.c"
                   line="690">a #GAsyncResult provided to callback</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="MapSourceRegistry"
           c:symbol-prefix="map_source_registry"
           c:type="ShumateMapSourceRegistry"
           parent="GObject.Object"
           glib:type-name="ShumateMapSourceRegistry"
           glib:get-type="shumate_map_source_registry_get_type"
           glib:type-struct="MapSourceRegistryClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-map-source-registry.c"
           line="23">This object allows you to hold [class@MapSource] instances, you can access a
default set of sources with [method@MapSourceRegistry.populate_defaults].

It conveniently implements [iface@Gio.ListModel] to easily integrate with it.</doc>
      <source-position filename="../shumate/shumate-map-source-registry.h"
                       line="38"/>
      <implements name="Gio.ListModel"/>
      <constructor name="new" c:identifier="shumate_map_source_registry_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source-registry.c"
             line="116">Create a new #ShumateMapSourceRegistry.</doc>
        <source-position filename="../shumate/shumate-map-source-registry.h"
                         line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source-registry.c"
               line="121">a newly created #ShumateMapSourceRegistry</doc>
          <type name="MapSourceRegistry" c:type="ShumateMapSourceRegistry*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_defaults"
                   c:identifier="shumate_map_source_registry_new_with_defaults">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source-registry.c"
             line="129">Create a new #ShumateMapSourceRegistry with defaults map sources.
This is identical to calling [method@MapSourceRegistry.populate_defaults]
after shumate_map_source_registry_new().</doc>
        <source-position filename="../shumate/shumate-map-source-registry.h"
                         line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source-registry.c"
               line="136">a newly created #ShumateMapSourceRegistry</doc>
          <type name="MapSourceRegistry" c:type="ShumateMapSourceRegistry*"/>
        </return-value>
      </constructor>
      <method name="add" c:identifier="shumate_map_source_registry_add">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source-registry.c"
             line="350">Adds the #ShumateMapSource to the #ShumateMapSourceRegistry</doc>
        <source-position filename="../shumate/shumate-map-source-registry.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source-registry.c"
                 line="352">a #ShumateMapSourceRegistry</doc>
            <type name="MapSourceRegistry" c:type="ShumateMapSourceRegistry*"/>
          </instance-parameter>
          <parameter name="map_source" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source-registry.c"
                 line="353">a #ShumateMapSource</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_by_id"
              c:identifier="shumate_map_source_registry_get_by_id">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source-registry.c"
             line="321">Find the #ShumateMapSource with the corresponding id</doc>
        <source-position filename="../shumate/shumate-map-source-registry.h"
                         line="43"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../shumate/shumate-map-source-registry.c"
               line="328">the #ShumateMapSource or %NULL if no
map source has been found</doc>
          <type name="MapSource" c:type="ShumateMapSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source-registry.c"
                 line="323">a #ShumateMapSourceRegistry</doc>
            <type name="MapSourceRegistry" c:type="ShumateMapSourceRegistry*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source-registry.c"
                 line="324">the id of the #ShumateMapSource</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="populate_defaults"
              c:identifier="shumate_map_source_registry_populate_defaults">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source-registry.c"
             line="148">Populates the #ShumateMapSourceRegistry with a default set of sources.</doc>
        <source-position filename="../shumate/shumate-map-source-registry.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source-registry.c"
                 line="150">a #ShumateMapSourceRegistry</doc>
            <type name="MapSourceRegistry" c:type="ShumateMapSourceRegistry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="shumate_map_source_registry_remove">
        <doc xml:space="preserve"
             filename="../shumate/shumate-map-source-registry.c"
             line="376">Removes the corresponding #ShumateMapSource from the registry.
If the source doesn't exist in the registry, this function does nothing.</doc>
        <source-position filename="../shumate/shumate-map-source-registry.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source-registry.c"
                 line="378">a #ShumateMapSourceRegistry</doc>
            <type name="MapSourceRegistry" c:type="ShumateMapSourceRegistry*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-map-source-registry.c"
                 line="379">a #ShumateMapSource id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="MapSourceRegistryClass"
            c:type="ShumateMapSourceRegistryClass"
            glib:is-gtype-struct-for="MapSourceRegistry">
      <source-position filename="../shumate/shumate-map-source-registry.h"
                       line="38"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Marker"
           c:symbol-prefix="marker"
           c:type="ShumateMarker"
           parent="Gtk.Widget"
           glib:type-name="ShumateMarker"
           glib:get-type="shumate_marker_get_type"
           glib:type-struct="MarkerClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-marker.c"
           line="21">Markers represent points of interest on a map. Markers need to be
placed on a layer (a [class@MarkerLayer]). Layers have to be added to a
[class@Map] for the markers to show on the map.

A marker is nothing more than a regular [class@Gtk.Widget]. You can draw on
it what ever you want. Set the marker's position on the map using
[method@Location.set_location].

This is a base class of all markers. A typical usage of a marker is for
instance to add a [class@Gtk.Image] with a pin image and add the
[class@Gtk.GestureClick] controller to listen to click events and show
a [class@Gtk.Popover] with the description of the marker.</doc>
      <source-position filename="../shumate/shumate-marker.h" line="45"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <implements name="Location"/>
      <constructor name="new" c:identifier="shumate_marker_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker.c"
             line="301">Creates an instance of #ShumateMarker.</doc>
        <source-position filename="../shumate/shumate-marker.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-marker.c"
               line="306">a new #ShumateMarker.</doc>
          <type name="Marker" c:type="ShumateMarker*"/>
        </return-value>
      </constructor>
      <method name="animate_in" c:identifier="shumate_marker_animate_in">
        <source-position filename="../shumate/shumate-marker.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <type name="Marker" c:type="ShumateMarker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="animate_in_with_delay"
              c:identifier="shumate_marker_animate_in_with_delay">
        <source-position filename="../shumate/shumate-marker.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <type name="Marker" c:type="ShumateMarker*"/>
          </instance-parameter>
          <parameter name="delay" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="animate_out" c:identifier="shumate_marker_animate_out">
        <source-position filename="../shumate/shumate-marker.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <type name="Marker" c:type="ShumateMarker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="animate_out_with_delay"
              c:identifier="shumate_marker_animate_out_with_delay">
        <source-position filename="../shumate/shumate-marker.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <type name="Marker" c:type="ShumateMarker*"/>
          </instance-parameter>
          <parameter name="delay" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_child"
              c:identifier="shumate_marker_get_child"
              glib:get-property="child">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker.c"
             line="372">Retrieves the current child of @marker.</doc>
        <source-position filename="../shumate/shumate-marker.h" line="66"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../shumate/shumate-marker.c"
               line="378">a #GtkWidget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker.c"
                 line="374">a #ShumateMarker</doc>
            <type name="Marker" c:type="ShumateMarker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_draggable" c:identifier="shumate_marker_get_draggable">
        <source-position filename="../shumate/shumate-marker.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <type name="Marker" c:type="ShumateMarker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selectable"
              c:identifier="shumate_marker_get_selectable"
              glib:get-property="selectable">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker.c"
             line="354">Checks whether the marker is selectable.</doc>
        <source-position filename="../shumate/shumate-marker.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-marker.c"
               line="360">the selectable or not state of the marker.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker.c"
                 line="356">a #ShumateMarker</doc>
            <type name="Marker" c:type="ShumateMarker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_selected" c:identifier="shumate_marker_is_selected">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker.c"
             line="314">Checks whether the marker is selected.</doc>
        <source-position filename="../shumate/shumate-marker.h" line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-marker.c"
               line="320">%TRUE if the marker is selected, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker.c"
                 line="316">a #ShumateMarker</doc>
            <type name="Marker" c:type="ShumateMarker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_child"
              c:identifier="shumate_marker_set_child"
              glib:set-property="child">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker.c"
             line="390">Sets the child widget of @marker.</doc>
        <source-position filename="../shumate/shumate-marker.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker.c"
                 line="392">a #ShumateMarker</doc>
            <type name="Marker" c:type="ShumateMarker*"/>
          </instance-parameter>
          <parameter name="child"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker.c"
                 line="393">a #GtkWidget</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_draggable" c:identifier="shumate_marker_set_draggable">
        <source-position filename="../shumate/shumate-marker.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <type name="Marker" c:type="ShumateMarker*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_selectable"
              c:identifier="shumate_marker_set_selectable"
              glib:set-property="selectable">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker.c"
             line="333">Sets the marker as selectable or not.</doc>
        <source-position filename="../shumate/shumate-marker.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker.c"
                 line="335">a #ShumateMarker</doc>
            <type name="Marker" c:type="ShumateMarker*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker.c"
                 line="336">the selectable state</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="child"
                writable="1"
                transfer-ownership="none"
                setter="set_child"
                getter="get_child">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker.c"
             line="237">The child widget of the marker</doc>
        <type name="Gtk.Widget"/>
      </property>
      <property name="selectable"
                writable="1"
                transfer-ownership="none"
                setter="set_selectable"
                getter="get_selectable">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker.c"
             line="249">The selectable state of the marker</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Widget" c:type="GtkWidget"/>
      </field>
    </class>
    <record name="MarkerClass"
            c:type="ShumateMarkerClass"
            glib:is-gtype-struct-for="Marker">
      <source-position filename="../shumate/shumate-marker.h" line="45"/>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="MarkerLayer"
           c:symbol-prefix="marker_layer"
           c:type="ShumateMarkerLayer"
           parent="Layer"
           glib:type-name="ShumateMarkerLayer"
           glib:get-type="shumate_marker_layer_get_type"
           glib:type-struct="MarkerLayerClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-marker-layer.c"
           line="21">Displays markers on the map. It is responsible for positioning markers
correctly, marker selections and group marker operations.</doc>
      <source-position filename="../shumate/shumate-marker-layer.h" line="38"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <constructor name="new" c:identifier="shumate_marker_layer_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="371">Creates a new instance of #ShumateMarkerLayer.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-marker-layer.c"
               line="377">a new #ShumateMarkerLayer ready to be used as a container for the markers.</doc>
          <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
        </return-value>
        <parameters>
          <parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="373">the @ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_full"
                   c:identifier="shumate_marker_layer_new_full">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="388">Creates a new instance of #ShumateMarkerLayer with the specified selection mode.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-marker-layer.c"
               line="395">a new #ShumateMarkerLayer ready to be used as a container for the markers.</doc>
          <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
        </return-value>
        <parameters>
          <parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="390">the @ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="391">Selection mode</doc>
            <type name="Gtk.SelectionMode" c:type="GtkSelectionMode"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_marker" c:identifier="shumate_marker_layer_add_marker">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="441">Adds the marker to the layer.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="443">a #ShumateMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
          </instance-parameter>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="444">a #ShumateMarker</doc>
            <type name="Marker" c:type="ShumateMarker*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_markers"
              c:identifier="shumate_marker_layer_get_markers">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="496">Gets a copy of the list of all markers inserted into the layer. You should
free the list but not its contents.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="49"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../shumate/shumate-marker-layer.c"
               line="503">the list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Marker"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="498">a #ShumateMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selected"
              c:identifier="shumate_marker_layer_get_selected">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="525">Gets a list of selected markers in the layer.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="50"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../shumate/shumate-marker-layer.c"
               line="531">the list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Marker"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="527">a #ShumateMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selection_mode"
              c:identifier="shumate_marker_layer_get_selection_mode"
              glib:get-property="selection-mode">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="718">Gets the selection mode of the layer.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-marker-layer.c"
               line="724">the selection mode of the layer.</doc>
          <type name="Gtk.SelectionMode" c:type="GtkSelectionMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_all" c:identifier="shumate_marker_layer_remove_all">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="470">Removes all markers from the layer.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="472">a #ShumateMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_marker"
              c:identifier="shumate_marker_layer_remove_marker">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="619">Removes the marker from the layer.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
          </instance-parameter>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="622">a #ShumateMarker</doc>
            <type name="Marker" c:type="ShumateMarker*"/>
          </parameter>
        </parameters>
      </method>
      <method name="select_all_markers"
              c:identifier="shumate_marker_layer_select_all_markers">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="669">Selects all selectable markers in the layer.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="671">a #ShumateMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="select_marker"
              c:identifier="shumate_marker_layer_select_marker">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="541">Selects a marker in this layer.

If #ShumateMarkerLayer:selection-mode is %GTK_SELECTION_SINGLE or
%GTK_SELECTION_BROWSE, all other markers will be unselected. If the mode is
%GTK_SELECTION_NONE or @marker is not selectable, nothing will happen.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-marker-layer.c"
               line="552">%TRUE if the marker is now selected, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="543">a #ShumateMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
          </instance-parameter>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="544">a #ShumateMarker that is a child of @self</doc>
            <type name="Marker" c:type="ShumateMarker*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_selection_mode"
              c:identifier="shumate_marker_layer_set_selection_mode"
              glib:set-property="selection-mode">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="690">Sets the selection mode of the layer.

NOTE: changing selection mode to %GTK_SELECTION_NONE, %GTK_SELECTION_SINGLE
or %GTK_SELECTION_BROWSE will clear all previously selected markers.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="693">a #GtkSelectionMode value</doc>
            <type name="Gtk.SelectionMode" c:type="GtkSelectionMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="unselect_all_markers"
              c:identifier="shumate_marker_layer_unselect_all_markers">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="648">Unselects all markers in the layer.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="650">a #ShumateMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unselect_marker"
              c:identifier="shumate_marker_layer_unselect_marker">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="590">Unselects a marker in this layer.

This works even if #ShumateMarkerLayer:selection-mode is
%GTK_SELECTION_BROWSE. Browse mode only prevents user interaction, not the
program, from unselecting a marker.</doc>
        <source-position filename="../shumate/shumate-marker-layer.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="592">a #ShumateMarkerLayer</doc>
            <type name="MarkerLayer" c:type="ShumateMarkerLayer*"/>
          </instance-parameter>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="593">a #ShumateMarker that is a child of @self</doc>
            <type name="Marker" c:type="ShumateMarker*"/>
          </parameter>
        </parameters>
      </method>
      <property name="selection-mode"
                writable="1"
                transfer-ownership="none"
                setter="set_selection_mode"
                getter="get_selection_mode">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="312">Determines the type of selection that will be performed.</doc>
        <type name="Gtk.SelectionMode"/>
      </property>
      <glib:signal name="marker-selected" when="last">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="327">Emitted when a marker in the layer is selected.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="330">The marker that was selected</doc>
            <type name="Marker"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="marker-unselected" when="last">
        <doc xml:space="preserve"
             filename="../shumate/shumate-marker-layer.c"
             line="342">Emitted when a marker in the layer is unselected.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-marker-layer.c"
                 line="345">The marker that was unselected</doc>
            <type name="Marker"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="MarkerLayerClass"
            c:type="ShumateMarkerLayerClass"
            glib:is-gtype-struct-for="MarkerLayer">
      <source-position filename="../shumate/shumate-marker-layer.h" line="38"/>
      <field name="parent_class">
        <type name="LayerClass" c:type="ShumateLayerClass"/>
      </field>
    </record>
    <class name="PathLayer"
           c:symbol-prefix="path_layer"
           c:type="ShumatePathLayer"
           parent="Layer"
           glib:type-name="ShumatePathLayer"
           glib:get-type="shumate_path_layer_get_type"
           glib:type-struct="PathLayerClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-path-layer.c"
           line="21">A layer displaying line path between inserted [iface@Location] objects

This layer shows a connection between inserted objects implementing the
[iface@Location] interface. This means that both #ShumateMarker
objects and [class@Coordinate] objects can be inserted into the layer.
Of course, custom objects implementing the #ShumateLocation interface
can be used as well.</doc>
      <source-position filename="../shumate/shumate-path-layer.h" line="37"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <constructor name="new" c:identifier="shumate_path_layer_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="433">Creates a new instance of #ShumatePathLayer.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="39"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-path-layer.c"
               line="439">a new instance of #ShumatePathLayer.</doc>
          <type name="PathLayer" c:type="ShumatePathLayer*"/>
        </return-value>
        <parameters>
          <parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="435">the @ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_node" c:identifier="shumate_path_layer_add_node">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="474">Adds a #ShumateLocation object to the layer.
The node is prepended to the list.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="477">a #ShumateLocation</doc>
            <type name="Location" c:type="ShumateLocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_closed"
              c:identifier="shumate_path_layer_get_closed"
              glib:get-property="closed">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="876">Gets information whether the path is closed.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-path-layer.c"
               line="882">%TRUE when the path is closed, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dash" c:identifier="shumate_path_layer_get_dash">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="925">Returns the list of dash segment lengths.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="83"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-path-layer.c"
               line="931">the list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="guint"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fill"
              c:identifier="shumate_path_layer_get_fill"
              glib:get-property="fill">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="767">Checks whether the path is filled.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-path-layer.c"
               line="773">%TRUE if the path is filled, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fill_color"
              c:identifier="shumate_path_layer_get_fill_color"
              glib:get-property="fill-color">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="608">Gets the path's fill color.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="51"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-path-layer.c"
               line="614">the path's fill color.</doc>
          <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nodes" c:identifier="shumate_path_layer_get_nodes">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="521">Gets a copy of the list of all #ShumateLocation objects inserted into the layer. You should
free the list but not its contents.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="49"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../shumate/shumate-path-layer.c"
               line="528">the list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Location"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_outline_color"
              c:identifier="shumate_path_layer_get_outline_color"
              glib:get-property="outline-color">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="694">Gets the path's outline color.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="59"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-path-layer.c"
               line="700">the path's outline color.</doc>
          <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_outline_width"
              c:identifier="shumate_path_layer_get_outline_width"
              glib:get-property="outline-width">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="840">Gets the width of the outline.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-path-layer.c"
               line="846">the width of the outline</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stroke"
              c:identifier="shumate_path_layer_get_stroke"
              glib:get-property="stroke">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="730">Checks whether the path is stroked.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-path-layer.c"
               line="736">%TRUE if the path is stroked, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stroke_color"
              c:identifier="shumate_path_layer_get_stroke_color"
              glib:get-property="stroke-color">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="652">Gets the path's stroke color.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="55"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-path-layer.c"
               line="658">the path's stroke color.</doc>
          <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stroke_width"
              c:identifier="shumate_path_layer_get_stroke_width"
              glib:get-property="stroke-width">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="804">Gets the width of the stroke.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-path-layer.c"
               line="810">the width of the stroke</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="insert_node" c:identifier="shumate_path_layer_insert_node">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="562">Inserts a #ShumateLocation object to the specified position.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="565">a #ShumateLocation</doc>
            <type name="Location" c:type="ShumateLocation*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="566">position in the list where the #ShumateLocation object should be inserted</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_all" c:identifier="shumate_path_layer_remove_all">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="493">Removes all #ShumateLocation objects from the layer.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_node" c:identifier="shumate_path_layer_remove_node">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="541">Removes the #ShumateLocation object from the layer.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="544">a #ShumateLocation</doc>
            <type name="Location" c:type="ShumateLocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_closed"
              c:identifier="shumate_path_layer_set_closed"
              glib:set-property="closed">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="856">Makes the path closed.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="859">%TRUE to make the path closed</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dash" c:identifier="shumate_path_layer_set_dash">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="893">Sets dashed line pattern in a way similar to cairo_set_dash() of cairo. This
method supports only integer values for segment lengths. The values have to be
passed inside the data pointer of the list (using the %GUINT_TO_POINTER conversion)

Pass %NULL to use solid line.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
          <parameter name="dash_pattern" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="896">list of integer values representing lengths
    of dashes/spaces (see cairo documentation of cairo_set_dash())</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="guint"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_fill"
              c:identifier="shumate_path_layer_set_fill"
              glib:set-property="fill">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="747">Sets the path to be filled</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="750">if the path is filled</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fill_color"
              c:identifier="shumate_path_layer_set_fill_color"
              glib:set-property="fill-color">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="581">Set the path's fill color.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="584">The path's fill color or %NULL to reset to the
        default color. The color parameter is copied.</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_outline_color"
              c:identifier="shumate_path_layer_set_outline_color"
              glib:set-property="outline-color">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="668">Set the path's outline color.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="671">The path's outline color or %NULL to reset to the
        default color. The color parameter is copied.</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_outline_width"
              c:identifier="shumate_path_layer_set_outline_width"
              glib:set-property="outline-width">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="820">Sets the width of the outline</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="823">the width of the outline (in pixels)</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stroke"
              c:identifier="shumate_path_layer_set_stroke"
              glib:set-property="stroke">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="710">Sets the path to be stroked</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="713">if the path is stroked</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stroke_color"
              c:identifier="shumate_path_layer_set_stroke_color"
              glib:set-property="stroke-color">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="625">Set the path's stroke color.</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="628">The path's stroke color or %NULL to reset to the
        default color. The color parameter is copied.</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stroke_width"
              c:identifier="shumate_path_layer_set_stroke_width"
              glib:set-property="stroke-width">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="784">Sets the width of the stroke</doc>
        <source-position filename="../shumate/shumate-path-layer.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layer" transfer-ownership="none">
            <type name="PathLayer" c:type="ShumatePathLayer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-path-layer.c"
                 line="787">the width of the stroke (in pixels)</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <property name="closed"
                writable="1"
                transfer-ownership="none"
                setter="set_closed"
                getter="get_closed">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="313">The shape is a closed path</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="fill"
                writable="1"
                transfer-ownership="none"
                setter="set_fill"
                getter="get_fill">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="325">The shape should be filled</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="fill-color"
                writable="1"
                transfer-ownership="none"
                setter="set_fill_color"
                getter="get_fill_color">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="361">The path's fill color</doc>
        <type name="Gdk.RGBA"/>
      </property>
      <property name="outline-color"
                writable="1"
                transfer-ownership="none"
                setter="set_outline_color"
                getter="get_outline_color">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="387">The path's outline color</doc>
        <type name="Gdk.RGBA"/>
      </property>
      <property name="outline-width"
                writable="1"
                transfer-ownership="none"
                setter="set_outline_width"
                getter="get_outline_width">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="399">The path's outline width (in pixels)</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="stroke"
                writable="1"
                transfer-ownership="none"
                setter="set_stroke"
                getter="get_stroke">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="337">The shape should be stroked</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="stroke-color"
                writable="1"
                transfer-ownership="none"
                setter="set_stroke_color"
                getter="get_stroke_color">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="349">The path's stroke color</doc>
        <type name="Gdk.RGBA"/>
      </property>
      <property name="stroke-width"
                writable="1"
                transfer-ownership="none"
                setter="set_stroke_width"
                getter="get_stroke_width">
        <doc xml:space="preserve"
             filename="../shumate/shumate-path-layer.c"
             line="373">The path's stroke width (in pixels)</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
    </class>
    <record name="PathLayerClass"
            c:type="ShumatePathLayerClass"
            glib:is-gtype-struct-for="PathLayer">
      <source-position filename="../shumate/shumate-path-layer.h" line="37"/>
      <field name="parent_class">
        <type name="LayerClass" c:type="ShumateLayerClass"/>
      </field>
    </record>
    <class name="Point"
           c:symbol-prefix="point"
           c:type="ShumatePoint"
           parent="Marker"
           glib:type-name="ShumatePoint"
           glib:get-type="shumate_point_get_type"
           glib:type-struct="PointClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-point.c"
           line="20">A simple variant of [class@Marker] showing the location of the point as a
circle on the map.</doc>
      <source-position filename="../shumate/shumate-point.h" line="35"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <implements name="Location"/>
      <constructor name="new" c:identifier="shumate_point_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-point.c"
             line="64">Creates an instance of #ShumatePoint.</doc>
        <source-position filename="../shumate/shumate-point.h" line="37"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-point.c"
               line="69">a new #ShumatePoint.</doc>
          <type name="Point" c:type="ShumateMarker*"/>
        </return-value>
      </constructor>
    </class>
    <record name="PointClass"
            c:type="ShumatePointClass"
            glib:is-gtype-struct-for="Point">
      <source-position filename="../shumate/shumate-point.h" line="35"/>
      <field name="parent_class">
        <type name="MarkerClass" c:type="ShumateMarkerClass"/>
      </field>
    </record>
    <class name="RasterRenderer"
           c:symbol-prefix="raster_renderer"
           c:type="ShumateRasterRenderer"
           parent="MapSource"
           glib:type-name="ShumateRasterRenderer"
           glib:get-type="shumate_raster_renderer_get_type"
           glib:type-struct="RasterRendererClass">
      <source-position filename="../shumate/shumate-raster-renderer.h"
                       line="28"/>
      <constructor name="new" c:identifier="shumate_raster_renderer_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-raster-renderer.c"
             line="44">Creates a new [class@RasterRenderer] that uses the given data source.</doc>
        <source-position filename="../shumate/shumate-raster-renderer.h"
                         line="31"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-raster-renderer.c"
               line="50">a newly constructed [class@RasterRenderer]</doc>
          <type name="RasterRenderer" c:type="ShumateRasterRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="data_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="46">a [class@DataSource] to provide tile image data</doc>
            <type name="DataSource" c:type="ShumateDataSource*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_url"
                   c:identifier="shumate_raster_renderer_new_from_url">
        <doc xml:space="preserve"
             filename="../shumate/shumate-raster-renderer.c"
             line="61">Creates a new [class@RasterRenderer] that fetches tiles from the given URL
using a [class@TileDownloader] data source.

Equivalent to:

```c
g_autoptr(ShumateTileDownloader) source = shumate_tile_downloader_new (url_template);
ShumateRasterRenderer *renderer = shumate_raster_renderer_new (source);
```</doc>
        <source-position filename="../shumate/shumate-raster-renderer.h"
                         line="32"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-raster-renderer.c"
               line="75">a newly constructed [class@RasterRenderer]</doc>
          <type name="RasterRenderer" c:type="ShumateRasterRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="url_template" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="63">a URL template to fetch tiles from</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_full"
                   c:identifier="shumate_raster_renderer_new_full">
        <doc xml:space="preserve"
             filename="../shumate/shumate-raster-renderer.c"
             line="89">Creates a new [class@RasterRenderer] with the given details and a data
source.</doc>
        <source-position filename="../shumate/shumate-raster-renderer.h"
                         line="34"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-raster-renderer.c"
               line="104">a newly constructed [class@RasterRenderer]</doc>
          <type name="RasterRenderer" c:type="ShumateRasterRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="91">the map source's id</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="92">the map source's name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="93">the map source's license</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="license_uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="94">the map source's license URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="min_zoom" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="95">the map source's minimum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="max_zoom" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="96">the map source's maximum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="97">the map source's tile size (in pixels)</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="projection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="98">the map source's projection</doc>
            <type name="MapProjection" c:type="ShumateMapProjection"/>
          </parameter>
          <parameter name="data_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="99">a [class@DataSource] to provide tile image data</doc>
            <type name="DataSource" c:type="ShumateDataSource*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_full_from_url"
                   c:identifier="shumate_raster_renderer_new_full_from_url">
        <doc xml:space="preserve"
             filename="../shumate/shumate-raster-renderer.c"
             line="133">Creates a new [class@RasterRenderer] with the given details and a data
source.</doc>
        <source-position filename="../shumate/shumate-raster-renderer.h"
                         line="43"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-raster-renderer.c"
               line="148">a newly constructed [class@RasterRenderer]</doc>
          <type name="RasterRenderer" c:type="ShumateRasterRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="135">the map source's id</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="136">the map source's name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="137">the map source's license</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="license_uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="138">the map source's license URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="min_zoom" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="139">the map source's minimum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="max_zoom" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="140">the map source's maximum zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="tile_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="141">the map source's tile size (in pixels)</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="projection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="142">the map source's projection</doc>
            <type name="MapProjection" c:type="ShumateMapProjection"/>
          </parameter>
          <parameter name="url_template" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-raster-renderer.c"
                 line="143">a URL template to fetch tiles from</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="data-source"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../shumate/shumate-raster-renderer.c"
             line="300">The data source that provides image tiles to display. In most cases,
a [class@TileDownloader] is sufficient.</doc>
        <type name="DataSource"/>
      </property>
    </class>
    <record name="RasterRendererClass"
            c:type="ShumateRasterRendererClass"
            glib:is-gtype-struct-for="RasterRenderer">
      <source-position filename="../shumate/shumate-raster-renderer.h"
                       line="28"/>
      <field name="parent_class">
        <type name="MapSourceClass" c:type="ShumateMapSourceClass"/>
      </field>
    </record>
    <class name="Scale"
           c:symbol-prefix="scale"
           c:type="ShumateScale"
           parent="Gtk.Widget"
           glib:type-name="ShumateScale"
           glib:get-type="shumate_scale_get_type"
           glib:type-struct="ScaleClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-scale.c"
           line="22">A widget displaying a scale.

# CSS nodes

```
map-scale
├── label[.metric][.imperial]
```

`ShumateScale` uses a single CSS node with name map-scale, it has up to two
childs different labels.</doc>
      <source-position filename="../shumate/shumate-scale.h" line="37"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <constructor name="new" c:identifier="shumate_scale_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.c"
             line="388">Creates an instance of #ShumateScale.</doc>
        <source-position filename="../shumate/shumate-scale.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-scale.c"
               line="394">a new #ShumateScale.</doc>
          <type name="Scale" c:type="ShumateScale*"/>
        </return-value>
        <parameters>
          <parameter name="viewport"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-scale.c"
                 line="390">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_max_width"
              c:identifier="shumate_scale_get_max_width"
              glib:get-property="max-width">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.c"
             line="483">Gets the maximum scale width.</doc>
        <source-position filename="../shumate/shumate-scale.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-scale.c"
               line="489">The maximum scale width in pixels.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-scale.c"
                 line="485">a #ShumateScale</doc>
            <type name="Scale" c:type="ShumateScale*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_unit"
              c:identifier="shumate_scale_get_unit"
              glib:get-property="unit">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.c"
             line="500">Gets the unit used by the scale.</doc>
        <source-position filename="../shumate/shumate-scale.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-scale.c"
               line="506">The unit used by the scale</doc>
          <type name="Unit" c:type="ShumateUnit"/>
        </return-value>
        <parameters>
          <instance-parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-scale.c"
                 line="502">a #ShumateScale</doc>
            <type name="Scale" c:type="ShumateScale*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_viewport"
              c:identifier="shumate_scale_get_viewport"
              glib:get-property="viewport">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.c"
             line="516">Gets the viewport used by the scale.</doc>
        <source-position filename="../shumate/shumate-scale.h" line="64"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../shumate/shumate-scale.c"
               line="522">The #ShumateViewport used by the scale</doc>
          <type name="Viewport" c:type="ShumateViewport*"/>
        </return-value>
        <parameters>
          <instance-parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-scale.c"
                 line="518">a #ShumateScale</doc>
            <type name="Scale" c:type="ShumateScale*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_max_width"
              c:identifier="shumate_scale_set_max_width"
              glib:set-property="max-width">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.c"
             line="405">Sets the maximum width of the scale on the screen in pixels</doc>
        <source-position filename="../shumate/shumate-scale.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-scale.c"
                 line="407">a #ShumateScale</doc>
            <type name="Scale" c:type="ShumateScale*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-scale.c"
                 line="408">the number of pixels</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_unit"
              c:identifier="shumate_scale_set_unit"
              glib:set-property="unit">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.c"
             line="427">Sets the scale unit.</doc>
        <source-position filename="../shumate/shumate-scale.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-scale.c"
                 line="429">a #ShumateScale</doc>
            <type name="Scale" c:type="ShumateScale*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-scale.c"
                 line="430">a #ShumateUnit</doc>
            <type name="Unit" c:type="ShumateUnit"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_viewport"
              c:identifier="shumate_scale_set_viewport"
              glib:set-property="viewport">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.c"
             line="452">Sets the scale viewport.</doc>
        <source-position filename="../shumate/shumate-scale.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-scale.c"
                 line="454">a #ShumateScale</doc>
            <type name="Scale" c:type="ShumateScale*"/>
          </instance-parameter>
          <parameter name="viewport"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-scale.c"
                 line="455">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </parameter>
        </parameters>
      </method>
      <property name="max-width"
                writable="1"
                transfer-ownership="none"
                setter="set_max_width"
                getter="get_max_width">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.c"
             line="303">The size of the map scale on screen in pixels.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="unit"
                writable="1"
                transfer-ownership="none"
                setter="set_unit"
                getter="get_unit">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.c"
             line="315">The scale's units.</doc>
        <type name="Unit"/>
      </property>
      <property name="viewport"
                writable="1"
                transfer-ownership="none"
                setter="set_viewport"
                getter="get_viewport">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.c"
             line="328">The viewport to use.</doc>
        <type name="Viewport"/>
      </property>
    </class>
    <record name="ScaleClass"
            c:type="ShumateScaleClass"
            glib:is-gtype-struct-for="Scale">
      <source-position filename="../shumate/shumate-scale.h" line="37"/>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
    </record>
    <class name="SimpleMap"
           c:symbol-prefix="simple_map"
           c:type="ShumateSimpleMap"
           parent="Gtk.Widget"
           glib:type-name="ShumateSimpleMap"
           glib:get-type="shumate_simple_map_get_type"
           glib:type-struct="SimpleMapClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-simple-map.c"
           line="22">A ready-to-use map [class@Gtk.Widget].If you want to use your own implementation,
you can look at the [class@Shumate.Map] widget.

The simple map contains a zoom widget, a [class@Shumate.License] at the bottom,
a [class@Shumate.Scale] and a [class@Shumate.Compass].</doc>
      <source-position filename="../shumate/shumate-simple-map.h" line="32"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <constructor name="new" c:identifier="shumate_simple_map_new">
        <source-position filename="../shumate/shumate-simple-map.h" line="34"/>
        <return-value transfer-ownership="none">
          <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
        </return-value>
      </constructor>
      <method name="add_overlay_layer"
              c:identifier="shumate_simple_map_add_overlay_layer">
        <doc xml:space="preserve"
             filename="../shumate/shumate-simple-map.c"
             line="367">Adds a map layer as an overlay on top of the base map.</doc>
        <source-position filename="../shumate/shumate-simple-map.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="369">a [class@SimpleMap]</doc>
            <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="370">a [class@Layer] to add</doc>
            <type name="Layer" c:type="ShumateLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_compass"
              c:identifier="shumate_simple_map_get_compass"
              glib:get-property="compass">
        <doc xml:space="preserve"
             filename="../shumate/shumate-simple-map.c"
             line="460">Gets the compass widget for the map.</doc>
        <source-position filename="../shumate/shumate-simple-map.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-simple-map.c"
               line="466">a [class@Compass]</doc>
          <type name="Compass" c:type="ShumateCompass*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="462">a [class@SimpleMap]</doc>
            <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_license"
              c:identifier="shumate_simple_map_get_license"
              glib:get-property="license">
        <doc xml:space="preserve"
             filename="../shumate/shumate-simple-map.c"
             line="477">Gets the license widget for the map.</doc>
        <source-position filename="../shumate/shumate-simple-map.h" line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-simple-map.c"
               line="483">a [class@License]</doc>
          <type name="License" c:type="ShumateLicense*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="479">a [class@SimpleMap]</doc>
            <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_map"
              c:identifier="shumate_simple_map_get_map"
              glib:get-property="map">
        <doc xml:space="preserve"
             filename="../shumate/shumate-simple-map.c"
             line="526">Gets the [class@SimpleMap]'s underlying [class@Map].</doc>
        <source-position filename="../shumate/shumate-simple-map.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-simple-map.c"
               line="532">a [class@Map]</doc>
          <type name="Map" c:type="ShumateMap*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="528">a [class@SimpleMap]</doc>
            <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_map_source"
              c:identifier="shumate_simple_map_get_map_source"
              glib:get-property="map-source">
        <doc xml:space="preserve"
             filename="../shumate/shumate-simple-map.c"
             line="307">Gets the map source for the current base layer.</doc>
        <source-position filename="../shumate/shumate-simple-map.h" line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-simple-map.c"
               line="313">a [class@MapSource]</doc>
          <type name="MapSource" c:type="ShumateMapSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="309">a [class@SimpleMap]</doc>
            <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_scale"
              c:identifier="shumate_simple_map_get_scale"
              glib:get-property="scale">
        <doc xml:space="preserve"
             filename="../shumate/shumate-simple-map.c"
             line="494">Gets the scale widget for the map.</doc>
        <source-position filename="../shumate/shumate-simple-map.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-simple-map.c"
               line="500">a [class@Scale]</doc>
          <type name="Scale" c:type="ShumateScale*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="496">a [class@SimpleMap]</doc>
            <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_zoom_buttons"
              c:identifier="shumate_simple_map_get_show_zoom_buttons"
              glib:get-property="show-zoom-buttons">
        <doc xml:space="preserve"
             filename="../shumate/shumate-simple-map.c"
             line="510">Gets whether or not the zoom buttons are shown.</doc>
        <source-position filename="../shumate/shumate-simple-map.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-simple-map.c"
               line="516">%TRUE if the zoom buttons are visible, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="512">a [class@SimpleMap]</doc>
            <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_viewport"
              c:identifier="shumate_simple_map_get_viewport"
              glib:get-property="viewport">
        <doc xml:space="preserve"
             filename="../shumate/shumate-simple-map.c"
             line="290">Gets the map's viewport, needed for constructing map layers that will be added
to it.</doc>
        <source-position filename="../shumate/shumate-simple-map.h" line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-simple-map.c"
               line="297">a [class@Viewport]</doc>
          <type name="Viewport" c:type="ShumateViewport*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="292">a [class@Map]</doc>
            <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="insert_overlay_layer"
              c:identifier="shumate_simple_map_insert_overlay_layer">
        <source-position filename="../shumate/shumate-simple-map.h" line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <type name="Layer" c:type="ShumateLayer*"/>
          </parameter>
          <parameter name="idx" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_overlay_layer"
              c:identifier="shumate_simple_map_remove_overlay_layer">
        <doc xml:space="preserve"
             filename="../shumate/shumate-simple-map.c"
             line="441">Removes a layer from the map.</doc>
        <source-position filename="../shumate/shumate-simple-map.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="443">a [class@SimpleMap]</doc>
            <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
          </instance-parameter>
          <parameter name="layer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="444">a [class@Layer] that was added to the map previously</doc>
            <type name="Layer" c:type="ShumateLayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_map_source"
              c:identifier="shumate_simple_map_set_map_source"
              glib:set-property="map-source">
        <doc xml:space="preserve"
             filename="../shumate/shumate-simple-map.c"
             line="323">Sets the source for the base map.</doc>
        <source-position filename="../shumate/shumate-simple-map.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="325">a [class@SimpleMap]</doc>
            <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
          </instance-parameter>
          <parameter name="map_source"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="326">a [class@MapSource]</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_zoom_buttons"
              c:identifier="shumate_simple_map_set_show_zoom_buttons"
              glib:set-property="show-zoom-buttons">
        <doc xml:space="preserve"
             filename="../shumate/shumate-simple-map.c"
             line="543">Sets whether or not the zoom buttons are shown.</doc>
        <source-position filename="../shumate/shumate-simple-map.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="545">a [class@SimpleMap]</doc>
            <type name="SimpleMap" c:type="ShumateSimpleMap*"/>
          </instance-parameter>
          <parameter name="show_zoom_buttons" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-simple-map.c"
                 line="546">%TRUE to show the zoom buttons, %FALSE to hide them</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="compass" transfer-ownership="none" getter="get_compass">
        <type name="Compass"/>
      </property>
      <property name="license" transfer-ownership="none" getter="get_license">
        <type name="License"/>
      </property>
      <property name="map" transfer-ownership="none" getter="get_map">
        <type name="Map"/>
      </property>
      <property name="map-source"
                writable="1"
                transfer-ownership="none"
                setter="set_map_source"
                getter="get_map_source">
        <type name="MapSource"/>
      </property>
      <property name="scale" transfer-ownership="none" getter="get_scale">
        <type name="Scale"/>
      </property>
      <property name="show-zoom-buttons"
                writable="1"
                transfer-ownership="none"
                setter="set_show_zoom_buttons"
                getter="get_show_zoom_buttons">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="viewport"
                transfer-ownership="none"
                getter="get_viewport">
        <type name="Viewport"/>
      </property>
    </class>
    <record name="SimpleMapClass"
            c:type="ShumateSimpleMapClass"
            glib:is-gtype-struct-for="SimpleMap">
      <source-position filename="../shumate/shumate-simple-map.h" line="32"/>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
    </record>
    <enumeration name="State"
                 glib:type-name="ShumateState"
                 glib:get-type="shumate_state_get_type"
                 c:type="ShumateState">
      <doc xml:space="preserve"
           filename="../shumate/shumate-tile.h"
           line="33">Tile loading state.</doc>
      <member name="none"
              value="0"
              c:identifier="SHUMATE_STATE_NONE"
              glib:nick="none"
              glib:name="SHUMATE_STATE_NONE">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.h"
             line="35">Initial or undefined state</doc>
      </member>
      <member name="loading"
              value="1"
              c:identifier="SHUMATE_STATE_LOADING"
              glib:nick="loading"
              glib:name="SHUMATE_STATE_LOADING">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.h"
             line="36">Tile is loading</doc>
      </member>
      <member name="loaded"
              value="2"
              c:identifier="SHUMATE_STATE_LOADED"
              glib:nick="loaded"
              glib:name="SHUMATE_STATE_LOADED">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.h"
             line="37">Tile is loaded but not yet displayed</doc>
      </member>
      <member name="done"
              value="3"
              c:identifier="SHUMATE_STATE_DONE"
              glib:nick="done"
              glib:name="SHUMATE_STATE_DONE">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.h"
             line="38">Tile loading finished. Also used to inform map sources
    that tile loading has been cancelled.</doc>
      </member>
    </enumeration>
    <enumeration name="StyleError"
                 glib:type-name="ShumateStyleError"
                 glib:get-type="shumate_style_error_get_type"
                 c:type="ShumateStyleError"
                 glib:error-domain="shumate-style-error-quark">
      <doc xml:space="preserve"
           filename="../shumate/shumate-vector-renderer.h"
           line="52">Error codes that occurs while parsing the style in [class@VectorRenderer].</doc>
      <member name="failed"
              value="0"
              c:identifier="SHUMATE_STYLE_ERROR_FAILED"
              glib:nick="failed"
              glib:name="SHUMATE_STYLE_ERROR_FAILED">
        <doc xml:space="preserve"
             filename="../shumate/shumate-vector-renderer.h"
             line="54">An unspecified error occurred during the operation.</doc>
      </member>
      <member name="malformed_style"
              value="1"
              c:identifier="SHUMATE_STYLE_ERROR_MALFORMED_STYLE"
              glib:nick="malformed-style"
              glib:name="SHUMATE_STYLE_ERROR_MALFORMED_STYLE">
        <doc xml:space="preserve"
             filename="../shumate/shumate-vector-renderer.h"
             line="55">A JSON node in the style has the wrong type (e.g. an object where there should be an array).</doc>
      </member>
      <member name="unsupported_layer"
              value="2"
              c:identifier="SHUMATE_STYLE_ERROR_UNSUPPORTED_LAYER"
              glib:nick="unsupported-layer"
              glib:name="SHUMATE_STYLE_ERROR_UNSUPPORTED_LAYER">
        <doc xml:space="preserve"
             filename="../shumate/shumate-vector-renderer.h"
             line="56">An unsupported layer type was encountered.</doc>
      </member>
      <member name="invalid_expression"
              value="3"
              c:identifier="SHUMATE_STYLE_ERROR_INVALID_EXPRESSION"
              glib:nick="invalid-expression"
              glib:name="SHUMATE_STYLE_ERROR_INVALID_EXPRESSION">
        <doc xml:space="preserve"
             filename="../shumate/shumate-vector-renderer.h"
             line="57">An invalid or unrecognized expression was encountered.</doc>
      </member>
      <member name="support_omitted"
              value="4"
              c:identifier="SHUMATE_STYLE_ERROR_SUPPORT_OMITTED"
              glib:nick="support-omitted"
              glib:name="SHUMATE_STYLE_ERROR_SUPPORT_OMITTED">
        <doc xml:space="preserve"
             filename="../shumate/shumate-vector-renderer.h"
             line="58">Libshumate was compiled without vector tile support.</doc>
      </member>
      <member name="unsupported"
              value="5"
              c:identifier="SHUMATE_STYLE_ERROR_UNSUPPORTED"
              glib:nick="unsupported"
              glib:name="SHUMATE_STYLE_ERROR_UNSUPPORTED">
        <doc xml:space="preserve"
             filename="../shumate/shumate-vector-renderer.h"
             line="59">An unsupported style spec feature was encountered.</doc>
      </member>
      <function name="quark" c:identifier="shumate_style_error_quark">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-vector-renderer.c"
               line="640">a #GQuark</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="Tile"
           c:symbol-prefix="tile"
           c:type="ShumateTile"
           parent="GObject.Object"
           glib:type-name="ShumateTile"
           glib:get-type="shumate_tile_get_type"
           glib:type-struct="TileClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-tile.c"
           line="23">An object that represents map tiles. Tiles are loaded by a [class@MapSource].</doc>
      <source-position filename="../shumate/shumate-tile.h" line="31"/>
      <constructor name="new" c:identifier="shumate_tile_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="284">Creates an instance of #ShumateTile.</doc>
        <source-position filename="../shumate/shumate-tile.h" line="51"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-tile.c"
               line="289">a new #ShumateTile</doc>
          <type name="Tile" c:type="ShumateTile*"/>
        </return-value>
      </constructor>
      <constructor name="new_full" c:identifier="shumate_tile_new_full">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="298">Creates an instance of #ShumateTile.</doc>
        <source-position filename="../shumate/shumate-tile.h" line="52"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-tile.c"
               line="307">a #ShumateTile</doc>
          <type name="Tile" c:type="ShumateTile*"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="300">the x position</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="301">the y position</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="302">the size in pixels</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="303">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_etag" c:identifier="shumate_tile_get_etag">
        <source-position filename="../shumate/shumate-tile.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fade_in"
              c:identifier="shumate_tile_get_fade_in"
              glib:get-property="fade-in">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="514">Checks whether the tile should fade in.</doc>
        <source-position filename="../shumate/shumate-tile.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-tile.c"
               line="520">the return value determines whether the tile should fade in when loading.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="516">the #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modified_time"
              c:identifier="shumate_tile_get_modified_time">
        <source-position filename="../shumate/shumate-tile.h" line="77"/>
        <return-value transfer-ownership="full">
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_paintable"
              c:identifier="shumate_tile_get_paintable"
              glib:get-property="paintable">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="551">Get the [class@Gdk.Paintable] representing this tile.</doc>
        <source-position filename="../shumate/shumate-tile.h" line="89"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../shumate/shumate-tile.c"
               line="557">A [class@Gdk.Paintable]</doc>
          <type name="Gdk.Paintable" c:type="GdkPaintable*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="553">the [class@Tile]</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size"
              c:identifier="shumate_tile_get_size"
              glib:get-property="size">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="438">Gets the tile's size.</doc>
        <source-position filename="../shumate/shumate-tile.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-tile.c"
               line="444">the tile's size in pixels</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="440">the #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_state"
              c:identifier="shumate_tile_get_state"
              glib:get-property="state">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="476">Gets the current state of tile loading.</doc>
        <source-position filename="../shumate/shumate-tile.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-tile.c"
               line="482">the tile's #ShumateState</doc>
          <type name="State" c:type="ShumateState"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="478">the #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_x"
              c:identifier="shumate_tile_get_x"
              glib:get-property="x">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="324">Gets the tile's x position.</doc>
        <source-position filename="../shumate/shumate-tile.h" line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-tile.c"
               line="330">the tile's x position</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="326">the #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_y"
              c:identifier="shumate_tile_get_y"
              glib:get-property="y">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="362">Gets the tile's y position.</doc>
        <source-position filename="../shumate/shumate-tile.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-tile.c"
               line="368">the tile's y position</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="364">the #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_zoom_level"
              c:identifier="shumate_tile_get_zoom_level"
              glib:get-property="zoom-level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="400">Gets the tile's zoom level.</doc>
        <source-position filename="../shumate/shumate-tile.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-tile.c"
               line="406">the tile's zoom level</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="402">the #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_etag" c:identifier="shumate_tile_set_etag">
        <source-position filename="../shumate/shumate-tile.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
          <parameter name="etag" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fade_in"
              c:identifier="shumate_tile_set_fade_in"
              glib:set-property="fade-in">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="531">Sets the flag determining whether the tile should fade in when loading</doc>
        <source-position filename="../shumate/shumate-tile.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="533">the #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
          <parameter name="fade_in" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="534">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="shumate_tile_set_modified_time">
        <source-position filename="../shumate/shumate-tile.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
          <parameter name="modified_time" transfer-ownership="none">
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_paintable"
              c:identifier="shumate_tile_set_paintable"
              glib:set-property="paintable">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="567">Sets the [class@Gdk.Paintable] representing this tile.</doc>
        <source-position filename="../shumate/shumate-tile.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="569">the [class@Tile]</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
          <parameter name="paintable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="570">a [class@Gdk.Paintable]</doc>
            <type name="Gdk.Paintable" c:type="GdkPaintable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size"
              c:identifier="shumate_tile_set_size"
              glib:set-property="size">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="455">Sets the tile's size</doc>
        <source-position filename="../shumate/shumate-tile.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="457">the #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="458">the size in pixels</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_state"
              c:identifier="shumate_tile_set_state"
              glib:set-property="state">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="493">Sets the tile's #ShumateState</doc>
        <source-position filename="../shumate/shumate-tile.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="495">the #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="496">a #ShumateState</doc>
            <type name="State" c:type="ShumateState"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_x"
              c:identifier="shumate_tile_set_x"
              glib:set-property="x">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="341">Sets the tile's x position</doc>
        <source-position filename="../shumate/shumate-tile.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="343">the #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="344">the position</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_y"
              c:identifier="shumate_tile_set_y"
              glib:set-property="y">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="379">Sets the tile's y position</doc>
        <source-position filename="../shumate/shumate-tile.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="381">the #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="382">the position</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_zoom_level"
              c:identifier="shumate_tile_set_zoom_level"
              glib:set-property="zoom-level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="417">Sets the tile's zoom level</doc>
        <source-position filename="../shumate/shumate-tile.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="419">the #ShumateTile</doc>
            <type name="Tile" c:type="ShumateTile*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile.c"
                 line="420">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="fade-in"
                writable="1"
                transfer-ownership="none"
                setter="set_fade_in"
                getter="get_fade_in">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="248">Specifies whether the tile should fade in when loading</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="paintable"
                writable="1"
                transfer-ownership="none"
                setter="set_paintable"
                getter="get_paintable">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="260">The [class@Gdk.Paintable] backing the tile</doc>
        <type name="Gdk.Paintable"/>
      </property>
      <property name="size"
                writable="1"
                transfer-ownership="none"
                setter="set_size"
                getter="get_size">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="221">The size of the tile in pixels</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="state"
                writable="1"
                transfer-ownership="none"
                setter="set_state"
                getter="get_state">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="235">The state of the tile</doc>
        <type name="State"/>
      </property>
      <property name="x"
                writable="1"
                transfer-ownership="none"
                setter="set_x"
                getter="get_x">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="179">The x position of the tile</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="y"
                writable="1"
                transfer-ownership="none"
                setter="set_y"
                getter="get_y">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="193">The y position of the tile</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="zoom-level"
                writable="1"
                transfer-ownership="none"
                setter="set_zoom_level"
                getter="get_zoom_level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile.c"
             line="207">The zoom level of the tile</doc>
        <type name="guint" c:type="guint"/>
      </property>
    </class>
    <record name="TileClass"
            c:type="ShumateTileClass"
            glib:is-gtype-struct-for="Tile">
      <source-position filename="../shumate/shumate-tile.h" line="31"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="TileDownloader"
           c:symbol-prefix="tile_downloader"
           c:type="ShumateTileDownloader"
           parent="DataSource"
           glib:type-name="ShumateTileDownloader"
           glib:get-type="shumate_tile_downloader_get_type"
           glib:type-struct="TileDownloaderClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-tile-downloader.c"
           line="23">A [class@Shumate.DataSource] that asynchronously downloads tiles from an online
service using a given template.

It contains an internal [class@Shumate.FileCache] to cache the tiles on the system.</doc>
      <source-position filename="../shumate/shumate-tile-downloader.h"
                       line="26"/>
      <constructor name="new" c:identifier="shumate_tile_downloader_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile-downloader.c"
             line="58">Creates a new [class@TileDownloader] that fetches tiles from an API and
caches them on disk.

See [property@TileDownloader:url-template] for the format of the URL template.</doc>
        <source-position filename="../shumate/shumate-tile-downloader.h"
                         line="28"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-tile-downloader.c"
               line="67">a newly constructed [class@TileDownloader]</doc>
          <type name="TileDownloader" c:type="ShumateTileDownloader*"/>
        </return-value>
        <parameters>
          <parameter name="url_template" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-tile-downloader.c"
                 line="60">a URL template to fetch tiles from</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="url-template"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile-downloader.c"
             line="160">A template for construting the URL to download a tile from.

The template has the following replacements:
- "#X#": The X coordinate of the tile
- "#Y#": The Y coordinate of the tile
- "#Z#": The zoom level of the tile
- "#TMSY#": The inverted Y coordinate (i.e. tile numbering starts with 0 at
the bottom, rather than top, of the map)</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="TileDownloaderClass"
            c:type="ShumateTileDownloaderClass"
            glib:is-gtype-struct-for="TileDownloader">
      <source-position filename="../shumate/shumate-tile-downloader.h"
                       line="26"/>
      <field name="parent_class">
        <type name="DataSourceClass" c:type="ShumateDataSourceClass"/>
      </field>
    </record>
    <enumeration name="TileDownloaderError"
                 glib:type-name="ShumateTileDownloaderError"
                 glib:get-type="shumate_tile_downloader_error_get_type"
                 c:type="ShumateTileDownloaderError"
                 glib:error-domain="shumate-tile-downloader-error-quark">
      <doc xml:space="preserve"
           filename="../shumate/shumate-tile-downloader.h"
           line="41">Error codes in the #SHUMATE_TILE_DOWNLOADER_ERROR domain.</doc>
      <member name="failed"
              value="0"
              c:identifier="SHUMATE_TILE_DOWNLOADER_ERROR_FAILED"
              glib:nick="failed"
              glib:name="SHUMATE_TILE_DOWNLOADER_ERROR_FAILED">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile-downloader.h"
             line="43">An unspecified error occurred during the operation.</doc>
      </member>
      <member name="bad_response"
              value="1"
              c:identifier="SHUMATE_TILE_DOWNLOADER_ERROR_BAD_RESPONSE"
              glib:nick="bad-response"
              glib:name="SHUMATE_TILE_DOWNLOADER_ERROR_BAD_RESPONSE">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile-downloader.h"
             line="44">An unsuccessful HTTP response was received from the server.</doc>
      </member>
      <member name="could_not_connect"
              value="2"
              c:identifier="SHUMATE_TILE_DOWNLOADER_ERROR_COULD_NOT_CONNECT"
              glib:nick="could-not-connect"
              glib:name="SHUMATE_TILE_DOWNLOADER_ERROR_COULD_NOT_CONNECT">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile-downloader.h"
             line="45">The server could not be reached.</doc>
      </member>
      <member name="malformed_url"
              value="3"
              c:identifier="SHUMATE_TILE_DOWNLOADER_ERROR_MALFORMED_URL"
              glib:nick="malformed-url"
              glib:name="SHUMATE_TILE_DOWNLOADER_ERROR_MALFORMED_URL">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile-downloader.h"
             line="46">The provided URL isn't valid</doc>
      </member>
      <member name="offline"
              value="4"
              c:identifier="SHUMATE_TILE_DOWNLOADER_ERROR_OFFLINE"
              glib:nick="offline"
              glib:name="SHUMATE_TILE_DOWNLOADER_ERROR_OFFLINE">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile-downloader.h"
             line="47">The tile source has been marked as offline.</doc>
      </member>
      <function name="quark"
                c:identifier="shumate_tile_downloader_error_quark">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile-downloader.c"
             line="513">Gets the #ShumateTileDownloader error quark.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-tile-downloader.c"
               line="518">a #GQuark</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <enumeration name="Unit"
                 glib:type-name="ShumateUnit"
                 glib:get-type="shumate_unit_get_type"
                 c:type="ShumateUnit">
      <doc xml:space="preserve"
           filename="../shumate/shumate-scale.h"
           line="39">Units used by the scale.</doc>
      <member name="both"
              value="0"
              c:identifier="SHUMATE_UNIT_BOTH"
              glib:nick="both"
              glib:name="SHUMATE_UNIT_BOTH">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.h"
             line="41">Both metric and imperial units</doc>
      </member>
      <member name="metric"
              value="1"
              c:identifier="SHUMATE_UNIT_METRIC"
              glib:nick="metric"
              glib:name="SHUMATE_UNIT_METRIC">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.h"
             line="42">Metric units (meters)</doc>
      </member>
      <member name="imperial"
              value="2"
              c:identifier="SHUMATE_UNIT_IMPERIAL"
              glib:nick="imperial"
              glib:name="SHUMATE_UNIT_IMPERIAL">
        <doc xml:space="preserve"
             filename="../shumate/shumate-scale.h"
             line="43">Imperial units (miles)</doc>
      </member>
    </enumeration>
    <class name="VectorRenderer"
           c:symbol-prefix="vector_renderer"
           c:type="ShumateVectorRenderer"
           parent="MapSource"
           glib:type-name="ShumateVectorRenderer"
           glib:get-type="shumate_vector_renderer_get_type"
           glib:type-struct="VectorRendererClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-vector-renderer.c"
           line="22">A [class@Shumate.MapSource] that renders tiles from a given vector data source.</doc>
      <source-position filename="../shumate/shumate-vector-renderer.h"
                       line="28"/>
      <implements name="Gio.Initable"/>
      <constructor name="new"
                   c:identifier="shumate_vector_renderer_new"
                   throws="1">
        <doc xml:space="preserve"
             filename="../shumate/shumate-vector-renderer.c"
             line="68">Creates a new [class@VectorRenderer] from the given JSON style.

The stylesheet should contain a list of tile sources. Tiles will be
downloaded using [class@TileDownloader]s.

See the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/)
for details on @style_json, but be aware that libshumate does not support
every feature of the specification.</doc>
        <source-position filename="../shumate/shumate-vector-renderer.h"
                         line="34"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-vector-renderer.c"
               line="83">a newly constructed [class@VectorRenderer], or %NULL if @error is set</doc>
          <type name="VectorRenderer" c:type="ShumateVectorRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-vector-renderer.c"
                 line="70">an ID for the map source</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="style_json" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-vector-renderer.c"
                 line="71">a vector style</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="is_supported"
                c:identifier="shumate_vector_renderer_is_supported">
        <doc xml:space="preserve"
             filename="../shumate/shumate-vector-renderer.c"
             line="100">Checks whether libshumate was compiled with vector tile support. If it was
not, vector renderers cannot be created or used.</doc>
        <source-position filename="../shumate/shumate-vector-renderer.h"
                         line="31"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-vector-renderer.c"
               line="106">%TRUE if libshumate was compiled with `-Dvector_renderer=true` or
%FALSE if it was not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </function>
      <method name="set_sprite_sheet_data"
              c:identifier="shumate_vector_renderer_set_sprite_sheet_data"
              throws="1">
        <doc xml:space="preserve"
             filename="../shumate/shumate-vector-renderer.c"
             line="434">Sets the sprite sheet used by the style JSON to render icons and textures.

See &lt;https://maplibre.org/maplibre-gl-js-docs/style-spec/sprite/&gt; for
details about the spritesheet format. Most stylesheets provide these files
along with the main style JSON.</doc>
        <source-position filename="../shumate/shumate-vector-renderer.h"
                         line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-vector-renderer.c"
               line="447">whether the sprite sheet was loaded successfully</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-vector-renderer.c"
                 line="436">a [class@VectorRenderer]</doc>
            <type name="VectorRenderer" c:type="ShumateVectorRenderer*"/>
          </instance-parameter>
          <parameter name="sprites_pixbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-vector-renderer.c"
                 line="437">a [class@Gdk.Pixbuf]</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
          <parameter name="sprites_json" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-vector-renderer.c"
                 line="438">a JSON string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="style-json"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../shumate/shumate-vector-renderer.c"
             line="207">A map style, in [Mapbox Style Specification](https://docs.mapbox.com/mapbox-gl-js/style-spec/)
format.

Note that not all features of the specification are supported.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="VectorRendererClass"
            c:type="ShumateVectorRendererClass"
            glib:is-gtype-struct-for="VectorRenderer">
      <source-position filename="../shumate/shumate-vector-renderer.h"
                       line="28"/>
      <field name="parent_class">
        <type name="MapSourceClass" c:type="ShumateMapSourceClass"/>
      </field>
    </record>
    <class name="Viewport"
           c:symbol-prefix="viewport"
           c:type="ShumateViewport"
           parent="GObject.Object"
           glib:type-name="ShumateViewport"
           glib:get-type="shumate_viewport_get_type"
           glib:type-struct="ViewportClass">
      <doc xml:space="preserve"
           filename="../shumate/shumate-viewport.c"
           line="30">The object holding the coordinate, zoom-level, and rotation state of the current view.

As the object implements [iface@Shumate.Location], the latitude and longitude are
accessible via the interface methods.</doc>
      <source-position filename="../shumate/shumate-viewport.h" line="36"/>
      <implements name="Location"/>
      <constructor name="new" c:identifier="shumate_viewport_new">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="305">Creates a new #ShumateViewport</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../shumate/shumate-viewport.c"
               line="310">A new #ShumateViewport</doc>
          <type name="Viewport" c:type="ShumateViewport*"/>
        </return-value>
      </constructor>
      <method name="get_max_zoom_level"
              c:identifier="shumate_viewport_get_max_zoom_level"
              glib:get-property="max-zoom-level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="380">Get the maximal zoom level</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-viewport.c"
               line="386">the maximal zoom level</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="382">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_min_zoom_level"
              c:identifier="shumate_viewport_get_min_zoom_level"
              glib:get-property="min-zoom-level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="420">Get the minimal zoom level</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-viewport.c"
               line="426">the minimal zoom level</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="422">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reference_map_source"
              c:identifier="shumate_viewport_get_reference_map_source"
              glib:get-property="reference-map-source">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="456">Get the reference map source</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="54"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../shumate/shumate-viewport.c"
               line="462">the reference #ShumateMapSource or %NULL
when none has been set.</doc>
          <type name="MapSource" c:type="ShumateMapSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="458">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rotation"
              c:identifier="shumate_viewport_get_rotation"
              glib:get-property="rotation">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="497">Gets the current rotation</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-viewport.c"
               line="503">the current rotation</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="499">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_zoom_level"
              c:identifier="shumate_viewport_get_zoom_level"
              glib:get-property="zoom-level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="340">Get the current zoom level</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../shumate/shumate-viewport.c"
               line="346">the current zoom level</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="342">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="location_to_widget_coords"
              c:identifier="shumate_viewport_location_to_widget_coords">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="586">Gets the position on @widget that correspond to the given latitude and
longitude.</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="588">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="589">a #GtkWidget that uses @self as viewport</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="590">the latitude</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="591">the longitude</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="592">return value for the x coordinate</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="593">return value for the y coordinate</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_zoom_level"
              c:identifier="shumate_viewport_set_max_zoom_level"
              glib:set-property="max-zoom-level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="356">Set the maximal zoom level</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="358">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </instance-parameter>
          <parameter name="max_zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="359">the maximal zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_min_zoom_level"
              c:identifier="shumate_viewport_set_min_zoom_level"
              glib:set-property="min-zoom-level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="396">Set the minimal zoom level</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="398">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </instance-parameter>
          <parameter name="min_zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="399">the minimal zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reference_map_source"
              c:identifier="shumate_viewport_set_reference_map_source"
              glib:set-property="reference-map-source">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="436">Set the reference map source</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="438">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </instance-parameter>
          <parameter name="map_source"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="439">a #ShumateMapSource or %NULL to set none.</doc>
            <type name="MapSource" c:type="ShumateMapSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rotation"
              c:identifier="shumate_viewport_set_rotation"
              glib:set-property="rotation">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="473">Sets the rotation</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="475">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </instance-parameter>
          <parameter name="rotation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="476">the rotation</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_zoom_level"
              c:identifier="shumate_viewport_set_zoom_level"
              glib:set-property="zoom-level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="318">Set the zoom level</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="320">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="321">the zoom level</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="widget_coords_to_location"
              c:identifier="shumate_viewport_widget_coords_to_location">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="533">Gets the latitude and longitude corresponding to a position on @widget.</doc>
        <source-position filename="../shumate/shumate-viewport.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="535">a #ShumateViewport</doc>
            <type name="Viewport" c:type="ShumateViewport*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="536">a #GtkWidget that uses @self as viewport</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="537">the x coordinate</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="538">the y coordinate</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="latitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="539">return location for the latitude</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="longitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../shumate/shumate-viewport.c"
                 line="540">return location for the longitude</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
        </parameters>
      </method>
      <property name="max-zoom-level"
                writable="1"
                transfer-ownership="none"
                setter="set_max_zoom_level"
                getter="get_max_zoom_level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="243">The highest allowed level of zoom of the content.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="min-zoom-level"
                writable="1"
                transfer-ownership="none"
                setter="set_min_zoom_level"
                getter="get_min_zoom_level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="231">The lowest allowed level of zoom of the content.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="reference-map-source"
                writable="1"
                transfer-ownership="none"
                setter="set_reference_map_source"
                getter="get_reference_map_source">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="255">The reference #ShumateMapSource being displayed</doc>
        <type name="MapSource"/>
      </property>
      <property name="rotation"
                writable="1"
                transfer-ownership="none"
                setter="set_rotation"
                getter="get_rotation">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="267">The rotation of the map view, in radians clockwise from up being due north</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="zoom-level"
                writable="1"
                transfer-ownership="none"
                setter="set_zoom_level"
                getter="get_zoom_level">
        <doc xml:space="preserve"
             filename="../shumate/shumate-viewport.c"
             line="219">The level of zoom of the content.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
    </class>
    <record name="ViewportClass"
            c:type="ShumateViewportClass"
            glib:is-gtype-struct-for="Viewport">
      <source-position filename="../shumate/shumate-viewport.h" line="36"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <function name="file_cache_error_quark"
              c:identifier="shumate_file_cache_error_quark"
              moved-to="FileCacheError.quark">
      <doc xml:space="preserve"
           filename="../shumate/shumate-file-cache.c"
           line="1101">Gets the #ShumateFileCache error quark.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../shumate/shumate-file-cache.c"
             line="1106">a #GQuark</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="get_user_agent" c:identifier="shumate_get_user_agent">
      <doc xml:space="preserve"
           filename="../shumate/shumate-user-agent.c"
           line="27">Gets the user agent libshumate will use for all requests.

This API is not thread-safe and should only be called from the main thread.</doc>
      <source-position filename="../shumate/shumate-user-agent.h" line="20"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../shumate/shumate-user-agent.c"
             line="34">the user agent</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
    </function>
    <function name="set_user_agent" c:identifier="shumate_set_user_agent">
      <doc xml:space="preserve"
           filename="../shumate/shumate-user-agent.c"
           line="46">Sets the user agent that libshumate uses for all requests.

This API is not thread-safe and should only be called from the main thread.</doc>
      <source-position filename="../shumate/shumate-user-agent.h" line="21"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="new_user_agent"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../shumate/shumate-user-agent.c"
               line="48">the new user agent, or %NULL to reset to the default</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="shumate-version">
      <doc xml:space="preserve"
           filename="../shumate/shumate-version.h"
           line="26">Shumate offers a set of macros for checking the version of the library
an application was linked to.</doc>
    </docsection>
    <function name="style_error_quark"
              c:identifier="shumate_style_error_quark"
              moved-to="StyleError.quark">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../shumate/shumate-vector-renderer.c"
             line="640">a #GQuark</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="tile_downloader_error_quark"
              c:identifier="shumate_tile_downloader_error_quark"
              moved-to="TileDownloaderError.quark">
      <doc xml:space="preserve"
           filename="../shumate/shumate-tile-downloader.c"
           line="513">Gets the #ShumateTileDownloader error quark.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../shumate/shumate-tile-downloader.c"
             line="518">a #GQuark</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
