<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GLib" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="cairo" version="1.0"/>
  <namespace name="Memphis"
             version="0.2"
             shared-library="libmemphis-0.2.so.0.0"
             c:identifier-prefixes="Memphis"
             c:symbol-prefixes="memphis">
    <class name="DataPool"
           c:symbol-prefix="data_pool"
           c:type="MemphisDataPool"
           parent="GObject.Object"
           glib:type-name="MemphisDataPool"
           glib:get-type="memphis_data_pool_get_type"
           glib:type-struct="DataPoolClass">
      <constructor name="new"
                   c:identifier="memphis_data_pool_new"
                   version="0.1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a reference to the #MemphisDataPool.</doc>
          <type name="DataPool" c:type="MemphisDataPool*"/>
        </return-value>
      </constructor>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="stringChunk">
        <type name="GLib.StringChunk" c:type="GStringChunk*"/>
      </field>
      <field name="stringTree">
        <type name="GLib.Tree" c:type="GTree*"/>
      </field>
    </class>
    <record name="DataPoolClass"
            c:type="MemphisDataPoolClass"
            glib:is-gtype-struct-for="DataPool">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Map"
           c:symbol-prefix="map"
           c:type="MemphisMap"
           parent="GObject.Object"
           glib:type-name="MemphisMap"
           glib:get-type="memphis_map_get_type"
           glib:type-struct="MapClass">
      <constructor name="new" c:identifier="memphis_map_new" version="0.1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #MemphisMap without any data.</doc>
          <type name="Map" c:type="MemphisMap*"/>
        </return-value>
      </constructor>
      <method name="free" c:identifier="memphis_map_free" version="0.1">
        <doc xml:space="preserve">Frees the memory of a #MemphisMap.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisMap</doc>
            <type name="Map" c:type="MemphisMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bounding_box"
              c:identifier="memphis_map_get_bounding_box"
              version="0.1">
        <doc xml:space="preserve">Get the exent of the bounding box that contains all map data.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisMap</doc>
            <type name="Map" c:type="MemphisMap*"/>
          </instance-parameter>
          <parameter name="minlat"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the minimum latitude</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="minlon"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the minimum longitude</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="maxlat"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the maximum latitude</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="maxlon"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the maximum longitude</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_data"
              c:identifier="memphis_map_load_from_data"
              version="0.2"
              throws="1">
        <doc xml:space="preserve">Load map data from an OSM XML file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisMap</doc>
            <type name="Map" c:type="MemphisMap*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">a character array with OSM data</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the size of the array</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_file"
              c:identifier="memphis_map_load_from_file"
              version="0.2"
              throws="1">
        <doc xml:space="preserve">Load map data from an OSM XML file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisMap</doc>
            <type name="Map" c:type="MemphisMap*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">a path to a OSM map file</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="MapClass"
            c:type="MemphisMapClass"
            glib:is-gtype-struct-for="Map">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Renderer"
           c:symbol-prefix="renderer"
           c:type="MemphisRenderer"
           parent="GObject.Object"
           glib:type-name="MemphisRenderer"
           glib:get-type="memphis_renderer_get_type"
           glib:type-struct="RendererClass">
      <constructor name="new"
                   c:identifier="memphis_renderer_new"
                   version="0.1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a fresh #MemphisRenderer.</doc>
          <type name="Renderer" c:type="MemphisRenderer*"/>
        </return-value>
      </constructor>
      <constructor name="new_full"
                   c:identifier="memphis_renderer_new_full"
                   version="0.1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a fresh #MemphisRenderer with the given rules and map.</doc>
          <type name="Renderer" c:type="MemphisRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="rules" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">a #MemphisRuleSet</doc>
            <type name="RuleSet" c:type="MemphisRuleSet*"/>
          </parameter>
          <parameter name="map" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">a #MemphisMap</doc>
            <type name="Map" c:type="MemphisMap*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="draw_png"
              c:identifier="memphis_renderer_draw_png"
              introspectable="0">
        <doc xml:space="preserve">Does not obey resolution settings!
