<?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="Eek" version="0.90"/>
  <namespace name="Eekboard"
             version="0.90"
             shared-library="libeekboard.so.0"
             c:identifier-prefixes="Eekboard"
             c:symbol-prefixes="eekboard">
    <constant name="CLIENT_H" value="1" c:type="EEKBOARD_CLIENT_H">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="CONTEXT_H" value="1" c:type="EEKBOARD_CONTEXT_H">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="CONTEXT_SERVICE_H"
              value="1"
              c:type="EEKBOARD_CONTEXT_SERVICE_H">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="CONTEXT_SERVICE_INTERFACE"
              value="org.fedorahosted.Eekboard.Context"
              c:type="EEKBOARD_CONTEXT_SERVICE_INTERFACE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CONTEXT_SERVICE_PATH"
              value="/org/fedorahosted/Eekboard/Context_%d"
              c:type="EEKBOARD_CONTEXT_SERVICE_PATH">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Client"
           c:symbol-prefix="client"
           c:type="EekboardClient"
           parent="Gio.DBusProxy"
           glib:type-name="EekboardClient"
           glib:get-type="eekboard_client_get_type"
           glib:type-struct="ClientClass">
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.DBusInterface"/>
      <implements name="Gio.Initable"/>
      <constructor name="new" c:identifier="eekboard_client_new">
        <doc xml:space="preserve">Create a client.</doc>
        <return-value transfer-ownership="full">
          <type name="Client" c:type="EekboardClient*"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve">a #GDBusConnection</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="destroyed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Client" c:type="EekboardClient*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="create_context"
              c:identifier="eekboard_client_create_context">
        <doc xml:space="preserve">Create a new input context.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly created #EekboardContext.</doc>
          <type name="Context" c:type="EekboardContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="eekboard" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardClient</doc>
            <type name="Client" c:type="EekboardClient*"/>
          </instance-parameter>
          <parameter name="client_name" transfer-ownership="none">
            <doc xml:space="preserve">name of the client</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="destroy_context"
              c:identifier="eekboard_client_destroy_context">
        <doc xml:space="preserve">Remove @context from @eekboard.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="eekboard" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardClient</doc>
            <type name="Client" c:type="EekboardClient*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hide_keyboard"
              c:identifier="eekboard_client_hide_keyboard">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="eekboard" transfer-ownership="none">
            <type name="Client" c:type="EekboardClient*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="pop_context" c:identifier="eekboard_client_pop_context">
        <doc xml:space="preserve">Disable the current input context and enable the previous one.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="eekboard" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardClient</doc>
            <type name="Client" c:type="EekboardClient*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="push_context" c:identifier="eekboard_client_push_context">
        <doc xml:space="preserve">Enable the input context @context and disable the others.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="eekboard" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardClient</doc>
            <type name="Client" c:type="EekboardClient*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_keyboard"
              c:identifier="eekboard_client_show_keyboard">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="eekboard" transfer-ownership="none">
            <type name="Client" c:type="EekboardClient*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent" readable="0" private="1">
        <type name="Gio.DBusProxy" c:type="GDBusProxy"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ClientPrivate" c:type="EekboardClientPrivate*"/>
      </field>
      <glib:signal name="destroyed" when="last">
        <doc xml:space="preserve">The ::destroyed signal is emitted each time the name of remote
end is vanished.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ClientClass"
            c:type="EekboardClientClass"
            glib:is-gtype-struct-for="Client">
      <field name="parent_class" readable="0" private="1">
        <type name="Gio.DBusProxyClass" c:type="GDBusProxyClass"/>
      </field>
      <field name="destroyed">
        <callback name="destroyed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Client" c:type="EekboardClient*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="23">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="ClientPrivate" c:type="EekboardClientPrivate" disguised="1">
    </record>
    <class name="Context"
           c:symbol-prefix="context"
           c:type="EekboardContext"
           parent="Gio.DBusProxy"
           glib:type-name="EekboardContext"
           glib:get-type="eekboard_context_get_type"
           glib:type-struct="ContextClass">
      <doc xml:space="preserve">The #EekboardContext structure contains only private data and
should only be accessed using the provided API.</doc>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.DBusInterface"/>
      <implements name="Gio.Initable"/>
      <constructor name="new" c:identifier="eekboard_context_new">
        <doc xml:space="preserve">Create a D-Bus proxy of an input context maintained by
