<?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="Gio" version="2.0"/>
  <package name="eek-0.90"/>
  <namespace name="Eek"
             version="0.90"
             shared-library="libeek.so.0"
             c:identifier-prefixes="Eek"
             c:symbol-prefixes="eek">
    <record name="Bounds"
            c:type="EekBounds"
            glib:type-name="EekBounds"
            glib:get-type="eek_bounds_get_type"
            c:symbol-prefix="bounds">
      <doc xml:space="preserve"
           filename="eek-types.h"
           line="174">The rectangle containing an element's bounding box.</doc>
      <source-position filename="eek-types.h" line="190"/>
      <field name="x" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="176">X coordinate of the top left point</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="y" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="177">Y coordinate of the top left point</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="width" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="178">width of the box</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="height" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="179">height of the box</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <method name="copy" c:identifier="eek_bounds_copy">
        <source-position filename="eek-types.h" line="193"/>
        <return-value transfer-ownership="full">
          <type name="Bounds" c:type="EekBounds*"/>
        </return-value>
        <parameters>
          <instance-parameter name="bounds" transfer-ownership="none">
            <type name="Bounds" c:type="const EekBounds*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="eek_bounds_free">
        <source-position filename="eek-types.h" line="194"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bounds" transfer-ownership="none">
            <type name="Bounds" c:type="EekBounds*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <function-macro name="CONTAINER"
                    c:identifier="EEK_CONTAINER"
                    introspectable="0">
      <source-position filename="eek-container.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTAINER_CLASS"
                    c:identifier="EEK_CONTAINER_CLASS"
                    introspectable="0">
      <source-position filename="eek-container.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTAINER_GET_CLASS"
                    c:identifier="EEK_CONTAINER_GET_CLASS"
                    introspectable="0">
      <source-position filename="eek-container.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="CONTAINER_H" value="1" c:type="EEK_CONTAINER_H">
      <source-position filename="eek-container.h" line="26"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <callback name="Callback" c:type="EekCallback">
      <doc xml:space="preserve"
           filename="eek-container.h"
           line="42">The type of the callback function used for iterating over the
children of a container, see eek_container_foreach_child().</doc>
      <source-position filename="eek-container.h" line="50"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="element" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-container.h"
               line="44">an #EekElement</doc>
          <type name="Element" c:type="EekElement*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <doc xml:space="preserve"
               filename="eek-container.h"
               line="45">user-supplied data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="Color"
            c:type="EekColor"
            glib:type-name="EekColor"
            glib:get-type="eek_color_get_type"
            c:symbol-prefix="color">
      <doc xml:space="preserve"
           filename="eek-types.h"
           line="222">Color used for drawing.</doc>
      <source-position filename="eek-types.h" line="238"/>
      <field name="red" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="224">red component of color, between 0.0 and 1.0</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="green" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="225">green component of color, between 0.0 and 1.0</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="blue" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="226">blue component of color, between 0.0 and 1.0</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="alpha" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="227">alpha component of color, between 0.0 and 1.0</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <constructor name="new" c:identifier="eek_color_new">
        <source-position filename="eek-types.h" line="242"/>
        <return-value transfer-ownership="full">
          <type name="Color" c:type="EekColor*"/>
        </return-value>
        <parameters>
          <parameter name="red" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="green" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="blue" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="alpha" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="eek_color_copy">
        <source-position filename="eek-types.h" line="246"/>
        <return-value transfer-ownership="full">
          <type name="Color" c:type="EekColor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="color" transfer-ownership="none">
            <type name="Color" c:type="const EekColor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="eek_color_free">
        <source-position filename="eek-types.h" line="247"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="color" transfer-ownership="none">
            <type name="Color" c:type="EekColor*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="CompareFunc" c:type="EekCompareFunc">
      <source-position filename="eek-container.h" line="51"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="element" transfer-ownership="none">
          <type name="Element" c:type="EekElement*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Container"
           c:symbol-prefix="container"
           c:type="EekContainer"
           parent="Element"
           abstract="1"
           glib:type-name="EekContainer"
           glib:get-type="eek_container_get_type"
           glib:type-struct="ContainerClass">
      <source-position filename="eek-container.h" line="95"/>
      <virtual-method name="add_child" invoker="add_child">
        <source-position filename="eek-container.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Container" c:type="EekContainer*"/>
          </instance-parameter>
          <parameter name="element" transfer-ownership="none">
            <type name="Element" c:type="EekElement*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="child_added">
        <source-position filename="eek-container.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Container" c:type="EekContainer*"/>
          </instance-parameter>
          <parameter name="element" transfer-ownership="none">
            <type name="Element" c:type="EekElement*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="child_removed">
        <source-position filename="eek-container.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Container" c:type="EekContainer*"/>
          </instance-parameter>
          <parameter name="element" transfer-ownership="none">
            <type name="Element" c:type="EekElement*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="find" invoker="find" introspectable="0">
        <doc xml:space="preserve"
             filename="eek-container.c"
             line="214">Find a child which matches the criteria supplied as @func, in @container.</doc>
        <source-position filename="eek-container.h" line="83"/>
        <return-value>
          <doc xml:space="preserve"
               filename="eek-container.c"
               line="221">an #EekElement or NULL on failure</doc>
          <type name="Element" c:type="EekElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Container" c:type="EekContainer*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none" closure="1">
            <doc xml:space="preserve"
                 filename="eek-container.c"
                 line="217">function to be used to compare two children</doc>
            <type name="CompareFunc" c:type="EekCompareFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="foreach_child" invoker="foreach_child">
        <doc xml:space="preserve"
             filename="eek-container.c"
             line="195">Enumerate children of @container and run @callback with each child.</doc>
        <source-position filename="eek-container.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Container" c:type="EekContainer*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="eek-container.c"
                 line="198">an #EekCallback</doc>
            <type name="Callback" c:type="EekCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="1">
            <doc xml:space="preserve"
                 filename="eek-container.c"
                 line="199">additional data passed to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_child">
        <source-position filename="eek-container.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Container" c:type="EekContainer*"/>
          </instance-parameter>
          <parameter name="element" transfer-ownership="none">
            <type name="Element" c:type="EekElement*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_child" c:identifier="eek_container_add_child">
        <source-position filename="eek-container.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <type name="Container" c:type="EekContainer*"/>
          </instance-parameter>
          <parameter name="element" transfer-ownership="none">
            <type name="Element" c:type="EekElement*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find" c:identifier="eek_container_find" introspectable="0">
        <doc xml:space="preserve"
             filename="eek-container.c"
             line="214">Find a child which matches the criteria supplied as @func, in @container.</doc>
        <source-position filename="eek-container.h" line="102"/>
        <return-value>
          <doc xml:space="preserve"
               filename="eek-container.c"
               line="221">an #EekElement or NULL on failure</doc>
          <type name="Element" c:type="EekElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-container.c"
                 line="216">an #EekContainer</doc>
            <type name="Container" c:type="EekContainer*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none" closure="1">
            <doc xml:space="preserve"
                 filename="eek-container.c"
                 line="217">function to be used to compare two children</doc>
            <type name="CompareFunc" c:type="EekCompareFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="eek-container.c"
                 line="218">additional data passed to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach_child" c:identifier="eek_container_foreach_child">
        <doc xml:space="preserve"
             filename="eek-container.c"
             line="195">Enumerate children of @container and run @callback with each child.</doc>
        <source-position filename="eek-container.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-container.c"
                 line="197">an #EekContainer</doc>
            <type name="Container" c:type="EekContainer*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="eek-container.c"
                 line="198">an #EekCallback</doc>
            <type name="Callback" c:type="EekCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="eek-container.c"
                 line="199">additional data passed to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent" readable="0" private="1">
        <type name="Element" c:type="EekElement"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ContainerPrivate" c:type="EekContainerPrivate*"/>
      </field>
      <glib:signal name="child-added" when="first">
        <doc xml:space="preserve"
             filename="eek-container.c"
             line="151">The ::child-added signal is emitted each time an element is
added to @container.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-container.c"
                 line="154">an #EekElement</doc>
            <type name="Element"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="child-removed" when="first">
        <doc xml:space="preserve"
             filename="eek-container.c"
             line="169">The ::child-removed signal is emitted each time an element is
removed from @container.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-container.c"
                 line="172">an #EekElement</doc>
            <type name="Element"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ContainerClass"
            c:type="EekContainerClass"
            glib:is-gtype-struct-for="Container">
      <source-position filename="eek-container.h" line="95"/>
      <field name="parent_class" readable="0" private="1">
        <type name="ElementClass" c:type="EekElementClass"/>
      </field>
      <field name="add_child">
        <callback name="add_child">
          <source-position filename="eek-container.h" line="73"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Container" c:type="EekContainer*"/>
            </parameter>
            <parameter name="element" transfer-ownership="none">
              <type name="Element" c:type="EekElement*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_child">
        <callback name="remove_child">
          <source-position filename="eek-container.h" line="76"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Container" c:type="EekContainer*"/>
            </parameter>
            <parameter name="element" transfer-ownership="none">
              <type name="Element" c:type="EekElement*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="foreach_child">
        <callback name="foreach_child">
          <source-position filename="eek-container.h" line="80"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Container" c:type="EekContainer*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       scope="call"
                       closure="2">
              <doc xml:space="preserve"
                   filename="eek-container.c"
                   line="198">an #EekCallback</doc>
              <type name="Callback" c:type="EekCallback"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="2">
              <doc xml:space="preserve"
                   filename="eek-container.c"
                   line="199">additional data passed to @callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="find" introspectable="0">
        <callback name="find" introspectable="0">
          <source-position filename="eek-container.h" line="83"/>
          <return-value>
            <doc xml:space="preserve"
                 filename="eek-container.c"
                 line="221">an #EekElement or NULL on failure</doc>
            <type name="Element" c:type="EekElement*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Container" c:type="EekContainer*"/>
            </parameter>
            <parameter name="func" transfer-ownership="none" closure="2">
              <doc xml:space="preserve"
                   filename="eek-container.c"
                   line="217">function to be used to compare two children</doc>
              <type name="CompareFunc" c:type="EekCompareFunc"/>
            </parameter>
            <parameter name="data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="child_added">
        <callback name="child_added">
          <source-position filename="eek-container.h" line="88"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Container" c:type="EekContainer*"/>
            </parameter>
            <parameter name="element" transfer-ownership="none">
              <type name="Element" c:type="EekElement*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="child_removed">
        <callback name="child_removed">
          <source-position filename="eek-container.h" line="90"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Container" c:type="EekContainer*"/>
            </parameter>
            <parameter name="element" transfer-ownership="none">
              <type name="Element" c:type="EekElement*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" fixed-size="24">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="ContainerPrivate"
            c:type="EekContainerPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="eek-container.h" line="40"/>
    </record>
    <function-macro name="ELEMENT"
                    c:identifier="EEK_ELEMENT"
                    introspectable="0">
      <source-position filename="eek-element.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="ELEMENT_CLASS"
                    c:identifier="EEK_ELEMENT_CLASS"
                    introspectable="0">
      <source-position filename="eek-element.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="ELEMENT_GET_CLASS"
                    c:identifier="EEK_ELEMENT_GET_CLASS"
                    introspectable="0">
      <source-position filename="eek-element.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="ELEMENT_H" value="1" c:type="EEK_ELEMENT_H">
      <source-position filename="eek-element.h" line="26"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <docsection name="EekTheme">
      <doc xml:space="preserve"
           filename="eek-theme.h"
           line="16">#EekTheme holds a set of stylesheets. (The "cascade" of the name
Cascading Stylesheets.) An #EekTheme can be set to apply to all the
keyboard elements.</doc>
    </docsection>
    <class name="Element"
           c:symbol-prefix="element"
           c:type="EekElement"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="EekElement"
           glib:get-type="eek_element_get_type"
           glib:type-struct="ElementClass">
      <source-position filename="eek-element.h" line="59"/>
      <virtual-method name="symbol_index_changed">
        <source-position filename="eek-element.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="level" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_absolute_position"
              c:identifier="eek_element_get_absolute_position">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="356">Compute the absolute position of @element.</doc>
        <source-position filename="eek-element.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="358">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="359">pointer where the X coordinate of @element will be stored</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="360">pointer where the Y coordinate of @element will be stored</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bounds"
              c:identifier="eek_element_get_bounds"
              glib:get-property="bounds">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="338">Get the bounding box of @element.  Note that if @element has