It creates a png of the whole data of unpredictable size.
probably not a very useful function for a generic library.
Should be removed!</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">the path to the output file</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="draw_tile"
              c:identifier="memphis_renderer_draw_tile"
              version="0.1">
        <doc xml:space="preserve">Renders a tile.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
          <parameter name="cr"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">a Cairo context</doc>
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">x coordinates</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">y coordinates</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="memphis_renderer_free" version="0.1">
        <doc xml:space="preserve">Frees the memory of #MemphisRenderer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_column_count"
              c:identifier="memphis_renderer_get_column_count"
              version="0.1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the total number of tile columns for this zoom level.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_map"
              c:identifier="memphis_renderer_get_map"
              version="0.1"
              introspectable="0">
        <return-value>
          <doc xml:space="preserve">the #MemphisMap of this renderer.</doc>
          <type name="Map" c:type="MemphisMap*"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_x_tile"
              c:identifier="memphis_renderer_get_max_x_tile"
              version="0.1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the biggest tile x coordinate with data for this zoom level.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_max_y_tile"
              c:identifier="memphis_renderer_get_max_y_tile"
              version="0.1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the biggest tile y coordinate with data for this zoom level.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_min_x_tile"
              c:identifier="memphis_renderer_get_min_x_tile"
              version="0.1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the smallest tile x coordinate with data for this zoom level.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_min_y_tile"
              c:identifier="memphis_renderer_get_min_y_tile"
              version="0.1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the smallest tile y coordinate with data for this zoom level.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_resolution"
              c:identifier="memphis_renderer_get_resolution"
              version="0.1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the resoltion of a tile.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_row_count"
              c:identifier="memphis_renderer_get_row_count"
              version="0.1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the total number of tile rows for this zoom level.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rule_set"
              c:identifier="memphis_renderer_get_rule_set"
              version="0.1"
              introspectable="0">
        <return-value>
          <doc xml:space="preserve">the #MemphisRuleSet of the renderer.</doc>
          <type name="RuleSet" c:type="MemphisRuleSet*"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_map"
              c:identifier="memphis_renderer_set_map"
              version="0.1">
        <doc xml:space="preserve">Assigns a #MemphisMap to the renderer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
          <parameter name="map" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisMap</doc>
            <type name="Map" c:type="MemphisMap*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_resolution"
              c:identifier="memphis_renderer_set_resolution"
              version="0.1">
        <doc xml:space="preserve">Set the resoltion of a tile.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
          <parameter name="resolution" transfer-ownership="none">
            <doc xml:space="preserve">the resolution of a tile</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rule_set"
              c:identifier="memphis_renderer_set_rule_set"
              version="0.2">
        <doc xml:space="preserve">Sets the drawing rules for the renderer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
          <parameter name="rules" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRuleSet</doc>
            <type name="RuleSet" c:type="MemphisRuleSet*"/>
          </parameter>
        </parameters>
      </method>
      <method name="tile_has_data"
              c:identifier="memphis_renderer_tile_has_data"
              version="0.1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">true if the renderer has map data for this zoom level and tile number.  If no data is available an empty tile with background color will be rendered.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRenderer</doc>
            <type name="Renderer" c:type="MemphisRenderer*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">x coordinates</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">y coordinates</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="zoom_level" transfer-ownership="none">
            <doc xml:space="preserve">the zoom level</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="map"
                version="0.1"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">A MemphisMap.</doc>
        <type name="Map"/>
      </property>
      <property name="resolution"
                version="0.1"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The tile resolution in pixels.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="rule-set"
                version="0.1"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">A MemphisRuleSet.</doc>
        <type name="RuleSet"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="RendererClass"
            c:type="MemphisRendererClass"
            glib:is-gtype-struct-for="Renderer">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="Rule"
            c:type="MemphisRule"
            version="0.1"
            glib:type-name="MemphisRule"
            glib:get-type="memphis_rule_get_type"
            c:symbol-prefix="rule">
      <doc xml:space="preserve">Defines a drawing rule for the #MemphisRuleSet.</doc>
      <field name="keys" writable="1">
        <type name="utf8" c:type="gchar**"/>
      </field>
      <field name="values" writable="1">
        <type name="utf8" c:type="gchar**"/>
      </field>
      <field name="type" writable="1">
        <type name="RuleType" c:type="MemphisRuleType"/>
      </field>
      <field name="polygon" writable="1">
        <type name="RuleAttr" c:type="MemphisRuleAttr*"/>
      </field>
      <field name="line" writable="1">
        <type name="RuleAttr" c:type="MemphisRuleAttr*"/>
      </field>
      <field name="border" writable="1">
        <type name="RuleAttr" c:type="MemphisRuleAttr*"/>
      </field>
      <field name="text" writable="1">
        <type name="RuleAttr" c:type="MemphisRuleAttr*"/>
      </field>
      <constructor name="new" c:identifier="memphis_rule_new" version="0.1">
        <doc xml:space="preserve">Creates a newly allocated #MemphisRule to be freed