eekboard-server.  This function is seldom called from applications
since eekboard_server_create_context() calls it implicitly.</doc>
        <return-value transfer-ownership="full">
          <type name="Context" c:type="EekboardContext*"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve">a #GDBusConnection</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:space="preserve">object path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="destroyed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="disabled">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="enabled">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_activated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
          <parameter name="keycode" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="symbol" transfer-ownership="none">
            <type name="Eek.Symbol" c:type="EekSymbol*"/>
          </parameter>
          <parameter name="modifiers" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_keyboard" c:identifier="eekboard_context_add_keyboard">
        <doc xml:space="preserve">Register @keyboard in @context.</doc>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
          <parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve">a string representing keyboard</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_group" c:identifier="eekboard_context_get_group">
        <doc xml:space="preserve">Get the keyboard group of @context.</doc>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hide_keyboard"
              c:identifier="eekboard_context_hide_keyboard">
        <doc xml:space="preserve">Request eekboard-server to hide a keyboard.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_enabled" c:identifier="eekboard_context_is_enabled">
        <doc xml:space="preserve">Check if @context is enabled.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_visible" c:identifier="eekboard_context_is_visible">
        <doc xml:space="preserve">Check if keyboard is visible.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="press_keycode"
              c:identifier="eekboard_context_press_keycode">
        <doc xml:space="preserve">Tell eekboard-server that a key identified by @keycode is pressed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:space="preserve">keycode number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="release_keycode"
              c:identifier="eekboard_context_release_keycode">
        <doc xml:space="preserve">Tell eekboard-server that a key identified by @keycode is released.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:space="preserve">keycode number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_keyboard"
              c:identifier="eekboard_context_remove_keyboard">
        <doc xml:space="preserve">Unregister the keyboard with @keyboard_id in @context.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
          <parameter name="keyboard_id" transfer-ownership="none">
            <doc xml:space="preserve">keyboard ID</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_enabled" c:identifier="eekboard_context_set_enabled">
        <doc xml:space="preserve">Set @context enabled or disabled.  This function is seldom called
since the flag is set via D-Bus signal #EekboardContext::enabled
and #EekboardContext::disabled.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve">flag to indicate if @context is enabled</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fullscreen"
              c:identifier="eekboard_context_set_fullscreen">
        <doc xml:space="preserve">Set the fullscreen mode of @context.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
          <parameter name="fullscreen" transfer-ownership="none">
            <doc xml:space="preserve">a flag to indicate fullscreen mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_group" c:identifier="eekboard_context_set_group">
        <doc xml:space="preserve">Set the keyboard group of @context.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve">group number</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keyboard" c:identifier="eekboard_context_set_keyboard">
        <doc xml:space="preserve">Select a keyboard with ID @keyboard_id in @context.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
          <parameter name="keyboard_id" transfer-ownership="none">
            <doc xml:space="preserve">keyboard ID</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_keyboard"
              c:identifier="eekboard_context_show_keyboard">
        <doc xml:space="preserve">Request eekboard-server to show a keyboard set by
eekboard_context_set_keyboard().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContext</doc>
            <type name="Context" c:type="EekboardContext*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <property name="visible" transfer-ownership="none">
        <doc xml:space="preserve">Flag to indicate if keyboard is visible or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Gio.DBusProxy" c:type="GDBusProxy"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ContextPrivate" c:type="EekboardContextPrivate*"/>
      </field>
      <glib:signal name="destroyed" when="last">
        <doc xml:space="preserve">The ::destroyed signal is emitted each time the name of remote
end is vanished.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="disabled" when="last">
        <doc xml:space="preserve">The ::disabled signal is emitted each time @context is disabled.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="enabled" when="last">
        <doc xml:space="preserve">Emitted when @context is enabled.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="key-activated" when="last">
        <doc xml:space="preserve">The ::key-activated signal is emitted each time a key is