parent, position of @bounds are relative to the parent.  To obtain
the absolute position, use eek_element_get_absolute_position().</doc>
        <source-position filename="eek-element.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="340">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
          <parameter name="bounds"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="341">pointer where bounding box of @element will be stored</doc>
            <type name="Bounds" c:type="EekBounds*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_group"
              c:identifier="eek_element_get_group"
              glib:get-property="group">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="520">Return the group value of the default symbol index of @element.
If the value is not set, -1 will be returned.

See also: eek_element_get_symbol_index()</doc>
        <source-position filename="eek-element.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="522">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_level"
              c:identifier="eek_element_get_level"
              glib:get-property="level">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="536">Return the level value of the default symbol index of @element.
If the value is not set, -1 will be returned.

See also: eek_element_get_symbol_index()</doc>
        <source-position filename="eek-element.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="538">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="eek_element_get_name"
              glib:get-property="name">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="307">Get the name of @element.</doc>
        <source-position filename="eek-element.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-element.c"
               line="312">the name of @element or NULL when the name is not set</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="309">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent"
              c:identifier="eek_element_get_parent"
              introspectable="0">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="277">Get the parent of @element.</doc>
        <source-position filename="eek-element.h" line="65"/>
        <return-value>
          <doc xml:space="preserve"
               filename="eek-element.c"
               line="282">an #EekElement if the parent is set</doc>
          <type name="Element" c:type="EekElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="279">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_symbol_index"
              c:identifier="eek_element_get_symbol_index">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="452">Get the default index of the symbol matrices of @element.
If the index is not set, -1 will be returned.</doc>
        <source-position filename="eek-element.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="454">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="455">a pointer where the group value of the symbol index will be stored</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="456">a pointer where the level value of the symbol index will be stored</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bounds"
              c:identifier="eek_element_set_bounds"
              glib:set-property="bounds">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="321">Set the bounding box of @element to @bounds.  Note that if @element
has parent, X and Y positions of @bounds are relative to the parent
position.</doc>
        <source-position filename="eek-element.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="323">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
          <parameter name="bounds" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="324">bounding box of @element</doc>
            <type name="Bounds" c:type="EekBounds*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_group"
              c:identifier="eek_element_set_group"
              glib:set-property="group">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="474">Set the group value of the default symbol index of @element.  To
unset, pass -1 as @group.

See also: eek_element_set_symbol_index()</doc>
        <source-position filename="eek-element.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="476">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="477">group index of @element</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_level"
              c:identifier="eek_element_set_level"
              glib:set-property="level">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="497">Set the level value of the default symbol index of @element.  To
unset, pass -1 as @level.

See also: eek_element_set_symbol_index()</doc>
        <source-position filename="eek-element.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="499">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
          <parameter name="level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="500">level index of @element</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="eek_element_set_name"
              glib:set-property="name">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="291">Set the name of @element to @name.</doc>
        <source-position filename="eek-element.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="293">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="294">name of @element</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_parent" c:identifier="eek_element_set_parent">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="248">Set the parent of @element to @parent.</doc>
        <source-position filename="eek-element.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="250">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="251">an #EekElement or %NULL</doc>
            <type name="Element" c:type="EekElement*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_position" c:identifier="eek_element_set_position">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="381">Set the relative position of @element.</doc>
        <source-position filename="eek-element.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="383">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="384">X coordinate of top left corner</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="385">Y coordinate of top left corner</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size" c:identifier="eek_element_set_size">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="402">Set the size of @element.</doc>
        <source-position filename="eek-element.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="404">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="405">width of @element</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="406">height of @element</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_symbol_index"
              c:identifier="eek_element_set_symbol_index">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="423">Set the default index of the symbol matrices of @element.  The
setting affects the child, if child does not have the index set, as
well as this element.  To unset, pass -1 as group/level.</doc>
        <source-position filename="eek-element.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="425">an #EekElement</doc>
            <type name="Element" c:type="EekElement*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="426">row index of the symbol matrix</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="427">column index of the symbol matrix</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="bounds"
                writable="1"
                transfer-ownership="none"
                setter="set_bounds"
                getter="get_bounds">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="173">The bounding box of #EekElement.</doc>
        <type name="Bounds"/>
      </property>
      <property name="group"
                writable="1"
                transfer-ownership="none"
                setter="set_group"
                getter="get_group"
                default-value="-1">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="187">The group value of the symbol index of #EekElement.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="level"
                writable="1"
                transfer-ownership="none"
                setter="set_level"
                getter="get_level"
                default-value="-1">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="201">The level value of the symbol index of #EekElement.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="name"
                writable="1"
                transfer-ownership="none"
                setter="set_name"
                getter="get_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="159">The name of #EekElement.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ElementPrivate" c:type="EekElementPrivate*"/>
      </field>
      <glib:signal name="symbol-index-changed" when="last">
        <doc xml:space="preserve"
             filename="eek-element.c"
             line="215">The ::symbol-index-changed signal is emitted each time the
global configuration of group/level index changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="218">row index of the symbol matrix of keys on @element</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-element.c"
                 line="219">column index of the symbol matrix of keys on @element</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ElementClass"
            c:type="EekElementClass"
            glib:is-gtype-struct-for="Element">
      <source-position filename="eek-element.h" line="59"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="symbol_index_changed">
        <callback name="symbol_index_changed">
          <source-position filename="eek-element.h" line="56"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Element" c:type="EekElement*"/>
            </parameter>
            <parameter name="group" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="level" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="ElementPrivate"
            c:type="EekElementPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="eek-element.h" line="40"/>
    </record>
    <enumeration name="ErrorEnum"
                 glib:type-name="EekErrorEnum"
                 glib:get-type="eek_error_enum_get_type"
                 c:type="EekErrorEnum">
      <member name="layout_error"
              value="0"
              c:identifier="EEK_ERROR_LAYOUT_ERROR"
              glib:nick="layout-error"
              glib:name="EEK_ERROR_LAYOUT_ERROR">
      </member>
      <member name="failed"
              value="1"
              c:identifier="EEK_ERROR_FAILED"
              glib:nick="failed"
              glib:name="EEK_ERROR_FAILED">
      </member>
    </enumeration>
    <enumeration name="GradientType"
                 glib:type-name="EekGradientType"
                 glib:get-type="eek_gradient_type_get_type"
                 c:type="EekGradientType">
      <member name="none"
              value="0"
              c:identifier="EEK_GRADIENT_NONE"
              glib:nick="none"
              glib:name="EEK_GRADIENT_NONE">
      </member>
      <member name="vertical"
              value="1"
              c:identifier="EEK_GRADIENT_VERTICAL"
              glib:nick="vertical"
              glib:name="EEK_GRADIENT_VERTICAL">
      </member>
      <member name="horizontal"
              value="2"
              c:identifier="EEK_GRADIENT_HORIZONTAL"
              glib:nick="horizontal"
              glib:name="EEK_GRADIENT_HORIZONTAL">
      </member>
      <member name="radial"
              value="3"
              c:identifier="EEK_GRADIENT_RADIAL"
              glib:nick="radial"
              glib:name="EEK_GRADIENT_RADIAL">
      </member>
    </enumeration>
    <constant name="H" value="1" c:type="EEK_H">
      <source-position filename="eek.h" line="21"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="INVALID_KEYCODE" value="0" c:type="EEK_INVALID_KEYCODE">
      <doc xml:space="preserve"
           filename="eek-types.h"
           line="129">Pseudo keycode used for error reporting.</doc>
      <source-position filename="eek-types.h" line="134"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="INVALID_KEYSYM" value="0" c:type="EEK_INVALID_KEYSYM">
      <doc xml:space="preserve"
           filename="eek-keysym.h"
           line="33">Pseudo keysym used for error reporting.</doc>
      <source-position filename="eek-keysym.h" line="38"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="IS_CONTAINER"
                    c:identifier="EEK_IS_CONTAINER"
                    introspectable="0">
      <source-position filename="eek-container.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTAINER_CLASS"
                    c:identifier="EEK_IS_CONTAINER_CLASS"
                    introspectable="0">
      <source-position filename="eek-container.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_ELEMENT"
                    c:identifier="EEK_IS_ELEMENT"
                    introspectable="0">
      <source-position filename="eek-element.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_ELEMENT_CLASS"
                    c:identifier="EEK_IS_ELEMENT_CLASS"
                    introspectable="0">
      <source-position filename="eek-element.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_KEY" c:identifier="EEK_IS_KEY" introspectable="0">
      <source-position filename="eek-key.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_KEYBOARD"
                    c:identifier="EEK_IS_KEYBOARD"
                    introspectable="0">
      <source-position filename="eek-keyboard.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_KEYBOARD_CLASS"
                    c:identifier="EEK_IS_KEYBOARD_CLASS"
                    introspectable="0">
      <source-position filename="eek-keyboard.h" line="39"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_KEYSYM"
                    c:identifier="EEK_IS_KEYSYM"
                    introspectable="0">
      <source-position filename="eek-keysym.h" line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_KEYSYM_CLASS"
                    c:identifier="EEK_IS_KEYSYM_CLASS"
                    introspectable="0">
      <source-position filename="eek-keysym.h" line="44"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_KEY_CLASS"
                    c:identifier="EEK_IS_KEY_CLASS"
                    introspectable="0">
      <source-position filename="eek-key.h" line="37"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_LAYOUT"
                    c:identifier="EEK_IS_LAYOUT"
                    introspectable="0">
      <source-position filename="eek-layout.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_LAYOUT_CLASS"
                    c:identifier="EEK_IS_LAYOUT_CLASS"
                    introspectable="0">
      <source-position filename="eek-layout.h" line="37"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SECTION"
                    c:identifier="EEK_IS_SECTION"
                    introspectable="0">
      <source-position filename="eek-section.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SECTION_CLASS"
                    c:identifier="EEK_IS_SECTION_CLASS"
                    introspectable="0">
      <source-position filename="eek-section.h" line="38"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SERIALIZABLE"
                    c:identifier="EEK_IS_SERIALIZABLE"
                    introspectable="0">
      <source-position filename="eek-serializable.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SYMBOL"
                    c:identifier="EEK_IS_SYMBOL"
                    introspectable="0">
      <source-position filename="eek-symbol.h" line="64"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SYMBOL_CLASS"
                    c:identifier="EEK_IS_SYMBOL_CLASS"
                    introspectable="0">
      <source-position filename="eek-symbol.h" line="65"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TEXT"
                    c:identifier="EEK_IS_TEXT"
                    introspectable="0">
      <source-position filename="eek-text.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TEXT_CLASS"
                    c:identifier="EEK_IS_TEXT_CLASS"
                    introspectable="0">
      <source-position filename="eek-text.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_THEME"
                    c:identifier="EEK_IS_THEME"
                    introspectable="0">
      <source-position filename="eek-theme.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_THEME_CLASS"
                    c:identifier="EEK_IS_THEME_CLASS"
                    introspectable="0">
      <source-position filename="eek-theme.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_XML_LAYOUT"
                    c:identifier="EEK_IS_XML_LAYOUT"
                    introspectable="0">
      <source-position filename="eek-xml-layout.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_XML_LAYOUT_CLASS"
                    c:identifier="EEK_IS_XML_LAYOUT_CLASS"
                    introspectable="0">
      <source-position filename="eek-xml-layout.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="KEY" c:identifier="EEK_KEY" introspectable="0">
      <source-position filename="eek-key.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="KEYBOARD"
                    c:identifier="EEK_KEYBOARD"
                    introspectable="0">
      <source-position filename="eek-keyboard.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="KEYBOARD_CLASS"
                    c:identifier="EEK_KEYBOARD_CLASS"
                    introspectable="0">
      <source-position filename="eek-keyboard.h" line="37"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="KEYBOARD_GET_CLASS"
                    c:identifier="EEK_KEYBOARD_GET_CLASS"
                    introspectable="0">
      <source-position filename="eek-keyboard.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="KEYBOARD_H" value="1" c:type="EEK_KEYBOARD_H">
      <source-position filename="eek-keyboard.h" line="26"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="KEYSYM" c:identifier="EEK_KEYSYM" introspectable="0">
      <source-position filename="eek-keysym.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="KEYSYM_CLASS"
                    c:identifier="EEK_KEYSYM_CLASS"
                    introspectable="0">
      <source-position filename="eek-keysym.h" line="42"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="KEYSYM_GET_CLASS"
                    c:identifier="EEK_KEYSYM_GET_CLASS"
                    introspectable="0">
      <source-position filename="eek-keysym.h" line="45"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="KEYSYM_H" value="1" c:type="EEK_KEYSYM_H">
      <source-position filename="eek-keysym.h" line="26"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="KEY_CLASS"
                    c:identifier="EEK_KEY_CLASS"
                    introspectable="0">
      <source-position filename="eek-key.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="KEY_GET_CLASS"
                    c:identifier="EEK_KEY_GET_CLASS"
                    introspectable="0">
      <source-position filename="eek-key.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="KEY_H" value="1" c:type="EEK_KEY_H">
      <source-position filename="eek-key.h" line="26"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Key"
           c:symbol-prefix="key"
           c:type="EekKey"
           parent="Element"
           glib:type-name="EekKey"
           glib:get-type="eek_key_get_type"
           glib:type-struct="KeyClass">
      <doc xml:space="preserve"
           filename="eek-key.h"
           line="43">The #EekKey structure contains only private data and should only be