with memphis_rule_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #MemphisRule.</doc>
          <type name="Rule" c:type="MemphisRule*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="memphis_rule_copy" version="0.1">
        <doc xml:space="preserve">Makes a copy of the memphis rule structure. The result must be
freed using memphis_rule_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an allocated copy of @rule.</doc>
          <type name="Rule" c:type="MemphisRule*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rule" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRule</doc>
            <type name="Rule" c:type="const MemphisRule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="memphis_rule_free" version="0.1">
        <doc xml:space="preserve">Frees a memphis rule structure created with memphis_rule_new() or
memphis_rule_copy().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rule" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRule</doc>
            <type name="Rule" c:type="MemphisRule*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="RuleAttr"
            c:type="MemphisRuleAttr"
            version="0.1"
            glib:type-name="MemphisRuleAttr"
            glib:get-type="memphis_rule_attr_get_type"
            c:symbol-prefix="rule_attr">
      <doc xml:space="preserve">Defines the drawing attributes for a #MemphisRule.</doc>
      <field name="z_min" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="z_max" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="color_red" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="color_green" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="color_blue" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="color_alpha" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="style" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="size" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <constructor name="new"
                   c:identifier="memphis_rule_attr_new"
                   version="0.2.2">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #MemphisRuleAttr.</doc>
          <type name="RuleAttr" c:type="MemphisRuleAttr*"/>
        </return-value>
      </constructor>
      <method name="copy"
              c:identifier="memphis_rule_attr_copy"
              version="0.2.2">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the rule attribute.</doc>
          <type name="RuleAttr" c:type="MemphisRuleAttr*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attr" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRuleAttr</doc>
            <type name="RuleAttr" c:type="const MemphisRuleAttr*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="memphis_rule_attr_free"
              version="0.2.2">
        <doc xml:space="preserve">Frees the memory of a #MemphisRuleAttr.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="attr" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRuleAttr</doc>
            <type name="RuleAttr" c:type="MemphisRuleAttr*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="RuleSet"
           c:symbol-prefix="rule_set"
           c:type="MemphisRuleSet"
           parent="GObject.Object"
           glib:type-name="MemphisRuleSet"
           glib:get-type="memphis_rule_set_get_type"
           glib:type-struct="RuleSetClass">
      <constructor name="new"
                   c:identifier="memphis_rule_set_new"
                   version="0.1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #MemphisRuleSet whithout any rules.</doc>
          <type name="RuleSet" c:type="MemphisRuleSet*"/>
        </return-value>
      </constructor>
      <method name="free" c:identifier="memphis_rule_set_free" version="0.1">
        <doc xml:space="preserve">Frees the memory of a #MemphisRuleSet.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rules" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRuleSet</doc>
            <type name="RuleSet" c:type="MemphisRuleSet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bg_color"
              c:identifier="memphis_rule_set_get_bg_color"
              version="0.1">
        <doc xml:space="preserve">Assigns the background color and the transparency of the background