pressed in @context.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:space="preserve">a keycode</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="symbol" transfer-ownership="none">
            <doc xml:space="preserve">an #EekSymbol</doc>
            <type name="GObject.Object"/>
          </parameter>
          <parameter name="modifiers" transfer-ownership="none">
            <doc xml:space="preserve">modifiers</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ContextClass"
            c:type="EekboardContextClass"
            glib:is-gtype-struct-for="Context">
      <field name="parent_class" readable="0" private="1">
        <type name="Gio.DBusProxyClass" c:type="GDBusProxyClass"/>
      </field>
      <field name="enabled">
        <callback name="enabled">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Context" c:type="EekboardContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="disabled">
        <callback name="disabled">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Context" c:type="EekboardContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="destroyed">
        <callback name="destroyed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Context" c:type="EekboardContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_activated">
        <callback name="key_activated">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Context" c:type="EekboardContext*"/>
            </parameter>
            <parameter name="keycode" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="symbol" transfer-ownership="none">
              <type name="Eek.Symbol" c:type="EekSymbol*"/>
            </parameter>
            <parameter name="modifiers" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="24">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="ContextPrivate"
            c:type="EekboardContextPrivate"
            disguised="1">
    </record>
    <class name="ContextService"
           c:symbol-prefix="context_service"
           c:type="EekboardContextService"
           parent="GObject.Object"
           glib:type-name="EekboardContextService"
           glib:get-type="eekboard_context_service_get_type"
           glib:type-struct="ContextServiceClass">
      <doc xml:space="preserve">The #EekboardContextService structure contains only private data
and should only be accessed using the provided API.</doc>
      <virtual-method name="create_keyboard" introspectable="0">
        <return-value>
          <type name="Eek.Keyboard" c:type="EekKeyboard*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
          <parameter name="keyboard_type" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="destroyed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="disabled">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="enabled">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hide_keyboard" invoker="hide_keyboard">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show_keyboard" invoker="show_keyboard">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="destroy" c:identifier="eekboard_context_service_destroy">
        <doc xml:space="preserve">Destroy @context.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContextService</doc>
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="disable" c:identifier="eekboard_context_service_disable">
        <doc xml:space="preserve">Disable @context.  This function is called when @context is pushed
by eekboard_service_pop_context().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContextService</doc>
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="enable" c:identifier="eekboard_context_service_enable">
        <doc xml:space="preserve">Enable @context.  This function is called when @context is pushed
by eekboard_service_push_context().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContextService</doc>
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_client_name"
              c:identifier="eekboard_context_service_get_client_name">
        <doc xml:space="preserve">Get the name of client which created @context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContextService</doc>
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fullscreen"
              c:identifier="eekboard_context_service_get_fullscreen">
        <doc xml:space="preserve">Check if keyboard is rendered in fullscreen mode in @context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE or %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContextService</doc>
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keyboard"
              c:identifier="eekboard_context_service_get_keyboard">
        <doc xml:space="preserve">Get keyboard currently active in @context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #EekKeyboard</doc>
          <type name="Eek.Keyboard" c:type="EekKeyboard*"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">an #EekboardContextService</doc>
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide_keyboard"
              c:identifier="eekboard_context_service_hide_keyboard">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="show_keyboard"
              c:identifier="eekboard_context_service_show_keyboard">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="ContextService" c:type="EekboardContextService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="client-name" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Name of a client who created this context service.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="connection"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">D-Bus connection.</doc>
        <type name="Gio.DBusConnection"/>
      </property>
      <property name="fullscreen" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Flag to indicate if keyboard is rendered in fullscreen mode.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="keyboard" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">An #EekKeyboard currently active in this context.</doc>
        <type name="Eek.Keyboard"/>
      </property>
      <property name="object-path"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">D-Bus object path.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="visible" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Flag to indicate if keyboard is visible or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ContextServicePrivate"
              c:type="EekboardContextServicePrivate*"/>
      </field>
      <glib:signal name="destroyed" when="last">
        <doc xml:space="preserve">Emitted when @context is destroyed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="disabled" when="last">
        <doc xml:space="preserve">Emitted when @context is enabled.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="enabled" when="last">
        <doc xml:space="preserve">Emitted when @context is enabled.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ContextServiceClass"
            c:type="EekboardContextServiceClass"
            glib:is-gtype-struct-for="ContextService">
      <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">
          <return-value>
            <type name="Eek.Keyboard" c:type="EekKeyboard*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ContextService" c:type="EekboardContextService*"/>
            </parameter>
            <parameter name="keyboard_type" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_keyboard">
        <callback name="show_keyboard">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ContextService" c:type="EekboardContextService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide_keyboard">
        <callback name="hide_keyboard">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ContextService" c:type="EekboardContextService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="enabled">
        <callback name="enabled">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ContextService" c:type="EekboardContextService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="disabled">
        <callback name="disabled">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ContextService" c:type="EekboardContextService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="destroyed">
        <callback name="destroyed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ContextService" c:type="EekboardContextService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="24">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="ContextServicePrivate"
            c:type="EekboardContextServicePrivate"
            disguised="1">
    </record>
    <constant name="SERVICE_H" value="1" c:type="EEKBOARD_SERVICE_H">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="SERVICE_INTERFACE"
              value="org.fedorahosted.Eekboard"
              c:type="EEKBOARD_SERVICE_INTERFACE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="SERVICE_PATH"
              value="/org/fedorahosted/Eekboard"
              c:type="EEKBOARD_SERVICE_PATH">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Service"
           c:symbol-prefix="service"
           c:type="EekboardService"
           parent="GObject.Object"
           glib:type-name="EekboardService"
           glib:get-type="eekboard_service_get_type"
           glib:type-struct="ServiceClass">
      <doc xml:space="preserve">The #EekboardService structure contains only private data and