accessed using the provided API.</doc>
      <source-position filename="eek-key.h" line="79"/>
      <virtual-method name="cancelled">
        <source-position filename="eek-key.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="locked">
        <source-position filename="eek-key.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pressed">
        <source-position filename="eek-key.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="released">
        <source-position filename="eek-key.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unlocked">
        <source-position filename="eek-key.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_index" c:identifier="eek_key_get_index">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="601">Get the location of @key in #EekSection.</doc>
        <source-position filename="eek-key.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="603">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
          <parameter name="column"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="604">pointer where the column index of @key in #EekSection will be stored</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="row"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="605">pointer where the row index of @key in #EekSection will be stored</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_keycode"
              c:identifier="eek_key_get_keycode"
              glib:get-property="keycode">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="409">Get keycode of @key.</doc>
        <source-position filename="eek-key.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-key.c"
               line="414">keycode or %EEK_INVALID_KEYCODE on failure</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="411">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_oref"
              c:identifier="eek_key_get_oref"
              glib:get-property="oref">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="641">Get the outline id of @key.</doc>
        <source-position filename="eek-key.h" line="109"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-key.c"
               line="646">unsigned integer</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="643">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_symbol" c:identifier="eek_key_get_symbol">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="454">Get the current symbol of @key.</doc>
        <source-position filename="eek-key.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-key.c"
               line="459">the current #EekSymbol or %NULL on failure</doc>
          <type name="Symbol" c:type="EekSymbol*"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="456">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_symbol_at_index"
              c:identifier="eek_key_get_symbol_at_index">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="521">Get the symbol at (@group, @level) in the symbol matrix of @key.</doc>
        <source-position filename="eek-key.h" line="94"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-key.c"
               line="530">an #EekSymbol at (@group, @level), or %NULL</doc>
          <type name="Symbol" c:type="EekSymbol*"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="523">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="524">group index of the symbol matrix</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="525">level index of the symbol matrix</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="fallback_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="526">fallback group index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="fallback_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="527">fallback level index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_symbol_matrix"
              c:identifier="eek_key_get_symbol_matrix"
              glib:get-property="symbol-matrix">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="440">Get the symbol matrix of @key.</doc>
        <source-position filename="eek-key.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-key.c"
               line="445">#EekSymbolMatrix or %NULL</doc>
          <type name="SymbolMatrix" c:type="EekSymbolMatrix*"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="442">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_symbol_with_fallback"
              c:identifier="eek_key_get_symbol_with_fallback">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="467">Get the current symbol of @key.</doc>
        <source-position filename="eek-key.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-key.c"
               line="474">the current #EekSymbol or %NULL on failure</doc>
          <type name="Symbol" c:type="EekSymbol*"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="469">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
          <parameter name="fallback_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="470">fallback group index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="fallback_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="471">fallback level index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_locked" c:identifier="eek_key_is_locked">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="668">Return %TRUE if key is marked as locked.</doc>
        <source-position filename="eek-key.h" line="112"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="670">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_pressed" c:identifier="eek_key_is_pressed">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="655">Return %TRUE if key is marked as pressed.</doc>
        <source-position filename="eek-key.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="657">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_index" c:identifier="eek_key_set_index">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="574">Set the location of @key in #EekSection with @column and @row.</doc>
        <source-position filename="eek-key.h" line="100"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="576">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="577">column index of @key in #EekSection</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="row" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="578">row index of @key in #EekSection</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keycode"
              c:identifier="eek_key_set_keycode"
              glib:set-property="keycode">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="390">Set the keycode of @key to @keycode.  Since typically the keycode
value is used to find a key in a keyboard by calling
eek_keyboard_find_key_by_keycode, it is not necessarily the same as
the X keycode but it should be unique in the keyboard @key belongs
to.</doc>
        <source-position filename="eek-key.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="392">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="393">keycode</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_oref"
              c:identifier="eek_key_set_oref"
              glib:set-property="oref">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="623">Set the outline id of @key to @oref.</doc>
        <source-position filename="eek-key.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="625">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
          <parameter name="oref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="626">outline id of @key</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_symbol_matrix"
              c:identifier="eek_key_set_symbol_matrix"
              glib:set-property="symbol-matrix">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="423">Set the symbol matrix of @key to @matrix.</doc>
        <source-position filename="eek-key.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="425">an #EekKey</doc>
            <type name="Key" c:type="EekKey*"/>
          </instance-parameter>
          <parameter name="matrix" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-key.c"
                 line="426">an #EekSymbolMatrix</doc>
            <type name="SymbolMatrix" c:type="EekSymbolMatrix*"/>
          </parameter>
        </parameters>
      </method>
      <property name="column"
                writable="1"
                transfer-ownership="none"
                default-value="-1">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="255">The column index of #EekKey in the parent #EekSection.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="keycode"
                writable="1"
                transfer-ownership="none"
                setter="set_keycode"
                getter="get_keycode"
                default-value="0">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="231">The keycode of #EekKey.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="oref"
                writable="1"
                transfer-ownership="none"
                setter="set_oref"
                getter="get_oref"
                default-value="0">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="279">The outline id of #EekKey.</doc>
        <type name="gulong" c:type="gulong"/>
      </property>
      <property name="row"
                writable="1"
                transfer-ownership="none"
                default-value="-1">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="267">The row index of #EekKey in the parent #EekSection.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="symbol-matrix"
                writable="1"
                transfer-ownership="none"
                setter="set_symbol_matrix"
                getter="get_symbol_matrix">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="243">The symbol matrix of #EekKey.</doc>
        <type name="SymbolMatrix"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Element" c:type="EekElement"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="KeyPrivate" c:type="EekKeyPrivate*"/>
      </field>
      <glib:signal name="cancelled" when="last">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="363">The ::cancelled signal is emitted each time @key is shifted to
the cancelled state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="locked" when="first">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="327">The ::locked signal is emitted each time @key is shifted to
the locked state.  The class handler runs before signal
handlers to allow signal handlers to read the status of @key
with eek_key_is_locked().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="pressed" when="first">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="291">The ::pressed signal is emitted each time @key is shifted to
the pressed state.  The class handler runs before signal
handlers to allow signal handlers to read the status of @key
with eek_key_is_pressed().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="released" when="last">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="310">The ::released signal is emitted each time @key is shifted to
the released state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="unlocked" when="last">
        <doc xml:space="preserve"
             filename="eek-key.c"
             line="346">The ::unlocked signal is emitted each time @key is shifted to
the unlocked state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="KeyClass"
            c:type="EekKeyClass"
            glib:is-gtype-struct-for="Key">
      <source-position filename="eek-key.h" line="79"/>
      <field name="parent_class" readable="0" private="1">
        <type name="ElementClass" c:type="EekElementClass"/>
      </field>
      <field name="pressed">
        <callback name="pressed">
          <source-position filename="eek-key.h" line="74"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="released">
        <callback name="released">
          <source-position filename="eek-key.h" line="75"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="locked">
        <callback name="locked">
          <source-position filename="eek-key.h" line="76"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unlocked">
        <callback name="unlocked">
          <source-position filename="eek-key.h" line="77"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cancelled">
        <callback name="cancelled">
          <source-position filename="eek-key.h" line="78"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="KeyPrivate" c:type="EekKeyPrivate" disguised="1" opaque="1">
      <source-position filename="eek-key.h" line="41"/>
    </record>
    <class name="Keyboard"
           c:symbol-prefix="keyboard"
           c:type="EekKeyboard"
           parent="Container"
           glib:type-name="EekKeyboard"
           glib:get-type="eek_keyboard_get_type"
           glib:type-struct="KeyboardClass">
      <doc xml:space="preserve"
           filename="eek-keyboard.h"
           line="45">The #EekKeyboard structure contains only private data and should
only be accessed using the provided API.</doc>
      <source-position filename="eek-keyboard.h" line="107"/>
      <constructor name="new" c:identifier="eek_keyboard_new">
        <doc xml:space="preserve"
             filename="eek-layout.c"
             line="49">Create a new #EekKeyboard based on @layout.</doc>
        <source-position filename="eek-keyboard.h" line="127"/>
        <return-value transfer-ownership="full">
          <type name="Keyboard" c:type="EekKeyboard*"/>
        </return-value>
        <parameters>
          <parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-layout.c"
                 line="51">an #EekLayout</doc>
            <type name="Layout" c:type="EekLayout*"/>
          </parameter>
          <parameter name="initial_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-layout.c"
                 line="52">initial width of the keyboard</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="initial_height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-layout.c"
                 line="53">initial height of the keyboard</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="create_section"
                      invoker="create_section"
                      introspectable="0">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="582">Create an #EekSection instance and append it to @keyboard.  This
function is rarely called by application but called by #EekLayout
implementation.</doc>
        <source-position filename="eek-keyboard.h" line="80"/>
        <return-value>
          <type name="Section" c:type="EekSection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="find_key_by_keycode" invoker="find_key_by_keycode">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="597">Find an #EekKey whose keycode is @keycode.</doc>
        <source-position filename="eek-keyboard.h" line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-keyboard.c"
               line="603">#EekKey whose keycode is @keycode</doc>
          <type name="Key" c:type="EekKey*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="600">a keycode</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_cancelled">
        <source-position filename="eek-keyboard.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_locked">
        <source-position filename="eek-keyboard.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_pressed">
        <source-position filename="eek-keyboard.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_released">
        <source-position filename="eek-keyboard.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_unlocked">
        <source-position filename="eek-keyboard.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_outline" c:identifier="eek_keyboard_add_outline">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="700">Register an outline of @keyboard.</doc>
        <source-position filename="eek-keyboard.h" line="159"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-keyboard.c"
               line="706">an unsigned integer ID of the registered outline, for
later reference</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="702">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="outline" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="703">an #EekOutline</doc>
            <type name="Outline" c:type="EekOutline*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_section"
              c:identifier="eek_keyboard_create_section"
              introspectable="0">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="582">Create an #EekSection instance and append it to @keyboard.  This