to r, g, b and a.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rules" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRuleSet</doc>
            <type name="RuleSet" c:type="MemphisRuleSet*"/>
          </instance-parameter>
          <parameter name="r"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">red color component</doc>
            <type name="guint8" c:type="guint8*"/>
          </parameter>
          <parameter name="g"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">green color component</doc>
            <type name="guint8" c:type="guint8*"/>
          </parameter>
          <parameter name="b"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">blue color component</doc>
            <type name="guint8" c:type="guint8*"/>
          </parameter>
          <parameter name="a"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">transparency</doc>
            <type name="guint8" c:type="guint8*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rule"
              c:identifier="memphis_rule_set_get_rule"
              version="0.1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #MemphisRule that has the given id string or NULL otherwise.</doc>
          <type name="Rule" c:type="MemphisRule*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rules" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRuleSet</doc>
            <type name="RuleSet" c:type="MemphisRuleSet*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">an id string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rule_ids"
              c:identifier="memphis_rule_set_get_rule_ids"
              version="0.1"
              introspectable="0">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of rule id strings. Free the list with g_list_free when done.  These strings have the following form: key1|key2|...|keyN:value1|value2|...|valueM  Example: "waterway:river|stream|canal"</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="rules" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRuleSet</doc>
            <type name="RuleSet" c:type="MemphisRuleSet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_from_data"
              c:identifier="memphis_rule_set_load_from_data"
              version="0.2"
              throws="1">
        <doc xml:space="preserve">Load rules data from an XML file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rules" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRuleSet</doc>
            <type name="RuleSet" c:type="MemphisRuleSet*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">a character array with rules XML data</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the size of the array</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_file"
              c:identifier="memphis_rule_set_load_from_file"
              version="0.2"
              throws="1">
        <doc xml:space="preserve">Load rules from an XML file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rules" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRuleSet</doc>
            <type name="RuleSet" c:type="MemphisRuleSet*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">a path to a rules file</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_rule"
              c:identifier="memphis_rule_set_remove_rule"
              version="0.1">
        <doc xml:space="preserve">Removes the rule with the given id from the rules set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">true if the rule could be found and removed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="rules" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRuleSet</doc>
            <type name="RuleSet" c:type="MemphisRuleSet*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">an id string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bg_color"
              c:identifier="memphis_rule_set_set_bg_color"
              version="0.1">
        <doc xml:space="preserve">Sets the background color and transparency rule.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rules" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRuleSet</doc>
            <type name="RuleSet" c:type="MemphisRuleSet*"/>
          </instance-parameter>
          <parameter name="r" transfer-ownership="none">
            <doc xml:space="preserve">red color component</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="g" transfer-ownership="none">
            <doc xml:space="preserve">green color component</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve">blue color component</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve">transparency</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rule"
              c:identifier="memphis_rule_set_set_rule"
              version="0.1">
        <doc xml:space="preserve">Adds the given rule to the rule set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rules" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRuleSet</doc>
            <type name="RuleSet" c:type="MemphisRuleSet*"/>
          </instance-parameter>
          <parameter name="rule" transfer-ownership="none">
            <doc xml:space="preserve">a #MemphisRule</doc>
            <type name="Rule" c:type="MemphisRule*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="RuleSetClass"
            c:type="MemphisRuleSetClass"
            glib:is-gtype-struct-for="RuleSet">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="RuleType"
                 version="0.1"
                 glib:type-name="MemphisRuleType"
                 glib:get-type="memphis_rule_type_get_type"
                 c:type="MemphisRuleType">
      <doc xml:space="preserve">Defines a the data type of the rule. Only ways are supported in
Memphis 0.1.x.</doc>
      <member name="unknown"
              value="0"
              c:identifier="MEMPHIS_RULE_TYPE_UNKNOWN"
              glib:nick="unknown">
        <doc xml:space="preserve">unknown</doc>
      </member>
      <member name="node"
              value="1"
              c:identifier="MEMPHIS_RULE_TYPE_NODE"
              glib:nick="node">
        <doc xml:space="preserve">a node</doc>
      </member>
      <member name="way"
              value="2"
              c:identifier="MEMPHIS_RULE_TYPE_WAY"
              glib:nick="way">
        <doc xml:space="preserve">a way</doc>
      </member>
      <member name="relation"
              value="3"
              c:identifier="MEMPHIS_RULE_TYPE_RELATION"
              glib:nick="relation">
        <doc xml:space="preserve">a realtion</doc>
      </member>
    </enumeration>
    <function name="debug"
              c:identifier="memphis_debug"
              version="0.1"
              introspectable="0">
      <doc xml:space="preserve">Prints a debug message.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="format" transfer-ownership="none">
          <doc xml:space="preserve">a printf format string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="arg1" transfer-ownership="none">
          <varargs>
          </varargs>
        </parameter>
      </parameters>
    </function>
    <function name="debug_get_print_progress"
              c:identifier="memphis_debug_get_print_progress"
              version="0.1">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">if progress messages should be shown.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="debug_set_print_progress"
              c:identifier="memphis_debug_set_print_progress"
              version="0.1">
      <doc xml:space="preserve">Define if progress messages should be printed.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="show_progress" transfer-ownership="none">
          <doc xml:space="preserve">progress</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="info"
              c:identifier="memphis_info"
              version="0.1"
              introspectable="0">
      <doc xml:space="preserve">Prints stuff.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="format" transfer-ownership="none">
          <doc xml:space="preserve">a printf format string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="arg1" transfer-ownership="none">
          <varargs>
          </varargs>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