should only be accessed using the provided API.</doc>
      <constructor name="new" c:identifier="eekboard_service_new">
        <doc xml:space="preserve">Create an empty server for testing purpose.</doc>
        <return-value transfer-ownership="full">
          <type name="Service" c:type="EekboardService*"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve">a #GDBusConnection</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:space="preserve">object path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="create_context" introspectable="0">
        <return-value>
          <type name="ContextService" c:type="EekboardContextService*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Service" c:type="EekboardService*"/>
          </instance-parameter>
          <parameter name="client_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <property name="connection"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">D-Bus connection.</doc>
        <type name="Gio.DBusConnection"/>
      </property>
      <property name="object-path"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">D-Bus object path.</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="ServicePrivate" c:type="EekboardServicePrivate*"/>
      </field>
      <glib:signal name="destroyed" when="last">
        <doc xml:space="preserve">The ::destroyed signal is emitted when the service is vanished.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ServiceClass"
            c:type="EekboardServiceClass"
            glib:is-gtype-struct-for="Service">
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="create_context" introspectable="0">
        <callback name="create_context" introspectable="0">
          <return-value>
            <type name="ContextService" c:type="EekboardContextService*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Service" c:type="EekboardService*"/>
            </parameter>
            <parameter name="client_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="object_path" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="24">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="ServicePrivate"
            c:type="EekboardServicePrivate"
            disguised="1">
    </record>
    <constant name="XKLUTIL_H" value="1" c:type="EEKBOARD_XKLUTIL_H">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="xkl_config_rec_from_string"
              c:identifier="eekboard_xkl_config_rec_from_string"
              introspectable="0">
      <return-value>
        <type c:type="XklConfigRec*"/>
      </return-value>
      <parameters>
        <parameter name="layouts" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xkl_config_rec_to_string"
              c:identifier="eekboard_xkl_config_rec_to_string"
              introspectable="0">
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="rec" transfer-ownership="none">
          <type c:type="XklConfigRec*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xkl_list_layout_variants"
              c:identifier="eekboard_xkl_list_layout_variants"
              introspectable="0">
      <return-value>
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="registry" transfer-ownership="none">
          <type c:type="XklConfigRegistry*"/>
        </parameter>
        <parameter name="layout" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xkl_list_layouts"
              c:identifier="eekboard_xkl_list_layouts"
              introspectable="0">
      <return-value>
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="registry" transfer-ownership="none">
          <type c:type="XklConfigRegistry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xkl_list_models"
              c:identifier="eekboard_xkl_list_models"
              introspectable="0">
      <return-value>
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="registry" transfer-ownership="none">
          <type c:type="XklConfigRegistry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xkl_list_option_groups"
              c:identifier="eekboard_xkl_list_option_groups"
              introspectable="0">
      <return-value>
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="registry" transfer-ownership="none">
          <type c:type="XklConfigRegistry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xkl_list_options"
              c:identifier="eekboard_xkl_list_options"
              introspectable="0">
      <return-value>
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="registry" transfer-ownership="none">
          <type c:type="XklConfigRegistry*"/>
        </parameter>
        <parameter name="group" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