function is rarely called by application but called by #EekLayout
implementation.</doc>
        <source-position filename="eek-keyboard.h" line="152"/>
        <return-value>
          <type name="Section" c:type="EekSection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="584">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="find_key_by_keycode"
              c:identifier="eek_keyboard_find_key_by_keycode">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="597">Find an #EekKey whose keycode is @keycode.</doc>
        <source-position filename="eek-keyboard.h" line="155"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-keyboard.c"
               line="603">#EekKey whose keycode is @keycode</doc>
          <type name="Key" c:type="EekKey*"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="599">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="600">a keycode</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alt_gr_mask"
              c:identifier="eek_keyboard_get_alt_gr_mask">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="802">Get modifier mask used as Alt_Gr.</doc>
        <source-position filename="eek-keyboard.h" line="178"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-keyboard.c"
               line="807">an #EekModifierType</doc>
          <type name="ModifierType" c:type="EekModifierType"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="804">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_layout"
              c:identifier="eek_keyboard_get_layout"
              glib:get-property="layout"
              introspectable="0">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="614">Get the layout used to create @keyboard.</doc>
        <source-position filename="eek-keyboard.h" line="130"/>
        <return-value>
          <doc xml:space="preserve"
               filename="eek-keyboard.c"
               line="619">an #EekLayout</doc>
          <type name="Layout" c:type="EekLayout*"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="616">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_locked_keys"
              c:identifier="eek_keyboard_get_locked_keys">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="831">Get locked keys.</doc>
        <source-position filename="eek-keyboard.h" line="183"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="eek-keyboard.c"
               line="836">A list
of locked keys.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="ModifierKey"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="833">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modifier_behavior"
              c:identifier="eek_keyboard_get_modifier_behavior"
              glib:get-property="modifier-behavior">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="663">Get the modifier handling mode of @keyboard.</doc>
        <source-position filename="eek-keyboard.h" line="144"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-keyboard.c"
               line="668">#EekModifierBehavior</doc>
          <type name="ModifierBehavior" c:type="EekModifierBehavior"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="665">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modifiers" c:identifier="eek_keyboard_get_modifiers">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="686">Get the current modifier status of @keyboard.</doc>
        <source-position filename="eek-keyboard.h" line="149"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-keyboard.c"
               line="691">#EekModifierType</doc>
          <type name="ModifierType" c:type="EekModifierType"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="688">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_outlines" c:identifier="eek_keyboard_get_n_outlines">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="744">Get the number of outlines defined in @keyboard.</doc>
        <source-position filename="eek-keyboard.h" line="166"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-keyboard.c"
               line="749">integer</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="746">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_num_lock_mask"
              c:identifier="eek_keyboard_get_num_lock_mask">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="773">Get modifier mask used as Num_Lock.</doc>
        <source-position filename="eek-keyboard.h" line="172"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-keyboard.c"
               line="778">an #EekModifierType</doc>
          <type name="ModifierType" c:type="EekModifierType"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="775">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_outline" c:identifier="eek_keyboard_get_outline">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="724">Get an outline associated with @oref in @keyboard.</doc>
        <source-position filename="eek-keyboard.h" line="163"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="eek-keyboard.c"
               line="730">an #EekOutline, which should not be released</doc>
          <type name="Outline" c:type="EekOutline*"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="726">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="oref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="727">ID of the outline</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_pressed_keys"
              c:identifier="eek_keyboard_get_pressed_keys">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="816">Get pressed keys.</doc>
        <source-position filename="eek-keyboard.h" line="181"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="eek-keyboard.c"
               line="821">A list of
pressed keys.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Key"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="818">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="eek_keyboard_get_size">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="628">Get the size of @keyboard.</doc>
        <source-position filename="eek-keyboard.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="630">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="631">width of @keyboard</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="632">height of @keyboard</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="output" c:identifier="eek_keyboard_output">
        <doc xml:space="preserve"
             filename="eek-xml.c"
             line="248">Convert @keyboard into the XML format and store it into @output.</doc>
        <source-position filename="eek-xml.h" line="34"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-xml.c"
                 line="250">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-xml.c"
                 line="251">a GString</doc>
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
          <parameter name="indent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-xml.c"
                 line="252">an integer</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_alt_gr_mask"
              c:identifier="eek_keyboard_set_alt_gr_mask">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="787">Set modifier mask used as Alt_Gr.</doc>
        <source-position filename="eek-keyboard.h" line="175"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="789">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="alt_gr_mask" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="790">an #EekModifierType</doc>
            <type name="ModifierType" c:type="EekModifierType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modifier_behavior"
              c:identifier="eek_keyboard_set_modifier_behavior"
              glib:set-property="modifier-behavior">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="648">Set the modifier handling mode of @keyboard.</doc>
        <source-position filename="eek-keyboard.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="650">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="modifier_behavior" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="651">modifier behavior of @keyboard</doc>
            <type name="ModifierBehavior" c:type="EekModifierBehavior"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modifiers" c:identifier="eek_keyboard_set_modifiers">
        <source-position filename="eek-keyboard.h" line="146"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="modifiers" transfer-ownership="none">
            <type name="ModifierType" c:type="EekModifierType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_num_lock_mask"
              c:identifier="eek_keyboard_set_num_lock_mask">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="758">Set modifier mask used as Num_Lock.</doc>
        <source-position filename="eek-keyboard.h" line="169"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="760">an #EekKeyboard</doc>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="num_lock_mask" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="761">an #EekModifierType</doc>
            <type name="ModifierType" c:type="EekModifierType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size" c:identifier="eek_keyboard_set_size">
        <source-position filename="eek-keyboard.h" line="136"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyboard" transfer-ownership="none">
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <property name="layout"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_layout">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="442">The layout used to create this #EekKeyboard.</doc>
        <type name="Layout"/>
      </property>
      <property name="modifier-behavior"
                writable="1"
                transfer-ownership="none"
                setter="set_modifier_behavior"
                getter="get_modifier_behavior"
                default-value="EEK_MODIFIER_BEHAVIOR_NONE">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="456">The modifier handling mode of #EekKeyboard.</doc>
        <type name="ModifierBehavior"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Container" c:type="EekContainer"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="KeyboardPrivate" c:type="EekKeyboardPrivate*"/>
      </field>
      <glib:signal name="key-cancelled" when="last">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="551">The ::key-cancelled signal is emitted each time a key in @keyboard
is shifted to the cancelled state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="554">an #EekKey</doc>
            <type name="Key"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="key-locked" when="last">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="511">The ::key-locked signal is emitted each time a key in @keyboard
is shifted to the locked state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="514">an #EekKey</doc>
            <type name="Key"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="key-pressed" when="last">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="471">The ::key-pressed signal is emitted each time a key in @keyboard
is shifted to the pressed state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="474">an #EekKey</doc>
            <type name="Key"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="key-released" when="last">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="491">The ::key-released signal is emitted each time a key in @keyboard
is shifted to the released state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="494">an #EekKey</doc>
            <type name="Key"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="key-unlocked" when="last">
        <doc xml:space="preserve"
             filename="eek-keyboard.c"
             line="531">The ::key-unlocked signal is emitted each time a key in @keyboard
is shifted to the unlocked state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="534">an #EekKey</doc>
            <type name="Key"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="KeyboardClass"
            c:type="EekKeyboardClass"
            glib:is-gtype-struct-for="Keyboard">
      <source-position filename="eek-keyboard.h" line="107"/>
      <field name="parent_class" readable="0" private="1">
        <type name="ContainerClass" c:type="EekContainerClass"/>
      </field>
      <field name="set_symbol_index" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="get_symbol_index" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="create_section" introspectable="0">
        <callback name="create_section" introspectable="0">
          <source-position filename="eek-keyboard.h" line="80"/>
          <return-value>
            <type name="Section" c:type="EekSection*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Keyboard" c:type="EekKeyboard*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="find_key_by_keycode">
        <callback name="find_key_by_keycode">
          <source-position filename="eek-keyboard.h" line="82"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keyboard.c"
                 line="603">#EekKey whose keycode is @keycode</doc>
            <type name="Key" c:type="EekKey*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Keyboard" c:type="EekKeyboard*"/>
            </parameter>
            <parameter name="keycode" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="eek-keyboard.c"
                   line="600">a keycode</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_pressed">
        <callback name="key_pressed">
          <source-position filename="eek-keyboard.h" line="86"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Keyboard" c:type="EekKeyboard*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_released">
        <callback name="key_released">
          <source-position filename="eek-keyboard.h" line="88"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Keyboard" c:type="EekKeyboard*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="symbol_index_changed" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="key_locked">
        <callback name="key_locked">
          <source-position filename="eek-keyboard.h" line="97"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Keyboard" c:type="EekKeyboard*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_unlocked">
        <callback name="key_unlocked">
          <source-position filename="eek-keyboard.h" line="99"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Keyboard" c:type="EekKeyboard*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_cancelled">
        <callback name="key_cancelled">
          <source-position filename="eek-keyboard.h" line="101"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Keyboard" c:type="EekKeyboard*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" fixed-size="21">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="KeyboardPrivate"
            c:type="EekKeyboardPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="eek-keyboard.h" line="43"/>
    </record>
    <class name="Keysym"
           c:symbol-prefix="keysym"
           c:type="EekKeysym"
           parent="Symbol"
           glib:type-name="EekKeysym"
           glib:get-type="eek_keysym_get_type"
           glib:type-struct="KeysymClass">
      <doc xml:space="preserve"
           filename="eek-keysym.h"
           line="50">The #EekKeysym structure contains only private data and should only
be accessed using the provided API.</doc>
      <source-position filename="eek-keysym.h" line="66"/>
      <implements name="Serializable"/>
      <constructor name="new" c:identifier="eek_keysym_new">
        <doc xml:space="preserve"
             filename="eek-keysym.c"
             line="300">Create an #EekKeysym with given X keysym value @xkeysym.</doc>
        <source-position filename="eek-keysym.h" line="69"/>
        <return-value transfer-ownership="full">
          <type name="Keysym" c:type="EekKeysym*"/>
        </return-value>
        <parameters>
          <parameter name="xkeysym" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keysym.c"
                 line="302">an X keysym value</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_name"
                   c:identifier="eek_keysym_new_from_name">
        <doc xml:space="preserve"
             filename="eek-keysym.c"
             line="312">Create an #EekKeysym with an X keysym value looked up by @name.</doc>
        <source-position filename="eek-keysym.h" line="72"/>
        <return-value transfer-ownership="full">
          <type name="Keysym" c:type="EekKeysym*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keysym.c"
                 line="314">an X keysym name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_modifier"
                   c:identifier="eek_keysym_new_with_modifier">
        <doc xml:space="preserve"
             filename="eek-keysym.c"
             line="214">Create an #EekKeysym with given X keysym value @xkeysym and
modifier @modifier_mask.</doc>
        <source-position filename="eek-keysym.h" line="73"/>
        <return-value transfer-ownership="full">
          <type name="Keysym" c:type="EekKeysym*"/>
        </return-value>
        <parameters>
          <parameter name="xkeysym" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keysym.c"
                 line="216">an X keysym value</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="modifier_mask" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keysym.c"
                 line="217">modifier assigned to @xkeysym</doc>
            <type name="ModifierType" c:type="EekModifierType"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_xkeysym" c:identifier="eek_keysym_get_xkeysym">
        <doc xml:space="preserve"
             filename="eek-keysym.c"
             line="336">Get an X keysym value associated with @keysym</doc>
        <source-position filename="eek-keysym.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="keysym" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-keysym.c"
                 line="338">an #EekKeysym</doc>
            <type name="Keysym" c:type="EekKeysym*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent" readable="0" private="1">
        <type name="Symbol" c:type="EekSymbol"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="KeysymPrivate" c:type="EekKeysymPrivate*"/>
      </field>
    </class>
    <record name="KeysymClass"
            c:type="EekKeysymClass"
            glib:is-gtype-struct-for="Keysym">
      <source-position filename="eek-keysym.h" line="66"/>
      <field name="parent_class" readable="0" private="1">
        <type name="SymbolClass" c:type="EekSymbolClass"/>
      </field>
    </record>
    <record name="KeysymPrivate"
            c:type="EekKeysymPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="eek-keysym.h" line="48"/>
    </record>
    <function-macro name="LAYOUT" c:identifier="EEK_LAYOUT" introspectable="0">
      <source-position filename="eek-layout.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LAYOUT_CLASS"
                    c:identifier="EEK_LAYOUT_CLASS"
                    introspectable="0">
      <source-position filename="eek-layout.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LAYOUT_GET_CLASS"
                    c:identifier="EEK_LAYOUT_GET_CLASS"
                    introspectable="0">
      <source-position filename="eek-layout.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="LAYOUT_H" value="1" c:type="EEK_LAYOUT_H">
      <source-position filename="eek-layout.h" line="26"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Layout"
           c:symbol-prefix="layout"
           c:type="EekLayout"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="EekLayout"
           glib:get-type="eek_layout_get_type"
           glib:type-struct="LayoutClass">
      <source-position filename="eek-layout.h" line="66"/>
      <virtual-method name="create_keyboard" introspectable="0">
        <source-position filename="eek-layout.h" line="59"/>
        <return-value>
          <type name="Keyboard" c:type="EekKeyboard*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Layout" c:type="EekLayout*"/>
          </instance-parameter>
          <parameter name="initial_width" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="initial_height" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </virtual-method>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="LayoutClass"
            c:type="EekLayoutClass"
            glib:is-gtype-struct-for="Layout">
      <source-position filename="eek-layout.h" line="66"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="create_keyboard" introspectable="0">
        <callback name="create_keyboard" introspectable="0">
          <source-position filename="eek-layout.h" line="59"/>
          <return-value>
            <type name="Keyboard" c:type="EekKeyboard*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Layout" c:type="EekLayout*"/>
            </parameter>
            <parameter name="initial_width" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
            <parameter name="initial_height" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" fixed-size="24">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <enumeration name="ModifierBehavior"
                 glib:type-name="EekModifierBehavior"
                 glib:get-type="eek_modifier_behavior_get_type"
                 c:type="EekModifierBehavior">
      <doc xml:space="preserve"
           filename="eek-types.h"
           line="55">Modifier handling mode.</doc>
      <member name="none"
              value="0"
              c:identifier="EEK_MODIFIER_BEHAVIOR_NONE"
              glib:nick="none"
              glib:name="EEK_MODIFIER_BEHAVIOR_NONE">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="57">do nothing when a modifier key is pressed</doc>
      </member>
      <member name="lock"
              value="1"
              c:identifier="EEK_MODIFIER_BEHAVIOR_LOCK"
              glib:nick="lock"
              glib:name="EEK_MODIFIER_BEHAVIOR_LOCK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="58">toggle the modifier status each time a
modifier key are pressed</doc>
      </member>
      <member name="latch"
              value="2"
              c:identifier="EEK_MODIFIER_BEHAVIOR_LATCH"
              glib:nick="latch"
              glib:name="EEK_MODIFIER_BEHAVIOR_LATCH">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="60">enable the modifier when a modifier
key is pressed and keep it enabled until any key is pressed.</doc>
      </member>
    </enumeration>
    <record name="ModifierKey" c:type="EekModifierKey">
      <doc xml:space="preserve"
           filename="eek-keyboard.h"
           line="109">Entry which associates modifier mask to a key.  This is returned by
eek_keyboard_get_locked_keys().</doc>
      <source-position filename="eek-keyboard.h" line="121"/>
      <field name="modifiers" writable="1">
        <doc xml:space="preserve"
             filename="eek-keyboard.h"
             line="111">an #EekModifierType which @key triggers</doc>
        <type name="ModifierType" c:type="EekModifierType"/>
      </field>
      <field name="key" writable="1">
        <doc xml:space="preserve"
             filename="eek-keyboard.h"
             line="112">an #EekKey</doc>
        <type name="Key" c:type="EekKey*"/>
      </field>
      <method name="copy"
              c:identifier="eek_modifier_key_copy"
              introspectable="0">
        <source-position filename="eek-keyboard.h" line="186"/>
        <return-value>
          <type name="ModifierKey" c:type="EekModifierKey*"/>
        </return-value>
        <parameters>
          <instance-parameter name="modkey" transfer-ownership="none">
            <type name="ModifierKey" c:type="EekModifierKey*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="eek_modifier_key_free">
        <source-position filename="eek-keyboard.h" line="188"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="modkey" transfer-ownership="none">
            <type name="ModifierKey" c:type="EekModifierKey*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <bitfield name="ModifierType"
              glib:type-name="EekModifierType"
              glib:get-type="eek_modifier_type_get_type"
              c:type="EekModifierType">
      <member name="shift_mask"
              value="1"
              c:identifier="EEK_SHIFT_MASK"
              glib:nick="shift-mask"
              glib:name="EEK_SHIFT_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="73">the Shift key.</doc>
      </member>
      <member name="lock_mask"
              value="2"
              c:identifier="EEK_LOCK_MASK"
              glib:nick="lock-mask"
              glib:name="EEK_LOCK_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="74">a Lock key (depending on the modifier mapping of the
 X server this may either be CapsLock or ShiftLock).</doc>
      </member>
      <member name="control_mask"
              value="4"
              c:identifier="EEK_CONTROL_MASK"
              glib:nick="control-mask"
              glib:name="EEK_CONTROL_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="76">the Control key.</doc>
      </member>
      <member name="mod1_mask"
              value="8"
              c:identifier="EEK_MOD1_MASK"
              glib:nick="mod1-mask"
              glib:name="EEK_MOD1_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="77">the fourth modifier key (it depends on the modifier
 mapping of the X server which key is interpreted as this modifier, but
 normally it is the Alt key).</doc>
      </member>
      <member name="mod2_mask"
              value="16"
              c:identifier="EEK_MOD2_MASK"
              glib:nick="mod2-mask"
              glib:name="EEK_MOD2_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="80">the fifth modifier key (it depends on the modifier
 mapping of the X server which key is interpreted as this modifier).</doc>
      </member>
      <member name="mod3_mask"
              value="32"
              c:identifier="EEK_MOD3_MASK"
              glib:nick="mod3-mask"
              glib:name="EEK_MOD3_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="82">the sixth modifier key (it depends on the modifier
 mapping of the X server which key is interpreted as this modifier).</doc>
      </member>
      <member name="mod4_mask"
              value="64"
              c:identifier="EEK_MOD4_MASK"
              glib:nick="mod4-mask"
              glib:name="EEK_MOD4_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="84">the seventh modifier key (it depends on the modifier
 mapping of the X server which key is interpreted as this modifier).</doc>
      </member>
      <member name="mod5_mask"
              value="128"
              c:identifier="EEK_MOD5_MASK"
              glib:nick="mod5-mask"
              glib:name="EEK_MOD5_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="86">the eighth modifier key (it depends on the modifier
 mapping of the X server which key is interpreted as this modifier).</doc>
      </member>
      <member name="button1_mask"
              value="256"
              c:identifier="EEK_BUTTON1_MASK"
              glib:nick="button1-mask"
              glib:name="EEK_BUTTON1_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="88">the first mouse button.</doc>
      </member>
      <member name="button2_mask"
              value="512"
              c:identifier="EEK_BUTTON2_MASK"
              glib:nick="button2-mask"
              glib:name="EEK_BUTTON2_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="89">the second mouse button.</doc>
      </member>
      <member name="button3_mask"
              value="1024"
              c:identifier="EEK_BUTTON3_MASK"
              glib:nick="button3-mask"
              glib:name="EEK_BUTTON3_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="90">the third mouse button.</doc>
      </member>
      <member name="button4_mask"
              value="2048"
              c:identifier="EEK_BUTTON4_MASK"
              glib:nick="button4-mask"
              glib:name="EEK_BUTTON4_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="91">the fourth mouse button.</doc>
      </member>
      <member name="button5_mask"
              value="4096"
              c:identifier="EEK_BUTTON5_MASK"
              glib:nick="button5-mask"
              glib:name="EEK_BUTTON5_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="92">the fifth mouse button.</doc>
      </member>
      <member name="super_mask"
              value="67108864"
              c:identifier="EEK_SUPER_MASK"
              glib:nick="super-mask"
              glib:name="EEK_SUPER_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="93">the Super modifier. Since 2.10</doc>
      </member>
      <member name="hyper_mask"
              value="134217728"
              c:identifier="EEK_HYPER_MASK"
              glib:nick="hyper-mask"
              glib:name="EEK_HYPER_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="94">the Hyper modifier. Since 2.10</doc>
      </member>
      <member name="meta_mask"
              value="268435456"
              c:identifier="EEK_META_MASK"
              glib:nick="meta-mask"
              glib:name="EEK_META_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="95">the Meta modifier. Since 2.10</doc>
      </member>
      <member name="release_mask"
              value="1073741824"
              c:identifier="EEK_RELEASE_MASK"
              glib:nick="release-mask"
              glib:name="EEK_RELEASE_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="96">not used in EEK itself. GTK+ uses it to differentiate
 between (keyval, modifiers) pairs from key press and release events.</doc>
      </member>
      <member name="modifier_mask"
              value="1543512063"
              c:identifier="EEK_MODIFIER_MASK"
              glib:nick="modifier-mask"
              glib:name="EEK_MODIFIER_MASK">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="98">a mask covering all modifier types.</doc>
      </member>
    </bitfield>
    <enumeration name="Orientation"
                 glib:type-name="EekOrientation"
                 glib:get-type="eek_orientation_get_type"
                 c:type="EekOrientation">
      <doc xml:space="preserve"
           filename="eek-types.h"
           line="40">Orientation of rows in sections.  Elements in a row will be
arranged with the specified orientation.</doc>
      <member name="vertical"
              value="0"
              c:identifier="EEK_ORIENTATION_VERTICAL"
              glib:nick="vertical"
              glib:name="EEK_ORIENTATION_VERTICAL">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="42">the elements will be arranged vertically</doc>
      </member>
      <member name="horizontal"
              value="1"
              c:identifier="EEK_ORIENTATION_HORIZONTAL"
              glib:nick="horizontal"
              glib:name="EEK_ORIENTATION_HORIZONTAL">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="43">the elements will be arranged horizontally</doc>
      </member>
      <member name="invalid"
              value="-1"
              c:identifier="EEK_ORIENTATION_INVALID"
              glib:nick="invalid"
              glib:name="EEK_ORIENTATION_INVALID">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="44">used for error reporting</doc>
      </member>
    </enumeration>
    <record name="Outline"
            c:type="EekOutline"
            glib:type-name="EekOutline"
            glib:get-type="eek_outline_get_type"
            c:symbol-prefix="outline">
      <doc xml:space="preserve"
           filename="eek-types.h"
           line="202">2D rounded polygon used to draw key shape</doc>
      <source-position filename="eek-types.h" line="216"/>
      <field name="corner_radius" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="204">radius of corners of rounded polygon</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="points" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="205">an array of points represents a polygon</doc>
        <type name="Point" c:type="EekPoint*"/>
      </field>
      <field name="num_points" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="206">the length of @points</doc>
        <type name="gint" c:type="gint"/>
      </field>
      <method name="copy" c:identifier="eek_outline_copy">
        <source-position filename="eek-types.h" line="219"/>
        <return-value transfer-ownership="full">
          <type name="Outline" c:type="EekOutline*"/>
        </return-value>
        <parameters>
          <instance-parameter name="outline" transfer-ownership="none">
            <type name="Outline" c:type="const EekOutline*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="eek_outline_free">
        <source-position filename="eek-types.h" line="220"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="outline" transfer-ownership="none">
            <type name="Outline" c:type="EekOutline*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="Point"
            c:type="EekPoint"
            glib:type-name="EekPoint"
            glib:get-type="eek_point_get_type"
            c:symbol-prefix="point">
      <doc xml:space="preserve"
           filename="eek-types.h"
           line="153">2D vertex</doc>
      <source-position filename="eek-types.h" line="166"/>
      <field name="x" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="155">X coordinate of the point</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="y" writable="1">
        <doc xml:space="preserve"
             filename="eek-types.h"
             line="156">Y coordinate of the point</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <method name="copy" c:identifier="eek_point_copy">
        <source-position filename="eek-types.h" line="169"/>
        <return-value transfer-ownership="full">
          <type name="Point" c:type="EekPoint*"/>
        </return-value>
        <parameters>
          <instance-parameter name="point" transfer-ownership="none">
            <type name="Point" c:type="const EekPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="eek_point_free">
        <source-position filename="eek-types.h" line="170"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="point" transfer-ownership="none">
            <type name="Point" c:type="EekPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="rotate" c:identifier="eek_point_rotate">
        <source-position filename="eek-types.h" line="171"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="point" transfer-ownership="none">
            <type name="Point" c:type="EekPoint*"/>
          </instance-parameter>
          <parameter name="angle" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <function-macro name="SECTION"
                    c:identifier="EEK_SECTION"
                    introspectable="0">
      <source-position filename="eek-section.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SECTION_CLASS"
                    c:identifier="EEK_SECTION_CLASS"
                    introspectable="0">
      <source-position filename="eek-section.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SECTION_GET_CLASS"
                    c:identifier="EEK_SECTION_GET_CLASS"
                    introspectable="0">
      <source-position filename="eek-section.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="SECTION_H" value="1" c:type="EEK_SECTION_H">
      <source-position filename="eek-section.h" line="26"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="SERIALIZABLE"
                    c:identifier="EEK_SERIALIZABLE"
                    introspectable="0">
      <source-position filename="eek-serializable.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SERIALIZABLE_GET_IFACE"
                    c:identifier="EEK_SERIALIZABLE_GET_IFACE"
                    introspectable="0">
      <source-position filename="eek-serializable.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="SERIALIZABLE_H" value="1" c:type="EEK_SERIALIZABLE_H">
      <source-position filename="eek-serializable.h" line="24"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="SYMBOL" c:identifier="EEK_SYMBOL" introspectable="0">
      <source-position filename="eek-symbol.h" line="62"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SYMBOL_CLASS"
                    c:identifier="EEK_SYMBOL_CLASS"
                    introspectable="0">
      <source-position filename="eek-symbol.h" line="63"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SYMBOL_GET_CLASS"
                    c:identifier="EEK_SYMBOL_GET_CLASS"
                    introspectable="0">
      <source-position filename="eek-symbol.h" line="66"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="SYMBOL_H" value="1" c:type="EEK_SYMBOL_H">
      <source-position filename="eek-symbol.h" line="26"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="SYMBOL_MATRIX_H" value="1" c:type="EEK_SYMBOL_MATRIX_H">
      <source-position filename="eek-symbol-matrix.h" line="21"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Section"
           c:symbol-prefix="section"
           c:type="EekSection"
           parent="Container"
           glib:type-name="EekSection"
           glib:get-type="eek_section_get_type"
           glib:type-struct="SectionClass">
      <doc xml:space="preserve"
           filename="eek-section.h"
           line="44">The #EekSection structure contains only private data and should
only be accessed using the provided API.</doc>
      <source-position filename="eek-section.h" line="105"/>
      <virtual-method name="add_row" invoker="add_row">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="507">Add a row which has @num_columns columns and whose orientation is
@orientation to @section.</doc>
        <source-position filename="eek-section.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="num_columns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="510">the number of column in the row</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="orientation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="511">#EekOrientation of the row</doc>
            <type name="Orientation" c:type="EekOrientation"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_key"
                      invoker="create_key"
                      introspectable="0">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="549">Create an #EekKey instance and append it to @section.  This
function is rarely called by application but called by #EekLayout
implementation.</doc>
        <source-position filename="eek-section.h" line="85"/>
        <return-value>
          <type name="Key" c:type="EekKey*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="552">a keycode</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="row" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="554">the row index of the key</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="553">the column index of the key</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_n_rows" invoker="get_n_rows">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="494">Get the number of rows in @section.</doc>
        <source-position filename="eek-section.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_row" invoker="get_row">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="527">Get the information about the @index-th row in @section.</doc>
        <source-position filename="eek-section.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="530">the index of row</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="num_columns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="531">pointer where the number of column in the row will be stored</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="orientation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="532">pointer where #EekOrientation of the row will be stored</doc>
            <type name="Orientation" c:type="EekOrientation*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_cancelled">
        <source-position filename="eek-section.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_locked">
        <source-position filename="eek-section.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_pressed">
        <source-position filename="eek-section.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_released">
        <source-position filename="eek-section.h" line="93"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_unlocked">
        <source-position filename="eek-section.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="Key" c:type="EekKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_row" c:identifier="eek_section_add_row">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="507">Add a row which has @num_columns columns and whose orientation is
@orientation to @section.</doc>
        <source-position filename="eek-section.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="section" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="509">an #EekSection</doc>
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="num_columns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="510">the number of column in the row</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="orientation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="511">#EekOrientation of the row</doc>
            <type name="Orientation" c:type="EekOrientation"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_key"
              c:identifier="eek_section_create_key"
              introspectable="0">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="549">Create an #EekKey instance and append it to @section.  This
function is rarely called by application but called by #EekLayout
implementation.</doc>
        <source-position filename="eek-section.h" line="122"/>
        <return-value>
          <type name="Key" c:type="EekKey*"/>
        </return-value>
        <parameters>
          <instance-parameter name="section" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="551">an #EekSection</doc>
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="552">a keycode</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="553">the column index of the key</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="row" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="554">the row index of the key</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_key_by_keycode"
              c:identifier="eek_section_find_key_by_keycode"
              introspectable="0">
        <source-position filename="eek-section.h" line="127"/>
        <return-value>
          <type name="Key" c:type="EekKey*"/>
        </return-value>
        <parameters>
          <instance-parameter name="section" transfer-ownership="none">
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="keycode" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_angle"
              c:identifier="eek_section_get_angle"
              glib:get-property="angle">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="481">Get rotation angle of @section.</doc>
        <source-position filename="eek-section.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="section" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="483">an #EekSection</doc>
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_rows" c:identifier="eek_section_get_n_rows">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="494">Get the number of rows in @section.</doc>
        <source-position filename="eek-section.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="section" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="496">an #EekSection</doc>
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_row" c:identifier="eek_section_get_row">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="527">Get the information about the @index-th row in @section.</doc>
        <source-position filename="eek-section.h" line="117"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="section" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="529">an #EekSection</doc>
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="530">the index of row</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="num_columns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="531">pointer where the number of column in the row will be stored</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="orientation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="532">pointer where #EekOrientation of the row will be stored</doc>
            <type name="Orientation" c:type="EekOrientation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_angle"
              c:identifier="eek_section_set_angle"
              glib:set-property="angle">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="463">Set rotation angle of @section to @angle.</doc>
        <source-position filename="eek-section.h" line="109"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="section" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="465">an #EekSection</doc>
            <type name="Section" c:type="EekSection*"/>
          </instance-parameter>
          <parameter name="angle" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="466">rotation angle</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="angle"
                writable="1"
                transfer-ownership="none"
                setter="set_angle"
                getter="get_angle"
                default-value="0">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="342">The rotation angle of #EekSection.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Container" c:type="EekContainer"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="SectionPrivate" c:type="EekSectionPrivate*"/>
      </field>
      <glib:signal name="key-cancelled" when="last">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="436">The ::key-cancelled signal is emitted each time a key in @section
is shifted to the cancelled state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="439">an #EekKey</doc>
            <type name="Key"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="key-locked" when="last">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="396">The ::key-locked signal is emitted each time a key in @section
is shifted to the locked state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="399">an #EekKey</doc>
            <type name="Key"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="key-pressed" when="last">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="356">The ::key-pressed signal is emitted each time a key in @section
is shifted to the pressed state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="359">an #EekKey</doc>
            <type name="Key"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="key-released" when="last">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="376">The ::key-released signal is emitted each time a key in @section
is shifted to the released state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="379">an #EekKey</doc>
            <type name="Key"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="key-unlocked" when="last">
        <doc xml:space="preserve"
             filename="eek-section.c"
             line="416">The ::key-unlocked signal is emitted each time a key in @section
is shifted to the unlocked state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-section.c"
                 line="419">an #EekKey</doc>
            <type name="Key"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="SectionClass"
            c:type="EekSectionClass"
            glib:is-gtype-struct-for="Section">
      <source-position filename="eek-section.h" line="105"/>
      <field name="parent_class" readable="0" private="1">
        <type name="ContainerClass" c:type="EekContainerClass"/>
      </field>
      <field name="get_n_rows">
        <callback name="get_n_rows">
          <source-position filename="eek-section.h" line="76"/>
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Section" c:type="EekSection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_row">
        <callback name="add_row">
          <source-position filename="eek-section.h" line="77"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Section" c:type="EekSection*"/>
            </parameter>
            <parameter name="num_columns" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="eek-section.c"
                   line="510">the number of column in the row</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="orientation" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="eek-section.c"
                   line="511">#EekOrientation of the row</doc>
              <type name="Orientation" c:type="EekOrientation"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_row">
        <callback name="get_row">
          <source-position filename="eek-section.h" line="80"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Section" c:type="EekSection*"/>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="eek-section.c"
                   line="530">the index of row</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="num_columns" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="eek-section.c"
                   line="531">pointer where the number of column in the row will be stored</doc>
              <type name="gint" c:type="gint*"/>
            </parameter>
            <parameter name="orientation" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="eek-section.c"
                   line="532">pointer where #EekOrientation of the row will be stored</doc>
              <type name="Orientation" c:type="EekOrientation*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_key" introspectable="0">
        <callback name="create_key" introspectable="0">
          <source-position filename="eek-section.h" line="85"/>
          <return-value>
            <type name="Key" c:type="EekKey*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Section" c:type="EekSection*"/>
            </parameter>
            <parameter name="keycode" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="eek-section.c"
                   line="552">a keycode</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="row" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="eek-section.c"
                   line="554">the row index of the key</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="column" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="eek-section.c"
                   line="553">the column index of the key</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_pressed">
        <callback name="key_pressed">
          <source-position filename="eek-section.h" line="91"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Section" c:type="EekSection*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_released">
        <callback name="key_released">
          <source-position filename="eek-section.h" line="93"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Section" c:type="EekSection*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_locked">
        <callback name="key_locked">
          <source-position filename="eek-section.h" line="95"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Section" c:type="EekSection*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_unlocked">
        <callback name="key_unlocked">
          <source-position filename="eek-section.h" line="97"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Section" c:type="EekSection*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_cancelled">
        <callback name="key_cancelled">
          <source-position filename="eek-section.h" line="99"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Section" c:type="EekSection*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="Key" c:type="EekKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" fixed-size="19">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="SectionPrivate"
            c:type="EekSectionPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="eek-section.h" line="42"/>
    </record>
    <interface name="Serializable"
               c:symbol-prefix="serializable"
               c:type="EekSerializable"
               glib:type-name="EekSerializable"
               glib:get-type="eek_serializable_get_type"
               glib:type-struct="SerializableIface">
      <source-position filename="eek-serializable.h" line="58"/>
      <function name="deserialize"
                c:identifier="eek_serializable_deserialize"
                introspectable="0">
        <source-position filename="eek-serializable.h" line="63"/>
        <return-value>
          <type name="Serializable" c:type="EekSerializable*"/>
        </return-value>
        <parameters>
          <parameter name="variant" transfer-ownership="none">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="deserialize">
        <source-position filename="eek-serializable.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="Serializable" c:type="EekSerializable*"/>
          </instance-parameter>
          <parameter name="variant" transfer-ownership="none">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="serialize">
        <source-position filename="eek-serializable.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="Serializable" c:type="EekSerializable*"/>
          </instance-parameter>
          <parameter name="builder" transfer-ownership="none">
            <type name="GLib.VariantBuilder" c:type="GVariantBuilder*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="serialize" c:identifier="eek_serializable_serialize">
        <source-position filename="eek-serializable.h" line="62"/>
        <return-value transfer-ownership="full">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="Serializable" c:type="EekSerializable*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="SerializableIface"
            c:type="EekSerializableIface"
            glib:is-gtype-struct-for="Serializable">
      <source-position filename="eek-serializable.h" line="58"/>
      <field name="parent_iface" readable="0" private="1">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="serialize">
        <callback name="serialize">
          <source-position filename="eek-serializable.h" line="49"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="Serializable" c:type="EekSerializable*"/>
            </parameter>
            <parameter name="builder" transfer-ownership="none">
              <type name="GLib.VariantBuilder" c:type="GVariantBuilder*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="deserialize">
        <callback name="deserialize">
          <source-position filename="eek-serializable.h" line="51"/>
          <return-value transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="Serializable" c:type="EekSerializable*"/>
            </parameter>
            <parameter name="variant" transfer-ownership="none">
              <type name="GLib.Variant" c:type="GVariant*"/>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <type name="gsize" c:type="gsize"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" fixed-size="24">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="Symbol"
           c:symbol-prefix="symbol"
           c:type="EekSymbol"
           parent="GObject.Object"
           glib:type-name="EekSymbol"
           glib:get-type="eek_symbol_get_type"
           glib:type-struct="SymbolClass">
      <doc xml:space="preserve"
           filename="eek-symbol.h"
           line="71">The #EekSymbol structure contains only private data and should only
be accessed using the provided API.</doc>
      <source-position filename="eek-symbol.h" line="90"/>
      <implements name="Serializable"/>
      <constructor name="new" c:identifier="eek_symbol_new">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="250">Create a new #EekSymbol with @name.</doc>
        <source-position filename="eek-symbol.h" line="94"/>
        <return-value transfer-ownership="full">
          <type name="Symbol" c:type="EekSymbol*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="252">name of the symbol</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_category"
              c:identifier="eek_symbol_get_category"
              glib:get-property="category">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="359">Get symbol category of @symbol.</doc>
        <source-position filename="eek-symbol.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="SymbolCategory" c:type="EekSymbolCategory"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="361">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="eek_symbol_get_icon_name"
              glib:get-property="icon-name">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="445">Get the icon name of @symbol.</doc>
        <source-position filename="eek-symbol.h" line="110"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="447">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_label"
              c:identifier="eek_symbol_get_label"
              glib:get-property="label">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="321">Get the label text of @symbol.</doc>
        <source-position filename="eek-symbol.h" line="100"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="323">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modifier_mask"
              c:identifier="eek_symbol_get_modifier_mask"
              glib:get-property="modifier-mask">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="395">Get modifier mask that @symbol can trigger.</doc>
        <source-position filename="eek-symbol.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="ModifierType" c:type="EekModifierType"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="397">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="eek_symbol_get_name"
              glib:get-property="name">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="282">Get the name of @symbol.</doc>
        <source-position filename="eek-symbol.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="284">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tooltip"
              c:identifier="eek_symbol_get_tooltip"
              glib:get-property="tooltip">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="484">Get the tooltip text of @symbol.</doc>
        <source-position filename="eek-symbol.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="486">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_modifier" c:identifier="eek_symbol_is_modifier">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="412">Check if @symbol is a modifier.</doc>
        <source-position filename="eek-symbol.h" line="107"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-symbol.c"
               line="417">%TRUE if @symbol is a modifier.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="414">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_category"
              c:identifier="eek_symbol_set_category"
              glib:set-property="category">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="340">Set symbol category of @symbol to @category.</doc>
        <source-position filename="eek-symbol.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="342">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
          <parameter name="category" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="343">an #EekSymbolCategory</doc>
            <type name="SymbolCategory" c:type="EekSymbolCategory"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_name"
              c:identifier="eek_symbol_set_icon_name"
              glib:set-property="icon-name">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="425">Set the icon name of @symbol to @icon_name.</doc>
        <source-position filename="eek-symbol.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="427">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="428">icon name of @symbol</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label"
              c:identifier="eek_symbol_set_label"
              glib:set-property="label">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="301">Set the label text of @symbol to @label.</doc>
        <source-position filename="eek-symbol.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="303">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="304">label text of @symbol</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modifier_mask"
              c:identifier="eek_symbol_set_modifier_mask"
              glib:set-property="modifier-mask">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="376">Set modifier mask that @symbol can trigger.</doc>
        <source-position filename="eek-symbol.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="378">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
          <parameter name="mask" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="379">an #EekModifierType</doc>
            <type name="ModifierType" c:type="EekModifierType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="eek_symbol_set_name"
              glib:set-property="name">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="262">Set the name of @symbol to @name.</doc>
        <source-position filename="eek-symbol.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="264">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="265">name of the symbol</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip"
              c:identifier="eek_symbol_set_tooltip"
              glib:set-property="tooltip">
        <doc xml:space="preserve"
             filename="eek-symbol.c"
             line="464">Set the tooltip text of @symbol to @tooltip.</doc>
        <source-position filename="eek-symbol.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="466">an #EekSymbol</doc>
            <type name="Symbol" c:type="EekSymbol*"/>
          </instance-parameter>
          <parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol.c"
                 line="467">icon name of @symbol</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="category"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_category"
                getter="get_category"
                default-value="EEK_SYMBOL_CATEGORY_UNKNOWN">
        <type name="SymbolCategory"/>
      </property>
      <property name="icon-name"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_icon_name"
                getter="get_icon_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="label"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_label"
                getter="get_label"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="modifier-mask"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_modifier_mask"
                getter="get_modifier_mask"
                default-value="0">
        <type name="ModifierType"/>
      </property>
      <property name="name"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_name"
                getter="get_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="tooltip"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_tooltip"
                getter="get_tooltip"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="SymbolPrivate" c:type="EekSymbolPrivate*"/>
      </field>
    </class>
    <enumeration name="SymbolCategory"
                 glib:type-name="EekSymbolCategory"
                 glib:get-type="eek_symbol_category_get_type"
                 c:type="EekSymbolCategory">
      <doc xml:space="preserve"
           filename="eek-symbol.h"
           line="32">Category of the key symbols.</doc>
      <member name="letter"
              value="0"
              c:identifier="EEK_SYMBOL_CATEGORY_LETTER"
              glib:nick="letter"
              glib:name="EEK_SYMBOL_CATEGORY_LETTER">
        <doc xml:space="preserve"
             filename="eek-symbol.h"
             line="34">the symbol represents an alphabet letter</doc>
      </member>
      <member name="function"
              value="1"
              c:identifier="EEK_SYMBOL_CATEGORY_FUNCTION"
              glib:nick="function"
              glib:name="EEK_SYMBOL_CATEGORY_FUNCTION">
        <doc xml:space="preserve"
             filename="eek-symbol.h"
             line="35">the symbol represents a function</doc>
      </member>
      <member name="keyname"
              value="2"
              c:identifier="EEK_SYMBOL_CATEGORY_KEYNAME"
              glib:nick="keyname"
              glib:name="EEK_SYMBOL_CATEGORY_KEYNAME">
        <doc xml:space="preserve"
             filename="eek-symbol.h"
             line="36">the symbol does not have meaning but
have a name</doc>
      </member>
      <member name="user0"
              value="3"
              c:identifier="EEK_SYMBOL_CATEGORY_USER0"
              glib:nick="user0"
              glib:name="EEK_SYMBOL_CATEGORY_USER0">
        <doc xml:space="preserve"
             filename="eek-symbol.h"
             line="38">reserved for future use</doc>
      </member>
      <member name="user1"
              value="4"
              c:identifier="EEK_SYMBOL_CATEGORY_USER1"
              glib:nick="user1"
              glib:name="EEK_SYMBOL_CATEGORY_USER1">
        <doc xml:space="preserve"
             filename="eek-symbol.h"
             line="39">reserved for future use</doc>
      </member>
      <member name="user2"
              value="5"
              c:identifier="EEK_SYMBOL_CATEGORY_USER2"
              glib:nick="user2"
              glib:name="EEK_SYMBOL_CATEGORY_USER2">
        <doc xml:space="preserve"
             filename="eek-symbol.h"
             line="40">reserved for future use</doc>
      </member>
      <member name="user3"
              value="6"
              c:identifier="EEK_SYMBOL_CATEGORY_USER3"
              glib:nick="user3"
              glib:name="EEK_SYMBOL_CATEGORY_USER3">
        <doc xml:space="preserve"
             filename="eek-symbol.h"
             line="41">reserved for future use</doc>
      </member>
      <member name="user4"
              value="7"
              c:identifier="EEK_SYMBOL_CATEGORY_USER4"
              glib:nick="user4"
              glib:name="EEK_SYMBOL_CATEGORY_USER4">
        <doc xml:space="preserve"
             filename="eek-symbol.h"
             line="42">reserved for future use</doc>
      </member>
      <member name="unknown"
              value="8"
              c:identifier="EEK_SYMBOL_CATEGORY_UNKNOWN"
              glib:nick="unknown"
              glib:name="EEK_SYMBOL_CATEGORY_UNKNOWN">
        <doc xml:space="preserve"
             filename="eek-symbol.h"
             line="43">used for error reporting</doc>
      </member>
      <member name="last"
              value="8"
              c:identifier="EEK_SYMBOL_CATEGORY_LAST"
              glib:nick="last"
              glib:name="EEK_SYMBOL_CATEGORY_LAST">
        <doc xml:space="preserve"
             filename="eek-symbol.h"
             line="44">the last symbol category</doc>
      </member>
      <function name="from_name" c:identifier="eek_symbol_category_from_name">
        <source-position filename="eek-symbol.h" line="116"/>
        <return-value transfer-ownership="none">
          <type name="SymbolCategory" c:type="EekSymbolCategory"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_name" c:identifier="eek_symbol_category_get_name">
        <source-position filename="eek-symbol.h" line="115"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="category" transfer-ownership="none">
            <type name="SymbolCategory" c:type="EekSymbolCategory"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <record name="SymbolClass"
            c:type="EekSymbolClass"
            glib:is-gtype-struct-for="Symbol">
      <source-position filename="eek-symbol.h" line="90"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="SymbolMatrix"
            c:type="EekSymbolMatrix"
            glib:type-name="EekSymbolMatrix"
            glib:get-type="eek_symbol_matrix_get_type"
            c:symbol-prefix="symbol_matrix">
      <doc xml:space="preserve"
           filename="eek-symbol-matrix.h"
           line="27">Symbol matrix of a key.</doc>
      <source-position filename="eek-symbol-matrix.h" line="41"/>
      <field name="num_groups" writable="1">
        <doc xml:space="preserve"
             filename="eek-symbol-matrix.h"
             line="30">the number of groups (rows)</doc>
        <type name="gint" c:type="gint"/>
      </field>
      <field name="num_levels" writable="1">
        <doc xml:space="preserve"
             filename="eek-symbol-matrix.h"
             line="31">the number of levels (columns)</doc>
        <type name="gint" c:type="gint"/>
      </field>
      <field name="data" writable="1">
        <doc xml:space="preserve"
             filename="eek-symbol-matrix.h"
             line="29">array of symbols</doc>
        <type name="Symbol" c:type="EekSymbol**"/>
      </field>
      <constructor name="new" c:identifier="eek_symbol_matrix_new">
        <source-position filename="eek-symbol-matrix.h" line="45"/>
        <return-value transfer-ownership="full">
          <type name="SymbolMatrix" c:type="EekSymbolMatrix*"/>
        </return-value>
        <parameters>
          <parameter name="num_groups" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="num_levels" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="eek_symbol_matrix_copy">
        <source-position filename="eek-symbol-matrix.h" line="47"/>
        <return-value transfer-ownership="full">
          <type name="SymbolMatrix" c:type="EekSymbolMatrix*"/>
        </return-value>
        <parameters>
          <instance-parameter name="matrix" transfer-ownership="none">
            <type name="SymbolMatrix" c:type="const EekSymbolMatrix*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="eek_symbol_matrix_free">
        <source-position filename="eek-symbol-matrix.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="matrix" transfer-ownership="none">
            <type name="SymbolMatrix" c:type="EekSymbolMatrix*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_symbol" c:identifier="eek_symbol_matrix_get_symbol">
        <doc xml:space="preserve"
             filename="eek-symbol-matrix.c"
             line="86">Get an #EekSymbol stored in the cell selected by (@group, @level)
in @matrix.</doc>
        <source-position filename="eek-symbol-matrix.h" line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="eek-symbol-matrix.c"
               line="95">an #EekSymbol.</doc>
          <type name="Symbol" c:type="EekSymbol*"/>
        </return-value>
        <parameters>
          <instance-parameter name="matrix" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol-matrix.c"
                 line="88">an #EekSymbolMatrix</doc>
            <type name="SymbolMatrix" c:type="EekSymbolMatrix*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol-matrix.c"
                 line="89">group index of @matrix</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-symbol-matrix.c"
                 line="90">level index of @matrix</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_symbol" c:identifier="eek_symbol_matrix_set_symbol">
        <source-position filename="eek-symbol-matrix.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="matrix" transfer-ownership="none">
            <type name="SymbolMatrix" c:type="EekSymbolMatrix*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="level" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="symbol" transfer-ownership="none">
            <type name="Symbol" c:type="EekSymbol*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="SymbolPrivate"
            c:type="EekSymbolPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="eek-symbol.h" line="69"/>
    </record>
    <function-macro name="TEXT" c:identifier="EEK_TEXT" introspectable="0">
      <source-position filename="eek-text.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_CLASS"
                    c:identifier="EEK_TEXT_CLASS"
                    introspectable="0">
      <source-position filename="eek-text.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_GET_CLASS"
                    c:identifier="EEK_TEXT_GET_CLASS"
                    introspectable="0">
      <source-position filename="eek-text.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="TEXT_H" value="1" c:type="EEK_TEXT_H">
      <source-position filename="eek-text.h" line="26"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="THEME" c:identifier="EEK_THEME" introspectable="0">
      <source-position filename="eek-theme.h" line="28"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="THEME_CLASS"
                    c:identifier="EEK_THEME_CLASS"
                    introspectable="0">
      <source-position filename="eek-theme.h" line="29"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="THEME_GET_CLASS"
                    c:identifier="EEK_THEME_GET_CLASS"
                    introspectable="0">
      <source-position filename="eek-theme.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="TYPES_H" value="1" c:type="EEK_TYPES_H">
      <source-position filename="eek-types.h" line="26"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Text"
           c:symbol-prefix="text"
           c:type="EekText"
           parent="Symbol"
           glib:type-name="EekText"
           glib:get-type="eek_text_get_type"
           glib:type-struct="TextClass">
      <doc xml:space="preserve"
           filename="eek-text.h"
           line="42">The #EekText structure contains only private data and should only
be accessed using the provided API.</doc>
      <source-position filename="eek-text.h" line="58"/>
      <implements name="Serializable"/>
      <constructor name="new" c:identifier="eek_text_new">
        <source-position filename="eek-text.h" line="61"/>
        <return-value transfer-ownership="full">
          <type name="Text" c:type="EekText*"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_text"
              c:identifier="eek_text_get_text"
              glib:get-property="text">
        <doc xml:space="preserve"
             filename="eek-text.c"
             line="170">Get a text value associated with @text</doc>
        <source-position filename="eek-text.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="eek-text.c"
                 line="172">an #EekText</doc>
            <type name="Text" c:type="EekText*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="text"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_text"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Symbol" c:type="EekSymbol"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="TextPrivate" c:type="EekTextPrivate*"/>
      </field>
    </class>
    <record name="TextClass"
            c:type="EekTextClass"
            glib:is-gtype-struct-for="Text">
      <source-position filename="eek-text.h" line="58"/>
      <field name="parent_class" readable="0" private="1">
        <type name="SymbolClass" c:type="EekSymbolClass"/>
      </field>
    </record>
    <record name="TextPrivate"
            c:type="EekTextPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="eek-text.h" line="40"/>
    </record>
    <class name="Theme"
           c:symbol-prefix="theme"
           c:type="EekTheme"
           parent="GObject.Object"
           glib:type-name="EekTheme"
           glib:get-type="eek_theme_get_type"
           glib:type-struct="ThemeClass">
      <source-position filename="eek-theme.h" line="25"/>
      <constructor name="new" c:identifier="eek_theme_new">
        <source-position filename="eek-theme.h" line="36"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="eek-theme.c"
               line="499">the newly created theme object</doc>
          <type name="Theme" c:type="EekTheme*"/>
        </return-value>
        <parameters>
          <parameter name="application_stylesheet"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="eek-theme.c"
                 line="492">The highest priority stylesheet, representing application-specific
  styling; this is associated with the CSS "author" stylesheet, may be %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="theme_stylesheet"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="eek-theme.c"
                 line="494">The second priority stylesheet, representing theme-specific styling ;
  this is associated with the CSS "user" stylesheet, may be %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="default_stylesheet"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="eek-theme.c"
                 line="496">The lowest priority stylesheet, representing global default styling;
  this is associated with the CSS "user agent" stylesheet, may be %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="load_stylesheet"
              c:identifier="eek_theme_load_stylesheet"
              throws="1">
        <source-position filename="eek-theme.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="theme" transfer-ownership="none">
            <type name="Theme" c:type="EekTheme*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unload_stylesheet"
              c:identifier="eek_theme_unload_stylesheet">
        <source-position filename="eek-theme.h" line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="theme" transfer-ownership="none">
            <type name="Theme" c:type="EekTheme*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="application-stylesheet"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="eek-theme.c"
             line="125">The highest priority stylesheet, representing application-specific
styling; this is associated with the CSS "author" stylesheet.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="default-stylesheet"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="eek-theme.c"
             line="153">The lowest priority stylesheet, representing global default
styling; this is associated with the CSS "user agent" stylesheet.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="theme-stylesheet"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="eek-theme.c"
             line="139">The second priority stylesheet, representing theme-specific styling;
this is associated with the CSS "user" stylesheet.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="ThemeClass"
            c:type="EekThemeClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Theme">
      <source-position filename="eek-theme.h" line="25"/>
    </record>
    <record name="ThemeContext"
            c:type="EekThemeContext"
            disguised="1"
            opaque="1">
      <source-position filename="eek-types.h" line="145"/>
    </record>
    <record name="ThemeNode" c:type="EekThemeNode" disguised="1" opaque="1">
      <source-position filename="eek-types.h" line="146"/>
    </record>
    <constant name="XML_H" value="1" c:type="EEK_XML_H">
      <source-position filename="eek-xml.h" line="24"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="XML_LAYOUT"
                    c:identifier="EEK_XML_LAYOUT"
                    introspectable="0">
      <source-position filename="eek-xml-layout.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="XML_LAYOUT_CLASS"
                    c:identifier="EEK_XML_LAYOUT_CLASS"
                    introspectable="0">
      <source-position filename="eek-xml-layout.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="XML_LAYOUT_GET_CLASS"
                    c:identifier="EEK_XML_LAYOUT_GET_CLASS"
                    introspectable="0">
      <source-position filename="eek-xml-layout.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="XML_LAYOUT_H" value="1" c:type="EEK_XML_LAYOUT_H">
      <source-position filename="eek-xml-layout.h" line="24"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="XML_SCHEMA_VERSION"
              value="0.90"
              c:type="EEK_XML_SCHEMA_VERSION">
      <source-position filename="eek-xml.h" line="32"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <record name="XmlKeyboardDesc" c:type="EekXmlKeyboardDesc">
      <source-position filename="eek-xml-layout.h" line="76"/>
      <field name="id" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="name" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="geometry" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="symbols" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="language" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="longname" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <method name="copy"
              c:identifier="eek_xml_keyboard_desc_copy"
              introspectable="0">
        <source-position filename="eek-xml-layout.h" line="84"/>
        <return-value>
          <type name="XmlKeyboardDesc" c:type="EekXmlKeyboardDesc*"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <type name="XmlKeyboardDesc" c:type="EekXmlKeyboardDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="eek_xml_keyboard_desc_free">
        <source-position filename="eek-xml-layout.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="desc" transfer-ownership="none">
            <type name="XmlKeyboardDesc" c:type="EekXmlKeyboardDesc*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="XmlLayout"
           c:symbol-prefix="xml_layout"
           c:type="EekXmlLayout"
           parent="Layout"
           glib:type-name="EekXmlLayout"
           glib:get-type="eek_xml_layout_get_type"
           glib:type-struct="XmlLayoutClass">
      <doc xml:space="preserve"
           filename="eek-xml-layout.h"
           line="42">The #EekXmlLayout structure contains only private data and should
only be accessed using the provided API.</doc>
      <source-position filename="eek-xml-layout.h" line="66"/>
      <implements name="Gio.Initable"/>
      <constructor name="new" c:identifier="eek_xml_layout_new" throws="1">
        <source-position filename="eek-xml-layout.h" line="80"/>
        <return-value transfer-ownership="full">
          <type name="Layout" c:type="EekLayout*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="id"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Layout" c:type="EekLayout"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="XmlLayoutPrivate" c:type="EekXmlLayoutPrivate*"/>
      </field>
    </class>
    <record name="XmlLayoutClass"
            c:type="EekXmlLayoutClass"
            glib:is-gtype-struct-for="XmlLayout">
      <source-position filename="eek-xml-layout.h" line="66"/>
      <field name="parent_class" readable="0" private="1">
        <type name="LayoutClass" c:type="EekLayoutClass"/>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" fixed-size="24">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="XmlLayoutPrivate"
            c:type="EekXmlLayoutPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="eek-xml-layout.h" line="40"/>
    </record>
    <docsection name="eek-container">
      <doc xml:space="preserve"
           filename="eek-container.c"
           line="21">The #EekContainerClass class represents a keyboard container, which
shall be used to implement #EekKeyboard and #EekSection.</doc>
    </docsection>
    <docsection name="eek-element">
      <doc xml:space="preserve"
           filename="eek-element.c"
           line="21">The #EekElementClass class represents a keyboard element, which
shall be used to implement #EekKeyboard, #EekSection, or #EekKey.</doc>
    </docsection>
    <docsection name="eek-key">
      <doc xml:space="preserve"
           filename="eek-key.c"
           line="21">The #EekKeyClass class represents a key.</doc>
    </docsection>
    <docsection name="eek-keyboard">
      <doc xml:space="preserve"
           filename="eek-keyboard.c"
           line="21">The #EekKeyboardClass class represents a keyboard, which consists
of one or more sections of the #EekSectionClass class.</doc>
    </docsection>
    <docsection name="eek-layout">
      <doc xml:space="preserve"
           filename="eek-layout.c"
           line="21">The #EekLayout class is a base class of layout engine which
arranges keyboard elements.</doc>
    </docsection>
    <docsection name="eek-section">
      <doc xml:space="preserve"
           filename="eek-section.c"
           line="21">The #EekSectionClass class represents a section, which consists
of one or more keys of the #EekKeyClass class.</doc>
    </docsection>
    <docsection name="eek-serializable">
      <doc xml:space="preserve"
           filename="eek-serializable.c"
           line="21">The #EekSerializableIface interface defines serialize/deserialize
method.</doc>
    </docsection>
    <docsection name="eek-symbol">
      <doc xml:space="preserve"
           filename="eek-symbol.c"
           line="21">The #EekSymbolClass class represents a symbol assigned to a key.</doc>
    </docsection>
    <function name="error_quark" c:identifier="eek_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="init" c:identifier="eek_init">
      <doc xml:space="preserve"
           filename="eek.c"
           line="32">Initialize the Libeek library.  This must be called before using
functions provided by Libeek.</doc>
      <source-position filename="eek.h" line="36"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="symbol_category_from_name"
              c:identifier="eek_symbol_category_from_name"
              moved-to="SymbolCategory.from_name">
      <source-position filename="eek-symbol.h" line="116"/>
      <return-value transfer-ownership="none">
        <type name="SymbolCategory" c:type="EekSymbolCategory"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="symbol_category_get_name"
              c:identifier="eek_symbol_category_get_name"
              moved-to="SymbolCategory.get_name">
      <source-position filename="eek-symbol.h" line="115"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="category" transfer-ownership="none">
          <type name="SymbolCategory" c:type="EekSymbolCategory"/>
        </parameter>
      </parameters>
    </function>
    <function name="xml_list_keyboards" c:identifier="eek_xml_list_keyboards">
      <doc xml:space="preserve"
           filename="eek-xml-layout.c"
           line="1097">List available keyboards.</doc>
      <source-position filename="eek-xml-layout.h" line="82"/>
      <return-value transfer-ownership="container">
        <doc xml:space="preserve"
             filename="eek-xml-layout.c"
             line="1101">the list of keyboards</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
  </namespace>
</repository>
