[gtk/docs-gtk-org] Add the ATK reference



commit 02917cd5cfa134a21b18ba08ecf2207f7b65385d
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Thu Aug 19 16:45:39 2021 +0100

    Add the ATK reference
    
    GTK3 is still maintained, and it depends on ATK, so we should provide
    the ATK API reference alongside the GTK3 one.

 .gitlab-ci.yml        |     1 +
 atk/atk/Atk-1.0.gir   | 23682 ++++++++++++++++++++++++++++++++++++++++++++++++
 atk/atk/atk.toml.in   |    39 +
 atk/atk/meson.build   |    22 +
 atk/atk/urlmap.js     |    16 +
 gtk3/gtk/gtk3.toml.in |     7 +-
 gtk3/gtk/meson.build  |     1 +
 gtk3/gtk/urlmap.js    |     1 +
 meson.build           |     2 +
 static/index.html     |     8 +
 10 files changed, 23778 insertions(+), 1 deletion(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e856e806a0..f41b999453 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,6 +20,7 @@ reference:
     - mv _build/gtk3/gdk/gdk3/ docs/gdk3/
     - mv _build/gtk3/gdk/gdk3-x11/ docs/gdk3-x11/
     - mv _build/gtk3/gtk/gtk3/ docs/gtk3/
+    - mv _build/atk/atk/atk/ docs/atk/
   artifacts:
     paths:
       - docs
diff --git a/atk/atk/Atk-1.0.gir b/atk/atk/Atk-1.0.gir
new file mode 100644
index 0000000000..b4e2744e01
--- /dev/null
+++ b/atk/atk/Atk-1.0.gir
@@ -0,0 +1,23682 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.2"
+            xmlns="http://www.gtk.org/introspection/core/1.0";
+            xmlns:c="http://www.gtk.org/introspection/c/1.0";
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0";>
+  <include name="GObject" version="2.0"/>
+  <package name="atk"/>
+  <c:include name="atk/atk.h"/>
+  <namespace name="Atk"
+             version="1.0"
+             shared-library="libatk-1.0.so.0"
+             c:identifier-prefixes="Atk"
+             c:symbol-prefixes="atk">
+    <alias name="AttributeSet" c:type="AtkAttributeSet">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.h"
+           line="407">This is a singly-linked list (a #GSList) of #AtkAttribute. It is
+used by atk_text_get_run_attributes(),
+atk_text_get_default_attributes(),
+atk_editable_text_set_run_attributes(),
+atk_document_get_attributes() and atk_object_get_attributes()</doc>
+      <source-position filename="../atk/atkobject.h" line="416"/>
+      <type name="GLib.SList" c:type="GSList"/>
+    </alias>
+    <alias name="State" c:type="AtkState">
+      <source-position filename="../atk/atkstate.h" line="196"/>
+      <type name="guint64" c:type="guint64"/>
+    </alias>
+    <function-macro name="ACTION" c:identifier="ATK_ACTION" introspectable="0">
+      <source-position filename="../atk/atkaction.h" line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTION_GET_IFACE"
+                    c:identifier="ATK_ACTION_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atkaction.h" line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <interface name="Action"
+               c:symbol-prefix="action"
+               c:type="AtkAction"
+               glib:type-name="AtkAction"
+               glib:get-type="atk_action_get_type"
+               glib:type-struct="ActionIface">
+      <doc xml:space="preserve"
+           filename="../atk/atkaction.c"
+           line="24">#AtkAction should be implemented by instances of #AtkObject classes
+with which the user can interact directly, i.e. buttons,
+checkboxes, scrollbars, e.g. components which are not "passive"
+providers of UI information.
+
+Exceptions: when the user interaction is already covered by another
+appropriate interface such as #AtkEditableText (insert/delete text,
+etc.) or #AtkValue (set value) then these actions should not be
+exposed by #AtkAction as well.
+
+Though most UI interactions on components should be invocable via
+keyboard as well as mouse, there will generally be a close mapping
+between "mouse actions" that are possible on a component and the
+AtkActions.  Where mouse and keyboard actions are redundant in
+effect, #AtkAction should expose only one action rather than
+exposing redundant actions if possible.  By convention we have been
+using "mouse centric" terminology for #AtkAction names.</doc>
+      <source-position filename="../atk/atkaction.h" line="82"/>
+      <virtual-method name="do_action" invoker="do_action">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="70">Perform the specified action on the object.</doc>
+        <source-position filename="../atk/atkaction.h" line="68"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="77">%TRUE if success, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="72">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="73">the action index corresponding to the action to be performed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_description" invoker="get_description">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="122">Returns a description of the specified action of the object.</doc>
+        <source-position filename="../atk/atkaction.h" line="71"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="129">a description string, or %NULL if @action does
+not implement this interface.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="124">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="125">the action index corresponding to the action to be performed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_keybinding" invoker="get_keybinding">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="213">Gets the keybinding which can be used to activate this action, if one
+exists. The string returned should contain localized, human-readable,
+key sequences as they would appear when displayed on screen. It must
+be in the format "mnemonic;sequence;shortcut".
+
+- The mnemonic key activates the object if it is presently enabled onscreen.
+  This typically corresponds to the underlined letter within the widget.
+  Example: "n" in a traditional "New..." menu item or the "a" in "Apply" for
+  a button.
+- The sequence is the full list of keys which invoke the action even if the
+  relevant element is not currently shown on screen. For instance, for a menu
+  item the sequence is the keybindings used to open the parent menus before
+  invoking. The sequence string is colon-delimited. Example: "Alt+F:N" in a
+  traditional "New..." menu item.
+- The shortcut, if it exists, will invoke the same action without showing
+  the component or its enclosing menus or dialogs. Example: "Ctrl+N" in a
+  traditional "New..." menu item.
+
+Example: For a traditional "New..." menu item, the expected return value
+would be: "N;Alt+F:N;Ctrl+N" for the English locale and "N;Alt+D:N;Strg+N"
+for the German locale. If, hypothetically, this menu item lacked a mnemonic,
+it would be represented by ";;Ctrl+N" and ";;Strg+N" respectively.</doc>
+        <source-position filename="../atk/atkaction.h" line="75"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="241">the keybinding which can be used to activate
+this action, or %NULL if there is no keybinding for this action.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="215">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="216">the action index corresponding to the action to be performed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_localized_name" invoker="get_localized_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="187">Returns the localized name of the specified action of the object.</doc>
+        <source-position filename="../atk/atkaction.h" line="80"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="194">a name string, or %NULL if @action does not
+implement this interface.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="189">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="190">the action index corresponding to the action to be performed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_n_actions" invoker="get_n_actions">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="96">Gets the number of accessible actions available on the object.
+If there are more than one, the first one is considered the
+"default" action of the object.</doc>
+        <source-position filename="../atk/atkaction.h" line="70"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="104">a the number of actions, or 0 if @action does not
+implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="98">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_name" invoker="get_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="148">Returns a non-localized string naming the specified action of the
+object. This name is generally not descriptive of the end result
+of the action, but instead names the 'interaction type' which the
+object supports. By convention, the above strings should be used to
+represent the actions which correspond to the common point-and-click
+interaction techniques of the same name: i.e.
+"click", "press", "release", "drag", "drop", "popup", etc.
+The "popup" action should be used to pop up a context menu for the
+object, if one exists.
+
+For technical reasons, some toolkits cannot guarantee that the
+reported action is actually 'bound' to a nontrivial user event;
+i.e. the result of some actions via atk_action_do_action() may be
+NIL.</doc>
+        <source-position filename="../atk/atkaction.h" line="73"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="168">a name string, or %NULL if @action does not
+implement this interface.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="150">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="151">the action index corresponding to the action to be performed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_description" invoker="set_description">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="261">Sets a description of the specified action of the object.</doc>
+        <source-position filename="../atk/atkaction.h" line="77"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="269">a gboolean representing if the description was successfully set;</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="263">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="264">the action index corresponding to the action to be performed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="desc" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="265">the description to be assigned to this action</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="do_action" c:identifier="atk_action_do_action">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="70">Perform the specified action on the object.</doc>
+        <source-position filename="../atk/atkaction.h" line="99"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="77">%TRUE if success, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="72">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="73">the action index corresponding to the action to be performed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_description" c:identifier="atk_action_get_description">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="122">Returns a description of the specified action of the object.</doc>
+        <source-position filename="../atk/atkaction.h" line="104"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="129">a description string, or %NULL if @action does
+not implement this interface.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="124">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="125">the action index corresponding to the action to be performed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_keybinding" c:identifier="atk_action_get_keybinding">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="213">Gets the keybinding which can be used to activate this action, if one
+exists. The string returned should contain localized, human-readable,
+key sequences as they would appear when displayed on screen. It must
+be in the format "mnemonic;sequence;shortcut".
+
+- The mnemonic key activates the object if it is presently enabled onscreen.
+  This typically corresponds to the underlined letter within the widget.
+  Example: "n" in a traditional "New..." menu item or the "a" in "Apply" for
+  a button.
+- The sequence is the full list of keys which invoke the action even if the
+  relevant element is not currently shown on screen. For instance, for a menu
+  item the sequence is the keybindings used to open the parent menus before
+  invoking. The sequence string is colon-delimited. Example: "Alt+F:N" in a
+  traditional "New..." menu item.
+- The shortcut, if it exists, will invoke the same action without showing
+  the component or its enclosing menus or dialogs. Example: "Ctrl+N" in a
+  traditional "New..." menu item.
+
+Example: For a traditional "New..." menu item, the expected return value
+would be: "N;Alt+F:N;Ctrl+N" for the English locale and "N;Alt+D:N;Strg+N"
+for the German locale. If, hypothetically, this menu item lacked a mnemonic,
+it would be represented by ";;Ctrl+N" and ";;Strg+N" respectively.</doc>
+        <source-position filename="../atk/atkaction.h" line="110"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="241">the keybinding which can be used to activate
+this action, or %NULL if there is no keybinding for this action.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="215">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="216">the action index corresponding to the action to be performed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_localized_name"
+              c:identifier="atk_action_get_localized_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="187">Returns the localized name of the specified action of the object.</doc>
+        <source-position filename="../atk/atkaction.h" line="119"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="194">a name string, or %NULL if @action does not
+implement this interface.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="189">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="190">the action index corresponding to the action to be performed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_n_actions" c:identifier="atk_action_get_n_actions">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="96">Gets the number of accessible actions available on the object.
+If there are more than one, the first one is considered the
+"default" action of the object.</doc>
+        <source-position filename="../atk/atkaction.h" line="102"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="104">a the number of actions, or 0 if @action does not
+implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="98">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_name" c:identifier="atk_action_get_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="148">Returns a non-localized string naming the specified action of the
+object. This name is generally not descriptive of the end result
+of the action, but instead names the 'interaction type' which the
+object supports. By convention, the above strings should be used to
+represent the actions which correspond to the common point-and-click
+interaction techniques of the same name: i.e.
+"click", "press", "release", "drag", "drop", "popup", etc.
+The "popup" action should be used to pop up a context menu for the
+object, if one exists.
+
+For technical reasons, some toolkits cannot guarantee that the
+reported action is actually 'bound' to a nontrivial user event;
+i.e. the result of some actions via atk_action_do_action() may be
+NIL.</doc>
+        <source-position filename="../atk/atkaction.h" line="107"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="168">a name string, or %NULL if @action does not
+implement this interface.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="150">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="151">the action index corresponding to the action to be performed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_description" c:identifier="atk_action_set_description">
+        <doc xml:space="preserve"
+             filename="../atk/atkaction.c"
+             line="261">Sets a description of the specified action of the object.</doc>
+        <source-position filename="../atk/atkaction.h" line="113"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkaction.c"
+               line="269">a gboolean representing if the description was successfully set;</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="263">a #GObject instance that implements AtkActionIface</doc>
+            <type name="Action" c:type="AtkAction*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="264">the action index corresponding to the action to be performed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="desc" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="265">the description to be assigned to this action</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="ActionIface"
+            c:type="AtkActionIface"
+            glib:is-gtype-struct-for="Action">
+      <doc xml:space="preserve"
+           filename="../atk/atkaction.h"
+           line="46">The #AtkAction interface should be supported by any object that can
+perform one or more actions. The interface provides the standard
+mechanism for an assistive technology to determine what those actions
+are as well as tell the object to perform them. Any object that can
+be manipulated should support this interface.</doc>
+      <source-position filename="../atk/atkaction.h" line="82"/>
+      <field name="parent" readable="0" private="1">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="do_action">
+        <callback name="do_action">
+          <source-position filename="../atk/atkaction.h" line="68"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="77">%TRUE if success, %FALSE otherwise</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="72">a #GObject instance that implements AtkActionIface</doc>
+              <type name="Action" c:type="AtkAction*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="73">the action index corresponding to the action to be performed</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_n_actions">
+        <callback name="get_n_actions">
+          <source-position filename="../atk/atkaction.h" line="70"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="104">a the number of actions, or 0 if @action does not
+implement this interface.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="98">a #GObject instance that implements AtkActionIface</doc>
+              <type name="Action" c:type="AtkAction*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_description">
+        <callback name="get_description">
+          <source-position filename="../atk/atkaction.h" line="71"/>
+          <return-value transfer-ownership="none" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="129">a description string, or %NULL if @action does
+not implement this interface.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="124">a #GObject instance that implements AtkActionIface</doc>
+              <type name="Action" c:type="AtkAction*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="125">the action index corresponding to the action to be performed</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_name">
+        <callback name="get_name">
+          <source-position filename="../atk/atkaction.h" line="73"/>
+          <return-value transfer-ownership="none" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="168">a name string, or %NULL if @action does not
+implement this interface.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="150">a #GObject instance that implements AtkActionIface</doc>
+              <type name="Action" c:type="AtkAction*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="151">the action index corresponding to the action to be performed</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_keybinding">
+        <callback name="get_keybinding">
+          <source-position filename="../atk/atkaction.h" line="75"/>
+          <return-value transfer-ownership="none" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="241">the keybinding which can be used to activate
+this action, or %NULL if there is no keybinding for this action.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="215">a #GObject instance that implements AtkActionIface</doc>
+              <type name="Action" c:type="AtkAction*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="216">the action index corresponding to the action to be performed</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_description">
+        <callback name="set_description">
+          <source-position filename="../atk/atkaction.h" line="77"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="269">a gboolean representing if the description was successfully set;</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="263">a #GObject instance that implements AtkActionIface</doc>
+              <type name="Action" c:type="AtkAction*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="264">the action index corresponding to the action to be performed</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="desc" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="265">the description to be assigned to this action</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_localized_name">
+        <callback name="get_localized_name">
+          <source-position filename="../atk/atkaction.h" line="80"/>
+          <return-value transfer-ownership="none" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkaction.c"
+                 line="194">a name string, or %NULL if @action does not
+implement this interface.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="189">a #GObject instance that implements AtkActionIface</doc>
+              <type name="Action" c:type="AtkAction*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkaction.c"
+                   line="190">the action index corresponding to the action to be performed</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <record name="Attribute" c:type="AtkAttribute">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.h"
+           line="418">AtkAttribute is a string name/value pair representing a generic
+attribute. This can be used to expose additional information from
+an accessible object as a whole (see atk_object_get_attributes())
+or an document (see atk_document_get_attributes()). In the case of
+text attributes (see atk_text_get_default_attributes()),
+#AtkTextAttribute enum defines all the possible text attribute
+names. You can use atk_text_attribute_get_name() to get the string
+name from the enum value. See also atk_text_attribute_for_name()
+and atk_text_attribute_get_value() for more information.
+
+A string name/value pair representing a generic attribute.</doc>
+      <source-position filename="../atk/atkobject.h" line="440"/>
+      <field name="name" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="420">The attribute name.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="value" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="421">the value of the attribute, represented as a string.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <function name="set_free" c:identifier="atk_attribute_set_free">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1158">Frees the memory used by an #AtkAttributeSet, including all its
+#AtkAttributes.</doc>
+        <source-position filename="../atk/atktext.h" line="466"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="attrib_set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1160">The #AtkAttributeSet to free</doc>
+            <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+          </parameter>
+        </parameters>
+      </function>
+    </record>
+    <constant name="BINARY_AGE"
+              value="23710"
+              c:type="ATK_BINARY_AGE"
+              version="2.7.4">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.h"
+           line="66">Like atk_get_binary_age(), but from the headers used at
+application compile time, rather than from the library linked
+against at application run time.</doc>
+      <source-position filename="../atk/atkversion.h" line="75"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="CHECK_VERSION"
+                    c:identifier="ATK_CHECK_VERSION"
+                    version="2.7.4"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.h"
+           line="88">Returns %TRUE if the version of the ATK header files is the same as
+or newer than the passed-in version.</doc>
+      <source-position filename="../atk/atkversion.h" line="99"/>
+      <parameters>
+        <parameter name="major">
+          <doc xml:space="preserve"
+               filename="../atk/atkversion.h"
+               line="90">major version (e.g. 1 for version 1.2.5)</doc>
+        </parameter>
+        <parameter name="minor">
+          <doc xml:space="preserve"
+               filename="../atk/atkversion.h"
+               line="91">minor version (e.g. 2 for version 1.2.5)</doc>
+        </parameter>
+        <parameter name="micro">
+          <doc xml:space="preserve"
+               filename="../atk/atkversion.h"
+               line="92">micro version (e.g. 5 for version 1.2.5)</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="COMPONENT"
+                    c:identifier="ATK_COMPONENT"
+                    introspectable="0">
+      <source-position filename="../atk/atkcomponent.h" line="66"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="COMPONENT_GET_IFACE"
+                    c:identifier="ATK_COMPONENT_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atkcomponent.h" line="67"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <interface name="Component"
+               c:symbol-prefix="component"
+               c:type="AtkComponent"
+               glib:type-name="AtkComponent"
+               glib:get-type="atk_component_get_type"
+               glib:type-struct="ComponentIface">
+      <doc xml:space="preserve"
+           filename="../atk/atkcomponent.c"
+           line="24">#AtkComponent should be implemented by most if not all UI elements
+with an actual on-screen presence, i.e. components which can be
+said to have a screen-coordinate bounding box.  Virtually all
+widgets will need to have #AtkComponent implementations provided
+for their corresponding #AtkObject class.  In short, only UI
+elements which are *not* GUI elements will omit this ATK interface.
+
+A possible exception might be textual information with a
+transparent background, in which case text glyph bounding box
+information is provided by #AtkText.</doc>
+      <source-position filename="../atk/atkcomponent.h" line="222"/>
+      <virtual-method name="add_focus_handler"
+                      invoker="add_focus_handler"
+                      introspectable="0"
+                      deprecated="1"
+                      deprecated-version="2.9.4">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="127">Add the specified handler to the set of functions to be called
+when this object receives focus events (in or out). If the handler is
+already added it is not added again</doc>
+        <doc-deprecated xml:space="preserve">If you need to track when an object gains or
+lose the focus, use the #AtkObject::state-change "focused" notification instead.</doc-deprecated>
+        <source-position filename="../atk/atkcomponent.h" line="152"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="139">a handler id which can be used in atk_component_remove_focus_handler()
+or zero if the handler was already added.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="129">The #AtkComponent to attach the @handler to</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="handler" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="130">The #AtkFocusHandler to be attached to @component</doc>
+            <type name="FocusHandler" c:type="AtkFocusHandler"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="bounds_changed">
+        <source-position filename="../atk/atkcomponent.h" line="200"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="bounds" transfer-ownership="none">
+            <type name="Rectangle" c:type="AtkRectangle*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="contains" invoker="contains">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="184">Checks whether the specified point is within the extent of the @component.
+
+Toolkit implementor note: ATK provides a default implementation for
+this virtual method. In general there are little reason to
+re-implement it.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="155"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="198">%TRUE or %FALSE indicating whether the specified point is within
+the extent of the @component or not</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="186">the #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="187">x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="188">y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="189">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_alpha" invoker="get_alpha" version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="450">Returns the alpha value (i.e. the opacity) for this
+@component, on a scale from 0 (fully transparent) to 1.0
+(fully opaque).</doc>
+        <source-position filename="../atk/atkcomponent.h" line="202"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="458">An alpha value from 0 to 1.0, inclusive.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="452">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_extents" invoker="get_extents">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="249">Gets the rectangle which gives the extent of the @component.
+
+If the extent can not be obtained (e.g. a non-embedded plug or missing
+support), all of x, y, width, height are set to -1.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="164"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="251">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="252">address of #gint to put x coordinate</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="253">address of #gint to put y coordinate</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="254">address of #gint to put width</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="255">address of #gint to put height</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="256">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_layer" invoker="get_layer">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="403">Gets the layer of the component.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="194"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="409">an #AtkLayer which is the layer of the component</doc>
+          <type name="Layer" c:type="AtkLayer"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="405">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_mdi_zorder" invoker="get_mdi_zorder">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="425">Gets the zorder of the component. The value G_MININT will be returned
+if the layer of the component is not ATK_LAYER_MDI or ATK_LAYER_WINDOW.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="195"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="432">a gint which is the zorder of the component, i.e. the depth at
+which the component is shown in relation to other components in the same
+container.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="427">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_position"
+                      invoker="get_position"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="309">Gets the position of @component in the form of
+a point specifying @component's top-left corner.
+
+If the position can not be obtained (e.g. a non-embedded plug or missing
+support), x and y are set to -1.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_component_get_extents() 
instead.</doc-deprecated>
+        <source-position filename="../atk/atkcomponent.h" line="170"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="311">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="312">address of #gint to put x coordinate position</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="313">address of #gint to put y coordinate position</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="314">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_size" invoker="get_size" deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="357">Gets the size of the @component in terms of width and height.
+
+If the size can not be obtained (e.g. a non-embedded plug or missing
+support), width and height are set to -1.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_component_get_extents() 
instead.</doc-deprecated>
+        <source-position filename="../atk/atkcomponent.h" line="174"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="359">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="360">address of #gint to put width of @component</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="361">address of #gint to put height of @component</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="grab_focus" invoker="grab_focus">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="475">Grabs focus for this @component.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="177"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="481">%TRUE if successful, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="477">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="ref_accessible_at_point"
+                      invoker="ref_accessible_at_point">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="218">Gets a reference to the accessible child, if one exists, at the
+coordinate point specified by @x and @y.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="160"/>
+        <return-value transfer-ownership="full" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="229">a reference to the accessible
+child, if one exists</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="220">the #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="221">x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="222">y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="223">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="remove_focus_handler"
+                      invoker="remove_focus_handler"
+                      deprecated="1"
+                      deprecated-version="2.9.4">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="157">Remove the handler specified by @handler_id from the list of
+functions to be executed when this object receives focus events
+(in or out).</doc>
+        <doc-deprecated xml:space="preserve">If you need to track when an object gains or
+lose the focus, use the #AtkObject::state-change "focused" notification instead.</doc-deprecated>
+        <source-position filename="../atk/atkcomponent.h" line="178"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="159">the #AtkComponent to remove the focus handler from</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="handler_id" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="160">the handler id of the focus handler to be removed
+from @component</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="scroll_to" invoker="scroll_to" version="2.30">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="588">Makes @component visible on the screen by scrolling all necessary parents.
+
+Contrary to atk_component_set_position, this does not actually move
+@component in its parent, this only makes the parents scroll so that the
+object shows up on the screen, given its current position within the parents.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="215"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="599">whether scrolling was successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="590">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="591">specify where the object should be made visible.</doc>
+            <type name="ScrollType" c:type="AtkScrollType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="scroll_to_point"
+                      invoker="scroll_to_point"
+                      version="2.30">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="618">Move the top-left of @component to a given position of the screen by
+scrolling all necessary parents.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="218"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="629">whether scrolling was successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="620">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="coords" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="621">specify whether coordinates are relative to the screen or to the
+parent object.</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="623">x-position where to scroll to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="624">y-position where to scroll to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_extents" invoker="set_extents">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="497">Sets the extents of @component.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="180"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="509">%TRUE or %FALSE whether the extents were set or not</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="499">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="500">x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="501">y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="502">width to set for @component</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="503">height to set for @component</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="504">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_position" invoker="set_position">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="530">Sets the position of @component.
+
+Contrary to atk_component_scroll_to, this does not trigger any scrolling,
+this just moves @component in its parent.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="186"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="543">%TRUE or %FALSE whether or not the position was set or not</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="532">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="533">x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="534">y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="535">specifies whether the coordinates are relative to the screen
+or to the component's top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_size" invoker="set_size">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="562">Set the size of the @component in terms of width and height.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="190"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="570">%TRUE or %FALSE whether the size was set or not</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="564">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="565">width to set for @component</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="566">height to set for @component</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_focus_handler"
+              c:identifier="atk_component_add_focus_handler"
+              introspectable="0"
+              deprecated="1"
+              deprecated-version="2.9.4">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="127">Add the specified handler to the set of functions to be called
+when this object receives focus events (in or out). If the handler is
+already added it is not added again</doc>
+        <doc-deprecated xml:space="preserve">If you need to track when an object gains or
+lose the focus, use the #AtkObject::state-change "focused" notification instead.</doc-deprecated>
+        <source-position filename="../atk/atkcomponent.h" line="229"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="139">a handler id which can be used in atk_component_remove_focus_handler()
+or zero if the handler was already added.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="129">The #AtkComponent to attach the @handler to</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="handler" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="130">The #AtkFocusHandler to be attached to @component</doc>
+            <type name="FocusHandler" c:type="AtkFocusHandler"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="contains" c:identifier="atk_component_contains">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="184">Checks whether the specified point is within the extent of the @component.
+
+Toolkit implementor note: ATK provides a default implementation for
+this virtual method. In general there are little reason to
+re-implement it.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="232"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="198">%TRUE or %FALSE indicating whether the specified point is within
+the extent of the @component or not</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="186">the #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="187">x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="188">y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="189">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_alpha"
+              c:identifier="atk_component_get_alpha"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="450">Returns the alpha value (i.e. the opacity) for this
+@component, on a scale from 0 (fully transparent) to 1.0
+(fully opaque).</doc>
+        <source-position filename="../atk/atkcomponent.h" line="283"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="458">An alpha value from 0 to 1.0, inclusive.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="452">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_extents" c:identifier="atk_component_get_extents">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="249">Gets the rectangle which gives the extent of the @component.
+
+If the extent can not be obtained (e.g. a non-embedded plug or missing
+support), all of x, y, width, height are set to -1.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="242"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="251">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="252">address of #gint to put x coordinate</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="253">address of #gint to put y coordinate</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="254">address of #gint to put width</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="255">address of #gint to put height</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="256">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_layer" c:identifier="atk_component_get_layer">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="403">Gets the layer of the component.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="258"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="409">an #AtkLayer which is the layer of the component</doc>
+          <type name="Layer" c:type="AtkLayer"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="405">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_mdi_zorder"
+              c:identifier="atk_component_get_mdi_zorder">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="425">Gets the zorder of the component. The value G_MININT will be returned
+if the layer of the component is not ATK_LAYER_MDI or ATK_LAYER_WINDOW.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="260"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="432">a gint which is the zorder of the component, i.e. the depth at
+which the component is shown in relation to other components in the same
+container.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="427">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_position"
+              c:identifier="atk_component_get_position"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="309">Gets the position of @component in the form of
+a point specifying @component's top-left corner.
+
+If the position can not be obtained (e.g. a non-embedded plug or missing
+support), x and y are set to -1.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_component_get_extents() 
instead.</doc-deprecated>
+        <source-position filename="../atk/atkcomponent.h" line="249"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="311">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="312">address of #gint to put x coordinate position</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="313">address of #gint to put y coordinate position</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="314">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_size"
+              c:identifier="atk_component_get_size"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="357">Gets the size of the @component in terms of width and height.
+
+If the size can not be obtained (e.g. a non-embedded plug or missing
+support), width and height are set to -1.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_component_get_extents() 
instead.</doc-deprecated>
+        <source-position filename="../atk/atkcomponent.h" line="254"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="359">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="360">address of #gint to put width of @component</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="361">address of #gint to put height of @component</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="grab_focus" c:identifier="atk_component_grab_focus">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="475">Grabs focus for this @component.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="262"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="481">%TRUE if successful, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="477">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="ref_accessible_at_point"
+              c:identifier="atk_component_ref_accessible_at_point">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="218">Gets a reference to the accessible child, if one exists, at the
+coordinate point specified by @x and @y.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="237"/>
+        <return-value transfer-ownership="full" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="229">a reference to the accessible
+child, if one exists</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="220">the #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="221">x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="222">y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="223">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_focus_handler"
+              c:identifier="atk_component_remove_focus_handler"
+              deprecated="1"
+              deprecated-version="2.9.4">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="157">Remove the handler specified by @handler_id from the list of
+functions to be executed when this object receives focus events
+(in or out).</doc>
+        <doc-deprecated xml:space="preserve">If you need to track when an object gains or
+lose the focus, use the #AtkObject::state-change "focused" notification instead.</doc-deprecated>
+        <source-position filename="../atk/atkcomponent.h" line="264"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="159">the #AtkComponent to remove the focus handler from</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="handler_id" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="160">the handler id of the focus handler to be removed
+from @component</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="scroll_to"
+              c:identifier="atk_component_scroll_to"
+              version="2.30">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="588">Makes @component visible on the screen by scrolling all necessary parents.
+
+Contrary to atk_component_set_position, this does not actually move
+@component in its parent, this only makes the parents scroll so that the
+object shows up on the screen, given its current position within the parents.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="286"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="599">whether scrolling was successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="590">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="591">specify where the object should be made visible.</doc>
+            <type name="ScrollType" c:type="AtkScrollType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="scroll_to_point"
+              c:identifier="atk_component_scroll_to_point"
+              version="2.30">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="618">Move the top-left of @component to a given position of the screen by
+scrolling all necessary parents.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="290"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="629">whether scrolling was successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="620">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="coords" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="621">specify whether coordinates are relative to the screen or to the
+parent object.</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="623">x-position where to scroll to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="624">y-position where to scroll to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_extents" c:identifier="atk_component_set_extents">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="497">Sets the extents of @component.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="267"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="509">%TRUE or %FALSE whether the extents were set or not</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="499">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="500">x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="501">y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="502">width to set for @component</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="503">height to set for @component</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="504">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_position" c:identifier="atk_component_set_position">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="530">Sets the position of @component.
+
+Contrary to atk_component_scroll_to, this does not trigger any scrolling,
+this just moves @component in its parent.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="274"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="543">%TRUE or %FALSE whether or not the position was set or not</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="532">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="533">x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="534">y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="535">specifies whether the coordinates are relative to the screen
+or to the component's top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_size" c:identifier="atk_component_set_size">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="562">Set the size of the @component in terms of width and height.</doc>
+        <source-position filename="../atk/atkcomponent.h" line="279"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.c"
+               line="570">%TRUE or %FALSE whether the size was set or not</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="564">an #AtkComponent</doc>
+            <type name="Component" c:type="AtkComponent*"/>
+          </instance-parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="565">width to set for @component</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="566">height to set for @component</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="bounds-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.c"
+             line="104">The 'bounds-changed" signal is emitted when the bposition or
+size of the component changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="107">The AtkRectangle giving the new position and size.</doc>
+            <type name="Rectangle"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="ComponentIface"
+            c:type="AtkComponentIface"
+            glib:is-gtype-struct-for="Component">
+      <doc xml:space="preserve"
+           filename="../atk/atkcomponent.h"
+           line="115">The AtkComponent interface should be supported by any object that is
+rendered on the screen. The interface provides the standard mechanism
+for an assistive technology to determine and set the graphical
+representation of an object.</doc>
+      <source-position filename="../atk/atkcomponent.h" line="222"/>
+      <field name="parent" readable="0" private="1">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="add_focus_handler" introspectable="0">
+        <callback name="add_focus_handler" introspectable="0">
+          <source-position filename="../atk/atkcomponent.h" line="152"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="139">a handler id which can be used in atk_component_remove_focus_handler()
+or zero if the handler was already added.</doc>
+            <type name="guint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="129">The #AtkComponent to attach the @handler to</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="handler" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="130">The #AtkFocusHandler to be attached to @component</doc>
+              <type name="FocusHandler" c:type="AtkFocusHandler"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="contains">
+        <callback name="contains">
+          <source-position filename="../atk/atkcomponent.h" line="155"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="198">%TRUE or %FALSE indicating whether the specified point is within
+the extent of the @component or not</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="186">the #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="187">x coordinate</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="188">y coordinate</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="coord_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="189">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="ref_accessible_at_point">
+        <callback name="ref_accessible_at_point">
+          <source-position filename="../atk/atkcomponent.h" line="160"/>
+          <return-value transfer-ownership="full" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="229">a reference to the accessible
+child, if one exists</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="220">the #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="221">x coordinate</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="222">y coordinate</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="coord_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="223">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_extents">
+        <callback name="get_extents">
+          <source-position filename="../atk/atkcomponent.h" line="164"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="251">an #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="x"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="252">address of #gint to put x coordinate</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="y"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="253">address of #gint to put y coordinate</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="width"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="254">address of #gint to put width</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="height"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="255">address of #gint to put height</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="coord_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="256">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_position">
+        <callback name="get_position">
+          <source-position filename="../atk/atkcomponent.h" line="170"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="311">an #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="x"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="312">address of #gint to put x coordinate position</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="y"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="313">address of #gint to put y coordinate position</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="coord_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="314">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_size">
+        <callback name="get_size">
+          <source-position filename="../atk/atkcomponent.h" line="174"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="359">an #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="width"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="360">address of #gint to put width of @component</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="height"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="361">address of #gint to put height of @component</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="grab_focus">
+        <callback name="grab_focus">
+          <source-position filename="../atk/atkcomponent.h" line="177"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="481">%TRUE if successful, %FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="477">an #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove_focus_handler">
+        <callback name="remove_focus_handler">
+          <source-position filename="../atk/atkcomponent.h" line="178"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="159">the #AtkComponent to remove the focus handler from</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="handler_id" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="160">the handler id of the focus handler to be removed
+from @component</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_extents">
+        <callback name="set_extents">
+          <source-position filename="../atk/atkcomponent.h" line="180"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="509">%TRUE or %FALSE whether the extents were set or not</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="499">an #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="500">x coordinate</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="501">y coordinate</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="width" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="502">width to set for @component</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="height" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="503">height to set for @component</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="coord_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="504">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_position">
+        <callback name="set_position">
+          <source-position filename="../atk/atkcomponent.h" line="186"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="543">%TRUE or %FALSE whether or not the position was set or not</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="532">an #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="533">x coordinate</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="534">y coordinate</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="coord_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="535">specifies whether the coordinates are relative to the screen
+or to the component's top level window</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_size">
+        <callback name="set_size">
+          <source-position filename="../atk/atkcomponent.h" line="190"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="570">%TRUE or %FALSE whether the size was set or not</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="564">an #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="width" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="565">width to set for @component</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="height" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="566">height to set for @component</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_layer">
+        <callback name="get_layer">
+          <source-position filename="../atk/atkcomponent.h" line="194"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="409">an #AtkLayer which is the layer of the component</doc>
+            <type name="Layer" c:type="AtkLayer"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="405">an #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_mdi_zorder">
+        <callback name="get_mdi_zorder">
+          <source-position filename="../atk/atkcomponent.h" line="195"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="432">a gint which is the zorder of the component, i.e. the depth at
+which the component is shown in relation to other components in the same
+container.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="427">an #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="bounds_changed">
+        <callback name="bounds_changed">
+          <source-position filename="../atk/atkcomponent.h" line="200"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="bounds" transfer-ownership="none">
+              <type name="Rectangle" c:type="AtkRectangle*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_alpha">
+        <callback name="get_alpha">
+          <source-position filename="../atk/atkcomponent.h" line="202"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="458">An alpha value from 0 to 1.0, inclusive.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="452">an #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="scroll_to">
+        <callback name="scroll_to">
+          <source-position filename="../atk/atkcomponent.h" line="215"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="599">whether scrolling was successful.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="590">an #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="591">specify where the object should be made visible.</doc>
+              <type name="ScrollType" c:type="AtkScrollType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="scroll_to_point">
+        <callback name="scroll_to_point">
+          <source-position filename="../atk/atkcomponent.h" line="218"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkcomponent.c"
+                 line="629">whether scrolling was successful.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="component" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="620">an #AtkComponent</doc>
+              <type name="Component" c:type="AtkComponent*"/>
+            </parameter>
+            <parameter name="coords" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="621">specify whether coordinates are relative to the screen or to the
+parent object.</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="623">x-position where to scroll to</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkcomponent.c"
+                   line="624">y-position where to scroll to</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="CoordType"
+                 glib:type-name="AtkCoordType"
+                 glib:get-type="atk_coord_type_get_type"
+                 c:type="AtkCoordType">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.h"
+           line="176">Specifies how xy coordinates are to be interpreted. Used by functions such
+as atk_component_get_position() and atk_text_get_character_extents()</doc>
+      <member name="screen"
+              value="0"
+              c:identifier="ATK_XY_SCREEN"
+              glib:nick="screen">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="178">specifies xy coordinates relative to the screen</doc>
+      </member>
+      <member name="window"
+              value="1"
+              c:identifier="ATK_XY_WINDOW"
+              glib:nick="window">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="179">specifies xy coordinates relative to the widget's
+top-level window</doc>
+      </member>
+      <member name="parent"
+              value="2"
+              c:identifier="ATK_XY_PARENT"
+              glib:nick="parent">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="181">specifies xy coordinates relative to the widget's
+immediate parent. Since: 2.30</doc>
+      </member>
+    </enumeration>
+    <function-macro name="DEFINE_ABSTRACT_TYPE"
+                    c:identifier="ATK_DEFINE_ABSTRACT_TYPE"
+                    version="1.22"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.h"
+           line="268">A convenience macro for ATK type implementations.
+Similar to ATK_DEFINE_TYPE(), but defines an abstract type.</doc>
+      <source-position filename="../atk/atkutil.h" line="279"/>
+      <parameters>
+        <parameter name="TN">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="270">The name of the new type, in Camel case.</doc>
+        </parameter>
+        <parameter name="t_n">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="271">The name of the new type, in lowercase, with words separated by '_'.</doc>
+        </parameter>
+        <parameter name="T_P">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="272">The #GType of the parent type.</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEFINE_ABSTRACT_TYPE_WITH_CODE"
+                    c:identifier="ATK_DEFINE_ABSTRACT_TYPE_WITH_CODE"
+                    version="1.22"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.h"
+           line="281">A convenience macro for ATK type implementations.
+Similar to ATK_DEFINE_TYPE_WITH_CODE(), but defines an abstract type.</doc>
+      <source-position filename="../atk/atkutil.h" line="293"/>
+      <parameters>
+        <parameter name="TN">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="283">The name of the new type, in Camel case.</doc>
+        </parameter>
+        <parameter name="t_n">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="284">The name of the new type, in lowercase, with words separated by '_'.</doc>
+        </parameter>
+        <parameter name="T_P">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="285">The #GType of the parent type.</doc>
+        </parameter>
+        <parameter name="_C_">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="286">Custom code that gets inserted in the _get_type() function.</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEFINE_TYPE"
+                    c:identifier="ATK_DEFINE_TYPE"
+                    version="1.22"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.h"
+           line="237">A convenience macro for type ATK implementations, which declares a class
+initialization function, an instance initialization function (see #GTypeInfo
+for information about these) and a static variable named
+@t_n _parent_class pointing to the parent class. Furthermore, it
+defines a _get_type() function.</doc>
+      <source-position filename="../atk/atkutil.h" line="251"/>
+      <parameters>
+        <parameter name="TN">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="239">The name of the new type, in Camel case.</doc>
+        </parameter>
+        <parameter name="t_n">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="240">The name of the new type, in lowercase, with words separated by '_'.</doc>
+        </parameter>
+        <parameter name="T_P">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="241">The #GType of the parent type.</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEFINE_TYPE_EXTENDED"
+                    c:identifier="ATK_DEFINE_TYPE_EXTENDED"
+                    version="1.22"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.h"
+           line="295">The most general convenience macro for ATK type implementations, on which
+ATK_DEFINE_TYPE(), etc are based.</doc>
+      <source-position filename="../atk/atkutil.h" line="308"/>
+      <parameters>
+        <parameter name="TN">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="297">The name of the new type, in Camel case.</doc>
+        </parameter>
+        <parameter name="t_n">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="298">The name of the new type, in lowercase, with words separated by '_'.</doc>
+        </parameter>
+        <parameter name="T_P">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="299">The #GType of the parent type.</doc>
+        </parameter>
+        <parameter name="_f_">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="300">#GTypeFlags to pass to g_type_register_static()</doc>
+        </parameter>
+        <parameter name="_C_">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="301">Custom code that gets inserted in the _get_type() function.</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEFINE_TYPE_WITH_CODE"
+                    c:identifier="ATK_DEFINE_TYPE_WITH_CODE"
+                    version="1.22"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.h"
+           line="253">A convenience macro for ATK type implementations.
+Similar to ATK_DEFINE_TYPE(), but allows you to insert custom code into the
+_get_type() function, e.g. interface implementations via G_IMPLEMENT_INTERFACE().</doc>
+      <source-position filename="../atk/atkutil.h" line="266"/>
+      <parameters>
+        <parameter name="TN">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="255">The name of the new type, in Camel case.</doc>
+        </parameter>
+        <parameter name="t_n">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="256">The name of the new type in lowercase, with words separated by '_'.</doc>
+        </parameter>
+        <parameter name="T_P">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="257">The #GType of the parent type.</doc>
+        </parameter>
+        <parameter name="_C_">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="258">Custom code that gets inserted in the _get_type() function.</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEPRECATED_FOR"
+                    c:identifier="ATK_DEPRECATED_FOR"
+                    introspectable="0">
+      <source-position filename="../atk/atkversion.h" line="289"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEPRECATED_IN_2_10_FOR"
+                    c:identifier="ATK_DEPRECATED_IN_2_10_FOR"
+                    introspectable="0">
+      <source-position filename="../atk/atkversion.h" line="359"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEPRECATED_IN_2_12_FOR"
+                    c:identifier="ATK_DEPRECATED_IN_2_12_FOR"
+                    introspectable="0">
+      <source-position filename="../atk/atkversion.h" line="373"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEPRECATED_IN_2_14_FOR"
+                    c:identifier="ATK_DEPRECATED_IN_2_14_FOR"
+                    introspectable="0">
+      <source-position filename="../atk/atkversion.h" line="387"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEPRECATED_IN_2_2_FOR"
+                    c:identifier="ATK_DEPRECATED_IN_2_2_FOR"
+                    introspectable="0">
+      <source-position filename="../atk/atkversion.h" line="303"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEPRECATED_IN_2_30_FOR"
+                    c:identifier="ATK_DEPRECATED_IN_2_30_FOR"
+                    introspectable="0">
+      <source-position filename="../atk/atkversion.h" line="401"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEPRECATED_IN_2_36_FOR"
+                    c:identifier="ATK_DEPRECATED_IN_2_36_FOR"
+                    introspectable="0">
+      <source-position filename="../atk/atkversion.h" line="415"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEPRECATED_IN_2_4_FOR"
+                    c:identifier="ATK_DEPRECATED_IN_2_4_FOR"
+                    introspectable="0">
+      <source-position filename="../atk/atkversion.h" line="317"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEPRECATED_IN_2_6_FOR"
+                    c:identifier="ATK_DEPRECATED_IN_2_6_FOR"
+                    introspectable="0">
+      <source-position filename="../atk/atkversion.h" line="331"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEPRECATED_IN_2_8_FOR"
+                    c:identifier="ATK_DEPRECATED_IN_2_8_FOR"
+                    introspectable="0">
+      <source-position filename="../atk/atkversion.h" line="345"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DOCUMENT"
+                    c:identifier="ATK_DOCUMENT"
+                    introspectable="0">
+      <source-position filename="../atk/atkdocument.h" line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DOCUMENT_GET_IFACE"
+                    c:identifier="ATK_DOCUMENT_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atkdocument.h" line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <interface name="Document"
+               c:symbol-prefix="document"
+               c:type="AtkDocument"
+               glib:type-name="AtkDocument"
+               glib:get-type="atk_document_get_type"
+               glib:type-struct="DocumentIface">
+      <doc xml:space="preserve"
+           filename="../atk/atkdocument.c"
+           line="24">The AtkDocument interface should be supported by any object whose
+content is a representation or view of a document.  The AtkDocument
+interface should appear on the toplevel container for the document
+content; however AtkDocument instances may be nested (i.e. an
+AtkDocument may be a descendant of another AtkDocument) in those
+cases where one document contains "embedded content" which can
+reasonably be considered a document in its own right.</doc>
+      <source-position filename="../atk/atkdocument.h" line="83"/>
+      <virtual-method name="get_current_page_number"
+                      invoker="get_current_page_number"
+                      version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="365">Retrieves the current page number inside @document.</doc>
+        <source-position filename="../atk/atkdocument.h" line="81"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="371">the current page number inside @document, or -1 if
+  not implemented, not know by the implementor, or irrelevant.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="367">the #AtkDocument</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_document"
+                      invoker="get_document"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="194">Gets a %gpointer that points to an instance of the DOM.  It is
+up to the caller to check atk_document_get_type to determine
+how to cast this pointer.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. @document is already a representation of
+the document. Use it directly, or one of its children, as an
+instance of the DOM.</doc-deprecated>
+        <source-position filename="../atk/atkdocument.h" line="72"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="206">a %gpointer that points to an instance of the DOM.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="196">a #GObject instance that implements AtkDocumentIface</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_document_attribute_value"
+                      invoker="get_attribute_value"
+                      version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="295">Retrieves the value of the given @attribute_name inside @document.</doc>
+        <source-position filename="../atk/atkdocument.h" line="76"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="303">a string value associated with the named
+   attribute for this document, or %NULL if a value for
+   @attribute_name has not been specified for this document.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="297">a #GObject instance that implements AtkDocumentIface</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+          <parameter name="attribute_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="298">a character string representing the name of the attribute
+  whose value is being queried.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_document_attributes"
+                      invoker="get_attributes"
+                      version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="263">Gets an AtkAttributeSet which describes document-wide
+         attributes as name-value pairs.</doc>
+        <source-position filename="../atk/atkdocument.h" line="75"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="272">An AtkAttributeSet containing the explicitly
+         set name-value-pair attributes associated with this document
+         as a whole.</doc>
+          <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="265">a #GObject instance that implements AtkDocumentIface</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_document_locale"
+                      invoker="get_locale"
+                      deprecated="1"
+                      deprecated-version="2.7.90">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="227">Gets a UTF-8 string indicating the POSIX-style LC_MESSAGES locale
+         of the content of this document instance.  Individual
+         text substrings or images within this document may have
+         a different locale, see atk_text_get_attributes and
+         atk_image_get_image_locale.</doc>
+        <doc-deprecated xml:space="preserve">Please use atk_object_get_object_locale() 
instead.</doc-deprecated>
+        <source-position filename="../atk/atkdocument.h" line="74"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="239">a UTF-8 string indicating the POSIX-style LC_MESSAGES
+         locale of the document content as a whole, or NULL if
+         the document content does not specify a locale.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="229">a #GObject instance that implements AtkDocumentIface</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_document_type"
+                      invoker="get_document_type"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="164">Gets a string indicating the document type.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Please use atk_document_get_attributes() to
+ask for the document type if it applies.</doc-deprecated>
+        <source-position filename="../atk/atkdocument.h" line="71"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="173">a string indicating the document type</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="166">a #GObject instance that implements AtkDocumentIface</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_page_count"
+                      invoker="get_page_count"
+                      version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="395">Retrieves the total number of pages inside @document.</doc>
+        <source-position filename="../atk/atkdocument.h" line="82"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="401">total page count of @document, or -1 if not implemented,
+  not know by the implementor or irrelevant.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="397">the #AtkDocument</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_document_attribute"
+                      invoker="set_attribute_value"
+                      version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="329">Sets the value for the given @attribute_name inside @document.</doc>
+        <source-position filename="../atk/atkdocument.h" line="78"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="340">%TRUE if @attribute_value is successfully associated
+  with @attribute_name for this @document, and %FALSE if if the
+  document does not allow the attribute to be modified</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="331">a #GObject instance that implements #AtkDocumentIface</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+          <parameter name="attribute_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="332">a character string representing the name of the attribute
+  whose value is being set.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="attribute_value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="334">a string value to be associated with @attribute_name.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_attribute_value"
+              c:identifier="atk_document_get_attribute_value"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="295">Retrieves the value of the given @attribute_name inside @document.</doc>
+        <source-position filename="../atk/atkdocument.h" line="100"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="303">a string value associated with the named
+   attribute for this document, or %NULL if a value for
+   @attribute_name has not been specified for this document.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="297">a #GObject instance that implements AtkDocumentIface</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+          <parameter name="attribute_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="298">a character string representing the name of the attribute
+  whose value is being queried.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_attributes"
+              c:identifier="atk_document_get_attributes"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="263">Gets an AtkAttributeSet which describes document-wide
+         attributes as name-value pairs.</doc>
+        <source-position filename="../atk/atkdocument.h" line="98"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="272">An AtkAttributeSet containing the explicitly
+         set name-value-pair attributes associated with this document
+         as a whole.</doc>
+          <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="265">a #GObject instance that implements AtkDocumentIface</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_current_page_number"
+              c:identifier="atk_document_get_current_page_number"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="365">Retrieves the current page number inside @document.</doc>
+        <source-position filename="../atk/atkdocument.h" line="107"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="371">the current page number inside @document, or -1 if
+  not implemented, not know by the implementor, or irrelevant.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="367">the #AtkDocument</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_document"
+              c:identifier="atk_document_get_document"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="194">Gets a %gpointer that points to an instance of the DOM.  It is
+up to the caller to check atk_document_get_type to determine
+how to cast this pointer.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. @document is already a representation of
+the document. Use it directly, or one of its children, as an
+instance of the DOM.</doc-deprecated>
+        <source-position filename="../atk/atkdocument.h" line="92"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="206">a %gpointer that points to an instance of the DOM.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="196">a #GObject instance that implements AtkDocumentIface</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_document_type"
+              c:identifier="atk_document_get_document_type"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="164">Gets a string indicating the document type.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Please use atk_document_get_attributes() to
+ask for the document type if it applies.</doc-deprecated>
+        <source-position filename="../atk/atkdocument.h" line="89"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="173">a string indicating the document type</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="166">a #GObject instance that implements AtkDocumentIface</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_locale"
+              c:identifier="atk_document_get_locale"
+              deprecated="1"
+              deprecated-version="2.7.90">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="227">Gets a UTF-8 string indicating the POSIX-style LC_MESSAGES locale
+         of the content of this document instance.  Individual
+         text substrings or images within this document may have
+         a different locale, see atk_text_get_attributes and
+         atk_image_get_image_locale.</doc>
+        <doc-deprecated xml:space="preserve">Please use atk_object_get_object_locale() 
instead.</doc-deprecated>
+        <source-position filename="../atk/atkdocument.h" line="95"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="239">a UTF-8 string indicating the POSIX-style LC_MESSAGES
+         locale of the document content as a whole, or NULL if
+         the document content does not specify a locale.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="229">a #GObject instance that implements AtkDocumentIface</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_page_count"
+              c:identifier="atk_document_get_page_count"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="395">Retrieves the total number of pages inside @document.</doc>
+        <source-position filename="../atk/atkdocument.h" line="109"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="401">total page count of @document, or -1 if not implemented,
+  not know by the implementor or irrelevant.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="397">the #AtkDocument</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_attribute_value"
+              c:identifier="atk_document_set_attribute_value"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="329">Sets the value for the given @attribute_name inside @document.</doc>
+        <source-position filename="../atk/atkdocument.h" line="103"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkdocument.c"
+               line="340">%TRUE if @attribute_value is successfully associated
+  with @attribute_name for this @document, and %FALSE if if the
+  document does not allow the attribute to be modified</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="document" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="331">a #GObject instance that implements #AtkDocumentIface</doc>
+            <type name="Document" c:type="AtkDocument*"/>
+          </instance-parameter>
+          <parameter name="attribute_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="332">a character string representing the name of the attribute
+  whose value is being set.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="attribute_value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="334">a string value to be associated with @attribute_name.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="load-complete" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="78">The 'load-complete' signal is emitted when a pending load of
+a static document has completed.  This signal is to be
+expected by ATK clients if and when AtkDocument implementors
+expose ATK_STATE_BUSY.  If the state of an AtkObject which
+implements AtkDocument does not include ATK_STATE_BUSY, it
+should be safe for clients to assume that the AtkDocument's
+static contents are fully loaded into the container.
+(Dynamic document contents should be exposed via other
+signals.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="load-stopped" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="119">The 'load-stopped' signal is emitted when a pending load of
+document contents is cancelled, paused, or otherwise
+interrupted by the user or application logic.  It should not
+however be emitted while waiting for a resource (for instance
+while blocking on a file or network read) unless a
+user-significant timeout has occurred.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="page-changed" when="last" version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="139">The 'page-changed' signal is emitted when the current page of
+a document changes, e.g. pressing page up/down in a document
+viewer.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="page_number" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="142">the new page number. If this value is unknown
+or not applicable, -1 should be provided.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="reload" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atkdocument.c"
+             line="100">The 'reload' signal is emitted when the contents of a
+document is refreshed from its source.  Once 'reload' has
+been emitted, a matching 'load-complete' or 'load-stopped'
+signal should follow, which clients may await before
+interrogating ATK for the latest document content.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </interface>
+    <record name="DocumentIface"
+            c:type="AtkDocumentIface"
+            glib:is-gtype-struct-for="Document">
+      <source-position filename="../atk/atkdocument.h" line="83"/>
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_document_type">
+        <callback name="get_document_type">
+          <source-position filename="../atk/atkdocument.h" line="71"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="173">a string indicating the document type</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="document" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkdocument.c"
+                   line="166">a #GObject instance that implements AtkDocumentIface</doc>
+              <type name="Document" c:type="AtkDocument*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_document">
+        <callback name="get_document">
+          <source-position filename="../atk/atkdocument.h" line="72"/>
+          <return-value transfer-ownership="none" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="206">a %gpointer that points to an instance of the DOM.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </return-value>
+          <parameters>
+            <parameter name="document" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkdocument.c"
+                   line="196">a #GObject instance that implements AtkDocumentIface</doc>
+              <type name="Document" c:type="AtkDocument*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_document_locale">
+        <callback name="get_document_locale">
+          <source-position filename="../atk/atkdocument.h" line="74"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="239">a UTF-8 string indicating the POSIX-style LC_MESSAGES
+         locale of the document content as a whole, or NULL if
+         the document content does not specify a locale.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="document" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkdocument.c"
+                   line="229">a #GObject instance that implements AtkDocumentIface</doc>
+              <type name="Document" c:type="AtkDocument*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_document_attributes">
+        <callback name="get_document_attributes">
+          <source-position filename="../atk/atkdocument.h" line="75"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="272">An AtkAttributeSet containing the explicitly
+         set name-value-pair attributes associated with this document
+         as a whole.</doc>
+            <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+          </return-value>
+          <parameters>
+            <parameter name="document" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkdocument.c"
+                   line="265">a #GObject instance that implements AtkDocumentIface</doc>
+              <type name="Document" c:type="AtkDocument*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_document_attribute_value">
+        <callback name="get_document_attribute_value">
+          <source-position filename="../atk/atkdocument.h" line="76"/>
+          <return-value transfer-ownership="none" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="303">a string value associated with the named
+   attribute for this document, or %NULL if a value for
+   @attribute_name has not been specified for this document.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="document" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkdocument.c"
+                   line="297">a #GObject instance that implements AtkDocumentIface</doc>
+              <type name="Document" c:type="AtkDocument*"/>
+            </parameter>
+            <parameter name="attribute_name" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkdocument.c"
+                   line="298">a character string representing the name of the attribute
+  whose value is being queried.</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_document_attribute">
+        <callback name="set_document_attribute">
+          <source-position filename="../atk/atkdocument.h" line="78"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="340">%TRUE if @attribute_value is successfully associated
+  with @attribute_name for this @document, and %FALSE if if the
+  document does not allow the attribute to be modified</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="document" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkdocument.c"
+                   line="331">a #GObject instance that implements #AtkDocumentIface</doc>
+              <type name="Document" c:type="AtkDocument*"/>
+            </parameter>
+            <parameter name="attribute_name" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkdocument.c"
+                   line="332">a character string representing the name of the attribute
+  whose value is being set.</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="attribute_value" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkdocument.c"
+                   line="334">a string value to be associated with @attribute_name.</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_current_page_number">
+        <callback name="get_current_page_number">
+          <source-position filename="../atk/atkdocument.h" line="81"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="371">the current page number inside @document, or -1 if
+  not implemented, not know by the implementor, or irrelevant.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="document" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkdocument.c"
+                   line="367">the #AtkDocument</doc>
+              <type name="Document" c:type="AtkDocument*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_page_count">
+        <callback name="get_page_count">
+          <source-position filename="../atk/atkdocument.h" line="82"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkdocument.c"
+                 line="401">total page count of @document, or -1 if not implemented,
+  not know by the implementor or irrelevant.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="document" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkdocument.c"
+                   line="397">the #AtkDocument</doc>
+              <type name="Document" c:type="AtkDocument*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <function-macro name="EDITABLE_TEXT"
+                    c:identifier="ATK_EDITABLE_TEXT"
+                    introspectable="0">
+      <source-position filename="../atk/atkeditabletext.h" line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="EDITABLE_TEXT_GET_IFACE"
+                    c:identifier="ATK_EDITABLE_TEXT_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atkeditabletext.h" line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <interface name="EditableText"
+               c:symbol-prefix="editable_text"
+               c:type="AtkEditableText"
+               glib:type-name="AtkEditableText"
+               glib:get-type="atk_editable_text_get_type"
+               glib:type-struct="EditableTextIface">
+      <doc xml:space="preserve"
+           filename="../atk/atkeditabletext.c"
+           line="24">#AtkEditableText should be implemented by UI components which
+contain text which the user can edit, via the #AtkObject
+corresponding to that component (see #AtkObject).
+
+#AtkEditableText is a subclass of #AtkText, and as such, an object
+which implements #AtkEditableText is by definition an #AtkText
+implementor as well.
+
+See also: #AtkText</doc>
+      <source-position filename="../atk/atkeditabletext.h" line="73"/>
+      <virtual-method name="copy_text" invoker="copy_text">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="147">Copy text from @start_pos up to, but not including @end_pos
+to the clipboard.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="62"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="149">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="150">start position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="151">end position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="cut_text" invoker="cut_text">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="171">Copy text from @start_pos up to, but not including @end_pos
+to the clipboard and then delete from the widget.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="65"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="173">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="174">start position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="175">end position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="delete_text" invoker="delete_text">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="195">Delete text @start_pos up to, but not including @end_pos.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="68"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="197">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="198">start position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="199">end position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="insert_text" invoker="insert_text">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="120">Insert text at a given position.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="58"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="122">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="string" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="123">the text to insert</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="124">the length of text to insert, in bytes</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="125">The caller initializes this to
+the position at which to insert the text. After the call it
+points at the position after the newly inserted text.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="paste_text" invoker="paste_text">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="218">Paste text from clipboard to specified @position.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="71"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="220">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="221">position to paste</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_run_attributes" invoker="set_run_attributes">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="61">Sets the attributes for a specified range. See the ATK_ATTRIBUTE
+macros (such as #ATK_ATTRIBUTE_LEFT_MARGIN) for examples of attributes
+that can be set. Note that other attributes that do not have corresponding
+ATK_ATTRIBUTE macros may also be set for certain text widgets.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="52"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkeditabletext.c"
+               line="73">%TRUE if attributes successfully set for the specified
+range, otherwise %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="63">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="attrib_set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="64">an #AtkAttributeSet</doc>
+            <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+          </parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="65">start of range in which to set attributes</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="66">end of range in which to set attributes</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_text_contents" invoker="set_text_contents">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="99">Set text contents of @text.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="56"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="101">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="string" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="102">string to set for text contents of @text</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="copy_text" c:identifier="atk_editable_text_copy_text">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="147">Copy text from @start_pos up to, but not including @end_pos
+to the clipboard.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="92"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="149">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="150">start position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="151">end position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="cut_text" c:identifier="atk_editable_text_cut_text">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="171">Copy text from @start_pos up to, but not including @end_pos
+to the clipboard and then delete from the widget.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="96"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="173">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="174">start position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="175">end position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="delete_text" c:identifier="atk_editable_text_delete_text">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="195">Delete text @start_pos up to, but not including @end_pos.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="100"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="197">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="198">start position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="199">end position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="insert_text" c:identifier="atk_editable_text_insert_text">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="120">Insert text at a given position.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="87"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="122">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="string" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="123">the text to insert</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="124">the length of text to insert, in bytes</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="125">The caller initializes this to
+the position at which to insert the text. After the call it
+points at the position after the newly inserted text.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="paste_text" c:identifier="atk_editable_text_paste_text">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="218">Paste text from clipboard to specified @position.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="104"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="220">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="221">position to paste</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_run_attributes"
+              c:identifier="atk_editable_text_set_run_attributes">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="61">Sets the attributes for a specified range. See the ATK_ATTRIBUTE
+macros (such as #ATK_ATTRIBUTE_LEFT_MARGIN) for examples of attributes
+that can be set. Note that other attributes that do not have corresponding
+ATK_ATTRIBUTE macros may also be set for certain text widgets.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="79"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkeditabletext.c"
+               line="73">%TRUE if attributes successfully set for the specified
+range, otherwise %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="63">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="attrib_set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="64">an #AtkAttributeSet</doc>
+            <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+          </parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="65">start of range in which to set attributes</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="66">end of range in which to set attributes</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_text_contents"
+              c:identifier="atk_editable_text_set_text_contents">
+        <doc xml:space="preserve"
+             filename="../atk/atkeditabletext.c"
+             line="99">Set text contents of @text.</doc>
+        <source-position filename="../atk/atkeditabletext.h" line="84"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="101">an #AtkEditableText</doc>
+            <type name="EditableText" c:type="AtkEditableText*"/>
+          </instance-parameter>
+          <parameter name="string" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="102">string to set for text contents of @text</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="EditableTextIface"
+            c:type="AtkEditableTextIface"
+            glib:is-gtype-struct-for="EditableText">
+      <source-position filename="../atk/atkeditabletext.h" line="73"/>
+      <field name="parent_interface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="set_run_attributes">
+        <callback name="set_run_attributes">
+          <source-position filename="../atk/atkeditabletext.h" line="52"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkeditabletext.c"
+                 line="73">%TRUE if attributes successfully set for the specified
+range, otherwise %FALSE</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="63">an #AtkEditableText</doc>
+              <type name="EditableText" c:type="AtkEditableText*"/>
+            </parameter>
+            <parameter name="attrib_set" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="64">an #AtkAttributeSet</doc>
+              <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+            </parameter>
+            <parameter name="start_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="65">start of range in which to set attributes</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="end_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="66">end of range in which to set attributes</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_text_contents">
+        <callback name="set_text_contents">
+          <source-position filename="../atk/atkeditabletext.h" line="56"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="101">an #AtkEditableText</doc>
+              <type name="EditableText" c:type="AtkEditableText*"/>
+            </parameter>
+            <parameter name="string" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="102">string to set for text contents of @text</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="insert_text">
+        <callback name="insert_text">
+          <source-position filename="../atk/atkeditabletext.h" line="58"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="122">an #AtkEditableText</doc>
+              <type name="EditableText" c:type="AtkEditableText*"/>
+            </parameter>
+            <parameter name="string" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="123">the text to insert</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="length" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="124">the length of text to insert, in bytes</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="position" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="125">The caller initializes this to
+the position at which to insert the text. After the call it
+points at the position after the newly inserted text.</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="copy_text">
+        <callback name="copy_text">
+          <source-position filename="../atk/atkeditabletext.h" line="62"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="149">an #AtkEditableText</doc>
+              <type name="EditableText" c:type="AtkEditableText*"/>
+            </parameter>
+            <parameter name="start_pos" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="150">start position</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="end_pos" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="151">end position</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="cut_text">
+        <callback name="cut_text">
+          <source-position filename="../atk/atkeditabletext.h" line="65"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="173">an #AtkEditableText</doc>
+              <type name="EditableText" c:type="AtkEditableText*"/>
+            </parameter>
+            <parameter name="start_pos" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="174">start position</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="end_pos" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="175">end position</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="delete_text">
+        <callback name="delete_text">
+          <source-position filename="../atk/atkeditabletext.h" line="68"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="197">an #AtkEditableText</doc>
+              <type name="EditableText" c:type="AtkEditableText*"/>
+            </parameter>
+            <parameter name="start_pos" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="198">start position</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="end_pos" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="199">end position</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="paste_text">
+        <callback name="paste_text">
+          <source-position filename="../atk/atkeditabletext.h" line="71"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="220">an #AtkEditableText</doc>
+              <type name="EditableText" c:type="AtkEditableText*"/>
+            </parameter>
+            <parameter name="position" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkeditabletext.c"
+                   line="221">position to paste</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <callback name="EventListener" c:type="AtkEventListener">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.h"
+           line="46">A function which is called when an object emits a matching event,
+as used in #atk_add_focus_tracker.
+Currently the only events for which object-specific handlers are
+supported are events of type "focus:".  Most clients of ATK will prefer to
+attach signal handlers for the various ATK signals instead.
+
+see atk_add_focus_tracker.</doc>
+      <source-position filename="../atk/atkutil.h" line="59"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="obj" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="48">An #AtkObject instance for whom the callback will be called when
+the specified event (e.g. 'focus:') takes place.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="EventListenerInit" c:type="AtkEventListenerInit">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.h"
+           line="60">An #AtkEventListenerInit function is a special function that is
+called in order to initialize the per-object event registration system
+used by #AtkEventListener, if any preparation is required.
+
+see atk_focus_tracker_init.</doc>
+      <source-position filename="../atk/atkutil.h" line="69"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </callback>
+    <callback name="FocusHandler"
+              c:type="AtkFocusHandler"
+              deprecated="1"
+              deprecated-version="2.9.4">
+      <doc xml:space="preserve"
+           filename="../atk/atkcomponent.h"
+           line="75">The type of callback function used for
+atk_component_add_focus_handler() and
+atk_component_remove_focus_handler()</doc>
+      <doc-deprecated xml:space="preserve">Deprecated with atk_component_add_focus_handler()
+and atk_component_remove_focus_handler(). See those
+methods for more information.</doc-deprecated>
+      <source-position filename="../atk/atkcomponent.h" line="88"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.h"
+               line="77">the #AtkObject that receives/lose the focus</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </parameter>
+        <parameter name="focus_in" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkcomponent.h"
+               line="78">TRUE if the object receives the focus</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="Function" c:type="AtkFunction">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.h"
+           line="484">An AtkFunction is a function definition used for padding which has
+been added to class and interface structures to allow for expansion
+in the future.</doc>
+      <source-position filename="../atk/atkobject.h" line="494"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="492">not used</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="0">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.h"
+               line="486">custom data defined by the user</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <function-macro name="GOBJECT_ACCESSIBLE"
+                    c:identifier="ATK_GOBJECT_ACCESSIBLE"
+                    introspectable="0">
+      <source-position filename="../atk/atkgobjectaccessible.h" line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="GOBJECT_ACCESSIBLE_CLASS"
+                    c:identifier="ATK_GOBJECT_ACCESSIBLE_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkgobjectaccessible.h" line="37"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="GOBJECT_ACCESSIBLE_GET_CLASS"
+                    c:identifier="ATK_GOBJECT_ACCESSIBLE_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkgobjectaccessible.h" line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="GObjectAccessible"
+           c:symbol-prefix="gobject_accessible"
+           c:type="AtkGObjectAccessible"
+           parent="Object"
+           glib:type-name="AtkGObjectAccessible"
+           glib:get-type="atk_gobject_accessible_get_type"
+           glib:type-struct="GObjectAccessibleClass">
+      <doc xml:space="preserve"
+           filename="../atk/atkgobjectaccessible.c"
+           line="26">This object class is derived from AtkObject. It can be used as a
+basis for implementing accessible objects for GObjects which are
+not derived from GtkWidget. One example of its use is in providing
+an accessible object for GnomeCanvasItem in the GAIL library.</doc>
+      <source-position filename="../atk/atkgobjectaccessible.h" line="59"/>
+      <function name="for_object"
+                c:identifier="atk_gobject_accessible_for_object">
+        <doc xml:space="preserve"
+             filename="../atk/atkgobjectaccessible.c"
+             line="74">Gets the accessible object for the specified @obj.</doc>
+        <source-position filename="../atk/atkgobjectaccessible.h" line="62"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkgobjectaccessible.c"
+               line="80">a #AtkObject which is the accessible object for
+the @obj</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkgobjectaccessible.c"
+                 line="76">a #GObject</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="get_object"
+              c:identifier="atk_gobject_accessible_get_object">
+        <doc xml:space="preserve"
+             filename="../atk/atkgobjectaccessible.c"
+             line="119">Gets the GObject for which @obj is the accessible object.</doc>
+        <source-position filename="../atk/atkgobjectaccessible.h" line="64"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkgobjectaccessible.c"
+               line="125">a #GObject which is the object for which @obj is
+the accessible object</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkgobjectaccessible.c"
+                 line="121">a #AtkGObjectAccessible</doc>
+            <type name="GObjectAccessible" c:type="AtkGObjectAccessible*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Object" c:type="AtkObject"/>
+      </field>
+    </class>
+    <record name="GObjectAccessibleClass"
+            c:type="AtkGObjectAccessibleClass"
+            glib:is-gtype-struct-for="GObjectAccessible">
+      <source-position filename="../atk/atkgobjectaccessible.h" line="59"/>
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="AtkObjectClass"/>
+      </field>
+      <field name="pad1">
+        <type name="Function" c:type="AtkFunction"/>
+      </field>
+      <field name="pad2">
+        <type name="Function" c:type="AtkFunction"/>
+      </field>
+    </record>
+    <function-macro name="HYPERLINK"
+                    c:identifier="ATK_HYPERLINK"
+                    introspectable="0">
+      <source-position filename="../atk/atkhyperlink.h" line="49"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="HYPERLINK_CLASS"
+                    c:identifier="ATK_HYPERLINK_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkhyperlink.h" line="50"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="HYPERLINK_GET_CLASS"
+                    c:identifier="ATK_HYPERLINK_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkhyperlink.h" line="53"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="HYPERLINK_IMPL"
+                    c:identifier="ATK_HYPERLINK_IMPL"
+                    introspectable="0">
+      <source-position filename="../atk/atkhyperlinkimpl.h" line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="HYPERLINK_IMPL_GET_IFACE"
+                    c:identifier="ATK_HYPERLINK_IMPL_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atkhyperlinkimpl.h" line="35"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="HYPERTEXT"
+                    c:identifier="ATK_HYPERTEXT"
+                    introspectable="0">
+      <source-position filename="../atk/atkhypertext.h" line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="HYPERTEXT_GET_IFACE"
+                    c:identifier="ATK_HYPERTEXT_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atkhypertext.h" line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Hyperlink"
+           c:symbol-prefix="hyperlink"
+           c:type="AtkHyperlink"
+           parent="GObject.Object"
+           glib:type-name="AtkHyperlink"
+           glib:get-type="atk_hyperlink_get_type"
+           glib:type-struct="HyperlinkClass">
+      <doc xml:space="preserve"
+           filename="../atk/atkhyperlink.c"
+           line="24">An ATK object which encapsulates a link or set of links (for
+instance in the case of client-side image maps) in a hypertext
+document.  It may implement the AtkAction interface.  AtkHyperlink
+may also be used to refer to inline embedded content, since it
+allows specification of a start and end offset within the host
+AtkHypertext object.</doc>
+      <source-position filename="../atk/atkhyperlink.h" line="81"/>
+      <implements name="Action"/>
+      <virtual-method name="get_end_index" invoker="get_end_index">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="269">Gets the index with the hypertext document at which this link ends.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="71"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="275">the index with the hypertext document at which this link ends</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="271">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_n_anchors" invoker="get_n_anchors">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="363">Gets the number of anchors associated with this hyperlink.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="74"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="369">the number of anchors associated with this hyperlink</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="365">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_object" invoker="get_object">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="239">Returns the item associated with this hyperlinks nth anchor.
+For instance, the returned #AtkObject will implement #AtkText
+if @link_ is a text hyperlink, #AtkImage if @link_ is an image
+hyperlink etc.
+
+Multiple anchors are primarily used by client-side image maps.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="69"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="251">an #AtkObject associated with this hyperlinks
+i-th anchor</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="241">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="242">a (zero-index) integer specifying the desired anchor</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_start_index" invoker="get_start_index">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="291">Gets the index with the hypertext document at which this link begins.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="72"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="297">the index with the hypertext document at which this link begins</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="293">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_uri" invoker="get_uri">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="212">Get a the URI associated with the anchor specified
+by @i of @link_.
+
+Multiple anchors are primarily used by client-side image maps.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="67"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="222">a string specifying the URI</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="214">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="215">a (zero-index) integer specifying the desired anchor</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="is_selected_link"
+                      invoker="is_selected_link"
+                      version="1.4"
+                      deprecated="1"
+                      deprecated-version="1.8">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="385">Determines whether this AtkHyperlink is selected</doc>
+        <doc-deprecated xml:space="preserve">Please use ATK_STATE_FOCUSABLE for all links,
+and ATK_STATE_FOCUSED for focused links.</doc-deprecated>
+        <source-position filename="../atk/atkhyperlink.h" line="76"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="396">True if the AtkHyperlink is selected, False otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="387">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="is_valid" invoker="is_valid">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="313">Since the document that a link is associated with may have changed
+this method returns %TRUE if the link is still valid (with
+respect to the document it references) and %FALSE otherwise.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="73"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="321">whether or not this link is still valid</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="315">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="link_activated">
+        <source-position filename="../atk/atkhyperlink.h" line="79"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="link_state">
+        <source-position filename="../atk/atkhyperlink.h" line="75"/>
+        <return-value transfer-ownership="none">
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_end_index" c:identifier="atk_hyperlink_get_end_index">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="269">Gets the index with the hypertext document at which this link ends.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="95"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="275">the index with the hypertext document at which this link ends</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="271">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_anchors" c:identifier="atk_hyperlink_get_n_anchors">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="363">Gets the number of anchors associated with this hyperlink.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="107"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="369">the number of anchors associated with this hyperlink</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="365">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_object" c:identifier="atk_hyperlink_get_object">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="239">Returns the item associated with this hyperlinks nth anchor.
+For instance, the returned #AtkObject will implement #AtkText
+if @link_ is a text hyperlink, #AtkImage if @link_ is an image
+hyperlink etc.
+
+Multiple anchors are primarily used by client-side image maps.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="91"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="251">an #AtkObject associated with this hyperlinks
+i-th anchor</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="241">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="242">a (zero-index) integer specifying the desired anchor</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_start_index"
+              c:identifier="atk_hyperlink_get_start_index">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="291">Gets the index with the hypertext document at which this link begins.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="98"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="297">the index with the hypertext document at which this link begins</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="293">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_uri" c:identifier="atk_hyperlink_get_uri">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="212">Get a the URI associated with the anchor specified
+by @i of @link_.
+
+Multiple anchors are primarily used by client-side image maps.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="87"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="222">a string specifying the URI</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="214">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="215">a (zero-index) integer specifying the desired anchor</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_inline" c:identifier="atk_hyperlink_is_inline">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="337">Indicates whether the link currently displays some or all of its
+          content inline.  Ordinary HTML links will usually return
+          %FALSE, but an inline &amp;lt;src&amp;gt; HTML element will return
+          %TRUE.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="104"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="346">whether or not this link displays its content inline.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="339">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_selected_link"
+              c:identifier="atk_hyperlink_is_selected_link"
+              version="1.4"
+              deprecated="1"
+              deprecated-version="1.8">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="385">Determines whether this AtkHyperlink is selected</doc>
+        <doc-deprecated xml:space="preserve">Please use ATK_STATE_FOCUSABLE for all links,
+and ATK_STATE_FOCUSED for focused links.</doc-deprecated>
+        <source-position filename="../atk/atkhyperlink.h" line="110"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="396">True if the AtkHyperlink is selected, False otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="387">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_valid" c:identifier="atk_hyperlink_is_valid">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="313">Since the document that a link is associated with may have changed
+this method returns %TRUE if the link is still valid (with
+respect to the document it references) and %FALSE otherwise.</doc>
+        <source-position filename="../atk/atkhyperlink.h" line="101"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlink.c"
+               line="321">whether or not this link is still valid</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="link_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="315">an #AtkHyperlink</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="end-index" transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="number-of-anchors" transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="selected-link"
+                deprecated="1"
+                deprecated-version="1.8"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="115">Selected link</doc>
+        <doc-deprecated xml:space="preserve">Please use ATK_STATE_FOCUSABLE for all links, and
+ATK_STATE_FOCUSED for focused links.</doc-deprecated>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="start-index" transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <glib:signal name="link-activated" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.c"
+             line="158">The signal link-activated is emitted when a link is activated.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="HyperlinkClass"
+            c:type="AtkHyperlinkClass"
+            glib:is-gtype-struct-for="Hyperlink">
+      <source-position filename="../atk/atkhyperlink.h" line="81"/>
+      <field name="parent">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="get_uri">
+        <callback name="get_uri">
+          <source-position filename="../atk/atkhyperlink.h" line="67"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="222">a string specifying the URI</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="link_" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhyperlink.c"
+                   line="214">an #AtkHyperlink</doc>
+              <type name="Hyperlink" c:type="AtkHyperlink*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhyperlink.c"
+                   line="215">a (zero-index) integer specifying the desired anchor</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_object">
+        <callback name="get_object">
+          <source-position filename="../atk/atkhyperlink.h" line="69"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="251">an #AtkObject associated with this hyperlinks
+i-th anchor</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="link_" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhyperlink.c"
+                   line="241">an #AtkHyperlink</doc>
+              <type name="Hyperlink" c:type="AtkHyperlink*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhyperlink.c"
+                   line="242">a (zero-index) integer specifying the desired anchor</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_end_index">
+        <callback name="get_end_index">
+          <source-position filename="../atk/atkhyperlink.h" line="71"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="275">the index with the hypertext document at which this link ends</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="link_" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhyperlink.c"
+                   line="271">an #AtkHyperlink</doc>
+              <type name="Hyperlink" c:type="AtkHyperlink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_start_index">
+        <callback name="get_start_index">
+          <source-position filename="../atk/atkhyperlink.h" line="72"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="297">the index with the hypertext document at which this link begins</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="link_" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhyperlink.c"
+                   line="293">an #AtkHyperlink</doc>
+              <type name="Hyperlink" c:type="AtkHyperlink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="is_valid">
+        <callback name="is_valid">
+          <source-position filename="../atk/atkhyperlink.h" line="73"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="321">whether or not this link is still valid</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="link_" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhyperlink.c"
+                   line="315">an #AtkHyperlink</doc>
+              <type name="Hyperlink" c:type="AtkHyperlink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_n_anchors">
+        <callback name="get_n_anchors">
+          <source-position filename="../atk/atkhyperlink.h" line="74"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="369">the number of anchors associated with this hyperlink</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="link_" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhyperlink.c"
+                   line="365">an #AtkHyperlink</doc>
+              <type name="Hyperlink" c:type="AtkHyperlink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="link_state">
+        <callback name="link_state">
+          <source-position filename="../atk/atkhyperlink.h" line="75"/>
+          <return-value transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="link_" transfer-ownership="none">
+              <type name="Hyperlink" c:type="AtkHyperlink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="is_selected_link">
+        <callback name="is_selected_link">
+          <source-position filename="../atk/atkhyperlink.h" line="76"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlink.c"
+                 line="396">True if the AtkHyperlink is selected, False otherwise</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="link_" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhyperlink.c"
+                   line="387">an #AtkHyperlink</doc>
+              <type name="Hyperlink" c:type="AtkHyperlink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="link_activated">
+        <callback name="link_activated">
+          <source-position filename="../atk/atkhyperlink.h" line="79"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="link_" transfer-ownership="none">
+              <type name="Hyperlink" c:type="AtkHyperlink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pad1">
+        <type name="Function" c:type="AtkFunction"/>
+      </field>
+    </record>
+    <interface name="HyperlinkImpl"
+               c:symbol-prefix="hyperlink_impl"
+               c:type="AtkHyperlinkImpl"
+               glib:type-name="AtkHyperlinkImpl"
+               glib:get-type="atk_hyperlink_impl_get_type"
+               glib:type-struct="HyperlinkImplIface">
+      <doc xml:space="preserve"
+           filename="../atk/atkhyperlinkimpl.c"
+           line="25">AtkHyperlinkImpl allows AtkObjects to refer to their associated
+AtkHyperlink instance, if one exists.  AtkHyperlinkImpl differs
+from AtkHyperlink in that AtkHyperlinkImpl is an interface, whereas
+AtkHyperlink is a object type.  The AtkHyperlinkImpl interface
+allows a client to query an AtkObject for the availability of an
+associated AtkHyperlink instance, and obtain that instance.  It is
+thus particularly useful in cases where embedded content or inline
+content within a text object is present, since the embedding text
+object implements AtkHypertext and the inline/embedded objects are
+exposed as children which implement AtkHyperlinkImpl, in addition
+to their being obtainable via AtkHypertext:getLink followed by
+AtkHyperlink:getObject.
+
+The AtkHyperlinkImpl interface should be supported by objects
+exposed within the hierarchy as children of an AtkHypertext
+container which correspond to "links" or embedded content within
+the text.  HTML anchors are not, for instance, normally exposed
+this way, but embedded images and components which appear inline in
+the content of a text object are. The AtkHyperlinkIface interface
+allows a means of determining which children are hyperlinks in this
+sense of the word, and for obtaining their corresponding
+AtkHyperlink object, from which the embedding range, URI, etc. can
+be obtained.
+
+To some extent this interface exists because, for historical
+reasons, AtkHyperlink was defined as an object type, not an
+interface.  Thus, in order to interact with AtkObjects via
+AtkHyperlink semantics, a new interface was required.</doc>
+      <source-position filename="../atk/atkhyperlinkimpl.h" line="58"/>
+      <virtual-method name="get_hyperlink"
+                      invoker="get_hyperlink"
+                      version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlinkimpl.c"
+             line="81">Gets the hyperlink associated with this object.</doc>
+        <source-position filename="../atk/atkhyperlinkimpl.h" line="57"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlinkimpl.c"
+               line="87">an AtkHyperlink object which points to this
+implementing AtkObject.</doc>
+          <type name="Hyperlink" c:type="AtkHyperlink*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="impl" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlinkimpl.c"
+                 line="83">a #GObject instance that implements AtkHyperlinkImplIface</doc>
+            <type name="HyperlinkImpl" c:type="AtkHyperlinkImpl*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_hyperlink"
+              c:identifier="atk_hyperlink_impl_get_hyperlink"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlinkimpl.c"
+             line="81">Gets the hyperlink associated with this object.</doc>
+        <source-position filename="../atk/atkhyperlinkimpl.h" line="64"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkhyperlinkimpl.c"
+               line="87">an AtkHyperlink object which points to this
+implementing AtkObject.</doc>
+          <type name="Hyperlink" c:type="AtkHyperlink*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="impl" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlinkimpl.c"
+                 line="83">a #GObject instance that implements AtkHyperlinkImplIface</doc>
+            <type name="HyperlinkImpl" c:type="AtkHyperlinkImpl*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="HyperlinkImplIface"
+            c:type="AtkHyperlinkImplIface"
+            glib:is-gtype-struct-for="HyperlinkImpl">
+      <source-position filename="../atk/atkhyperlinkimpl.h" line="58"/>
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_hyperlink">
+        <callback name="get_hyperlink">
+          <source-position filename="../atk/atkhyperlinkimpl.h" line="57"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhyperlinkimpl.c"
+                 line="87">an AtkHyperlink object which points to this
+implementing AtkObject.</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </return-value>
+          <parameters>
+            <parameter name="impl" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhyperlinkimpl.c"
+                   line="83">a #GObject instance that implements AtkHyperlinkImplIface</doc>
+              <type name="HyperlinkImpl" c:type="AtkHyperlinkImpl*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <bitfield name="HyperlinkStateFlags"
+              glib:type-name="AtkHyperlinkStateFlags"
+              glib:get-type="atk_hyperlink_state_flags_get_type"
+              c:type="AtkHyperlinkStateFlags">
+      <doc xml:space="preserve"
+           filename="../atk/atkhyperlink.h"
+           line="37">Describes the type of link</doc>
+      <member name="inline"
+              value="1"
+              c:identifier="ATK_HYPERLINK_IS_INLINE"
+              glib:nick="inline">
+        <doc xml:space="preserve"
+             filename="../atk/atkhyperlink.h"
+             line="39">Link is inline</doc>
+      </member>
+    </bitfield>
+    <interface name="Hypertext"
+               c:symbol-prefix="hypertext"
+               c:type="AtkHypertext"
+               glib:type-name="AtkHypertext"
+               glib:get-type="atk_hypertext_get_type"
+               glib:type-struct="HypertextIface">
+      <doc xml:space="preserve"
+           filename="../atk/atkhypertext.c"
+           line="24">An interface used for objects which implement linking between
+multiple resource or content locations, or multiple 'markers'
+within a single document.  A Hypertext instance is associated with
+one or more Hyperlinks, which are associated with particular
+offsets within the Hypertext's included content.  While this
+interface is derived from Text, there is no requirement that
+Hypertext instances have textual content; they may implement Image
+as well, and Hyperlinks need not have non-zero text offsets.</doc>
+      <source-position filename="../atk/atkhypertext.h" line="63"/>
+      <virtual-method name="get_link" invoker="get_link">
+        <doc xml:space="preserve"
+             filename="../atk/atkhypertext.c"
+             line="100">Gets the link in this hypertext document at index
+@link_index</doc>
+        <source-position filename="../atk/atkhypertext.h" line="52"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhypertext.c"
+               line="108">the link in this hypertext document at
+index @link_index</doc>
+          <type name="Hyperlink" c:type="AtkHyperlink*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="hypertext" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="102">an #AtkHypertext</doc>
+            <type name="Hypertext" c:type="AtkHypertext*"/>
+          </instance-parameter>
+          <parameter name="link_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="103">an integer specifying the desired link</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_link_index" invoker="get_link_index">
+        <doc xml:space="preserve"
+             filename="../atk/atkhypertext.c"
+             line="153">Gets the index into the array of hyperlinks that is associated with
+the character specified by @char_index.</doc>
+        <source-position filename="../atk/atkhypertext.h" line="55"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhypertext.c"
+               line="161">an index into the array of hyperlinks in @hypertext,
+or -1 if there is no hyperlink associated with this character.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="hypertext" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="155">an #AtkHypertext</doc>
+            <type name="Hypertext" c:type="AtkHypertext*"/>
+          </instance-parameter>
+          <parameter name="char_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="156">a character index</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_n_links" invoker="get_n_links">
+        <doc xml:space="preserve"
+             filename="../atk/atkhypertext.c"
+             line="130">Gets the number of links within this hypertext document.</doc>
+        <source-position filename="../atk/atkhypertext.h" line="54"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhypertext.c"
+               line="136">the number of links within this hypertext document</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="hypertext" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="132">an #AtkHypertext</doc>
+            <type name="Hypertext" c:type="AtkHypertext*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="link_selected">
+        <source-position filename="../atk/atkhypertext.h" line="61"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="hypertext" transfer-ownership="none">
+            <type name="Hypertext" c:type="AtkHypertext*"/>
+          </instance-parameter>
+          <parameter name="link_index" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_link" c:identifier="atk_hypertext_get_link">
+        <doc xml:space="preserve"
+             filename="../atk/atkhypertext.c"
+             line="100">Gets the link in this hypertext document at index
+@link_index</doc>
+        <source-position filename="../atk/atkhypertext.h" line="68"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhypertext.c"
+               line="108">the link in this hypertext document at
+index @link_index</doc>
+          <type name="Hyperlink" c:type="AtkHyperlink*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="hypertext" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="102">an #AtkHypertext</doc>
+            <type name="Hypertext" c:type="AtkHypertext*"/>
+          </instance-parameter>
+          <parameter name="link_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="103">an integer specifying the desired link</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_link_index"
+              c:identifier="atk_hypertext_get_link_index">
+        <doc xml:space="preserve"
+             filename="../atk/atkhypertext.c"
+             line="153">Gets the index into the array of hyperlinks that is associated with
+the character specified by @char_index.</doc>
+        <source-position filename="../atk/atkhypertext.h" line="73"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhypertext.c"
+               line="161">an index into the array of hyperlinks in @hypertext,
+or -1 if there is no hyperlink associated with this character.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="hypertext" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="155">an #AtkHypertext</doc>
+            <type name="Hypertext" c:type="AtkHypertext*"/>
+          </instance-parameter>
+          <parameter name="char_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="156">a character index</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_n_links" c:identifier="atk_hypertext_get_n_links">
+        <doc xml:space="preserve"
+             filename="../atk/atkhypertext.c"
+             line="130">Gets the number of links within this hypertext document.</doc>
+        <source-position filename="../atk/atkhypertext.h" line="71"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkhypertext.c"
+               line="136">the number of links within this hypertext document</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="hypertext" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="132">an #AtkHypertext</doc>
+            <type name="Hypertext" c:type="AtkHypertext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <glib:signal name="link-selected" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atkhypertext.c"
+             line="77">The "link-selected" signal is emitted by an AtkHyperText
+object when one of the hyperlinks associated with the object
+is selected.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="80">the index of the hyperlink which is selected</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="HypertextIface"
+            c:type="AtkHypertextIface"
+            glib:is-gtype-struct-for="Hypertext">
+      <source-position filename="../atk/atkhypertext.h" line="63"/>
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_link">
+        <callback name="get_link">
+          <source-position filename="../atk/atkhypertext.h" line="52"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="108">the link in this hypertext document at
+index @link_index</doc>
+            <type name="Hyperlink" c:type="AtkHyperlink*"/>
+          </return-value>
+          <parameters>
+            <parameter name="hypertext" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhypertext.c"
+                   line="102">an #AtkHypertext</doc>
+              <type name="Hypertext" c:type="AtkHypertext*"/>
+            </parameter>
+            <parameter name="link_index" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhypertext.c"
+                   line="103">an integer specifying the desired link</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_n_links">
+        <callback name="get_n_links">
+          <source-position filename="../atk/atkhypertext.h" line="54"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="136">the number of links within this hypertext document</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="hypertext" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhypertext.c"
+                   line="132">an #AtkHypertext</doc>
+              <type name="Hypertext" c:type="AtkHypertext*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_link_index">
+        <callback name="get_link_index">
+          <source-position filename="../atk/atkhypertext.h" line="55"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkhypertext.c"
+                 line="161">an index into the array of hyperlinks in @hypertext,
+or -1 if there is no hyperlink associated with this character.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="hypertext" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhypertext.c"
+                   line="155">an #AtkHypertext</doc>
+              <type name="Hypertext" c:type="AtkHypertext*"/>
+            </parameter>
+            <parameter name="char_index" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkhypertext.c"
+                   line="156">a character index</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="link_selected">
+        <callback name="link_selected">
+          <source-position filename="../atk/atkhypertext.h" line="61"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="hypertext" transfer-ownership="none">
+              <type name="Hypertext" c:type="AtkHypertext*"/>
+            </parameter>
+            <parameter name="link_index" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <function-macro name="IMAGE" c:identifier="ATK_IMAGE" introspectable="0">
+      <source-position filename="../atk/atkimage.h" line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IMAGE_GET_IFACE"
+                    c:identifier="ATK_IMAGE_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atkimage.h" line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IMPLEMENTOR"
+                    c:identifier="ATK_IMPLEMENTOR"
+                    introspectable="0">
+      <source-position filename="../atk/atkobject.h" line="451"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IMPLEMENTOR_GET_IFACE"
+                    c:identifier="ATK_IMPLEMENTOR_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atkobject.h" line="452"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="INTERFACE_AGE"
+              value="1"
+              c:type="ATK_INTERFACE_AGE"
+              version="2.7.4">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.h"
+           line="77">Like atk_get_interface_age(), but from the headers used at
+application compile time, rather than from the library linked
+against at application run time.</doc>
+      <source-position filename="../atk/atkversion.h" line="86"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="IS_ACTION"
+                    c:identifier="ATK_IS_ACTION"
+                    introspectable="0">
+      <source-position filename="../atk/atkaction.h" line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_COMPONENT"
+                    c:identifier="ATK_IS_COMPONENT"
+                    introspectable="0">
+      <source-position filename="../atk/atkcomponent.h" line="65"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_DOCUMENT"
+                    c:identifier="ATK_IS_DOCUMENT"
+                    introspectable="0">
+      <source-position filename="../atk/atkdocument.h" line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_EDITABLE_TEXT"
+                    c:identifier="ATK_IS_EDITABLE_TEXT"
+                    introspectable="0">
+      <source-position filename="../atk/atkeditabletext.h" line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_GOBJECT_ACCESSIBLE"
+                    c:identifier="ATK_IS_GOBJECT_ACCESSIBLE"
+                    introspectable="0">
+      <source-position filename="../atk/atkgobjectaccessible.h" line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_GOBJECT_ACCESSIBLE_CLASS"
+                    c:identifier="ATK_IS_GOBJECT_ACCESSIBLE_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkgobjectaccessible.h" line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_HYPERLINK"
+                    c:identifier="ATK_IS_HYPERLINK"
+                    introspectable="0">
+      <source-position filename="../atk/atkhyperlink.h" line="51"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_HYPERLINK_CLASS"
+                    c:identifier="ATK_IS_HYPERLINK_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkhyperlink.h" line="52"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_HYPERLINK_IMPL"
+                    c:identifier="ATK_IS_HYPERLINK_IMPL"
+                    introspectable="0">
+      <source-position filename="../atk/atkhyperlinkimpl.h" line="33"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_HYPERTEXT"
+                    c:identifier="ATK_IS_HYPERTEXT"
+                    introspectable="0">
+      <source-position filename="../atk/atkhypertext.h" line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_IMAGE"
+                    c:identifier="ATK_IS_IMAGE"
+                    introspectable="0">
+      <source-position filename="../atk/atkimage.h" line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_IMPLEMENTOR"
+                    c:identifier="ATK_IS_IMPLEMENTOR"
+                    introspectable="0">
+      <source-position filename="../atk/atkobject.h" line="450"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_MISC"
+                    c:identifier="ATK_IS_MISC"
+                    introspectable="0">
+      <source-position filename="../atk/atkmisc.h" line="56"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_MISC_CLASS"
+                    c:identifier="ATK_IS_MISC_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkmisc.h" line="59"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_NO_OP_OBJECT"
+                    c:identifier="ATK_IS_NO_OP_OBJECT"
+                    introspectable="0">
+      <source-position filename="../atk/atknoopobject.h" line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_NO_OP_OBJECT_CLASS"
+                    c:identifier="ATK_IS_NO_OP_OBJECT_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atknoopobject.h" line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_NO_OP_OBJECT_FACTORY"
+                    c:identifier="ATK_IS_NO_OP_OBJECT_FACTORY"
+                    introspectable="0">
+      <source-position filename="../atk/atknoopobjectfactory.h" line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_NO_OP_OBJECT_FACTORY_CLASS"
+                    c:identifier="ATK_IS_NO_OP_OBJECT_FACTORY_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atknoopobjectfactory.h" line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_OBJECT"
+                    c:identifier="ATK_IS_OBJECT"
+                    introspectable="0">
+      <source-position filename="../atk/atkobject.h" line="445"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_OBJECT_CLASS"
+                    c:identifier="ATK_IS_OBJECT_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkobject.h" line="446"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_OBJECT_FACTORY"
+                    c:identifier="ATK_IS_OBJECT_FACTORY"
+                    introspectable="0">
+      <source-position filename="../atk/atkobjectfactory.h" line="35"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_OBJECT_FACTORY_CLASS"
+                    c:identifier="ATK_IS_OBJECT_FACTORY_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkobjectfactory.h" line="36"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PLUG"
+                    c:identifier="ATK_IS_PLUG"
+                    introspectable="0">
+      <source-position filename="../atk/atkplug.h" line="33"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PLUG_CLASS"
+                    c:identifier="ATK_IS_PLUG_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkplug.h" line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_REGISTRY"
+                    c:identifier="ATK_IS_REGISTRY"
+                    introspectable="0">
+      <source-position filename="../atk/atkregistry.h" line="35"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_REGISTRY_CLASS"
+                    c:identifier="ATK_IS_REGISTRY_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkregistry.h" line="36"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_RELATION"
+                    c:identifier="ATK_IS_RELATION"
+                    introspectable="0">
+      <source-position filename="../atk/atkrelation.h" line="42"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_RELATION_CLASS"
+                    c:identifier="ATK_IS_RELATION_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkrelation.h" line="43"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_RELATION_SET"
+                    c:identifier="ATK_IS_RELATION_SET"
+                    introspectable="0">
+      <source-position filename="../atk/atkrelationset.h" line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_RELATION_SET_CLASS"
+                    c:identifier="ATK_IS_RELATION_SET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkrelationset.h" line="37"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SELECTION"
+                    c:identifier="ATK_IS_SELECTION"
+                    introspectable="0">
+      <source-position filename="../atk/atkselection.h" line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SOCKET"
+                    c:identifier="ATK_IS_SOCKET"
+                    introspectable="0">
+      <source-position filename="../atk/atksocket.h" line="33"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SOCKET_CLASS"
+                    c:identifier="ATK_IS_SOCKET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atksocket.h" line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_STATE_SET"
+                    c:identifier="ATK_IS_STATE_SET"
+                    introspectable="0">
+      <source-position filename="../atk/atkstateset.h" line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_STATE_SET_CLASS"
+                    c:identifier="ATK_IS_STATE_SET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkstateset.h" line="37"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_STREAMABLE_CONTENT"
+                    c:identifier="ATK_IS_STREAMABLE_CONTENT"
+                    introspectable="0">
+      <source-position filename="../atk/atkstreamablecontent.h" line="32"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TABLE"
+                    c:identifier="ATK_IS_TABLE"
+                    introspectable="0">
+      <source-position filename="../atk/atktable.h" line="32"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TABLE_CELL"
+                    c:identifier="ATK_IS_TABLE_CELL"
+                    introspectable="0">
+      <source-position filename="../atk/atktablecell.h" line="32"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TEXT"
+                    c:identifier="ATK_IS_TEXT"
+                    introspectable="0">
+      <source-position filename="../atk/atktext.h" line="108"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_UTIL"
+                    c:identifier="ATK_IS_UTIL"
+                    introspectable="0">
+      <source-position filename="../atk/atkutil.h" line="32"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_UTIL_CLASS"
+                    c:identifier="ATK_IS_UTIL_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkutil.h" line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_VALUE"
+                    c:identifier="ATK_IS_VALUE"
+                    introspectable="0">
+      <source-position filename="../atk/atkvalue.h" line="33"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_WINDOW"
+                    c:identifier="ATK_IS_WINDOW"
+                    introspectable="0">
+      <source-position filename="../atk/atkwindow.h" line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <interface name="Image"
+               c:symbol-prefix="image"
+               c:type="AtkImage"
+               glib:type-name="AtkImage"
+               glib:get-type="atk_image_get_type"
+               glib:type-struct="ImageIface">
+      <doc xml:space="preserve"
+           filename="../atk/atkimage.c"
+           line="24">#AtkImage should be implemented by #AtkObject subtypes on behalf of
+components which display image/pixmap information onscreen, and
+which provide information (other than just widget borders, etc.)
+via that image content.  For instance, icons, buttons with icons,
+toolbar elements, and image viewing panes typically should
+implement #AtkImage.
+
+#AtkImage primarily provides two types of information: coordinate
+information (useful for screen review mode of screenreaders, and
+for use by onscreen magnifiers), and descriptive information.  The
+descriptive information is provided for alternative, text-only
+presentation of the most significant information present in the
+image.</doc>
+      <source-position filename="../atk/atkimage.h" line="63"/>
+      <virtual-method name="get_image_description"
+                      invoker="get_image_description">
+        <doc xml:space="preserve"
+             filename="../atk/atkimage.c"
+             line="64">Get a textual description of this image.</doc>
+        <source-position filename="../atk/atkimage.h" line="56"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkimage.c"
+               line="70">a string representing the image description</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="66">a #GObject instance that implements AtkImageIface</doc>
+            <type name="Image" c:type="AtkImage*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_image_locale"
+                      invoker="get_image_locale"
+                      version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkimage.c"
+             line="215">Retrieves the locale identifier associated to the #AtkImage.</doc>
+        <source-position filename="../atk/atkimage.h" line="62"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkimage.c"
+               line="223">a string corresponding to the POSIX
+  `LC_MESSAGES` locale used by the image description, or
+  %NULL if the image does not specify a locale.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="217">An #AtkImage</doc>
+            <type name="Image" c:type="AtkImage*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_image_position" invoker="get_image_position">
+        <doc xml:space="preserve"
+             filename="../atk/atkimage.c"
+             line="167">Gets the position of the image in the form of a point specifying the
+images top-left corner.
+
+If the position can not be obtained (e.g. missing support), x and y are set
+to -1.</doc>
+        <source-position filename="../atk/atkimage.h" line="52"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="169">a #GObject instance that implements AtkImageIface</doc>
+            <type name="Image" c:type="AtkImage*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="170">address of #gint to put x coordinate position; otherwise, -1 if value cannot be 
obtained.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="171">address of #gint to put y coordinate position; otherwise, -1 if value cannot be 
obtained.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="172">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_image_size" invoker="get_image_size">
+        <doc xml:space="preserve"
+             filename="../atk/atkimage.c"
+             line="91">Get the width and height in pixels for the specified image.
+The values of @width and @height are returned as -1 if the
+values cannot be obtained (for instance, if the object is not onscreen).
+
+If the size can not be obtained (e.g. missing support), x and y are set
+to -1.</doc>
+        <source-position filename="../atk/atkimage.h" line="57"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="93">a #GObject instance that implements AtkImageIface</doc>
+            <type name="Image" c:type="AtkImage*"/>
+          </instance-parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="94">filled with the image width, or -1 if the value cannot be obtained.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="95">filled with the image height, or -1 if the value cannot be obtained.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_image_description"
+                      invoker="set_image_description">
+        <doc xml:space="preserve"
+             filename="../atk/atkimage.c"
+             line="137">Sets the textual description for this image.</doc>
+        <source-position filename="../atk/atkimage.h" line="60"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkimage.c"
+               line="144">boolean TRUE, or FALSE if operation could
+not be completed.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="139">a #GObject instance that implements AtkImageIface</doc>
+            <type name="Image" c:type="AtkImage*"/>
+          </instance-parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="140">a string description to set for @image</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_image_description"
+              c:identifier="atk_image_get_image_description">
+        <doc xml:space="preserve"
+             filename="../atk/atkimage.c"
+             line="64">Get a textual description of this image.</doc>
+        <source-position filename="../atk/atkimage.h" line="69"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkimage.c"
+               line="70">a string representing the image description</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="66">a #GObject instance that implements AtkImageIface</doc>
+            <type name="Image" c:type="AtkImage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_image_locale"
+              c:identifier="atk_image_get_image_locale"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkimage.c"
+             line="215">Retrieves the locale identifier associated to the #AtkImage.</doc>
+        <source-position filename="../atk/atkimage.h" line="86"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkimage.c"
+               line="223">a string corresponding to the POSIX
+  `LC_MESSAGES` locale used by the image description, or
+  %NULL if the image does not specify a locale.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="217">An #AtkImage</doc>
+            <type name="Image" c:type="AtkImage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_image_position"
+              c:identifier="atk_image_get_image_position">
+        <doc xml:space="preserve"
+             filename="../atk/atkimage.c"
+             line="167">Gets the position of the image in the form of a point specifying the
+images top-left corner.
+
+If the position can not be obtained (e.g. missing support), x and y are set
+to -1.</doc>
+        <source-position filename="../atk/atkimage.h" line="80"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="169">a #GObject instance that implements AtkImageIface</doc>
+            <type name="Image" c:type="AtkImage*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="170">address of #gint to put x coordinate position; otherwise, -1 if value cannot be 
obtained.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="171">address of #gint to put y coordinate position; otherwise, -1 if value cannot be 
obtained.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="172">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_image_size" c:identifier="atk_image_get_image_size">
+        <doc xml:space="preserve"
+             filename="../atk/atkimage.c"
+             line="91">Get the width and height in pixels for the specified image.
+The values of @width and @height are returned as -1 if the
+values cannot be obtained (for instance, if the object is not onscreen).
+
+If the size can not be obtained (e.g. missing support), x and y are set
+to -1.</doc>
+        <source-position filename="../atk/atkimage.h" line="72"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="93">a #GObject instance that implements AtkImageIface</doc>
+            <type name="Image" c:type="AtkImage*"/>
+          </instance-parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="94">filled with the image width, or -1 if the value cannot be obtained.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="95">filled with the image height, or -1 if the value cannot be obtained.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_image_description"
+              c:identifier="atk_image_set_image_description">
+        <doc xml:space="preserve"
+             filename="../atk/atkimage.c"
+             line="137">Sets the textual description for this image.</doc>
+        <source-position filename="../atk/atkimage.h" line="77"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkimage.c"
+               line="144">boolean TRUE, or FALSE if operation could
+not be completed.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="139">a #GObject instance that implements AtkImageIface</doc>
+            <type name="Image" c:type="AtkImage*"/>
+          </instance-parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="140">a string description to set for @image</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="ImageIface"
+            c:type="AtkImageIface"
+            glib:is-gtype-struct-for="Image">
+      <source-position filename="../atk/atkimage.h" line="63"/>
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_image_position">
+        <callback name="get_image_position">
+          <source-position filename="../atk/atkimage.h" line="52"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="image" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkimage.c"
+                   line="169">a #GObject instance that implements AtkImageIface</doc>
+              <type name="Image" c:type="AtkImage*"/>
+            </parameter>
+            <parameter name="x"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkimage.c"
+                   line="170">address of #gint to put x coordinate position; otherwise, -1 if value cannot 
be obtained.</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="y"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkimage.c"
+                   line="171">address of #gint to put y coordinate position; otherwise, -1 if value cannot 
be obtained.</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="coord_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkimage.c"
+                   line="172">specifies whether the coordinates are relative to the screen
+or to the components top level window</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_image_description">
+        <callback name="get_image_description">
+          <source-position filename="../atk/atkimage.h" line="56"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="70">a string representing the image description</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="image" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkimage.c"
+                   line="66">a #GObject instance that implements AtkImageIface</doc>
+              <type name="Image" c:type="AtkImage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_image_size">
+        <callback name="get_image_size">
+          <source-position filename="../atk/atkimage.h" line="57"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="image" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkimage.c"
+                   line="93">a #GObject instance that implements AtkImageIface</doc>
+              <type name="Image" c:type="AtkImage*"/>
+            </parameter>
+            <parameter name="width"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkimage.c"
+                   line="94">filled with the image width, or -1 if the value cannot be obtained.</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="height"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkimage.c"
+                   line="95">filled with the image height, or -1 if the value cannot be obtained.</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_image_description">
+        <callback name="set_image_description">
+          <source-position filename="../atk/atkimage.h" line="60"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="144">boolean TRUE, or FALSE if operation could
+not be completed.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="image" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkimage.c"
+                   line="139">a #GObject instance that implements AtkImageIface</doc>
+              <type name="Image" c:type="AtkImage*"/>
+            </parameter>
+            <parameter name="description" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkimage.c"
+                   line="140">a string description to set for @image</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_image_locale">
+        <callback name="get_image_locale">
+          <source-position filename="../atk/atkimage.h" line="62"/>
+          <return-value transfer-ownership="none" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkimage.c"
+                 line="223">a string corresponding to the POSIX
+  `LC_MESSAGES` locale used by the image description, or
+  %NULL if the image does not specify a locale.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="image" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkimage.c"
+                   line="217">An #AtkImage</doc>
+              <type name="Image" c:type="AtkImage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <record name="Implementor" c:type="AtkImplementor" disguised="1">
+      <source-position filename="../atk/atkobject.h" line="455"/>
+      <method name="ref_accessible"
+              c:identifier="atk_implementor_ref_accessible">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1246">Gets a reference to an object's #AtkObject implementation, if
+the object implements #AtkObjectIface</doc>
+        <source-position filename="../atk/atkobject.h" line="704"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1254">a reference to an object's #AtkObject
+implementation</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="implementor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1248">The #GObject instance which should implement #AtkImplementorIface
+if a non-null return value is required.</doc>
+            <type name="Implementor" c:type="AtkImplementor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <interface name="ImplementorIface"
+               c:symbol-prefix="implementor"
+               c:type="AtkImplementorIface"
+               glib:type-name="AtkImplementorIface"
+               glib:get-type="atk_implementor_get_type">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.h"
+           line="687">The AtkImplementor interface is implemented by objects for which
+AtkObject peers may be obtained via calls to
+iface-&gt;(ref_accessible)(implementor);</doc>
+    </interface>
+    <record name="KeyEventStruct" c:type="AtkKeyEventStruct">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.h"
+           line="89">Encapsulates information about a key event.</doc>
+      <source-position filename="../atk/atkutil.h" line="118"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="91">An AtkKeyEventType, generally one of ATK_KEY_EVENT_PRESS or 
ATK_KEY_EVENT_RELEASE</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="state" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="92">A bitmask representing the state of the modifier keys immediately after the event 
takes place.
+The meaning of the bits is currently defined to match the bitmask used by GDK in
+GdkEventType.state, see
+http://developer.gnome.org/doc/API/2.0/gdk/gdk-Event-Structures.html#GdkEventKey</doc>
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="keyval" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="96">A guint representing a keysym value corresponding to those used by GDK and X11: see
+/usr/X11/include/keysymdef.h.</doc>
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="length" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="98">The length of member #string.</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="string" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="99">A string containing one of the following: either a string approximating the text that 
would
+result from this keypress, if the key is a control or graphic character, or a symbolic name for this 
keypress.
+Alphanumeric and printable keys will have the symbolic key name in this string member, for instance "A". "0",
+"semicolon", "aacute".  Keypad keys have the prefix "KP".</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="keycode" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="103">The raw hardware code that generated the key event.  This field is raraly 
useful.</doc>
+        <type name="guint16" c:type="guint16"/>
+      </field>
+      <field name="timestamp" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="104">A timestamp in milliseconds indicating when the event occurred.
+These timestamps are relative to a starting point which should be considered arbitrary,
+and only used to compare the dispatch times of events to one another.</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+    </record>
+    <enumeration name="KeyEventType"
+                 glib:type-name="AtkKeyEventType"
+                 glib:get-type="atk_key_event_type_get_type"
+                 c:type="AtkKeyEventType">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.h"
+           line="120">Specifies the type of a keyboard evemt.</doc>
+      <member name="press"
+              value="0"
+              c:identifier="ATK_KEY_EVENT_PRESS"
+              glib:nick="press">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="122">specifies a key press event</doc>
+      </member>
+      <member name="release"
+              value="1"
+              c:identifier="ATK_KEY_EVENT_RELEASE"
+              glib:nick="release">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="123">specifies a key release event</doc>
+      </member>
+      <member name="last_defined"
+              value="2"
+              c:identifier="ATK_KEY_EVENT_LAST_DEFINED"
+              glib:nick="last-defined">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="124">Not a valid value; specifies end of enumeration</doc>
+      </member>
+    </enumeration>
+    <callback name="KeySnoopFunc" c:type="AtkKeySnoopFunc">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.h"
+           line="70">An #AtkKeySnoopFunc is a type of callback which is called whenever a key event occurs,
+if registered via atk_add_key_event_listener.  It allows for pre-emptive
+interception of key events via the return code as described below.</doc>
+      <source-position filename="../atk/atkutil.h" line="86"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.h"
+             line="80">TRUE (nonzero) if the event emission should be stopped and the event
+discarded without being passed to the normal GUI recipient; FALSE (zero) if the
+event dispatch to the client application should proceed as normal.
+
+see atk_add_key_event_listener.</doc>
+        <type name="gint" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="event" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="72">an AtkKeyEventStruct containing information about the key event for which
+notification is being given.</doc>
+          <type name="KeyEventStruct" c:type="AtkKeyEventStruct*"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.h"
+               line="74">a block of data which will be passed to the event listener, on notification.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="Layer"
+                 glib:type-name="AtkLayer"
+                 glib:get-type="atk_layer_get_type"
+                 c:type="AtkLayer">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.h"
+           line="378">Describes the layer of a component
+
+These enumerated "layer values" are used when determining which UI
+rendering layer a component is drawn into, which can help in making
+determinations of when components occlude one another.</doc>
+      <member name="invalid"
+              value="0"
+              c:identifier="ATK_LAYER_INVALID"
+              glib:nick="invalid">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="380">The object does not have a layer</doc>
+      </member>
+      <member name="background"
+              value="1"
+              c:identifier="ATK_LAYER_BACKGROUND"
+              glib:nick="background">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="381">This layer is reserved for the desktop background</doc>
+      </member>
+      <member name="canvas"
+              value="2"
+              c:identifier="ATK_LAYER_CANVAS"
+              glib:nick="canvas">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="382">This layer is used for Canvas components</doc>
+      </member>
+      <member name="widget"
+              value="3"
+              c:identifier="ATK_LAYER_WIDGET"
+              glib:nick="widget">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="383">This layer is normally used for components</doc>
+      </member>
+      <member name="mdi"
+              value="4"
+              c:identifier="ATK_LAYER_MDI"
+              glib:nick="mdi">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="384">This layer is used for layered components</doc>
+      </member>
+      <member name="popup"
+              value="5"
+              c:identifier="ATK_LAYER_POPUP"
+              glib:nick="popup">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="385">This layer is used for popup components, such as menus</doc>
+      </member>
+      <member name="overlay"
+              value="6"
+              c:identifier="ATK_LAYER_OVERLAY"
+              glib:nick="overlay">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="386">This layer is reserved for future use.</doc>
+      </member>
+      <member name="window"
+              value="7"
+              c:identifier="ATK_LAYER_WINDOW"
+              glib:nick="window">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="387">This layer is used for toplevel windows.</doc>
+      </member>
+    </enumeration>
+    <constant name="MAJOR_VERSION"
+              value="2"
+              c:type="ATK_MAJOR_VERSION"
+              version="2.7.4">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.h"
+           line="33">Like atk_get_major_version(), but from the headers used at
+application compile time, rather than from the library linked
+against at application run time.</doc>
+      <source-position filename="../atk/atkversion.h" line="42"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MICRO_VERSION"
+              value="0"
+              c:type="ATK_MICRO_VERSION"
+              version="2.7.4">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.h"
+           line="55">Like atk_get_micro_version(), but from the headers used at
+application compile time, rather than from the library linked
+against at application run time.</doc>
+      <source-position filename="../atk/atkversion.h" line="64"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MINOR_VERSION"
+              value="37"
+              c:type="ATK_MINOR_VERSION"
+              version="2.7.4">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.h"
+           line="44">Like atk_get_minor_version(), but from the headers used at
+application compile time, rather than from the library linked
+against at application run time.</doc>
+      <source-position filename="../atk/atkversion.h" line="53"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="MISC" c:identifier="ATK_MISC" introspectable="0">
+      <source-position filename="../atk/atkmisc.h" line="57"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="MISC_CLASS"
+                    c:identifier="ATK_MISC_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkmisc.h" line="58"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="MISC_GET_CLASS"
+                    c:identifier="ATK_MISC_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkmisc.h" line="60"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Misc"
+           c:symbol-prefix="misc"
+           c:type="AtkMisc"
+           parent="GObject.Object"
+           glib:type-name="AtkMisc"
+           glib:get-type="atk_misc_get_type"
+           glib:type-struct="MiscClass">
+      <doc xml:space="preserve"
+           filename="../atk/atkmisc.c"
+           line="24">A set of utility functions for thread locking. This interface and
+all his related methods are deprecated since 2.12.</doc>
+      <source-position filename="../atk/atkmisc.h" line="98"/>
+      <function name="get_instance"
+                c:identifier="atk_misc_get_instance"
+                version="1.13"
+                deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkmisc.c"
+             line="133">Obtain the singleton instance of AtkMisc for this application.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12.</doc-deprecated>
+        <source-position filename="../atk/atkmisc.h" line="108"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkmisc.c"
+               line="142">The singleton instance of AtkMisc for this application.</doc>
+          <type name="Misc" c:type="const AtkMisc*"/>
+        </return-value>
+      </function>
+      <virtual-method name="threads_enter"
+                      invoker="threads_enter"
+                      version="1.13"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkmisc.c"
+             line="66">Take the thread mutex for the GUI toolkit,
+if one exists.
+(This method is implemented by the toolkit ATK implementation layer;
+ for instance, for GTK+, GAIL implements this via GDK_THREADS_ENTER).</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12.</doc-deprecated>
+        <source-position filename="../atk/atkmisc.h" line="95"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="misc" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkmisc.c"
+                 line="68">an AtkMisc instance for this application.</doc>
+            <type name="Misc" c:type="AtkMisc*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="threads_leave"
+                      invoker="threads_leave"
+                      version="1.13"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkmisc.c"
+             line="96">Release the thread mutex for the GUI toolkit,
+if one exists. This method, and atk_misc_threads_enter,
+are needed in some situations by threaded application code which
+services ATK requests, since fulfilling ATK requests often
+requires calling into the GUI toolkit.  If a long-running or
+potentially blocking call takes place inside such a block, it should
+be bracketed by atk_misc_threads_leave/atk_misc_threads_enter calls.
+(This method is implemented by the toolkit ATK implementation layer;
+ for instance, for GTK+, GAIL implements this via GDK_THREADS_LEAVE).</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12.</doc-deprecated>
+        <source-position filename="../atk/atkmisc.h" line="96"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="misc" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkmisc.c"
+                 line="98">an AtkMisc instance for this application.</doc>
+            <type name="Misc" c:type="AtkMisc*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="threads_enter"
+              c:identifier="atk_misc_threads_enter"
+              version="1.13"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkmisc.c"
+             line="66">Take the thread mutex for the GUI toolkit,
+if one exists.
+(This method is implemented by the toolkit ATK implementation layer;
+ for instance, for GTK+, GAIL implements this via GDK_THREADS_ENTER).</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12.</doc-deprecated>
+        <source-position filename="../atk/atkmisc.h" line="104"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="misc" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkmisc.c"
+                 line="68">an AtkMisc instance for this application.</doc>
+            <type name="Misc" c:type="AtkMisc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="threads_leave"
+              c:identifier="atk_misc_threads_leave"
+              version="1.13"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkmisc.c"
+             line="96">Release the thread mutex for the GUI toolkit,
+if one exists. This method, and atk_misc_threads_enter,
+are needed in some situations by threaded application code which
+services ATK requests, since fulfilling ATK requests often
+requires calling into the GUI toolkit.  If a long-running or
+potentially blocking call takes place inside such a block, it should
+be bracketed by atk_misc_threads_leave/atk_misc_threads_enter calls.
+(This method is implemented by the toolkit ATK implementation layer;
+ for instance, for GTK+, GAIL implements this via GDK_THREADS_LEAVE).</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12.</doc-deprecated>
+        <source-position filename="../atk/atkmisc.h" line="106"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="misc" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkmisc.c"
+                 line="98">an AtkMisc instance for this application.</doc>
+            <type name="Misc" c:type="AtkMisc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+    </class>
+    <record name="MiscClass"
+            c:type="AtkMiscClass"
+            glib:is-gtype-struct-for="Misc">
+      <doc xml:space="preserve"
+           filename="../atk/atkmisc.h"
+           line="83">Usage of AtkMisc is deprecated since 2.12 and heavily discouraged.</doc>
+      <source-position filename="../atk/atkmisc.h" line="98"/>
+      <field name="parent">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="threads_enter">
+        <callback name="threads_enter">
+          <source-position filename="../atk/atkmisc.h" line="95"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="misc" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkmisc.c"
+                   line="68">an AtkMisc instance for this application.</doc>
+              <type name="Misc" c:type="AtkMisc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="threads_leave">
+        <callback name="threads_leave">
+          <source-position filename="../atk/atkmisc.h" line="96"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="misc" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkmisc.c"
+                   line="98">an AtkMisc instance for this application.</doc>
+              <type name="Misc" c:type="AtkMisc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="vfuncs">
+        <array zero-terminated="0" fixed-size="32">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <function-macro name="NO_OP_OBJECT"
+                    c:identifier="ATK_NO_OP_OBJECT"
+                    introspectable="0">
+      <source-position filename="../atk/atknoopobject.h" line="32"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="NO_OP_OBJECT_CLASS"
+                    c:identifier="ATK_NO_OP_OBJECT_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atknoopobject.h" line="33"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="NO_OP_OBJECT_FACTORY"
+                    c:identifier="ATK_NO_OP_OBJECT_FACTORY"
+                    introspectable="0">
+      <source-position filename="../atk/atknoopobjectfactory.h" line="32"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="NO_OP_OBJECT_FACTORY_CLASS"
+                    c:identifier="ATK_NO_OP_OBJECT_FACTORY_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atknoopobjectfactory.h" line="33"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="NO_OP_OBJECT_FACTORY_GET_CLASS"
+                    c:identifier="ATK_NO_OP_OBJECT_FACTORY_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atknoopobjectfactory.h" line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="NO_OP_OBJECT_GET_CLASS"
+                    c:identifier="ATK_NO_OP_OBJECT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atknoopobject.h" line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="NoOpObject"
+           c:symbol-prefix="no_op_object"
+           c:type="AtkNoOpObject"
+           parent="Object"
+           glib:type-name="AtkNoOpObject"
+           glib:get-type="atk_no_op_object_get_type"
+           glib:type-struct="NoOpObjectClass">
+      <doc xml:space="preserve"
+           filename="../atk/atknoopobject.c"
+           line="25">An AtkNoOpObject is an AtkObject which purports to implement all
+ATK interfaces. It is the type of AtkObject which is created if an
+accessible object is requested for an object type for which no
+factory type is specified.</doc>
+      <source-position filename="../atk/atknoopobject.h" line="52"/>
+      <implements name="Action"/>
+      <implements name="Component"/>
+      <implements name="Document"/>
+      <implements name="EditableText"/>
+      <implements name="Hypertext"/>
+      <implements name="Image"/>
+      <implements name="Selection"/>
+      <implements name="Table"/>
+      <implements name="TableCell"/>
+      <implements name="Text"/>
+      <implements name="Value"/>
+      <implements name="Window"/>
+      <constructor name="new" c:identifier="atk_no_op_object_new">
+        <doc xml:space="preserve"
+             filename="../atk/atknoopobject.c"
+             line="184">Provides a default (non-functioning stub) #AtkObject.
+Application maintainers should not use this method.</doc>
+        <source-position filename="../atk/atknoopobject.h" line="55"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atknoopobject.c"
+               line="191">a default (non-functioning stub) #AtkObject</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atknoopobject.c"
+                 line="186">a #GObject</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <field name="parent">
+        <type name="Object" c:type="AtkObject"/>
+      </field>
+    </class>
+    <record name="NoOpObjectClass"
+            c:type="AtkNoOpObjectClass"
+            glib:is-gtype-struct-for="NoOpObject">
+      <source-position filename="../atk/atknoopobject.h" line="52"/>
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="AtkObjectClass"/>
+      </field>
+    </record>
+    <class name="NoOpObjectFactory"
+           c:symbol-prefix="no_op_object_factory"
+           c:type="AtkNoOpObjectFactory"
+           parent="ObjectFactory"
+           glib:type-name="AtkNoOpObjectFactory"
+           glib:get-type="atk_no_op_object_factory_get_type"
+           glib:type-struct="NoOpObjectFactoryClass">
+      <doc xml:space="preserve"
+           filename="../atk/atknoopobjectfactory.c"
+           line="26">The AtkObjectFactory which creates an AtkNoOpObject. An instance of
+this is created by an AtkRegistry if no factory type has not been
+specified to create an accessible object of a particular type.</doc>
+      <source-position filename="../atk/atknoopobjectfactory.h" line="49"/>
+      <constructor name="new" c:identifier="atk_no_op_object_factory_new">
+        <doc xml:space="preserve"
+             filename="../atk/atknoopobjectfactory.c"
+             line="83">Creates an instance of an #AtkObjectFactory which generates primitive
+(non-functioning) #AtkObjects.</doc>
+        <source-position filename="../atk/atknoopobjectfactory.h" line="55"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atknoopobjectfactory.c"
+               line="89">an instance of an #AtkObjectFactory</doc>
+          <type name="ObjectFactory" c:type="AtkObjectFactory*"/>
+        </return-value>
+      </constructor>
+      <field name="parent">
+        <type name="ObjectFactory" c:type="AtkObjectFactory"/>
+      </field>
+    </class>
+    <record name="NoOpObjectFactoryClass"
+            c:type="AtkNoOpObjectFactoryClass"
+            glib:is-gtype-struct-for="NoOpObjectFactory">
+      <source-position filename="../atk/atknoopobjectfactory.h" line="49"/>
+      <field name="parent_class">
+        <type name="ObjectFactoryClass" c:type="AtkObjectFactoryClass"/>
+      </field>
+    </record>
+    <function-macro name="OBJECT" c:identifier="ATK_OBJECT" introspectable="0">
+      <source-position filename="../atk/atkobject.h" line="443"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="OBJECT_CLASS"
+                    c:identifier="ATK_OBJECT_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkobject.h" line="444"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="OBJECT_FACTORY"
+                    c:identifier="ATK_OBJECT_FACTORY"
+                    introspectable="0">
+      <source-position filename="../atk/atkobjectfactory.h" line="33"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="OBJECT_FACTORY_CLASS"
+                    c:identifier="ATK_OBJECT_FACTORY_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkobjectfactory.h" line="34"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="OBJECT_FACTORY_GET_CLASS"
+                    c:identifier="ATK_OBJECT_FACTORY_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkobjectfactory.h" line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="OBJECT_GET_CLASS"
+                    c:identifier="ATK_OBJECT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkobject.h" line="447"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Object"
+           c:symbol-prefix="object"
+           c:type="AtkObject"
+           parent="GObject.Object"
+           glib:type-name="AtkObject"
+           glib:get-type="atk_object_get_type"
+           glib:type-struct="ObjectClass">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.c"
+           line="32">This class is the primary class for accessibility support via the
+Accessibility ToolKit (ATK).  Objects which are instances of
+#AtkObject (or instances of AtkObject-derived types) are queried
+for properties which relate basic (and generic) properties of a UI
+component such as name and description.  Instances of #AtkObject
+may also be queried as to whether they implement other ATK
+interfaces (e.g. #AtkAction, #AtkComponent, etc.), as appropriate
+to the role which a given UI component plays in a user interface.
+
+All UI components in an application which provide useful
+information or services to the user must provide corresponding
+#AtkObject instances on request (in GTK+, for instance, usually on
+a call to #gtk_widget_get_accessible ()), either via ATK support
+built into the toolkit for the widget class or ancestor class, or
+in the case of custom widgets, if the inherited #AtkObject
+implementation is insufficient, via instances of a new #AtkObject
+subclass.
+
+See also: #AtkObjectFactory, #AtkRegistry.  (GTK+ users see also
+#GtkAccessible).</doc>
+      <source-position filename="../atk/atkobject.h" line="682"/>
+      <virtual-method name="active_descendant_changed">
+        <source-position filename="../atk/atkobject.h" line="670"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="child"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <type name="gpointer" c:type="gpointer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="children_changed">
+        <source-position filename="../atk/atkobject.h" line="636"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="change_index" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="changed_child"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="connect_property_change_handler"
+                      invoker="connect_property_change_handler"
+                      introspectable="0"
+                      deprecated="1"
+                      deprecated-version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1169">Calls @handler on property changes.</doc>
+        <doc-deprecated xml:space="preserve">Connect directly to #AtkObject::property-change or
+  the relevant #GObject::notify signal for each desired property.</doc-deprecated>
+        <source-position filename="../atk/atkobject.h" line="619"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1176">a #guint which is the handler id used in
+  atk_object_remove_property_change_handler()</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1171">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="handler" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1172">a function to be called when a property changes its value</doc>
+            <type name="PropertyChangeHandler"
+                  c:type="AtkPropertyChangeHandler*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="focus_event">
+        <source-position filename="../atk/atkobject.h" line="643"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="focus_in" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_attributes"
+                      invoker="get_attributes"
+                      version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1276">Get a list of properties applied to this object as a whole, as an #AtkAttributeSet 
consisting of
+name-value pairs. As such these attributes may be considered weakly-typed properties or annotations,
+as distinct from strongly-typed object data available via other get/set methods.
+Not all objects have explicit "name-value pair" #AtkAttributeSet properties.</doc>
+        <source-position filename="../atk/atkobject.h" line="677"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1287">an #AtkAttributeSet consisting of all
+explicit properties/annotations applied to the object, or an empty
+set if the object has no name-value pair attributes assigned to
+it. This #atkattributeset should be freed by a call to
+atk_attribute_set_free().</doc>
+          <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1278">An #AtkObject.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_description" invoker="get_description">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="744">Gets the accessible description of the accessible.</doc>
+        <source-position filename="../atk/atkobject.h" line="560"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="750">a character string representing the accessible description
+of the accessible.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="746">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_index_in_parent" invoker="get_index_in_parent">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1028">Gets the 0-based index of this accessible in its parent; returns -1 if the
+accessible does not have an accessible parent.</doc>
+        <source-position filename="../atk/atkobject.h" line="581"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1035">an integer which is the index of the accessible in its parent</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1030">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_layer" invoker="get_layer" deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="952">Gets the layer of the accessible.</doc>
+        <doc-deprecated xml:space="preserve">Use atk_component_get_layer instead.</doc-deprecated>
+        <source-position filename="../atk/atkobject.h" line="590"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="960">an #AtkLayer which is the layer of the accessible</doc>
+          <type name="Layer" c:type="AtkLayer"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="954">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_mdi_zorder"
+                      invoker="get_mdi_zorder"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="976">Gets the zorder of the accessible. The value G_MININT will be returned
+if the layer of the accessible is not ATK_LAYER_MDI.</doc>
+        <doc-deprecated xml:space="preserve">Use atk_component_get_mdi_zorder instead.</doc-deprecated>
+        <source-position filename="../atk/atkobject.h" line="591"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="985">a gint which is the zorder of the accessible, i.e. the depth at
+which the component is shown in relation to other components in the same
+container.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="978">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_n_children">
+        <source-position filename="../atk/atkobject.h" line="569"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_name" invoker="get_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="722">Gets the accessible name of the accessible.</doc>
+        <source-position filename="../atk/atkobject.h" line="556"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="728">a character string representing the accessible name of the object.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="724">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_object_locale"
+                      invoker="get_object_locale"
+                      version="2.8">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1616">Gets a UTF-8 string indicating the POSIX-style LC_MESSAGES locale
+of @accessible.</doc>
+        <source-position filename="../atk/atkobject.h" line="679"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1625">a UTF-8 string indicating the POSIX-style LC_MESSAGES
+         locale of @accessible.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1618">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_parent" invoker="get_parent">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="768">Gets the accessible parent of the accessible. By default this is
+the one assigned with atk_object_set_parent(), but it is assumed
+that ATK implementors have ways to get the parent of the object
+without the need of assigning it manually with
+atk_object_set_parent(), and will return it with this method.
+
+If you are only interested on the parent assigned with
+atk_object_set_parent(), use atk_object_peek_parent().</doc>
+        <source-position filename="../atk/atkobject.h" line="564"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="781">an #AtkObject representing the accessible
+parent of the accessible</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="770">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_role" invoker="get_role">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="930">Gets the role of the accessible.</doc>
+        <source-position filename="../atk/atkobject.h" line="589"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="936">an #AtkRole which is the role of the accessible</doc>
+          <type name="Role" c:type="AtkRole"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="932">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="initialize" invoker="initialize">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1526">This function is called when implementing subclasses of #AtkObject.
+It does initialization required for the new object. It is intended
+that this function should called only in the ..._new() functions used
+to create an instance of a subclass of #AtkObject</doc>
+        <source-position filename="../atk/atkobject.h" line="630"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1528">a #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1529">a #gpointer which identifies the object for which the AtkObject was 
created.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="property_change">
+        <source-position filename="../atk/atkobject.h" line="649"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="values" transfer-ownership="none">
+            <type name="PropertyValues" c:type="AtkPropertyValues*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="ref_child" introspectable="0">
+        <source-position filename="../atk/atkobject.h" line="575"/>
+        <return-value>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="ref_relation_set" invoker="ref_relation_set">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="869">Gets the #AtkRelationSet associated with the object.</doc>
+        <source-position filename="../atk/atkobject.h" line="585"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="875">an #AtkRelationSet representing the relation set
+of the object.</doc>
+          <type name="RelationSet" c:type="AtkRelationSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="871">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="ref_state_set" invoker="ref_state_set">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1004">Gets a reference to the state set of the accessible; the caller must
+unreference it when it is no longer needed.</doc>
+        <source-position filename="../atk/atkobject.h" line="595"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1011">a reference to an #AtkStateSet which is the state
+set of the accessible</doc>
+          <type name="StateSet" c:type="AtkStateSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1006">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="remove_property_change_handler"
+                      invoker="remove_property_change_handler"
+                      deprecated="1"
+                      deprecated-version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1198">Removes a property change handler.</doc>
+        <doc-deprecated xml:space="preserve">See 
atk_object_connect_property_change_handler()</doc-deprecated>
+        <source-position filename="../atk/atkobject.h" line="626"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1200">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="handler_id" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1201">a guint which identifies the handler to be removed.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_description" invoker="set_description">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1083">Sets the accessible description of the accessible. You can't set
+the description to NULL. This is reserved for the initial value. In
+this aspect NULL is similar to ATK_ROLE_UNKNOWN. If you want to set
+the name to a empty value you can use "".</doc>
+        <source-position filename="../atk/atkobject.h" line="604"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1085">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1086">a character string to be set as the accessible description</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_name" invoker="set_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1051">Sets the accessible name of the accessible. You can't set the name
+to NULL. This is reserved for the initial value. In this aspect
+NULL is similar to ATK_ROLE_UNKNOWN. If you want to set the name to
+a empty value you can use "".</doc>
+        <source-position filename="../atk/atkobject.h" line="599"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1053">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1054">a character string to be set as the accessible name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_parent" invoker="set_parent">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1116">Sets the accessible parent of the accessible. @parent can be NULL.</doc>
+        <source-position filename="../atk/atkobject.h" line="609"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1118">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="parent" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1119">an #AtkObject to be set as the accessible parent</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_role" invoker="set_role">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1139">Sets the role of the accessible.</doc>
+        <source-position filename="../atk/atkobject.h" line="614"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1141">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="role" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1142">an #AtkRole to be set as the role</doc>
+            <type name="Role" c:type="AtkRole"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="state_change">
+        <source-position filename="../atk/atkobject.h" line="655"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="state_set" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="visible_data_changed">
+        <source-position filename="../atk/atkobject.h" line="662"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_relationship"
+              c:identifier="atk_object_add_relationship">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1679">Adds a relationship of the specified type with the specified target.</doc>
+        <source-position filename="../atk/atkobject.h" line="776"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1687">TRUE if the relationship is added.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1681">The #AtkObject to which an AtkRelation is to be added.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="relationship" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1682">The #AtkRelationType of the relation</doc>
+            <type name="RelationType" c:type="AtkRelationType"/>
+          </parameter>
+          <parameter name="target" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1683">The #AtkObject which is to be the target of the relation.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="connect_property_change_handler"
+              c:identifier="atk_object_connect_property_change_handler"
+              introspectable="0"
+              deprecated="1"
+              deprecated-version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1169">Calls @handler on property changes.</doc>
+        <doc-deprecated xml:space="preserve">Connect directly to #AtkObject::property-change or
+  the relevant #GObject::notify signal for each desired property.</doc-deprecated>
+        <source-position filename="../atk/atkobject.h" line="754"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1176">a #guint which is the handler id used in
+  atk_object_remove_property_change_handler()</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1171">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="handler" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1172">a function to be called when a property changes its value</doc>
+            <type name="PropertyChangeHandler"
+                  c:type="AtkPropertyChangeHandler*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_accessible_id"
+              c:identifier="atk_object_get_accessible_id"
+              version="2.34">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1746">Gets the accessible id of the accessible.</doc>
+        <source-position filename="../atk/atkobject.h" line="791"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1754">a character string representing the accessible id of the object, or
+NULL if no such string was set.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1748">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_attributes"
+              c:identifier="atk_object_get_attributes"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1276">Get a list of properties applied to this object as a whole, as an #AtkAttributeSet 
consisting of
+name-value pairs. As such these attributes may be considered weakly-typed properties or annotations,
+as distinct from strongly-typed object data available via other get/set methods.
+Not all objects have explicit "name-value pair" #AtkAttributeSet properties.</doc>
+        <source-position filename="../atk/atkobject.h" line="734"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1287">an #AtkAttributeSet consisting of all
+explicit properties/annotations applied to the object, or an empty
+set if the object has no name-value pair attributes assigned to
+it. This #atkattributeset should be freed by a call to
+atk_attribute_set_free().</doc>
+          <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1278">An #AtkObject.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_description" c:identifier="atk_object_get_description">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="744">Gets the accessible description of the accessible.</doc>
+        <source-position filename="../atk/atkobject.h" line="713"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="750">a character string representing the accessible description
+of the accessible.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="746">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_index_in_parent"
+              c:identifier="atk_object_get_index_in_parent">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1028">Gets the 0-based index of this accessible in its parent; returns -1 if the
+accessible does not have an accessible parent.</doc>
+        <source-position filename="../atk/atkobject.h" line="738"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1035">an integer which is the index of the accessible in its parent</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1030">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_layer"
+              c:identifier="atk_object_get_layer"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="952">Gets the layer of the accessible.</doc>
+        <doc-deprecated xml:space="preserve">Use atk_component_get_layer instead.</doc-deprecated>
+        <source-position filename="../atk/atkobject.h" line="729"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="960">an #AtkLayer which is the layer of the accessible</doc>
+          <type name="Layer" c:type="AtkLayer"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="954">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_mdi_zorder"
+              c:identifier="atk_object_get_mdi_zorder"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="976">Gets the zorder of the accessible. The value G_MININT will be returned
+if the layer of the accessible is not ATK_LAYER_MDI.</doc>
+        <doc-deprecated xml:space="preserve">Use atk_component_get_mdi_zorder instead.</doc-deprecated>
+        <source-position filename="../atk/atkobject.h" line="731"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="985">a gint which is the zorder of the accessible, i.e. the depth at
+which the component is shown in relation to other components in the same
+container.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="978">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_accessible_children"
+              c:identifier="atk_object_get_n_accessible_children">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="819">Gets the number of accessible children of the accessible.</doc>
+        <source-position filename="../atk/atkobject.h" line="719"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="825">an integer representing the number of accessible children
+of the accessible.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="821">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_name" c:identifier="atk_object_get_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="722">Gets the accessible name of the accessible.</doc>
+        <source-position filename="../atk/atkobject.h" line="711"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="728">a character string representing the accessible name of the object.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="724">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_object_locale"
+              c:identifier="atk_object_get_object_locale"
+              version="2.8">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1616">Gets a UTF-8 string indicating the POSIX-style LC_MESSAGES locale
+of @accessible.</doc>
+        <source-position filename="../atk/atkobject.h" line="788"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1625">a UTF-8 string indicating the POSIX-style LC_MESSAGES
+         locale of @accessible.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1618">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_parent" c:identifier="atk_object_get_parent">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="768">Gets the accessible parent of the accessible. By default this is
+the one assigned with atk_object_set_parent(), but it is assumed
+that ATK implementors have ways to get the parent of the object
+without the need of assigning it manually with
+atk_object_set_parent(), and will return it with this method.
+
+If you are only interested on the parent assigned with
+atk_object_set_parent(), use atk_object_peek_parent().</doc>
+        <source-position filename="../atk/atkobject.h" line="715"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="781">an #AtkObject representing the accessible
+parent of the accessible</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="770">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_role" c:identifier="atk_object_get_role">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="930">Gets the role of the accessible.</doc>
+        <source-position filename="../atk/atkobject.h" line="726"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="936">an #AtkRole which is the role of the accessible</doc>
+          <type name="Role" c:type="AtkRole"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="932">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="initialize" c:identifier="atk_object_initialize">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1526">This function is called when implementing subclasses of #AtkObject.
+It does initialization required for the new object. It is intended
+that this function should called only in the ..._new() functions used
+to create an instance of a subclass of #AtkObject</doc>
+        <source-position filename="../atk/atkobject.h" line="765"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1528">a #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1529">a #gpointer which identifies the object for which the AtkObject was 
created.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="notify_state_change"
+              c:identifier="atk_object_notify_state_change">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1220">Emits a state-change signal for the specified state.
+
+Note that as a general rule when the state of an existing object changes,
+emitting a notification is expected.</doc>
+        <source-position filename="../atk/atkobject.h" line="761"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1222">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1223">an #AtkState whose state is changed</doc>
+            <type name="State" c:type="AtkState"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1224">a gboolean which indicates whether the state is being set on or off</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_parent" c:identifier="atk_object_peek_parent">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="798">Gets the accessible parent of the accessible, if it has been
+manually assigned with atk_object_set_parent. Otherwise, this
+function returns %NULL.
+
+This method is intended as an utility for ATK implementors, and not
+to be exposed to accessible tools. See atk_object_get_parent() for
+further reference.</doc>
+        <source-position filename="../atk/atkobject.h" line="717"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="810">an #AtkObject representing the accessible
+parent of the accessible if assigned</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="800">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="ref_accessible_child"
+              c:identifier="atk_object_ref_accessible_child">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="842">Gets a reference to the specified accessible child of the object.
+The accessible children are 0-based so the first accessible child is
+at index 0, the second at index 1 and so on.</doc>
+        <source-position filename="../atk/atkobject.h" line="721"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="851">an #AtkObject representing the specified
+accessible child of the accessible.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="844">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="845">a gint representing the position of the child, starting from 0</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ref_relation_set"
+              c:identifier="atk_object_ref_relation_set">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="869">Gets the #AtkRelationSet associated with the object.</doc>
+        <source-position filename="../atk/atkobject.h" line="724"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="875">an #AtkRelationSet representing the relation set
+of the object.</doc>
+          <type name="RelationSet" c:type="AtkRelationSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="871">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="ref_state_set" c:identifier="atk_object_ref_state_set">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1004">Gets a reference to the state set of the accessible; the caller must
+unreference it when it is no longer needed.</doc>
+        <source-position filename="../atk/atkobject.h" line="736"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1011">a reference to an #AtkStateSet which is the state
+set of the accessible</doc>
+          <type name="StateSet" c:type="AtkStateSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1006">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove_property_change_handler"
+              c:identifier="atk_object_remove_property_change_handler"
+              deprecated="1"
+              deprecated-version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1198">Removes a property change handler.</doc>
+        <doc-deprecated xml:space="preserve">See 
atk_object_connect_property_change_handler()</doc-deprecated>
+        <source-position filename="../atk/atkobject.h" line="757"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1200">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="handler_id" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1201">a guint which identifies the handler to be removed.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_relationship"
+              c:identifier="atk_object_remove_relationship">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1712">Removes a relationship of the specified type with the specified target.</doc>
+        <source-position filename="../atk/atkobject.h" line="780"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1720">TRUE if the relationship is removed.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1714">The #AtkObject from which an AtkRelation is to be removed.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="relationship" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1715">The #AtkRelationType of the relation</doc>
+            <type name="RelationType" c:type="AtkRelationType"/>
+          </parameter>
+          <parameter name="target" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1716">The #AtkObject which is the target of the relation to be removed.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_accessible_id"
+              c:identifier="atk_object_set_accessible_id"
+              version="2.34">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1764">Sets the accessible ID of the accessible.  This is not meant to be presented
+to the user, but to be an ID which is stable over application development.
+Typically, this is the gtkbuilder ID. Such an ID will be available for
+instance to identify a given well-known accessible object for tailored screen
+reading, or for automatic regression testing.</doc>
+        <source-position filename="../atk/atkobject.h" line="794"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1766">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1767">a character string to be set as the accessible id</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_description" c:identifier="atk_object_set_description">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1083">Sets the accessible description of the accessible. You can't set
+the description to NULL. This is reserved for the initial value. In
+this aspect NULL is similar to ATK_ROLE_UNKNOWN. If you want to set
+the name to a empty value you can use "".</doc>
+        <source-position filename="../atk/atkobject.h" line="743"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1085">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1086">a character string to be set as the accessible description</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_name" c:identifier="atk_object_set_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1051">Sets the accessible name of the accessible. You can't set the name
+to NULL. This is reserved for the initial value. In this aspect
+NULL is similar to ATK_ROLE_UNKNOWN. If you want to set the name to
+a empty value you can use "".</doc>
+        <source-position filename="../atk/atkobject.h" line="740"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1053">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1054">a character string to be set as the accessible name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_parent" c:identifier="atk_object_set_parent">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1116">Sets the accessible parent of the accessible. @parent can be NULL.</doc>
+        <source-position filename="../atk/atkobject.h" line="746"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1118">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="parent" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1119">an #AtkObject to be set as the accessible parent</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_role" c:identifier="atk_object_set_role">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1139">Sets the role of the accessible.</doc>
+        <source-position filename="../atk/atkobject.h" line="749"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1141">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </instance-parameter>
+          <parameter name="role" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1142">an #AtkRole to be set as the role</doc>
+            <type name="Role" c:type="AtkRole"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="accessible-component-layer" transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="accessible-component-mdi-zorder"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="accessible-description"
+                writable="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="accessible-hypertext-nlinks" transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="accessible-name" writable="1" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="accessible-parent"
+                writable="1"
+                transfer-ownership="none">
+        <type name="Object"/>
+      </property>
+      <property name="accessible-role" writable="1" transfer-ownership="none">
+        <type name="Role"/>
+      </property>
+      <property name="accessible-table-caption"
+                deprecated="1"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="455">Table caption.</doc>
+        <doc-deprecated xml:space="preserve">Since 1.3. Use table-caption-object instead.</doc-deprecated>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="accessible-table-caption-object"
+                writable="1"
+                transfer-ownership="none">
+        <type name="Object"/>
+      </property>
+      <property name="accessible-table-column-description"
+                deprecated="1"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="485">Accessible table column description.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_table_get_column_description()
+and atk_table_set_column_description() instead.</doc-deprecated>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="accessible-table-column-header"
+                deprecated="1"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="469">Accessible table column header.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_table_get_column_header() and
+atk_table_set_column_header() instead.</doc-deprecated>
+        <type name="Object"/>
+      </property>
+      <property name="accessible-table-row-description"
+                deprecated="1"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="516">Accessible table row description.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_table_get_row_description() and
+atk_table_set_row_description() instead.</doc-deprecated>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="accessible-table-row-header"
+                deprecated="1"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="501">Accessible table row header.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_table_get_row_header() and
+atk_table_set_row_header() instead.</doc-deprecated>
+        <type name="Object"/>
+      </property>
+      <property name="accessible-table-summary"
+                writable="1"
+                transfer-ownership="none">
+        <type name="Object"/>
+      </property>
+      <property name="accessible-value"
+                deprecated="1"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="410">Numeric value of this object, in case being and AtkValue.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_value_get_value_and_text() to get
+the value, and value-changed signal to be notified on their value
+changes.</doc-deprecated>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="description">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="name">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="accessible_parent">
+        <type name="Object" c:type="AtkObject*"/>
+      </field>
+      <field name="role">
+        <type name="Role" c:type="AtkRole"/>
+      </field>
+      <field name="relation_set">
+        <type name="RelationSet" c:type="AtkRelationSet*"/>
+      </field>
+      <field name="layer">
+        <type name="Layer" c:type="AtkLayer"/>
+      </field>
+      <glib:signal name="active-descendant-changed" when="last" detailed="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="667">The "active-descendant-changed" signal is emitted by an object
+which has the state ATK_STATE_MANAGES_DESCENDANTS when the focus
+object in the object changes. For instance, a table will emit the
+signal when the cell in the table which has focus changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="670">the newly focused object.</doc>
+            <type name="Object" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="children-changed" when="last" detailed="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="555">The signal "children-changed" is emitted when a child is added or
+removed form an object. It supports two details: "add" and
+"remove"</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="558">The index of the added or removed child. The value can be
+-1. This is used if the value is not known by the implementor
+when the child is added/removed or irrelevant.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="561">A gpointer to the child AtkObject which was added or
+removed. If the child was removed, it is possible that it is not
+available for the implementor. In that case this pointer can be
+NULL.</doc>
+            <type name="Object" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="focus-event"
+                   when="last"
+                   deprecated="1"
+                   deprecated-version="2.9.4">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="580">The signal "focus-event" is emitted when an object gained or lost
+focus.</doc>
+        <doc-deprecated xml:space="preserve">Use the #AtkObject::state-change signal 
instead.</doc-deprecated>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="583">a boolean value which indicates whether the object gained
+or lost focus.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="property-change" when="last" detailed="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="600">The signal "property-change" is emitted when an object's property
+value changes. @arg1 contains an #AtkPropertyValues with the name
+and the new value of the property whose value has changed. Note
+that, as with GObject notify, getting this signal does not
+guarantee that the value of the property has actually changed; it
+may also be emitted when the setter of the property is called to
+reinstate the previous value.
+
+Toolkit implementor note: ATK implementors should use
+g_object_notify() to emit property-changed
+notifications. #AtkObject::property-changed is needed by the
+implementation of atk_add_global_event_listener() because GObject
+notify doesn't support emission hooks.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="603">an #AtkPropertyValues containing the new
+value of the property which changed.</doc>
+            <type name="PropertyValues" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="state-change" when="last" detailed="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="630">The "state-change" signal is emitted when an object's state
+changes.  The detail value identifies the state type which has
+changed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="633">The name of the state which has changed</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="634">A boolean which indicates whether the state has been set or unset.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="visible-data-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="651">The "visible-data-changed" signal is emitted when the visual
+appearance of the object changed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="ObjectClass"
+            c:type="AtkObjectClass"
+            glib:is-gtype-struct-for="Object">
+      <source-position filename="../atk/atkobject.h" line="682"/>
+      <field name="parent">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="get_name">
+        <callback name="get_name">
+          <source-position filename="../atk/atkobject.h" line="556"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="728">a character string representing the accessible name of the object.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="724">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_description">
+        <callback name="get_description">
+          <source-position filename="../atk/atkobject.h" line="560"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="750">a character string representing the accessible description
+of the accessible.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="746">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_parent">
+        <callback name="get_parent">
+          <source-position filename="../atk/atkobject.h" line="564"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="781">an #AtkObject representing the accessible
+parent of the accessible</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="770">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_n_children">
+        <callback name="get_n_children">
+          <source-position filename="../atk/atkobject.h" line="569"/>
+          <return-value transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="ref_child" introspectable="0">
+        <callback name="ref_child" introspectable="0">
+          <source-position filename="../atk/atkobject.h" line="575"/>
+          <return-value>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_index_in_parent">
+        <callback name="get_index_in_parent">
+          <source-position filename="../atk/atkobject.h" line="581"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1035">an integer which is the index of the accessible in its parent</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1030">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="ref_relation_set">
+        <callback name="ref_relation_set">
+          <source-position filename="../atk/atkobject.h" line="585"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="875">an #AtkRelationSet representing the relation set
+of the object.</doc>
+            <type name="RelationSet" c:type="AtkRelationSet*"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="871">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_role">
+        <callback name="get_role">
+          <source-position filename="../atk/atkobject.h" line="589"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="936">an #AtkRole which is the role of the accessible</doc>
+            <type name="Role" c:type="AtkRole"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="932">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_layer">
+        <callback name="get_layer">
+          <source-position filename="../atk/atkobject.h" line="590"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="960">an #AtkLayer which is the layer of the accessible</doc>
+            <type name="Layer" c:type="AtkLayer"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="954">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_mdi_zorder">
+        <callback name="get_mdi_zorder">
+          <source-position filename="../atk/atkobject.h" line="591"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="985">a gint which is the zorder of the accessible, i.e. the depth at
+which the component is shown in relation to other components in the same
+container.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="978">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="ref_state_set">
+        <callback name="ref_state_set">
+          <source-position filename="../atk/atkobject.h" line="595"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1011">a reference to an #AtkStateSet which is the state
+set of the accessible</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1006">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_name">
+        <callback name="set_name">
+          <source-position filename="../atk/atkobject.h" line="599"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1053">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1054">a character string to be set as the accessible name</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_description">
+        <callback name="set_description">
+          <source-position filename="../atk/atkobject.h" line="604"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1085">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="description" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1086">a character string to be set as the accessible description</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_parent">
+        <callback name="set_parent">
+          <source-position filename="../atk/atkobject.h" line="609"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1118">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="parent" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1119">an #AtkObject to be set as the accessible parent</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_role">
+        <callback name="set_role">
+          <source-position filename="../atk/atkobject.h" line="614"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1141">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="role" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1142">an #AtkRole to be set as the role</doc>
+              <type name="Role" c:type="AtkRole"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="connect_property_change_handler" introspectable="0">
+        <callback name="connect_property_change_handler" introspectable="0">
+          <source-position filename="../atk/atkobject.h" line="619"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1176">a #guint which is the handler id used in
+  atk_object_remove_property_change_handler()</doc>
+            <type name="guint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1171">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="handler" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1172">a function to be called when a property changes its value</doc>
+              <type name="PropertyChangeHandler"
+                    c:type="AtkPropertyChangeHandler*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove_property_change_handler">
+        <callback name="remove_property_change_handler">
+          <source-position filename="../atk/atkobject.h" line="626"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1200">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="handler_id" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1201">a guint which identifies the handler to be removed.</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="initialize">
+        <callback name="initialize">
+          <source-position filename="../atk/atkobject.h" line="630"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1528">a #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="data"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1529">a #gpointer which identifies the object for which the AtkObject was 
created.</doc>
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="children_changed">
+        <callback name="children_changed">
+          <source-position filename="../atk/atkobject.h" line="636"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="change_index" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="changed_child"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="focus_event">
+        <callback name="focus_event">
+          <source-position filename="../atk/atkobject.h" line="643"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="focus_in" transfer-ownership="none">
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="property_change">
+        <callback name="property_change">
+          <source-position filename="../atk/atkobject.h" line="649"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="values" transfer-ownership="none">
+              <type name="PropertyValues" c:type="AtkPropertyValues*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="state_change">
+        <callback name="state_change">
+          <source-position filename="../atk/atkobject.h" line="655"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="state_set" transfer-ownership="none">
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="visible_data_changed">
+        <callback name="visible_data_changed">
+          <source-position filename="../atk/atkobject.h" line="662"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="active_descendant_changed">
+        <callback name="active_descendant_changed">
+          <source-position filename="../atk/atkobject.h" line="670"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+            <parameter name="child"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1">
+              <type name="gpointer" c:type="gpointer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_attributes">
+        <callback name="get_attributes">
+          <source-position filename="../atk/atkobject.h" line="677"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1287">an #AtkAttributeSet consisting of all
+explicit properties/annotations applied to the object, or an empty
+set if the object has no name-value pair attributes assigned to
+it. This #atkattributeset should be freed by a call to
+atk_attribute_set_free().</doc>
+            <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1278">An #AtkObject.</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_object_locale">
+        <callback name="get_object_locale">
+          <source-position filename="../atk/atkobject.h" line="679"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1625">a UTF-8 string indicating the POSIX-style LC_MESSAGES
+         locale of @accessible.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobject.c"
+                   line="1618">an #AtkObject</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pad1">
+        <type name="Function" c:type="AtkFunction"/>
+      </field>
+    </record>
+    <class name="ObjectFactory"
+           c:symbol-prefix="object_factory"
+           c:type="AtkObjectFactory"
+           parent="GObject.Object"
+           glib:type-name="AtkObjectFactory"
+           glib:get-type="atk_object_factory_get_type"
+           glib:type-struct="ObjectFactoryClass">
+      <doc xml:space="preserve"
+           filename="../atk/atkobjectfactory.c"
+           line="25">This class is the base object class for a factory used to create an
+accessible object for a specific GType. The function
+atk_registry_set_factory_type() is normally called to store in the
+registry the factory type to be used to create an accessible of a
+particular GType.</doc>
+      <source-position filename="../atk/atkobjectfactory.h" line="57"/>
+      <virtual-method name="invalidate" invoker="invalidate">
+        <doc xml:space="preserve"
+             filename="../atk/atkobjectfactory.c"
+             line="105">Inform @factory that it is no longer being used to create
+accessibles. When called, @factory may need to inform
+#AtkObjects which it has created that they need to be re-instantiated.
+Note: primarily used for runtime replacement of #AtkObjectFactorys
+in object registries.</doc>
+        <source-position filename="../atk/atkobjectfactory.h" line="52"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="factory" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobjectfactory.c"
+                 line="107">an #AtkObjectFactory to invalidate</doc>
+            <type name="ObjectFactory" c:type="AtkObjectFactory*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="create_accessible"
+              c:identifier="atk_object_factory_create_accessible">
+        <doc xml:space="preserve"
+             filename="../atk/atkobjectfactory.c"
+             line="74">Provides an #AtkObject that implements an accessibility interface
+on behalf of @obj</doc>
+        <source-position filename="../atk/atkobjectfactory.h" line="64"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkobjectfactory.c"
+               line="83">an #AtkObject that implements an accessibility
+interface on behalf of @obj</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="factory" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobjectfactory.c"
+                 line="76">The #AtkObjectFactory associated with @obj's
+object type</doc>
+            <type name="ObjectFactory" c:type="AtkObjectFactory*"/>
+          </instance-parameter>
+          <parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobjectfactory.c"
+                 line="78">a #GObject</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_accessible_type"
+              c:identifier="atk_object_factory_get_accessible_type">
+        <doc xml:space="preserve"
+             filename="../atk/atkobjectfactory.c"
+             line="127">Gets the GType of the accessible which is created by the factory.</doc>
+        <source-position filename="../atk/atkobjectfactory.h" line="68"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobjectfactory.c"
+               line="132">the type of the accessible which is created by the @factory.
+The value G_TYPE_INVALID is returned if no type if found.</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="factory" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobjectfactory.c"
+                 line="129">an #AtkObjectFactory</doc>
+            <type name="ObjectFactory" c:type="AtkObjectFactory*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="invalidate" c:identifier="atk_object_factory_invalidate">
+        <doc xml:space="preserve"
+             filename="../atk/atkobjectfactory.c"
+             line="105">Inform @factory that it is no longer being used to create
+accessibles. When called, @factory may need to inform
+#AtkObjects which it has created that they need to be re-instantiated.
+Note: primarily used for runtime replacement of #AtkObjectFactorys
+in object registries.</doc>
+        <source-position filename="../atk/atkobjectfactory.h" line="66"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="factory" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobjectfactory.c"
+                 line="107">an #AtkObjectFactory to invalidate</doc>
+            <type name="ObjectFactory" c:type="AtkObjectFactory*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+    </class>
+    <record name="ObjectFactoryClass"
+            c:type="AtkObjectFactoryClass"
+            glib:is-gtype-struct-for="ObjectFactory">
+      <source-position filename="../atk/atkobjectfactory.h" line="57"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="create_accessible" introspectable="0">
+        <callback name="create_accessible" introspectable="0">
+          <source-position filename="../atk/atkobjectfactory.h" line="51"/>
+          <return-value>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <type name="GObject.Object" c:type="GObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="invalidate">
+        <callback name="invalidate">
+          <source-position filename="../atk/atkobjectfactory.h" line="52"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="factory" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkobjectfactory.c"
+                   line="107">an #AtkObjectFactory to invalidate</doc>
+              <type name="ObjectFactory" c:type="AtkObjectFactory*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_accessible_type">
+        <callback name="get_accessible_type">
+          <source-position filename="../atk/atkobjectfactory.h" line="53"/>
+          <return-value transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="pad1">
+        <type name="Function" c:type="AtkFunction"/>
+      </field>
+      <field name="pad2">
+        <type name="Function" c:type="AtkFunction"/>
+      </field>
+    </record>
+    <function-macro name="PLUG" c:identifier="ATK_PLUG" introspectable="0">
+      <source-position filename="../atk/atkplug.h" line="32"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PLUG_CLASS"
+                    c:identifier="ATK_PLUG_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkplug.h" line="34"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PLUG_GET_CLASS"
+                    c:identifier="ATK_PLUG_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkplug.h" line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Plug"
+           c:symbol-prefix="plug"
+           c:type="AtkPlug"
+           parent="Object"
+           glib:type-name="AtkPlug"
+           glib:get-type="atk_plug_get_type"
+           glib:type-struct="PlugClass">
+      <doc xml:space="preserve"
+           filename="../atk/atkplug.c"
+           line="25">See #AtkSocket</doc>
+      <source-position filename="../atk/atkplug.h" line="57"/>
+      <implements name="Component"/>
+      <constructor name="new" c:identifier="atk_plug_new" version="1.30">
+        <doc xml:space="preserve"
+             filename="../atk/atkplug.c"
+             line="118">Creates a new #AtkPlug instance.</doc>
+        <source-position filename="../atk/atkplug.h" line="60"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkplug.c"
+               line="123">the newly created #AtkPlug</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="get_object_id">
+        <source-position filename="../atk/atkplug.h" line="56"/>
+        <return-value transfer-ownership="full">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <type name="Plug" c:type="AtkPlug*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_id" c:identifier="atk_plug_get_id" version="1.30">
+        <doc xml:space="preserve"
+             filename="../atk/atkplug.c"
+             line="164">Gets the unique ID of an #AtkPlug object, which can be used to
+embed inside of an #AtkSocket using atk_socket_embed().
+
+Internally, this calls a class function that should be registered
+by the IPC layer (usually at-spi2-atk). The implementor of an
+#AtkPlug object should call this function (after atk-bridge is
+loaded) and pass the value to the process implementing the
+#AtkSocket, so it could embed the plug.</doc>
+        <source-position filename="../atk/atkplug.h" line="64"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkplug.c"
+               line="177">the unique ID for the plug</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plug" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkplug.c"
+                 line="166">an #AtkPlug</doc>
+            <type name="Plug" c:type="AtkPlug*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_child"
+              c:identifier="atk_plug_set_child"
+              version="2.35.0">
+        <doc xml:space="preserve"
+             filename="../atk/atkplug.c"
+             line="133">Sets @child as accessible child of @plug and @plug as accessible parent of
+@child. @child can be NULL.
+
+In some cases, one can not use the AtkPlug type directly as accessible
+object for the toplevel widget of the application. For instance in the gtk
+case, GtkPlugAccessible can not inherit both from GtkWindowAccessible and
+from AtkPlug. In such a case, one can create, in addition to the standard
+accessible object for the toplevel widget, an AtkPlug object, and make the
+former the child of the latter by calling atk_plug_set_child().</doc>
+        <source-position filename="../atk/atkplug.h" line="62"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plug" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkplug.c"
+                 line="135">an #AtkPlug to be set as accessible parent of @child.</doc>
+            <type name="Plug" c:type="AtkPlug*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkplug.c"
+                 line="136">an #AtkObject to be set as accessible child of @plug.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Object" c:type="AtkObject"/>
+      </field>
+    </class>
+    <record name="PlugClass"
+            c:type="AtkPlugClass"
+            glib:is-gtype-struct-for="Plug">
+      <source-position filename="../atk/atkplug.h" line="57"/>
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="AtkObjectClass"/>
+      </field>
+      <field name="get_object_id">
+        <callback name="get_object_id">
+          <source-position filename="../atk/atkplug.h" line="56"/>
+          <return-value transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <type name="Plug" c:type="AtkPlug*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <callback name="PropertyChangeHandler"
+              c:type="AtkPropertyChangeHandler"
+              deprecated="1">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.h"
+           line="508">An AtkPropertyChangeHandler is a function which is executed when an
+AtkObject's property changes value. It is specified in a call to
+atk_object_connect_property_change_handler().</doc>
+      <doc-deprecated xml:space="preserve">Since 2.12.</doc-deprecated>
+      <source-position filename="../atk/atkobject.h" line="519"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="obj" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.h"
+               line="510">atkobject which property changes</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </parameter>
+        <parameter name="vals" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.h"
+               line="511">values changed</doc>
+          <type name="PropertyValues" c:type="AtkPropertyValues*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="PropertyValues" c:type="AtkPropertyValues">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.h"
+           line="464">Note: @old_value field of #AtkPropertyValues will not contain a
+valid value. This is a field defined with the purpose of contain
+the previous value of the property, but is not used anymore.</doc>
+      <source-position filename="../atk/atkobject.h" line="480"/>
+      <field name="property_name" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="466">The name of the ATK property which has changed.</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </field>
+      <field name="old_value" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="467">NULL. This field is not used anymore.</doc>
+        <type name="GObject.Value" c:type="GValue"/>
+      </field>
+      <field name="new_value" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="468">The new value of the named property.</doc>
+        <type name="GObject.Value" c:type="GValue"/>
+      </field>
+    </record>
+    <function-macro name="REGISTRY"
+                    c:identifier="ATK_REGISTRY"
+                    introspectable="0">
+      <source-position filename="../atk/atkregistry.h" line="33"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="REGISTRY_CLASS"
+                    c:identifier="ATK_REGISTRY_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkregistry.h" line="34"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="REGISTRY_GET_CLASS"
+                    c:identifier="ATK_REGISTRY_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkregistry.h" line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="RELATION"
+                    c:identifier="ATK_RELATION"
+                    introspectable="0">
+      <source-position filename="../atk/atkrelation.h" line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="RELATION_CLASS"
+                    c:identifier="ATK_RELATION_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkrelation.h" line="41"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="RELATION_GET_CLASS"
+                    c:identifier="ATK_RELATION_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkrelation.h" line="44"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="RELATION_SET"
+                    c:identifier="ATK_RELATION_SET"
+                    introspectable="0">
+      <source-position filename="../atk/atkrelationset.h" line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="RELATION_SET_CLASS"
+                    c:identifier="ATK_RELATION_SET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkrelationset.h" line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="RELATION_SET_GET_CLASS"
+                    c:identifier="ATK_RELATION_SET_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkrelationset.h" line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <record name="Range"
+            c:type="AtkRange"
+            glib:type-name="AtkRange"
+            glib:get-type="atk_range_get_type"
+            c:symbol-prefix="range">
+      <doc xml:space="preserve"
+           filename="../atk/atkrange.c"
+           line="26">#AtkRange are used on #AtkValue, in order to represent the full
+range of a given component (for example an slider or a range
+control), or to define each individual subrange this full range is
+splitted if available. See #AtkValue documentation for further
+details.</doc>
+      <source-position filename="../atk/atkrange.h" line="35"/>
+      <constructor name="new" c:identifier="atk_range_new" version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkrange.c"
+             line="87">Creates a new #AtkRange.</doc>
+        <source-position filename="../atk/atkrange.h" line="53"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkrange.c"
+               line="97">a new #AtkRange</doc>
+          <type name="Range" c:type="AtkRange*"/>
+        </return-value>
+        <parameters>
+          <parameter name="lower_limit" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrange.c"
+                 line="89">inferior limit for this range</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="upper_limit" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrange.c"
+                 line="90">superior limit for this range</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrange.c"
+                 line="91">human readable description of this range.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="copy" c:identifier="atk_range_copy" version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkrange.c"
+             line="44">Returns a new #AtkRange that is a exact copy of @src</doc>
+        <source-position filename="../atk/atkrange.h" line="42"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkrange.c"
+               line="52">a new #AtkRange copy of @src</doc>
+          <type name="Range" c:type="AtkRange*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="src" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrange.c"
+                 line="46">#AtkRange to copy</doc>
+            <type name="Range" c:type="AtkRange*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="atk_range_free" version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkrange.c"
+             line="64">Free @range</doc>
+        <source-position filename="../atk/atkrange.h" line="44"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="range" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrange.c"
+                 line="66">#AtkRange to free</doc>
+            <type name="Range" c:type="AtkRange*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_description"
+              c:identifier="atk_range_get_description"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkrange.c"
+             line="153">Returns the human readable description of @range</doc>
+        <source-position filename="../atk/atkrange.h" line="51"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrange.c"
+               line="161">the human-readable description of @range</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="range" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrange.c"
+                 line="155">an #AtkRange</doc>
+            <type name="Range" c:type="AtkRange*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_lower_limit"
+              c:identifier="atk_range_get_lower_limit"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkrange.c"
+             line="117">Returns the lower limit of @range</doc>
+        <source-position filename="../atk/atkrange.h" line="47"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrange.c"
+               line="125">the lower limit of @range</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="range" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrange.c"
+                 line="119">an #AtkRange</doc>
+            <type name="Range" c:type="AtkRange*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_upper_limit"
+              c:identifier="atk_range_get_upper_limit"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkrange.c"
+             line="135">Returns the upper limit of @range</doc>
+        <source-position filename="../atk/atkrange.h" line="49"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrange.c"
+               line="143">the upper limit of @range</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="range" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrange.c"
+                 line="137">an #AtkRange</doc>
+            <type name="Range" c:type="AtkRange*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="Rectangle"
+            c:type="AtkRectangle"
+            glib:type-name="AtkRectangle"
+            glib:get-type="atk_rectangle_get_type"
+            c:symbol-prefix="rectangle">
+      <doc xml:space="preserve"
+           filename="../atk/atkcomponent.h"
+           line="92">A data structure for holding a rectangle. Those coordinates are
+relative to the component top-level parent.</doc>
+      <source-position filename="../atk/atkcomponent.h" line="108"/>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.h"
+             line="94">X coordinate of the left side of the rectangle.</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.h"
+             line="95">Y coordinate of the top side of the rectangle.</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="width" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.h"
+             line="96">width of the rectangle.</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="height" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.h"
+             line="97">height of the rectangle.</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+    </record>
+    <class name="Registry"
+           c:symbol-prefix="registry"
+           c:type="AtkRegistry"
+           parent="GObject.Object"
+           glib:type-name="AtkRegistry"
+           glib:get-type="atk_registry_get_type"
+           glib:type-struct="RegistryClass">
+      <doc xml:space="preserve"
+           filename="../atk/atkregistry.c"
+           line="25">The AtkRegistry is normally used to create appropriate ATK "peers"
+for user interface components.  Application developers usually need
+only interact with the AtkRegistry by associating appropriate ATK
+implementation classes with GObject classes via the
+atk_registry_set_factory_type call, passing the appropriate GType
+for application custom widget classes.</doc>
+      <source-position filename="../atk/atkregistry.h" line="49"/>
+      <method name="get_factory" c:identifier="atk_registry_get_factory">
+        <doc xml:space="preserve"
+             filename="../atk/atkregistry.c"
+             line="204">Gets an #AtkObjectFactory appropriate for creating #AtkObjects
+appropriate for @type.</doc>
+        <source-position filename="../atk/atkregistry.h" line="65"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkregistry.c"
+               line="212">an #AtkObjectFactory appropriate for creating
+#AtkObjects appropriate for @type.</doc>
+          <type name="ObjectFactory" c:type="AtkObjectFactory*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkregistry.c"
+                 line="206">an #AtkRegistry</doc>
+            <type name="Registry" c:type="AtkRegistry*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkregistry.c"
+                 line="207">a #GType with which to look up the associated #AtkObjectFactory</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_factory_type"
+              c:identifier="atk_registry_get_factory_type">
+        <doc xml:space="preserve"
+             filename="../atk/atkregistry.c"
+             line="166">Provides a #GType indicating the #AtkObjectFactory subclass
+associated with @type.</doc>
+        <source-position filename="../atk/atkregistry.h" line="62"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkregistry.c"
+               line="175">a #GType associated with type @type</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkregistry.c"
+                 line="168">an #AtkRegistry</doc>
+            <type name="Registry" c:type="AtkRegistry*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkregistry.c"
+                 line="169">a #GType with which to look up the associated #AtkObjectFactory
+subclass</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_factory_type"
+              c:identifier="atk_registry_set_factory_type">
+        <doc xml:space="preserve"
+             filename="../atk/atkregistry.c"
+             line="119">Associate an #AtkObjectFactory subclass with a #GType. Note:
+The associated @factory_type will thereafter be responsible for
+the creation of new #AtkObject implementations for instances
+appropriate for @type.</doc>
+        <source-position filename="../atk/atkregistry.h" line="58"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkregistry.c"
+                 line="121">the #AtkRegistry in which to register the type association</doc>
+            <type name="Registry" c:type="AtkRegistry*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkregistry.c"
+                 line="122">an #AtkObject type</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="factory_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkregistry.c"
+                 line="123">an #AtkObjectFactory type to associate with @type.  Must
+implement AtkObject appropriate for @type.</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="factory_type_registry">
+        <type name="GLib.HashTable" c:type="GHashTable*">
+          <type name="gpointer" c:type="gpointer"/>
+          <type name="gpointer" c:type="gpointer"/>
+        </type>
+      </field>
+      <field name="factory_singleton_cache">
+        <type name="GLib.HashTable" c:type="GHashTable*">
+          <type name="gpointer" c:type="gpointer"/>
+          <type name="gpointer" c:type="gpointer"/>
+        </type>
+      </field>
+    </class>
+    <record name="RegistryClass"
+            c:type="AtkRegistryClass"
+            glib:is-gtype-struct-for="Registry">
+      <source-position filename="../atk/atkregistry.h" line="49"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="Relation"
+           c:symbol-prefix="relation"
+           c:type="AtkRelation"
+           parent="GObject.Object"
+           glib:type-name="AtkRelation"
+           glib:get-type="atk_relation_get_type"
+           glib:type-struct="RelationClass">
+      <doc xml:space="preserve"
+           filename="../atk/atkrelation.c"
+           line="26">An AtkRelation describes a relation between an object and one or
+more other objects. The actual relations that an object has with
+other objects are defined as an AtkRelationSet, which is a set of
+AtkRelations.</doc>
+      <source-position filename="../atk/atkrelation.h" line="60"/>
+      <constructor name="new" c:identifier="atk_relation_new">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelation.c"
+             line="229">Create a new relation for the specified key and the specified list
+of targets.  See also atk_object_add_relationship().</doc>
+        <source-position filename="../atk/atkrelation.h" line="77"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelation.c"
+               line="240">a pointer to a new #AtkRelation</doc>
+          <type name="Relation" c:type="AtkRelation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="targets" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelation.c"
+                 line="231">an array of pointers to
+ #AtkObjects</doc>
+            <array length="1" zero-terminated="0" c:type="AtkObject**">
+              <type name="Object" c:type="AtkObject*"/>
+            </array>
+          </parameter>
+          <parameter name="n_targets" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelation.c"
+                 line="233">number of #AtkObjects pointed to by @targets</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="relationship" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelation.c"
+                 line="234">an #AtkRelationType with which to create the new
+ #AtkRelation</doc>
+            <type name="RelationType" c:type="AtkRelationType"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add_target"
+              c:identifier="atk_relation_add_target"
+              version="1.9">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelation.c"
+             line="319">Adds the specified AtkObject to the target for the relation, if it is
+not already present.  See also atk_object_add_relationship().</doc>
+        <source-position filename="../atk/atkrelation.h" line="91"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="relation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelation.c"
+                 line="321">an #AtkRelation</doc>
+            <type name="Relation" c:type="AtkRelation*"/>
+          </instance-parameter>
+          <parameter name="target" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelation.c"
+                 line="322">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_relation_type"
+              c:identifier="atk_relation_get_relation_type">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelation.c"
+             line="275">Gets the type of @relation</doc>
+        <source-position filename="../atk/atkrelation.h" line="84"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelation.c"
+               line="281">the type of @relation</doc>
+          <type name="RelationType" c:type="AtkRelationType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="relation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelation.c"
+                 line="277">an #AtkRelation</doc>
+            <type name="Relation" c:type="AtkRelation*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_target" c:identifier="atk_relation_get_target">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelation.c"
+             line="291">Gets the target list of @relation</doc>
+        <source-position filename="../atk/atkrelation.h" line="89"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelation.c"
+               line="297">the target list of @relation</doc>
+          <array name="GLib.PtrArray" c:type="GPtrArray*">
+            <type name="Object"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="relation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelation.c"
+                 line="293">an #AtkRelation</doc>
+            <type name="Relation" c:type="AtkRelation*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove_target" c:identifier="atk_relation_remove_target">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelation.c"
+             line="348">Remove the specified AtkObject from the target for the relation.</doc>
+        <source-position filename="../atk/atkrelation.h" line="94"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelation.c"
+               line="355">TRUE if the removal is successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="relation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelation.c"
+                 line="350">an #AtkRelation</doc>
+            <type name="Relation" c:type="AtkRelation*"/>
+          </instance-parameter>
+          <parameter name="target" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelation.c"
+                 line="351">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="relation-type" writable="1" transfer-ownership="none">
+        <type name="RelationType"/>
+      </property>
+      <property name="target" writable="1" transfer-ownership="none">
+        <type name="GObject.ValueArray"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="target">
+        <array name="GLib.PtrArray" c:type="GPtrArray*">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+      <field name="relationship">
+        <type name="RelationType" c:type="AtkRelationType"/>
+      </field>
+    </class>
+    <record name="RelationClass"
+            c:type="AtkRelationClass"
+            glib:is-gtype-struct-for="Relation">
+      <source-position filename="../atk/atkrelation.h" line="60"/>
+      <field name="parent">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="RelationSet"
+           c:symbol-prefix="relation_set"
+           c:type="AtkRelationSet"
+           parent="GObject.Object"
+           glib:type-name="AtkRelationSet"
+           glib:get-type="atk_relation_set_get_type"
+           glib:type-struct="RelationSetClass">
+      <doc xml:space="preserve"
+           filename="../atk/atkrelationset.c"
+           line="26">The AtkRelationSet held by an object establishes its relationships
+with objects beyond the normal "parent/child" hierarchical
+relationships that all user interface objects have.
+AtkRelationSets establish whether objects are labelled or
+controlled by other components, share group membership with other
+components (for instance within a radio-button group), or share
+content which "flows" between them, among other types of possible
+relationships.</doc>
+      <source-position filename="../atk/atkrelationset.h" line="56"/>
+      <constructor name="new" c:identifier="atk_relation_set_new">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationset.c"
+             line="81">Creates a new empty relation set.</doc>
+        <source-position filename="../atk/atkrelationset.h" line="62"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelationset.c"
+               line="86">a new #AtkRelationSet</doc>
+          <type name="RelationSet" c:type="AtkRelationSet*"/>
+        </return-value>
+      </constructor>
+      <method name="add" c:identifier="atk_relation_set_add">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationset.c"
+             line="173">Add a new relation to the current relation set if it is not already
+present.
+This function ref's the AtkRelation so the caller of this function
+should unref it to ensure that it will be destroyed when the AtkRelationSet
+is destroyed.</doc>
+        <source-position filename="../atk/atkrelationset.h" line="74"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="175">an #AtkRelationSet</doc>
+            <type name="RelationSet" c:type="AtkRelationSet*"/>
+          </instance-parameter>
+          <parameter name="relation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="176">an #AtkRelation</doc>
+            <type name="Relation" c:type="AtkRelation*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_relation_by_type"
+              c:identifier="atk_relation_set_add_relation_by_type"
+              version="1.9">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationset.c"
+             line="322">Add a new relation of the specified type with the specified target to
+the current relation set if the relation set does not contain a relation
+of that type. If it is does contain a relation of that typea the target
+is added to the relation.</doc>
+        <source-position filename="../atk/atkrelationset.h" line="85"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="324">an #AtkRelationSet</doc>
+            <type name="RelationSet" c:type="AtkRelationSet*"/>
+          </instance-parameter>
+          <parameter name="relationship" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="325">an #AtkRelationType</doc>
+            <type name="RelationType" c:type="AtkRelationType"/>
+          </parameter>
+          <parameter name="target" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="326">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="contains" c:identifier="atk_relation_set_contains">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationset.c"
+             line="97">Determines whether the relation set contains a relation that matches the
+specified type.</doc>
+        <source-position filename="../atk/atkrelationset.h" line="64"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelationset.c"
+               line="105">%TRUE if @relationship is the relationship type of a relation
+in @set, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="99">an #AtkRelationSet</doc>
+            <type name="RelationSet" c:type="AtkRelationSet*"/>
+          </instance-parameter>
+          <parameter name="relationship" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="100">an #AtkRelationType</doc>
+            <type name="RelationType" c:type="AtkRelationType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="contains_target"
+              c:identifier="atk_relation_set_contains_target">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationset.c"
+             line="360">Determines whether the relation set contains a relation that
+matches the specified pair formed by type @relationship and object
+@target.</doc>
+        <source-position filename="../atk/atkrelationset.h" line="67"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelationset.c"
+               line="370">%TRUE if @set contains a relation with the relationship
+type @relationship with an object @target, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="362">an #AtkRelationSet</doc>
+            <type name="RelationSet" c:type="AtkRelationSet*"/>
+          </instance-parameter>
+          <parameter name="relationship" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="363">an #AtkRelationType</doc>
+            <type name="RelationType" c:type="AtkRelationType"/>
+          </parameter>
+          <parameter name="target" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="364">an #AtkObject</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_n_relations"
+              c:identifier="atk_relation_set_get_n_relations">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationset.c"
+             line="217">Determines the number of relations in a relation set.</doc>
+        <source-position filename="../atk/atkrelationset.h" line="77"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelationset.c"
+               line="223">an integer representing the number of relations in the set.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="219">an #AtkRelationSet</doc>
+            <type name="RelationSet" c:type="AtkRelationSet*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_relation" c:identifier="atk_relation_set_get_relation">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationset.c"
+             line="236">Determines the relation at the specified position in the relation set.</doc>
+        <source-position filename="../atk/atkrelationset.h" line="79"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelationset.c"
+               line="243">a #AtkRelation, which is the relation at
+position i in the set.</doc>
+          <type name="Relation" c:type="AtkRelation*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="238">an #AtkRelationSet</doc>
+            <type name="RelationSet" c:type="AtkRelationSet*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="239">a gint representing a position in the set, starting from 0.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_relation_by_type"
+              c:identifier="atk_relation_set_get_relation_by_type">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationset.c"
+             line="266">Finds a relation that matches the specified type.</doc>
+        <source-position filename="../atk/atkrelationset.h" line="82"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelationset.c"
+               line="273">an #AtkRelation, which is a relation matching the
+specified type.</doc>
+          <type name="Relation" c:type="AtkRelation*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="268">an #AtkRelationSet</doc>
+            <type name="RelationSet" c:type="AtkRelationSet*"/>
+          </instance-parameter>
+          <parameter name="relationship" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="269">an #AtkRelationType</doc>
+            <type name="RelationType" c:type="AtkRelationType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove" c:identifier="atk_relation_set_remove">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationset.c"
+             line="130">Removes a relation from the relation set.
+This function unref's the #AtkRelation so it will be deleted unless there
+is another reference to it.</doc>
+        <source-position filename="../atk/atkrelationset.h" line="71"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="132">an #AtkRelationSet</doc>
+            <type name="RelationSet" c:type="AtkRelationSet*"/>
+          </instance-parameter>
+          <parameter name="relation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelationset.c"
+                 line="133">an #AtkRelation</doc>
+            <type name="Relation" c:type="AtkRelation*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="relations">
+        <array name="GLib.PtrArray" c:type="GPtrArray*">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </class>
+    <record name="RelationSetClass"
+            c:type="AtkRelationSetClass"
+            glib:is-gtype-struct-for="RelationSet">
+      <source-position filename="../atk/atkrelationset.h" line="56"/>
+      <field name="parent">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="pad1">
+        <type name="Function" c:type="AtkFunction"/>
+      </field>
+      <field name="pad2">
+        <type name="Function" c:type="AtkFunction"/>
+      </field>
+    </record>
+    <enumeration name="RelationType"
+                 glib:type-name="AtkRelationType"
+                 glib:get-type="atk_relation_type_get_type"
+                 c:type="AtkRelationType">
+      <doc xml:space="preserve"
+           filename="../atk/atkrelationtype.h"
+           line="31">Describes the type of the relation</doc>
+      <member name="null"
+              value="0"
+              c:identifier="ATK_RELATION_NULL"
+              glib:nick="null">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="33">Not used, represens "no relationship" or an error condition.</doc>
+      </member>
+      <member name="controlled_by"
+              value="1"
+              c:identifier="ATK_RELATION_CONTROLLED_BY"
+              glib:nick="controlled-by">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="34">Indicates an object controlled by one or more target objects.</doc>
+      </member>
+      <member name="controller_for"
+              value="2"
+              c:identifier="ATK_RELATION_CONTROLLER_FOR"
+              glib:nick="controller-for">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="35">Indicates an object is an controller for one or more target objects.</doc>
+      </member>
+      <member name="label_for"
+              value="3"
+              c:identifier="ATK_RELATION_LABEL_FOR"
+              glib:nick="label-for">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="36">Indicates an object is a label for one or more target objects.</doc>
+      </member>
+      <member name="labelled_by"
+              value="4"
+              c:identifier="ATK_RELATION_LABELLED_BY"
+              glib:nick="labelled-by">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="37">Indicates an object is labelled by one or more target objects.</doc>
+      </member>
+      <member name="member_of"
+              value="5"
+              c:identifier="ATK_RELATION_MEMBER_OF"
+              glib:nick="member-of">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="38">Indicates an object is a member of a group of one or more target objects.</doc>
+      </member>
+      <member name="node_child_of"
+              value="6"
+              c:identifier="ATK_RELATION_NODE_CHILD_OF"
+              glib:nick="node-child-of">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="39">Indicates an object is a cell in a treetable which is displayed because a cell in the 
same column is expanded and identifies that cell.</doc>
+      </member>
+      <member name="flows_to"
+              value="7"
+              c:identifier="ATK_RELATION_FLOWS_TO"
+              glib:nick="flows-to">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="40">Indicates that the object has content that flows logically to another
+ AtkObject in a sequential way, (for instance text-flow).</doc>
+      </member>
+      <member name="flows_from"
+              value="8"
+              c:identifier="ATK_RELATION_FLOWS_FROM"
+              glib:nick="flows-from">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="42">Indicates that the object has content that flows logically from
+ another AtkObject in a sequential way, (for instance text-flow).</doc>
+      </member>
+      <member name="subwindow_of"
+              value="9"
+              c:identifier="ATK_RELATION_SUBWINDOW_OF"
+              glib:nick="subwindow-of">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="44">Indicates a subwindow attached to a component but otherwise has no connection in  the 
UI heirarchy to that component.</doc>
+      </member>
+      <member name="embeds"
+              value="10"
+              c:identifier="ATK_RELATION_EMBEDS"
+              glib:nick="embeds">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="45">Indicates that the object visually embeds
+ another object's content, i.e. this object's content flows around
+ another's content.</doc>
+      </member>
+      <member name="embedded_by"
+              value="11"
+              c:identifier="ATK_RELATION_EMBEDDED_BY"
+              glib:nick="embedded-by">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="48">Reciprocal of %ATK_RELATION_EMBEDS, indicates that
+ this object's content is visualy embedded in another object.</doc>
+      </member>
+      <member name="popup_for"
+              value="12"
+              c:identifier="ATK_RELATION_POPUP_FOR"
+              glib:nick="popup-for">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="50">Indicates that an object is a popup for another object.</doc>
+      </member>
+      <member name="parent_window_of"
+              value="13"
+              c:identifier="ATK_RELATION_PARENT_WINDOW_OF"
+              glib:nick="parent-window-of">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="51">Indicates that an object is a parent window of another object.</doc>
+      </member>
+      <member name="described_by"
+              value="14"
+              c:identifier="ATK_RELATION_DESCRIBED_BY"
+              glib:nick="described-by">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="52">Reciprocal of %ATK_RELATION_DESCRIPTION_FOR. Indicates that one
+or more target objects provide descriptive information about this object. This relation
+type is most appropriate for information that is not essential as its presentation may
+be user-configurable and/or limited to an on-demand mechanism such as an assistive
+technology command. For brief, essential information such as can be found in a widget's
+on-screen label, use %ATK_RELATION_LABELLED_BY. For an on-screen error message, use
+%ATK_RELATION_ERROR_MESSAGE. For lengthy extended descriptive information contained in
+an on-screen object, consider using %ATK_RELATION_DETAILS as assistive technologies may
+provide a means for the user to navigate to objects containing detailed descriptions so
+that their content can be more closely reviewed.</doc>
+      </member>
+      <member name="description_for"
+              value="15"
+              c:identifier="ATK_RELATION_DESCRIPTION_FOR"
+              glib:nick="description-for">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="62">Reciprocal of %ATK_RELATION_DESCRIBED_BY. Indicates that this
+object provides descriptive information about the target object(s). See also
+%ATK_RELATION_DETAILS_FOR and %ATK_RELATION_ERROR_FOR.</doc>
+      </member>
+      <member name="node_parent_of"
+              value="16"
+              c:identifier="ATK_RELATION_NODE_PARENT_OF"
+              glib:nick="node-parent-of">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="65">Indicates an object is a cell in a treetable and is expanded to display other cells 
in the same column.</doc>
+      </member>
+      <member name="details"
+              value="17"
+              c:identifier="ATK_RELATION_DETAILS"
+              glib:nick="details">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="66">Reciprocal of %ATK_RELATION_DETAILS_FOR. Indicates that this object
+has a detailed or extended description, the contents of which can be found in the target
+object(s). This relation type is most appropriate for information that is sufficiently
+lengthy as to make navigation to the container of that information desirable. For less
+verbose information suitable for announcement only, see %ATK_RELATION_DESCRIBED_BY. If
+the detailed information describes an error condition, %ATK_RELATION_ERROR_FOR should be
+used instead. @Since: ATK-2.26.</doc>
+      </member>
+      <member name="details_for"
+              value="18"
+              c:identifier="ATK_RELATION_DETAILS_FOR"
+              glib:nick="details-for">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="73">Reciprocal of %ATK_RELATION_DETAILS. Indicates that this object
+provides a detailed or extended description about the target object(s). See also
+%ATK_RELATION_DESCRIPTION_FOR and %ATK_RELATION_ERROR_FOR. @Since: ATK-2.26.</doc>
+      </member>
+      <member name="error_message"
+              value="19"
+              c:identifier="ATK_RELATION_ERROR_MESSAGE"
+              glib:nick="error-message">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="76">Reciprocal of %ATK_RELATION_ERROR_FOR. Indicates that this object
+has one or more errors, the nature of which is described in the contents of the target
+object(s). Objects that have this relation type should also contain %ATK_STATE_INVALID_ENTRY
+in their #AtkStateSet. @Since: ATK-2.26.</doc>
+      </member>
+      <member name="error_for"
+              value="20"
+              c:identifier="ATK_RELATION_ERROR_FOR"
+              glib:nick="error-for">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="80">Reciprocal of %ATK_RELATION_ERROR_MESSAGE. Indicates that this object
+contains an error message describing an invalid condition in the target object(s). @Since:
+ATK_2.26.</doc>
+      </member>
+      <member name="last_defined"
+              value="21"
+              c:identifier="ATK_RELATION_LAST_DEFINED"
+              glib:nick="last-defined">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelationtype.h"
+             line="83">Not used, this value indicates the end of the enumeration.</doc>
+      </member>
+      <function name="for_name" c:identifier="atk_relation_type_for_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelation.c"
+             line="176">Get the #AtkRelationType type corresponding to a relation name.</doc>
+        <source-position filename="../atk/atkrelation.h" line="70"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelation.c"
+               line="182">the #AtkRelationType enumerated type corresponding to the specified name,
+         or #ATK_RELATION_NULL if no matching relation type is found.</doc>
+          <type name="RelationType" c:type="AtkRelationType"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelation.c"
+                 line="178">a string which is the (non-localized) name of an ATK relation type.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_name" c:identifier="atk_relation_type_get_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelation.c"
+             line="136">Gets the description string describing the #AtkRelationType @type.</doc>
+        <source-position filename="../atk/atkrelation.h" line="68"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelation.c"
+               line="142">the string describing the AtkRelationType</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelation.c"
+                 line="138">The #AtkRelationType whose name is required</doc>
+            <type name="RelationType" c:type="AtkRelationType"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="register" c:identifier="atk_relation_type_register">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelation.c"
+             line="116">Associate @name with a new #AtkRelationType</doc>
+        <source-position filename="../atk/atkrelation.h" line="66"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelation.c"
+               line="122">an #AtkRelationType associated with @name</doc>
+          <type name="RelationType" c:type="AtkRelationType"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkrelation.c"
+                 line="118">a name string</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+    </enumeration>
+    <enumeration name="Role"
+                 glib:type-name="AtkRole"
+                 glib:get-type="atk_role_get_type"
+                 c:type="AtkRole">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.h"
+           line="35">Describes the role of an object
+
+These are the built-in enumerated roles that UI components can have
+in ATK.  Other roles may be added at runtime, so an AtkRole &gt;=
+%ATK_ROLE_LAST_DEFINED is not necessarily an error.</doc>
+      <member name="invalid"
+              value="0"
+              c:identifier="ATK_ROLE_INVALID"
+              glib:nick="invalid">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="37">Invalid role</doc>
+      </member>
+      <member name="accelerator_label"
+              value="1"
+              c:identifier="ATK_ROLE_ACCEL_LABEL"
+              glib:nick="accelerator-label">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="38">A label which represents an accelerator</doc>
+      </member>
+      <member name="alert"
+              value="2"
+              c:identifier="ATK_ROLE_ALERT"
+              glib:nick="alert">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="39">An object which is an alert to the user. Assistive Technologies typically respond to 
ATK_ROLE_ALERT by reading the entire onscreen contents of containers advertising this role.  Should be used 
for warning dialogs, etc.</doc>
+      </member>
+      <member name="animation"
+              value="3"
+              c:identifier="ATK_ROLE_ANIMATION"
+              glib:nick="animation">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="40">An object which is an animated image</doc>
+      </member>
+      <member name="arrow"
+              value="4"
+              c:identifier="ATK_ROLE_ARROW"
+              glib:nick="arrow">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="41">An arrow in one of the four cardinal directions</doc>
+      </member>
+      <member name="calendar"
+              value="5"
+              c:identifier="ATK_ROLE_CALENDAR"
+              glib:nick="calendar">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="42">An object that displays a calendar and allows the user to select a date</doc>
+      </member>
+      <member name="canvas"
+              value="6"
+              c:identifier="ATK_ROLE_CANVAS"
+              glib:nick="canvas">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="43">An object that can be drawn into and is used to trap events</doc>
+      </member>
+      <member name="check_box"
+              value="7"
+              c:identifier="ATK_ROLE_CHECK_BOX"
+              glib:nick="check-box">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="44">A choice that can be checked or unchecked and provides a separate indicator for the 
current state</doc>
+      </member>
+      <member name="check_menu_item"
+              value="8"
+              c:identifier="ATK_ROLE_CHECK_MENU_ITEM"
+              glib:nick="check-menu-item">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="45">A menu item with a check box</doc>
+      </member>
+      <member name="color_chooser"
+              value="9"
+              c:identifier="ATK_ROLE_COLOR_CHOOSER"
+              glib:nick="color-chooser">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="46">A specialized dialog that lets the user choose a color</doc>
+      </member>
+      <member name="column_header"
+              value="10"
+              c:identifier="ATK_ROLE_COLUMN_HEADER"
+              glib:nick="column-header">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="47">The header for a column of data</doc>
+      </member>
+      <member name="combo_box"
+              value="11"
+              c:identifier="ATK_ROLE_COMBO_BOX"
+              glib:nick="combo-box">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="48">A collapsible list of choices the user can select from</doc>
+      </member>
+      <member name="date_editor"
+              value="12"
+              c:identifier="ATK_ROLE_DATE_EDITOR"
+              glib:nick="date-editor">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="49">An object whose purpose is to allow a user to edit a date</doc>
+      </member>
+      <member name="desktop_icon"
+              value="13"
+              c:identifier="ATK_ROLE_DESKTOP_ICON"
+              glib:nick="desktop-icon">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="50">An inconifed internal frame within a DESKTOP_PANE</doc>
+      </member>
+      <member name="desktop_frame"
+              value="14"
+              c:identifier="ATK_ROLE_DESKTOP_FRAME"
+              glib:nick="desktop-frame">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="51">A pane that supports internal frames and iconified versions of those internal 
frames</doc>
+      </member>
+      <member name="dial"
+              value="15"
+              c:identifier="ATK_ROLE_DIAL"
+              glib:nick="dial">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="52">An object whose purpose is to allow a user to set a value</doc>
+      </member>
+      <member name="dialog"
+              value="16"
+              c:identifier="ATK_ROLE_DIALOG"
+              glib:nick="dialog">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="53">A top level window with title bar and a border</doc>
+      </member>
+      <member name="directory_pane"
+              value="17"
+              c:identifier="ATK_ROLE_DIRECTORY_PANE"
+              glib:nick="directory-pane">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="54">A pane that allows the user to navigate through and select the contents of a 
directory</doc>
+      </member>
+      <member name="drawing_area"
+              value="18"
+              c:identifier="ATK_ROLE_DRAWING_AREA"
+              glib:nick="drawing-area">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="55">An object used for drawing custom user interface elements</doc>
+      </member>
+      <member name="file_chooser"
+              value="19"
+              c:identifier="ATK_ROLE_FILE_CHOOSER"
+              glib:nick="file-chooser">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="56">A specialized dialog that lets the user choose a file</doc>
+      </member>
+      <member name="filler"
+              value="20"
+              c:identifier="ATK_ROLE_FILLER"
+              glib:nick="filler">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="57">A object that fills up space in a user interface</doc>
+      </member>
+      <member name="font_chooser"
+              value="21"
+              c:identifier="ATK_ROLE_FONT_CHOOSER"
+              glib:nick="font-chooser">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="58">A specialized dialog that lets the user choose a font</doc>
+      </member>
+      <member name="frame"
+              value="22"
+              c:identifier="ATK_ROLE_FRAME"
+              glib:nick="frame">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="59">A top level window with a title bar, border, menubar, etc.</doc>
+      </member>
+      <member name="glass_pane"
+              value="23"
+              c:identifier="ATK_ROLE_GLASS_PANE"
+              glib:nick="glass-pane">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="60">A pane that is guaranteed to be painted on top of all panes beneath it</doc>
+      </member>
+      <member name="html_container"
+              value="24"
+              c:identifier="ATK_ROLE_HTML_CONTAINER"
+              glib:nick="html-container">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="61">A document container for HTML, whose children represent the document content</doc>
+      </member>
+      <member name="icon"
+              value="25"
+              c:identifier="ATK_ROLE_ICON"
+              glib:nick="icon">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="62">A small fixed size picture, typically used to decorate components</doc>
+      </member>
+      <member name="image"
+              value="26"
+              c:identifier="ATK_ROLE_IMAGE"
+              glib:nick="image">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="63">An object whose primary purpose is to display an image</doc>
+      </member>
+      <member name="internal_frame"
+              value="27"
+              c:identifier="ATK_ROLE_INTERNAL_FRAME"
+              glib:nick="internal-frame">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="64">A frame-like object that is clipped by a desktop pane</doc>
+      </member>
+      <member name="label"
+              value="28"
+              c:identifier="ATK_ROLE_LABEL"
+              glib:nick="label">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="65">An object used to present an icon or short string in an interface</doc>
+      </member>
+      <member name="layered_pane"
+              value="29"
+              c:identifier="ATK_ROLE_LAYERED_PANE"
+              glib:nick="layered-pane">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="66">A specialized pane that allows its children to be drawn in layers, providing a form 
of stacking order</doc>
+      </member>
+      <member name="list"
+              value="30"
+              c:identifier="ATK_ROLE_LIST"
+              glib:nick="list">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="67">An object that presents a list of objects to the user and allows the user to select 
one or more of them</doc>
+      </member>
+      <member name="list_item"
+              value="31"
+              c:identifier="ATK_ROLE_LIST_ITEM"
+              glib:nick="list-item">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="68">An object that represents an element of a list</doc>
+      </member>
+      <member name="menu"
+              value="32"
+              c:identifier="ATK_ROLE_MENU"
+              glib:nick="menu">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="69">An object usually found inside a menu bar that contains a list of actions the user 
can choose from</doc>
+      </member>
+      <member name="menu_bar"
+              value="33"
+              c:identifier="ATK_ROLE_MENU_BAR"
+              glib:nick="menu-bar">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="70">An object usually drawn at the top of the primary dialog box of an application that 
contains a list of menus the user can choose from</doc>
+      </member>
+      <member name="menu_item"
+              value="34"
+              c:identifier="ATK_ROLE_MENU_ITEM"
+              glib:nick="menu-item">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="71">An object usually contained in a menu that presents an action the user can 
choose</doc>
+      </member>
+      <member name="option_pane"
+              value="35"
+              c:identifier="ATK_ROLE_OPTION_PANE"
+              glib:nick="option-pane">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="72">A specialized pane whose primary use is inside a DIALOG</doc>
+      </member>
+      <member name="page_tab"
+              value="36"
+              c:identifier="ATK_ROLE_PAGE_TAB"
+              glib:nick="page-tab">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="73">An object that is a child of a page tab list</doc>
+      </member>
+      <member name="page_tab_list"
+              value="37"
+              c:identifier="ATK_ROLE_PAGE_TAB_LIST"
+              glib:nick="page-tab-list">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="74">An object that presents a series of panels (or page tabs), one at a time, through 
some mechanism provided by the object</doc>
+      </member>
+      <member name="panel"
+              value="38"
+              c:identifier="ATK_ROLE_PANEL"
+              glib:nick="panel">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="75">A generic container that is often used to group objects</doc>
+      </member>
+      <member name="password_text"
+              value="39"
+              c:identifier="ATK_ROLE_PASSWORD_TEXT"
+              glib:nick="password-text">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="76">A text object uses for passwords, or other places where the text content is not shown 
visibly to the user</doc>
+      </member>
+      <member name="popup_menu"
+              value="40"
+              c:identifier="ATK_ROLE_POPUP_MENU"
+              glib:nick="popup-menu">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="77">A temporary window that is usually used to offer the user a list of choices, and then 
hides when the user selects one of those choices</doc>
+      </member>
+      <member name="progress_bar"
+              value="41"
+              c:identifier="ATK_ROLE_PROGRESS_BAR"
+              glib:nick="progress-bar">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="78">An object used to indicate how much of a task has been completed</doc>
+      </member>
+      <member name="push_button"
+              value="42"
+              c:identifier="ATK_ROLE_PUSH_BUTTON"
+              glib:nick="push-button">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="79">An object the user can manipulate to tell the application to do something</doc>
+      </member>
+      <member name="radio_button"
+              value="43"
+              c:identifier="ATK_ROLE_RADIO_BUTTON"
+              glib:nick="radio-button">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="80">A specialized check box that will cause other radio buttons in the same group to 
become unchecked when this one is checked</doc>
+      </member>
+      <member name="radio_menu_item"
+              value="44"
+              c:identifier="ATK_ROLE_RADIO_MENU_ITEM"
+              glib:nick="radio-menu-item">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="81">A check menu item which belongs to a group. At each instant exactly one of the radio 
menu items from a group is selected</doc>
+      </member>
+      <member name="root_pane"
+              value="45"
+              c:identifier="ATK_ROLE_ROOT_PANE"
+              glib:nick="root-pane">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="82">A specialized pane that has a glass pane and a layered pane as its children</doc>
+      </member>
+      <member name="row_header"
+              value="46"
+              c:identifier="ATK_ROLE_ROW_HEADER"
+              glib:nick="row-header">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="83">The header for a row of data</doc>
+      </member>
+      <member name="scroll_bar"
+              value="47"
+              c:identifier="ATK_ROLE_SCROLL_BAR"
+              glib:nick="scroll-bar">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="84">An object usually used to allow a user to incrementally view a large amount of 
data.</doc>
+      </member>
+      <member name="scroll_pane"
+              value="48"
+              c:identifier="ATK_ROLE_SCROLL_PANE"
+              glib:nick="scroll-pane">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="85">An object that allows a user to incrementally view a large amount of information</doc>
+      </member>
+      <member name="separator"
+              value="49"
+              c:identifier="ATK_ROLE_SEPARATOR"
+              glib:nick="separator">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="86">An object usually contained in a menu to provide a visible and logical separation of 
the contents in a menu</doc>
+      </member>
+      <member name="slider"
+              value="50"
+              c:identifier="ATK_ROLE_SLIDER"
+              glib:nick="slider">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="87">An object that allows the user to select from a bounded range</doc>
+      </member>
+      <member name="split_pane"
+              value="51"
+              c:identifier="ATK_ROLE_SPLIT_PANE"
+              glib:nick="split-pane">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="88">A specialized panel that presents two other panels at the same time</doc>
+      </member>
+      <member name="spin_button"
+              value="52"
+              c:identifier="ATK_ROLE_SPIN_BUTTON"
+              glib:nick="spin-button">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="89">An object used to get an integer or floating point number from the user</doc>
+      </member>
+      <member name="statusbar"
+              value="53"
+              c:identifier="ATK_ROLE_STATUSBAR"
+              glib:nick="statusbar">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="90">An object which reports messages of minor importance to the user</doc>
+      </member>
+      <member name="table"
+              value="54"
+              c:identifier="ATK_ROLE_TABLE"
+              glib:nick="table">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="91">An object used to represent information in terms of rows and columns</doc>
+      </member>
+      <member name="table_cell"
+              value="55"
+              c:identifier="ATK_ROLE_TABLE_CELL"
+              glib:nick="table-cell">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="92">A cell in a table</doc>
+      </member>
+      <member name="table_column_header"
+              value="56"
+              c:identifier="ATK_ROLE_TABLE_COLUMN_HEADER"
+              glib:nick="table-column-header">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="93">The header for a column of a table</doc>
+      </member>
+      <member name="table_row_header"
+              value="57"
+              c:identifier="ATK_ROLE_TABLE_ROW_HEADER"
+              glib:nick="table-row-header">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="94">The header for a row of a table</doc>
+      </member>
+      <member name="tear_off_menu_item"
+              value="58"
+              c:identifier="ATK_ROLE_TEAR_OFF_MENU_ITEM"
+              glib:nick="tear-off-menu-item">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="95">A menu item used to tear off and reattach its menu</doc>
+      </member>
+      <member name="terminal"
+              value="59"
+              c:identifier="ATK_ROLE_TERMINAL"
+              glib:nick="terminal">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="96">An object that represents an accessible terminal.  (Since: 0.6)</doc>
+      </member>
+      <member name="text"
+              value="60"
+              c:identifier="ATK_ROLE_TEXT"
+              glib:nick="text">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="97">An interactive widget that supports multiple lines of text and
+optionally accepts user input, but whose purpose is not to solicit user input.
+Thus ATK_ROLE_TEXT is appropriate for the text view in a plain text editor
+but inappropriate for an input field in a dialog box or web form. For widgets
+whose purpose is to solicit input from the user, see ATK_ROLE_ENTRY and
+ATK_ROLE_PASSWORD_TEXT. For generic objects which display a brief amount of
+textual information, see ATK_ROLE_STATIC.</doc>
+      </member>
+      <member name="toggle_button"
+              value="61"
+              c:identifier="ATK_ROLE_TOGGLE_BUTTON"
+              glib:nick="toggle-button">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="104">A specialized push button that can be checked or unchecked, but does not provide a 
separate indicator for the current state</doc>
+      </member>
+      <member name="tool_bar"
+              value="62"
+              c:identifier="ATK_ROLE_TOOL_BAR"
+              glib:nick="tool-bar">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="105">A bar or palette usually composed of push buttons or toggle buttons</doc>
+      </member>
+      <member name="tool_tip"
+              value="63"
+              c:identifier="ATK_ROLE_TOOL_TIP"
+              glib:nick="tool-tip">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="106">An object that provides information about another object</doc>
+      </member>
+      <member name="tree"
+              value="64"
+              c:identifier="ATK_ROLE_TREE"
+              glib:nick="tree">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="107">An object used to represent hierarchical information to the user</doc>
+      </member>
+      <member name="tree_table"
+              value="65"
+              c:identifier="ATK_ROLE_TREE_TABLE"
+              glib:nick="tree-table">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="108">An object capable of expanding and collapsing rows as well as showing multiple 
columns of data.   (Since: 0.7)</doc>
+      </member>
+      <member name="unknown"
+              value="66"
+              c:identifier="ATK_ROLE_UNKNOWN"
+              glib:nick="unknown">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="109">The object contains some Accessible information, but its role is not known</doc>
+      </member>
+      <member name="viewport"
+              value="67"
+              c:identifier="ATK_ROLE_VIEWPORT"
+              glib:nick="viewport">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="110">An object usually used in a scroll pane</doc>
+      </member>
+      <member name="window"
+              value="68"
+              c:identifier="ATK_ROLE_WINDOW"
+              glib:nick="window">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="111">A top level window with no title or border.</doc>
+      </member>
+      <member name="header"
+              value="69"
+              c:identifier="ATK_ROLE_HEADER"
+              glib:nick="header">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="112">An object that serves as a document header. (Since: 1.1.1)</doc>
+      </member>
+      <member name="footer"
+              value="70"
+              c:identifier="ATK_ROLE_FOOTER"
+              glib:nick="footer">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="113">An object that serves as a document footer.  (Since: 1.1.1)</doc>
+      </member>
+      <member name="paragraph"
+              value="71"
+              c:identifier="ATK_ROLE_PARAGRAPH"
+              glib:nick="paragraph">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="114">An object which is contains a paragraph of text content.   (Since: 1.1.1)</doc>
+      </member>
+      <member name="ruler"
+              value="72"
+              c:identifier="ATK_ROLE_RULER"
+              glib:nick="ruler">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="115">An object which describes margins and tab stops, etc. for text objects which it 
controls (should have CONTROLLER_FOR relation to such).   (Since: 1.1.1)</doc>
+      </member>
+      <member name="application"
+              value="73"
+              c:identifier="ATK_ROLE_APPLICATION"
+              glib:nick="application">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="116">The object is an application object, which may contain @ATK_ROLE_FRAME objects or 
other types of accessibles.  The root accessible of any application's ATK hierarchy should have 
ATK_ROLE_APPLICATION.   (Since: 1.1.4)</doc>
+      </member>
+      <member name="autocomplete"
+              value="74"
+              c:identifier="ATK_ROLE_AUTOCOMPLETE"
+              glib:nick="autocomplete">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="117">The object is a dialog or list containing items for insertion into an entry widget, 
for instance a list of words for completion of a text entry.   (Since: 1.3)</doc>
+      </member>
+      <member name="edit_bar"
+              value="75"
+              c:identifier="ATK_ROLE_EDITBAR"
+              glib:nick="edit-bar">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="118">The object is an editable text object in a toolbar.  (Since: 1.5)</doc>
+      </member>
+      <member name="embedded"
+              value="76"
+              c:identifier="ATK_ROLE_EMBEDDED"
+              glib:nick="embedded">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="119">The object is an embedded container within a document or panel.  This role is a 
grouping "hint" indicating that the contained objects share a context.  (Since: 1.7.2)</doc>
+      </member>
+      <member name="entry"
+              value="77"
+              c:identifier="ATK_ROLE_ENTRY"
+              glib:nick="entry">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="120">The object is a component whose textual content may be entered or modified by the 
user, provided @ATK_STATE_EDITABLE is present.   (Since: 1.11)</doc>
+      </member>
+      <member name="chart"
+              value="78"
+              c:identifier="ATK_ROLE_CHART"
+              glib:nick="chart">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="121">The object is a graphical depiction of quantitative data. It may contain multiple 
subelements whose attributes and/or description may be queried to obtain both the quantitative data and 
information about how the data is being presented. The LABELLED_BY relation is particularly important in 
interpreting objects of this type, as is the accessible-description property.  (Since: 1.11)</doc>
+      </member>
+      <member name="caption"
+              value="79"
+              c:identifier="ATK_ROLE_CAPTION"
+              glib:nick="caption">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="122">The object contains descriptive information, usually textual, about another user 
interface element such as a table, chart, or image.  (Since: 1.11)</doc>
+      </member>
+      <member name="document_frame"
+              value="80"
+              c:identifier="ATK_ROLE_DOCUMENT_FRAME"
+              glib:nick="document-frame">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="123">The object is a visual frame or container which contains a view of document content. 
Document frames may occur within another Document instance, in which case the second document may be said to 
be embedded in the containing instance. HTML frames are often ROLE_DOCUMENT_FRAME. Either this object, or a 
singleton descendant, should implement the Document interface.  (Since: 1.11)</doc>
+      </member>
+      <member name="heading"
+              value="81"
+              c:identifier="ATK_ROLE_HEADING"
+              glib:nick="heading">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="124">The object serves as a heading for content which follows it in a document. The 
'heading level' of the heading, if availabe, may be obtained by querying the object's attributes.</doc>
+      </member>
+      <member name="page"
+              value="82"
+              c:identifier="ATK_ROLE_PAGE"
+              glib:nick="page">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="125">The object is a containing instance which encapsulates a page of information. 
@ATK_ROLE_PAGE is used in documents and content which support a paginated navigation model.  (Since: 
1.11)</doc>
+      </member>
+      <member name="section"
+              value="83"
+              c:identifier="ATK_ROLE_SECTION"
+              glib:nick="section">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="126">The object is a containing instance of document content which constitutes a 
particular 'logical' section of the document. The type of content within a section, and the nature of the 
section division itself, may be obtained by querying the object's attributes. Sections may be nested. (Since: 
1.11)</doc>
+      </member>
+      <member name="redundant_object"
+              value="84"
+              c:identifier="ATK_ROLE_REDUNDANT_OBJECT"
+              glib:nick="redundant-object">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="127">The object is redundant with another object in the hierarchy, and is exposed for 
purely technical reasons.  Objects of this role should normally be ignored by clients. (Since: 1.11)</doc>
+      </member>
+      <member name="form"
+              value="85"
+              c:identifier="ATK_ROLE_FORM"
+              glib:nick="form">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="128">The object is a container for form controls, for instance as part of a
+web form or user-input form within a document.  This role is primarily a tag/convenience for
+clients when navigating complex documents, it is not expected that ordinary GUI containers will
+always have ATK_ROLE_FORM. (Since: 1.12.0)</doc>
+      </member>
+      <member name="link"
+              value="86"
+              c:identifier="ATK_ROLE_LINK"
+              glib:nick="link">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="132">The object is a hypertext anchor, i.e. a "link" in a
+hypertext document.  Such objects are distinct from 'inline'
+content which may also use the Hypertext/Hyperlink interfaces
+to indicate the range/location within a text object where
+an inline or embedded object lies.  (Since: 1.12.1)</doc>
+      </member>
+      <member name="input_method_window"
+              value="87"
+              c:identifier="ATK_ROLE_INPUT_METHOD_WINDOW"
+              glib:nick="input-method-window">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="137">The object is a window or similar viewport
+which is used to allow composition or input of a 'complex character',
+in other words it is an "input method window." (Since: 1.12.1)</doc>
+      </member>
+      <member name="table_row"
+              value="88"
+              c:identifier="ATK_ROLE_TABLE_ROW"
+              glib:nick="table-row">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="140">A row in a table.  (Since: 2.1.0)</doc>
+      </member>
+      <member name="tree_item"
+              value="89"
+              c:identifier="ATK_ROLE_TREE_ITEM"
+              glib:nick="tree-item">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="141">An object that represents an element of a tree.  (Since: 2.1.0)</doc>
+      </member>
+      <member name="document_spreadsheet"
+              value="90"
+              c:identifier="ATK_ROLE_DOCUMENT_SPREADSHEET"
+              glib:nick="document-spreadsheet">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="142">A document frame which contains a spreadsheet.  (Since: 2.1.0)</doc>
+      </member>
+      <member name="document_presentation"
+              value="91"
+              c:identifier="ATK_ROLE_DOCUMENT_PRESENTATION"
+              glib:nick="document-presentation">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="143">A document frame which contains a presentation or slide content.  (Since: 
2.1.0)</doc>
+      </member>
+      <member name="document_text"
+              value="92"
+              c:identifier="ATK_ROLE_DOCUMENT_TEXT"
+              glib:nick="document-text">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="144">A document frame which contains textual content, such as found in a word processing 
application.  (Since: 2.1.0)</doc>
+      </member>
+      <member name="document_web"
+              value="93"
+              c:identifier="ATK_ROLE_DOCUMENT_WEB"
+              glib:nick="document-web">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="145">A document frame which contains HTML or other markup suitable for display in a web 
browser.  (Since: 2.1.0)</doc>
+      </member>
+      <member name="document_email"
+              value="94"
+              c:identifier="ATK_ROLE_DOCUMENT_EMAIL"
+              glib:nick="document-email">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="146">A document frame which contains email content to be displayed or composed either in 
plain text or HTML.  (Since: 2.1.0)</doc>
+      </member>
+      <member name="comment"
+              value="95"
+              c:identifier="ATK_ROLE_COMMENT"
+              glib:nick="comment">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="147">An object found within a document and designed to present a comment, note, or other 
annotation. In some cases, this object might not be visible until activated.  (Since: 2.1.0)</doc>
+      </member>
+      <member name="list_box"
+              value="96"
+              c:identifier="ATK_ROLE_LIST_BOX"
+              glib:nick="list-box">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="148">A non-collapsible list of choices the user can select from. (Since: 2.1.0)</doc>
+      </member>
+      <member name="grouping"
+              value="97"
+              c:identifier="ATK_ROLE_GROUPING"
+              glib:nick="grouping">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="149">A group of related widgets. This group typically has a label. (Since: 2.1.0)</doc>
+      </member>
+      <member name="image_map"
+              value="98"
+              c:identifier="ATK_ROLE_IMAGE_MAP"
+              glib:nick="image-map">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="150">An image map object. Usually a graphic with multiple hotspots, where each hotspot 
can be activated resulting in the loading of another document or section of a document. (Since: 2.1.0)</doc>
+      </member>
+      <member name="notification"
+              value="99"
+              c:identifier="ATK_ROLE_NOTIFICATION"
+              glib:nick="notification">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="151">A transitory object designed to present a message to the user, typically at the 
desktop level rather than inside a particular application.  (Since: 2.1.0)</doc>
+      </member>
+      <member name="info_bar"
+              value="100"
+              c:identifier="ATK_ROLE_INFO_BAR"
+              glib:nick="info-bar">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="152">An object designed to present a message to the user within an existing window. 
(Since: 2.1.0)</doc>
+      </member>
+      <member name="level_bar"
+              value="101"
+              c:identifier="ATK_ROLE_LEVEL_BAR"
+              glib:nick="level-bar">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="153">A bar that serves as a level indicator to, for instance, show the strength of a 
password or the state of a battery.  (Since: 2.7.3)</doc>
+      </member>
+      <member name="title_bar"
+              value="102"
+              c:identifier="ATK_ROLE_TITLE_BAR"
+              glib:nick="title-bar">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="154">A bar that serves as the title of a window or a
+dialog. (Since: 2.12)</doc>
+      </member>
+      <member name="block_quote"
+              value="103"
+              c:identifier="ATK_ROLE_BLOCK_QUOTE"
+              glib:nick="block-quote">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="156">An object which contains a text section
+that is quoted from another source. (Since: 2.12)</doc>
+      </member>
+      <member name="audio"
+              value="104"
+              c:identifier="ATK_ROLE_AUDIO"
+              glib:nick="audio">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="158">An object which represents an audio element. (Since: 2.12)</doc>
+      </member>
+      <member name="video"
+              value="105"
+              c:identifier="ATK_ROLE_VIDEO"
+              glib:nick="video">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="159">An object which represents a video element. (Since: 2.12)</doc>
+      </member>
+      <member name="definition"
+              value="106"
+              c:identifier="ATK_ROLE_DEFINITION"
+              glib:nick="definition">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="160">A definition of a term or concept. (Since: 2.12)</doc>
+      </member>
+      <member name="article"
+              value="107"
+              c:identifier="ATK_ROLE_ARTICLE"
+              glib:nick="article">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="161">A section of a page that consists of a
+composition that forms an independent part of a document, page, or
+site. Examples: A blog entry, a news story, a forum post. (Since: 2.12)</doc>
+      </member>
+      <member name="landmark"
+              value="108"
+              c:identifier="ATK_ROLE_LANDMARK"
+              glib:nick="landmark">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="164">A region of a web page intended as a
+navigational landmark. This is designed to allow Assistive
+Technologies to provide quick navigation among key regions within a
+document. (Since: 2.12)</doc>
+      </member>
+      <member name="log"
+              value="109"
+              c:identifier="ATK_ROLE_LOG"
+              glib:nick="log">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="168">A text widget or container holding log content, such
+as chat history and error logs. In this role there is a
+relationship between the arrival of new items in the log and the
+reading order. The log contains a meaningful sequence and new
+information is added only to the end of the log, not at arbitrary
+points. (Since: 2.12)</doc>
+      </member>
+      <member name="marquee"
+              value="110"
+              c:identifier="ATK_ROLE_MARQUEE"
+              glib:nick="marquee">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="174">A container where non-essential information
+changes frequently. Common usages of marquee include stock tickers
+and ad banners. The primary difference between a marquee and a log
+is that logs usually have a meaningful order or sequence of
+important content changes. (Since: 2.12)</doc>
+      </member>
+      <member name="math"
+              value="111"
+              c:identifier="ATK_ROLE_MATH"
+              glib:nick="math">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="179">A text widget or container that holds a mathematical
+expression. (Since: 2.12)</doc>
+      </member>
+      <member name="rating"
+              value="112"
+              c:identifier="ATK_ROLE_RATING"
+              glib:nick="rating">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="181">A widget whose purpose is to display a rating,
+such as the number of stars associated with a song in a media
+player. Objects of this role should also implement
+AtkValue. (Since: 2.12)</doc>
+      </member>
+      <member name="timer"
+              value="113"
+              c:identifier="ATK_ROLE_TIMER"
+              glib:nick="timer">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="185">An object containing a numerical counter which
+indicates an amount of elapsed time from a start point, or the time
+remaining until an end point. (Since: 2.12)</doc>
+      </member>
+      <member name="description_list"
+              value="114"
+              c:identifier="ATK_ROLE_DESCRIPTION_LIST"
+              glib:nick="description-list">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="188">An object that represents a list of
+term-value groups. A term-value group represents a individual
+description and consist of one or more names
+(ATK_ROLE_DESCRIPTION_TERM) followed by one or more values
+(ATK_ROLE_DESCRIPTION_VALUE). For each list, there should not be
+more than one group with the same term name. (Since: 2.12)</doc>
+      </member>
+      <member name="description_term"
+              value="115"
+              c:identifier="ATK_ROLE_DESCRIPTION_TERM"
+              glib:nick="description-term">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="194">An object that represents a term or phrase
+with a corresponding definition. (Since: 2.12)</doc>
+      </member>
+      <member name="description_value"
+              value="116"
+              c:identifier="ATK_ROLE_DESCRIPTION_VALUE"
+              glib:nick="description-value">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="196">An object that represents the
+description, definition or value of a term. (Since: 2.12)</doc>
+      </member>
+      <member name="static"
+              value="117"
+              c:identifier="ATK_ROLE_STATIC"
+              glib:nick="static">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="198">A generic non-container object whose purpose is to display a
+brief amount of information to the user and whose role is known by the
+implementor but lacks semantic value for the user. Examples in which
+%ATK_ROLE_STATIC is appropriate include the message displayed in a message box
+and an image used as an alternative means to display text. %ATK_ROLE_STATIC
+should not be applied to widgets which are traditionally interactive, objects
+which display a significant amount of content, or any object which has an
+accessible relation pointing to another object. Implementors should expose the
+displayed information through the accessible name of the object. If doing so seems
+inappropriate, it may indicate that a different role should be used. For
+labels which describe another widget, see %ATK_ROLE_LABEL. For text views, see
+%ATK_ROLE_TEXT. For generic containers, see %ATK_ROLE_PANEL. For objects whose
+role is not known by the implementor, see %ATK_ROLE_UNKNOWN. (Since: 2.16)</doc>
+      </member>
+      <member name="math_fraction"
+              value="118"
+              c:identifier="ATK_ROLE_MATH_FRACTION"
+              glib:nick="math-fraction">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="211">An object that represents a mathematical fraction.
+(Since: 2.16)</doc>
+      </member>
+      <member name="math_root"
+              value="119"
+              c:identifier="ATK_ROLE_MATH_ROOT"
+              glib:nick="math-root">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="213">An object that represents a mathematical expression
+displayed with a radical. (Since: 2.16)</doc>
+      </member>
+      <member name="subscript"
+              value="120"
+              c:identifier="ATK_ROLE_SUBSCRIPT"
+              glib:nick="subscript">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="215">An object that contains text that is displayed as a
+subscript. (Since: 2.16)</doc>
+      </member>
+      <member name="superscript"
+              value="121"
+              c:identifier="ATK_ROLE_SUPERSCRIPT"
+              glib:nick="superscript">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="217">An object that contains text that is displayed as a
+superscript. (Since: 2.16)</doc>
+      </member>
+      <member name="footnote"
+              value="122"
+              c:identifier="ATK_ROLE_FOOTNOTE"
+              glib:nick="footnote">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="219">An object that contains the text of a footnote. (Since: 2.26)</doc>
+      </member>
+      <member name="content_deletion"
+              value="123"
+              c:identifier="ATK_ROLE_CONTENT_DELETION"
+              glib:nick="content-deletion">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="220">Content previously deleted or proposed to be
+deleted, e.g. in revision history or a content view providing suggestions
+from reviewers. (Since: 2.34)</doc>
+      </member>
+      <member name="content_insertion"
+              value="124"
+              c:identifier="ATK_ROLE_CONTENT_INSERTION"
+              glib:nick="content-insertion">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="223">Content previously inserted or proposed to be
+inserted, e.g. in revision history or a content view providing suggestions
+from reviewers. (Since: 2.34)</doc>
+      </member>
+      <member name="mark"
+              value="125"
+              c:identifier="ATK_ROLE_MARK"
+              glib:nick="mark">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="226">A run of content that is marked or highlighted, such as for
+reference purposes, or to call it out as having a special purpose. If the
+marked content has an associated section in the document elaborating on the
+reason for the mark, then %ATK_RELATION_DETAILS should be used on the mark
+to point to that associated section. In addition, the reciprocal relation
+%ATK_RELATION_DETAILS_FOR should be used on the associated content section
+to point back to the mark. (Since: 2.36)</doc>
+      </member>
+      <member name="suggestion"
+              value="126"
+              c:identifier="ATK_ROLE_SUGGESTION"
+              glib:nick="suggestion">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="233">A container for content that is called out as a proposed
+change from the current version of the document, such as by a reviewer of the
+content. This role should include either %ATK_ROLE_CONTENT_DELETION and/or
+%ATK_ROLE_CONTENT_INSERTION children, in any order, to indicate what the
+actual change is. (Since: 2.36)</doc>
+      </member>
+      <member name="last_defined"
+              value="127"
+              c:identifier="ATK_ROLE_LAST_DEFINED"
+              glib:nick="last-defined">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.h"
+             line="238">not a valid role, used for finding end of the enumeration</doc>
+      </member>
+      <function name="for_name" c:identifier="atk_role_for_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1643">Get the #AtkRole type corresponding to a rolew name.</doc>
+        <source-position filename="../atk/atkobject.h" line="771"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1649">the #AtkRole enumerated type corresponding to the specified name,
+         or #ATK_ROLE_INVALID if no matching role is found.</doc>
+          <type name="Role" c:type="AtkRole"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1645">a string which is the (non-localized) name of an ATK role.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_localized_name"
+                c:identifier="atk_role_get_localized_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1594">Gets the localized description string describing the #AtkRole @role.</doc>
+        <source-position filename="../atk/atkobject.h" line="784"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1600">the localized string describing the AtkRole</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="role" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1596">The #AtkRole whose localized name is required</doc>
+            <type name="Role" c:type="AtkRole"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_name" c:identifier="atk_role_get_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1572">Gets the description string describing the #AtkRole @role.</doc>
+        <source-position filename="../atk/atkobject.h" line="769"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1578">the string describing the AtkRole</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="role" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="1574">The #AtkRole whose name is required</doc>
+            <type name="Role" c:type="AtkRole"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="register"
+                c:identifier="atk_role_register"
+                deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="892">Registers the role specified by @name. @name must be a meaningful
+name. So it should not be empty, or consisting on whitespaces.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. If your application/toolkit doesn't find a
+suitable role for a specific object defined at #AtkRole, please
+submit a bug in order to add a new role to the specification.</doc-deprecated>
+        <source-position filename="../atk/atkobject.h" line="786"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="903">an #AtkRole for the new role if added
+properly. ATK_ROLE_INVALID in case of error.</doc>
+          <type name="Role" c:type="AtkRole"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkobject.c"
+                 line="894">a character string describing the new role.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+    </enumeration>
+    <function-macro name="SELECTION"
+                    c:identifier="ATK_SELECTION"
+                    introspectable="0">
+      <source-position filename="../atk/atkselection.h" line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SELECTION_GET_IFACE"
+                    c:identifier="ATK_SELECTION_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atkselection.h" line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SOCKET" c:identifier="ATK_SOCKET" introspectable="0">
+      <source-position filename="../atk/atksocket.h" line="32"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SOCKET_CLASS"
+                    c:identifier="ATK_SOCKET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atksocket.h" line="34"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SOCKET_GET_CLASS"
+                    c:identifier="ATK_SOCKET_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atksocket.h" line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STATE_SET"
+                    c:identifier="ATK_STATE_SET"
+                    introspectable="0">
+      <source-position filename="../atk/atkstateset.h" line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STATE_SET_CLASS"
+                    c:identifier="ATK_STATE_SET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkstateset.h" line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STATE_SET_GET_CLASS"
+                    c:identifier="ATK_STATE_SET_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkstateset.h" line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STREAMABLE_CONTENT"
+                    c:identifier="ATK_STREAMABLE_CONTENT"
+                    introspectable="0">
+      <source-position filename="../atk/atkstreamablecontent.h" line="33"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STREAMABLE_CONTENT_GET_IFACE"
+                    c:identifier="ATK_STREAMABLE_CONTENT_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atkstreamablecontent.h" line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <enumeration name="ScrollType"
+                 version="2.30"
+                 glib:type-name="AtkScrollType"
+                 glib:get-type="atk_scroll_type_get_type"
+                 c:type="AtkScrollType">
+      <doc xml:space="preserve"
+           filename="../atk/atkcomponent.h"
+           line="32">Specifies where an object should be placed on the screen when using scroll_to.</doc>
+      <member name="top_left"
+              value="0"
+              c:identifier="ATK_SCROLL_TOP_LEFT"
+              glib:nick="top-left">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.h"
+             line="34">Scroll the object vertically and horizontally to bring
+  its top left corner to the top left corner of the window.</doc>
+      </member>
+      <member name="bottom_right"
+              value="1"
+              c:identifier="ATK_SCROLL_BOTTOM_RIGHT"
+              glib:nick="bottom-right">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.h"
+             line="36">Scroll the object vertically and horizontally to
+  bring its bottom right corner to the bottom right corner of the window.</doc>
+      </member>
+      <member name="top_edge"
+              value="2"
+              c:identifier="ATK_SCROLL_TOP_EDGE"
+              glib:nick="top-edge">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.h"
+             line="38">Scroll the object vertically to bring its top edge to
+  the top edge of the window.</doc>
+      </member>
+      <member name="bottom_edge"
+              value="3"
+              c:identifier="ATK_SCROLL_BOTTOM_EDGE"
+              glib:nick="bottom-edge">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.h"
+             line="40">Scroll the object vertically to bring its bottom
+  edge to the bottom edge of the window.</doc>
+      </member>
+      <member name="left_edge"
+              value="4"
+              c:identifier="ATK_SCROLL_LEFT_EDGE"
+              glib:nick="left-edge">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.h"
+             line="42">Scroll the object vertically and horizontally to bring
+  its left edge to the left edge of the window.</doc>
+      </member>
+      <member name="right_edge"
+              value="5"
+              c:identifier="ATK_SCROLL_RIGHT_EDGE"
+              glib:nick="right-edge">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.h"
+             line="44">Scroll the object vertically and horizontally to
+  bring its right edge to the right edge of the window.</doc>
+      </member>
+      <member name="anywhere"
+              value="6"
+              c:identifier="ATK_SCROLL_ANYWHERE"
+              glib:nick="anywhere">
+        <doc xml:space="preserve"
+             filename="../atk/atkcomponent.h"
+             line="46">Scroll the object vertically and horizontally so that
+  as much as possible of the object becomes visible. The exact placement is
+  determined by the application.</doc>
+      </member>
+    </enumeration>
+    <interface name="Selection"
+               c:symbol-prefix="selection"
+               c:type="AtkSelection"
+               glib:type-name="AtkSelection"
+               glib:get-type="atk_selection_get_type"
+               glib:type-struct="SelectionIface">
+      <doc xml:space="preserve"
+           filename="../atk/atkselection.c"
+           line="24">#AtkSelection should be implemented by UI components with children
+which are exposed by #atk_object_ref_child and
+#atk_object_get_n_children, if the use of the parent UI component
+ordinarily involves selection of one or more of the objects
+corresponding to those #AtkObject children - for example,
+selectable lists.
+
+Note that other types of "selection" (for instance text selection)
+are accomplished a other ATK interfaces - #AtkSelection is limited
+to the selection/deselection of children.</doc>
+      <source-position filename="../atk/atkselection.h" line="68"/>
+      <virtual-method name="add_selection" invoker="add_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="100">Adds the specified accessible child of the object to the
+object's selection.</doc>
+        <source-position filename="../atk/atkselection.h" line="53"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="108">TRUE if success, FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="102">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="103">a #gint specifying the child index.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="clear_selection" invoker="clear_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="126">Clears the selection in the object so that no children in the object
+are selected.</doc>
+        <source-position filename="../atk/atkselection.h" line="55"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="133">TRUE if success, FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="128">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_selection_count" invoker="get_selection_count">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="183">Gets the number of accessible children currently selected.
+Note: callers should not rely on %NULL or on a zero value for
+indication of whether AtkSelectionIface is implemented, they should
+use type checking/interface checking macros or the
+atk_get_accessible_value() convenience method.</doc>
+        <source-position filename="../atk/atkselection.h" line="58"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="193">a gint representing the number of items selected, or 0
+if @selection does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="185">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="is_child_selected" invoker="is_child_selected">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="211">Determines if the current child of this object is selected
+Note: callers should not rely on %NULL or on a zero value for
+indication of whether AtkSelectionIface is implemented, they should
+use type checking/interface checking macros or the
+atk_get_accessible_value() convenience method.</doc>
+        <source-position filename="../atk/atkselection.h" line="59"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="222">a gboolean representing the specified child is selected, or 0
+if @selection does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="213">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="214">a #gint specifying the child index.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="ref_selection" invoker="ref_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="150">Gets a reference to the accessible object representing the specified
+selected child of the object.
+Note: callers should not rely on %NULL or on a zero value for
+indication of whether AtkSelectionIface is implemented, they should
+use type checking/interface checking macros or the
+atk_get_accessible_value() convenience method.</doc>
+        <source-position filename="../atk/atkselection.h" line="56"/>
+        <return-value transfer-ownership="full" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="163">an #AtkObject representing the
+selected accessible, or %NULL if @selection does not implement this
+interface.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="152">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="153">a #gint specifying the index in the selection set.  (e.g. the
+ith selection as opposed to the ith child).</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="remove_selection" invoker="remove_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="241">Removes the specified child of the object from the object's selection.</doc>
+        <source-position filename="../atk/atkselection.h" line="61"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="249">TRUE if success, FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="243">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="244">a #gint specifying the index in the selection set.  (e.g. the
+ith selection as opposed to the ith child).</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="select_all_selection"
+                      invoker="select_all_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="267">Causes every child of the object to be selected if the object
+supports multiple selections.</doc>
+        <source-position filename="../atk/atkselection.h" line="63"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="274">TRUE if success, FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="269">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="selection_changed">
+        <source-position filename="../atk/atkselection.h" line="67"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_selection" c:identifier="atk_selection_add_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="100">Adds the specified accessible child of the object to the
+object's selection.</doc>
+        <source-position filename="../atk/atkselection.h" line="74"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="108">TRUE if success, FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="102">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="103">a #gint specifying the child index.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear_selection"
+              c:identifier="atk_selection_clear_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="126">Clears the selection in the object so that no children in the object
+are selected.</doc>
+        <source-position filename="../atk/atkselection.h" line="78"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="133">TRUE if success, FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="128">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_selection_count"
+              c:identifier="atk_selection_get_selection_count">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="183">Gets the number of accessible children currently selected.
+Note: callers should not rely on %NULL or on a zero value for
+indication of whether AtkSelectionIface is implemented, they should
+use type checking/interface checking macros or the
+atk_get_accessible_value() convenience method.</doc>
+        <source-position filename="../atk/atkselection.h" line="85"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="193">a gint representing the number of items selected, or 0
+if @selection does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="185">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_child_selected"
+              c:identifier="atk_selection_is_child_selected">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="211">Determines if the current child of this object is selected
+Note: callers should not rely on %NULL or on a zero value for
+indication of whether AtkSelectionIface is implemented, they should
+use type checking/interface checking macros or the
+atk_get_accessible_value() convenience method.</doc>
+        <source-position filename="../atk/atkselection.h" line="88"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="222">a gboolean representing the specified child is selected, or 0
+if @selection does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="213">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="214">a #gint specifying the child index.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ref_selection" c:identifier="atk_selection_ref_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="150">Gets a reference to the accessible object representing the specified
+selected child of the object.
+Note: callers should not rely on %NULL or on a zero value for
+indication of whether AtkSelectionIface is implemented, they should
+use type checking/interface checking macros or the
+atk_get_accessible_value() convenience method.</doc>
+        <source-position filename="../atk/atkselection.h" line="81"/>
+        <return-value transfer-ownership="full" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="163">an #AtkObject representing the
+selected accessible, or %NULL if @selection does not implement this
+interface.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="152">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="153">a #gint specifying the index in the selection set.  (e.g. the
+ith selection as opposed to the ith child).</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_selection"
+              c:identifier="atk_selection_remove_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="241">Removes the specified child of the object from the object's selection.</doc>
+        <source-position filename="../atk/atkselection.h" line="92"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="249">TRUE if success, FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="243">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="244">a #gint specifying the index in the selection set.  (e.g. the
+ith selection as opposed to the ith child).</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="select_all_selection"
+              c:identifier="atk_selection_select_all_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="267">Causes every child of the object to be selected if the object
+supports multiple selections.</doc>
+        <source-position filename="../atk/atkselection.h" line="96"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkselection.c"
+               line="274">TRUE if success, FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="269">a #GObject instance that implements AtkSelectionIface</doc>
+            <type name="Selection" c:type="AtkSelection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <glib:signal name="selection-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atkselection.c"
+             line="79">The "selection-changed" signal is emitted by an object which
+implements AtkSelection interface when the selection changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </interface>
+    <record name="SelectionIface"
+            c:type="AtkSelectionIface"
+            glib:is-gtype-struct-for="Selection">
+      <source-position filename="../atk/atkselection.h" line="68"/>
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="add_selection">
+        <callback name="add_selection">
+          <source-position filename="../atk/atkselection.h" line="53"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="108">TRUE if success, FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="selection" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkselection.c"
+                   line="102">a #GObject instance that implements AtkSelectionIface</doc>
+              <type name="Selection" c:type="AtkSelection*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkselection.c"
+                   line="103">a #gint specifying the child index.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="clear_selection">
+        <callback name="clear_selection">
+          <source-position filename="../atk/atkselection.h" line="55"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="133">TRUE if success, FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="selection" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkselection.c"
+                   line="128">a #GObject instance that implements AtkSelectionIface</doc>
+              <type name="Selection" c:type="AtkSelection*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="ref_selection">
+        <callback name="ref_selection">
+          <source-position filename="../atk/atkselection.h" line="56"/>
+          <return-value transfer-ownership="full" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="163">an #AtkObject representing the
+selected accessible, or %NULL if @selection does not implement this
+interface.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="selection" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkselection.c"
+                   line="152">a #GObject instance that implements AtkSelectionIface</doc>
+              <type name="Selection" c:type="AtkSelection*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkselection.c"
+                   line="153">a #gint specifying the index in the selection set.  (e.g. the
+ith selection as opposed to the ith child).</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_selection_count">
+        <callback name="get_selection_count">
+          <source-position filename="../atk/atkselection.h" line="58"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="193">a gint representing the number of items selected, or 0
+if @selection does not implement this interface.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="selection" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkselection.c"
+                   line="185">a #GObject instance that implements AtkSelectionIface</doc>
+              <type name="Selection" c:type="AtkSelection*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="is_child_selected">
+        <callback name="is_child_selected">
+          <source-position filename="../atk/atkselection.h" line="59"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="222">a gboolean representing the specified child is selected, or 0
+if @selection does not implement this interface.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="selection" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkselection.c"
+                   line="213">a #GObject instance that implements AtkSelectionIface</doc>
+              <type name="Selection" c:type="AtkSelection*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkselection.c"
+                   line="214">a #gint specifying the child index.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove_selection">
+        <callback name="remove_selection">
+          <source-position filename="../atk/atkselection.h" line="61"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="249">TRUE if success, FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="selection" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkselection.c"
+                   line="243">a #GObject instance that implements AtkSelectionIface</doc>
+              <type name="Selection" c:type="AtkSelection*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkselection.c"
+                   line="244">a #gint specifying the index in the selection set.  (e.g. the
+ith selection as opposed to the ith child).</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="select_all_selection">
+        <callback name="select_all_selection">
+          <source-position filename="../atk/atkselection.h" line="63"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkselection.c"
+                 line="274">TRUE if success, FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="selection" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkselection.c"
+                   line="269">a #GObject instance that implements AtkSelectionIface</doc>
+              <type name="Selection" c:type="AtkSelection*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="selection_changed">
+        <callback name="selection_changed">
+          <source-position filename="../atk/atkselection.h" line="67"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="selection" transfer-ownership="none">
+              <type name="Selection" c:type="AtkSelection*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <class name="Socket"
+           c:symbol-prefix="socket"
+           c:type="AtkSocket"
+           parent="Object"
+           glib:type-name="AtkSocket"
+           glib:get-type="atk_socket_get_type"
+           glib:type-struct="SocketClass">
+      <doc xml:space="preserve"
+           filename="../atk/atksocket.c"
+           line="25">Together with #AtkPlug, #AtkSocket provides the ability to embed
+accessibles from one process into another in a fashion that is
+transparent to assistive technologies. #AtkSocket works as the
+container of #AtkPlug, embedding it using the method
+atk_socket_embed(). Any accessible contained in the #AtkPlug will
+appear to the assistive technologies as being inside the
+application that created the #AtkSocket.
+
+The communication between a #AtkSocket and a #AtkPlug is done by
+the IPC layer of the accessibility framework, normally implemented
+by the D-Bus based implementation of AT-SPI (at-spi2). If that is
+the case, at-spi-atk2 is the responsible to implement the abstract
+methods atk_plug_get_id() and atk_socket_embed(), so an ATK
+implementor shouldn't reimplement them. The process that contains
+the #AtkPlug is responsible to send the ID returned by
+atk_plug_id() to the process that contains the #AtkSocket, so it
+could call the method atk_socket_embed() in order to embed it.
+
+For the same reasons, an implementor doesn't need to implement
+atk_object_get_n_accessible_children() and
+atk_object_ref_accessible_child(). All the logic related to those
+functions will be implemented by the IPC layer.</doc>
+      <source-position filename="../atk/atksocket.h" line="60"/>
+      <implements name="Component"/>
+      <constructor name="new" c:identifier="atk_socket_new">
+        <doc xml:space="preserve"
+             filename="../atk/atksocket.c"
+             line="107">Creates a new #AtkSocket.</doc>
+        <source-position filename="../atk/atksocket.h" line="63"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atksocket.c"
+               line="112">the newly created #AtkSocket instance</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="embed" invoker="embed" version="1.30">
+        <doc xml:space="preserve"
+             filename="../atk/atksocket.c"
+             line="120">Embeds the children of an #AtkPlug as the children of the
+#AtkSocket. The plug may be in the same process or in a different
+process.
+
+The class item used by this function should be filled in by the IPC
+layer (usually at-spi2-atk). The implementor of the AtkSocket
+should call this function and pass the id for the plug as returned
+by atk_plug_get_id().  It is the responsibility of the application
+to pass the plug id on to the process implementing the #AtkSocket
+as needed.</doc>
+        <source-position filename="../atk/atksocket.h" line="59"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atksocket.c"
+                 line="122">an #AtkSocket</doc>
+            <type name="Socket" c:type="AtkSocket*"/>
+          </instance-parameter>
+          <parameter name="plug_id" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atksocket.c"
+                 line="123">the ID of an #AtkPlug</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="embed" c:identifier="atk_socket_embed" version="1.30">
+        <doc xml:space="preserve"
+             filename="../atk/atksocket.c"
+             line="120">Embeds the children of an #AtkPlug as the children of the
+#AtkSocket. The plug may be in the same process or in a different
+process.
+
+The class item used by this function should be filled in by the IPC
+layer (usually at-spi2-atk). The implementor of the AtkSocket
+should call this function and pass the id for the plug as returned
+by atk_plug_get_id().  It is the responsibility of the application
+to pass the plug id on to the process implementing the #AtkSocket
+as needed.</doc>
+        <source-position filename="../atk/atksocket.h" line="65"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atksocket.c"
+                 line="122">an #AtkSocket</doc>
+            <type name="Socket" c:type="AtkSocket*"/>
+          </instance-parameter>
+          <parameter name="plug_id" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atksocket.c"
+                 line="123">the ID of an #AtkPlug</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_occupied"
+              c:identifier="atk_socket_is_occupied"
+              version="1.30">
+        <doc xml:space="preserve"
+             filename="../atk/atksocket.c"
+             line="156">Determines whether or not the socket has an embedded plug.</doc>
+        <source-position filename="../atk/atksocket.h" line="67"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atksocket.c"
+               line="162">TRUE if a plug is embedded in the socket</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atksocket.c"
+                 line="158">an #AtkSocket</doc>
+            <type name="Socket" c:type="AtkSocket*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Object" c:type="AtkObject"/>
+      </field>
+      <field name="embedded_plug_id" readable="0" private="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+    </class>
+    <record name="SocketClass"
+            c:type="AtkSocketClass"
+            glib:is-gtype-struct-for="Socket">
+      <source-position filename="../atk/atksocket.h" line="60"/>
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="AtkObjectClass"/>
+      </field>
+      <field name="embed">
+        <callback name="embed">
+          <source-position filename="../atk/atksocket.h" line="59"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atksocket.c"
+                   line="122">an #AtkSocket</doc>
+              <type name="Socket" c:type="AtkSocket*"/>
+            </parameter>
+            <parameter name="plug_id" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atksocket.c"
+                   line="123">the ID of an #AtkPlug</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <class name="StateSet"
+           c:symbol-prefix="state_set"
+           c:type="AtkStateSet"
+           parent="GObject.Object"
+           glib:type-name="AtkStateSet"
+           glib:get-type="atk_state_set_get_type"
+           glib:type-struct="StateSetClass">
+      <doc xml:space="preserve"
+           filename="../atk/atkstateset.c"
+           line="27">An AtkStateSet is a read-only representation of the full set of #AtkStates
+that apply to an object at a given time. This set is not meant to be
+modified, but rather created when #atk_object_ref_state_set() is called.</doc>
+      <source-position filename="../atk/atkstateset.h" line="52"/>
+      <constructor name="new" c:identifier="atk_state_set_new">
+        <doc xml:space="preserve"
+             filename="../atk/atkstateset.c"
+             line="79">Creates a new empty state set.</doc>
+        <source-position filename="../atk/atkstateset.h" line="58"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkstateset.c"
+               line="84">a new #AtkStateSet</doc>
+          <type name="StateSet" c:type="AtkStateSet*"/>
+        </return-value>
+      </constructor>
+      <method name="add_state" c:identifier="atk_state_set_add_state">
+        <doc xml:space="preserve"
+             filename="../atk/atkstateset.c"
+             line="114">Adds the state of the specified type to the state set if it is not already
+present.
+
+Note that because an #AtkStateSet is a read-only object, this method should
+be used to add a state to a newly-created set which will then be returned by
+#atk_object_ref_state_set. It should not be used to modify the existing state
+of an object. See also #atk_object_notify_state_change.</doc>
+        <source-position filename="../atk/atkstateset.h" line="62"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstateset.c"
+               line="127">%TRUE if  the state for @type is not already in @set.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="116">an #AtkStateSet</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="117">an #AtkStateType</doc>
+            <type name="StateType" c:type="AtkStateType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_states" c:identifier="atk_state_set_add_states">
+        <doc xml:space="preserve"
+             filename="../atk/atkstateset.c"
+             line="146">Adds the states of the specified types to the state set.
+
+Note that because an #AtkStateSet is a read-only object, this method should
+be used to add states to a newly-created set which will then be returned by
+#atk_object_ref_state_set. It should not be used to modify the existing state
+of an object. See also #atk_object_notify_state_change.</doc>
+        <source-position filename="../atk/atkstateset.h" line="65"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="148">an #AtkStateSet</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </instance-parameter>
+          <parameter name="types" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="149">an array of #AtkStateType</doc>
+            <array length="1" zero-terminated="0" c:type="AtkStateType*">
+              <type name="StateType" c:type="AtkStateType"/>
+            </array>
+          </parameter>
+          <parameter name="n_types" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="150">The number of elements in the array</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="and_sets" c:identifier="atk_state_set_and_sets">
+        <doc xml:space="preserve"
+             filename="../atk/atkstateset.c"
+             line="279">Constructs the intersection of the two sets, returning %NULL if the
+intersection is empty.</doc>
+        <source-position filename="../atk/atkstateset.h" line="81"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkstateset.c"
+               line="287">a new #AtkStateSet which is the intersection of
+the two sets.</doc>
+          <type name="StateSet" c:type="AtkStateSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="281">an #AtkStateSet</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </instance-parameter>
+          <parameter name="compare_set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="282">another #AtkStateSet</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear_states" c:identifier="atk_state_set_clear_states">
+        <doc xml:space="preserve"
+             filename="../atk/atkstateset.c"
+             line="176">Removes all states from the state set.</doc>
+        <source-position filename="../atk/atkstateset.h" line="69"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="178">an #AtkStateSet</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="contains_state"
+              c:identifier="atk_state_set_contains_state">
+        <doc xml:space="preserve"
+             filename="../atk/atkstateset.c"
+             line="193">Checks whether the state for the specified type is in the specified set.</doc>
+        <source-position filename="../atk/atkstateset.h" line="71"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstateset.c"
+               line="200">%TRUE if @type is the state type is in @set.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="195">an #AtkStateSet</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="196">an #AtkStateType</doc>
+            <type name="StateType" c:type="AtkStateType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="contains_states"
+              c:identifier="atk_state_set_contains_states">
+        <doc xml:space="preserve"
+             filename="../atk/atkstateset.c"
+             line="217">Checks whether the states for all the specified types are in the
+specified set.</doc>
+        <source-position filename="../atk/atkstateset.h" line="74"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstateset.c"
+               line="226">%TRUE if all the states for @type are in @set.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="219">an #AtkStateSet</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </instance-parameter>
+          <parameter name="types" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="220">an array of #AtkStateType</doc>
+            <array length="1" zero-terminated="0" c:type="AtkStateType*">
+              <type name="StateType" c:type="AtkStateType"/>
+            </array>
+          </parameter>
+          <parameter name="n_types" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="221">The number of elements in the array</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_empty" c:identifier="atk_state_set_is_empty">
+        <doc xml:space="preserve"
+             filename="../atk/atkstateset.c"
+             line="92">Checks whether the state set is empty, i.e. has no states set.</doc>
+        <source-position filename="../atk/atkstateset.h" line="60"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstateset.c"
+               line="98">%TRUE if @set has no states set, otherwise %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="94">an #AtkStateType</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="or_sets" c:identifier="atk_state_set_or_sets">
+        <doc xml:space="preserve"
+             filename="../atk/atkstateset.c"
+             line="313">Constructs the union of the two sets.</doc>
+        <source-position filename="../atk/atkstateset.h" line="84"/>
+        <return-value transfer-ownership="full" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkstateset.c"
+               line="320">a new #AtkStateSet which is
+the union of the two sets, returning %NULL is empty.</doc>
+          <type name="StateSet" c:type="AtkStateSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="315">an #AtkStateSet</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </instance-parameter>
+          <parameter name="compare_set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="316">another #AtkStateSet</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_state" c:identifier="atk_state_set_remove_state">
+        <doc xml:space="preserve"
+             filename="../atk/atkstateset.c"
+             line="247">Removes the state for the specified type from the state set.
+
+Note that because an #AtkStateSet is a read-only object, this method should
+be used to remove a state to a newly-created set which will then be returned
+by #atk_object_ref_state_set. It should not be used to modify the existing
+state of an object. See also #atk_object_notify_state_change.</doc>
+        <source-position filename="../atk/atkstateset.h" line="78"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstateset.c"
+               line="259">%TRUE if @type was the state type is in @set.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="249">an #AtkStateSet</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="250">an #AtkType</doc>
+            <type name="StateType" c:type="AtkStateType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="xor_sets" c:identifier="atk_state_set_xor_sets">
+        <doc xml:space="preserve"
+             filename="../atk/atkstateset.c"
+             line="348">Constructs the exclusive-or of the two sets, returning %NULL is empty.
+The set returned by this operation contains the states in exactly
+one of the two sets.</doc>
+        <source-position filename="../atk/atkstateset.h" line="87"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkstateset.c"
+               line="357">a new #AtkStateSet which contains the states
+which are in exactly one of the two sets.</doc>
+          <type name="StateSet" c:type="AtkStateSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="350">an #AtkStateSet</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </instance-parameter>
+          <parameter name="compare_set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstateset.c"
+                 line="351">another #AtkStateSet</doc>
+            <type name="StateSet" c:type="AtkStateSet*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+    </class>
+    <record name="StateSetClass"
+            c:type="AtkStateSetClass"
+            glib:is-gtype-struct-for="StateSet">
+      <source-position filename="../atk/atkstateset.h" line="52"/>
+      <field name="parent">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <enumeration name="StateType"
+                 glib:type-name="AtkStateType"
+                 glib:get-type="atk_state_type_get_type"
+                 c:type="AtkStateType">
+      <doc xml:space="preserve"
+           filename="../atk/atkstate.h"
+           line="32">The possible types of states of an object</doc>
+      <member name="invalid"
+              value="0"
+              c:identifier="ATK_STATE_INVALID"
+              glib:nick="invalid">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="34">Indicates an invalid state - probably an error condition.</doc>
+      </member>
+      <member name="active"
+              value="1"
+              c:identifier="ATK_STATE_ACTIVE"
+              glib:nick="active">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="35">Indicates a window is currently the active window, or an object is the active 
subelement within a container or table. ATK_STATE_ACTIVE should not be used for objects which have 
ATK_STATE_FOCUSABLE or ATK_STATE_SELECTABLE: Those objects should use ATK_STATE_FOCUSED and 
ATK_STATE_SELECTED respectively. ATK_STATE_ACTIVE is a means to indicate that an object which is not 
focusable and not selectable is the currently-active item within its parent container.</doc>
+      </member>
+      <member name="armed"
+              value="2"
+              c:identifier="ATK_STATE_ARMED"
+              glib:nick="armed">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="36">Indicates that the object is 'armed', i.e. will be activated by if a pointer 
button-release event occurs within its bounds.  Buttons often enter this state when a pointer click occurs 
within their bounds, as a precursor to activation. ATK_STATE_ARMED has been deprecated since ATK-2.16 and 
should not be used in newly-written code.</doc>
+      </member>
+      <member name="busy"
+              value="3"
+              c:identifier="ATK_STATE_BUSY"
+              glib:nick="busy">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="37">Indicates the current object is busy, i.e. onscreen representation is in the process 
of changing, or the object is temporarily unavailable for interaction due to activity already in progress.  
This state may be used by implementors of Document to indicate that content loading is underway.  It also may 
indicate other 'pending' conditions; clients may wish to interrogate this object when the ATK_STATE_BUSY flag 
is removed.</doc>
+      </member>
+      <member name="checked"
+              value="4"
+              c:identifier="ATK_STATE_CHECKED"
+              glib:nick="checked">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="38">Indicates this object is currently checked, for instance a checkbox is 
'non-empty'.</doc>
+      </member>
+      <member name="defunct"
+              value="5"
+              c:identifier="ATK_STATE_DEFUNCT"
+              glib:nick="defunct">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="39">Indicates that this object no longer has a valid backing widget (for instance, if its 
peer object has been destroyed)</doc>
+      </member>
+      <member name="editable"
+              value="6"
+              c:identifier="ATK_STATE_EDITABLE"
+              glib:nick="editable">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="40">Indicates that this object can contain text, and that the
+user can change the textual contents of this object by editing those contents
+directly. For an object which is expected to be editable due to its type, but
+which cannot be edited due to the application or platform preventing the user
+from doing so, that object's #AtkStateSet should lack ATK_STATE_EDITABLE and
+should contain ATK_STATE_READ_ONLY.</doc>
+      </member>
+      <member name="enabled"
+              value="7"
+              c:identifier="ATK_STATE_ENABLED"
+              glib:nick="enabled">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="46">Indicates that this object is enabled, i.e. that it currently reflects some 
application state. Objects that are "greyed out" may lack this state, and may lack the STATE_SENSITIVE if 
direct user interaction cannot cause them to acquire STATE_ENABLED. See also: ATK_STATE_SENSITIVE</doc>
+      </member>
+      <member name="expandable"
+              value="8"
+              c:identifier="ATK_STATE_EXPANDABLE"
+              glib:nick="expandable">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="47">Indicates this object allows progressive disclosure of its children</doc>
+      </member>
+      <member name="expanded"
+              value="9"
+              c:identifier="ATK_STATE_EXPANDED"
+              glib:nick="expanded">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="48">Indicates this object its expanded - see ATK_STATE_EXPANDABLE above</doc>
+      </member>
+      <member name="focusable"
+              value="10"
+              c:identifier="ATK_STATE_FOCUSABLE"
+              glib:nick="focusable">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="49">Indicates this object can accept keyboard focus, which means all events resulting 
from typing on the keyboard will normally be passed to it when it has focus</doc>
+      </member>
+      <member name="focused"
+              value="11"
+              c:identifier="ATK_STATE_FOCUSED"
+              glib:nick="focused">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="50">Indicates this object currently has the keyboard focus</doc>
+      </member>
+      <member name="horizontal"
+              value="12"
+              c:identifier="ATK_STATE_HORIZONTAL"
+              glib:nick="horizontal">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="51">Indicates the orientation of this object is horizontal; used, for instance, by 
objects of ATK_ROLE_SCROLL_BAR.  For objects where vertical/horizontal orientation is especially 
meaningful.</doc>
+      </member>
+      <member name="iconified"
+              value="13"
+              c:identifier="ATK_STATE_ICONIFIED"
+              glib:nick="iconified">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="52">Indicates this object is minimized and is represented only by an icon</doc>
+      </member>
+      <member name="modal"
+              value="14"
+              c:identifier="ATK_STATE_MODAL"
+              glib:nick="modal">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="53">Indicates something must be done with this object before the user can interact with 
an object in a different window</doc>
+      </member>
+      <member name="multi_line"
+              value="15"
+              c:identifier="ATK_STATE_MULTI_LINE"
+              glib:nick="multi-line">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="54">Indicates this (text) object can contain multiple lines of text</doc>
+      </member>
+      <member name="multiselectable"
+              value="16"
+              c:identifier="ATK_STATE_MULTISELECTABLE"
+              glib:nick="multiselectable">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="55">Indicates this object allows more than one of its children to be selected at the same 
time, or in the case of text objects, that the object supports non-contiguous text selections.</doc>
+      </member>
+      <member name="opaque"
+              value="17"
+              c:identifier="ATK_STATE_OPAQUE"
+              glib:nick="opaque">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="56">Indicates this object paints every pixel within its rectangular region.</doc>
+      </member>
+      <member name="pressed"
+              value="18"
+              c:identifier="ATK_STATE_PRESSED"
+              glib:nick="pressed">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="57">Indicates this object is currently pressed.</doc>
+      </member>
+      <member name="resizable"
+              value="19"
+              c:identifier="ATK_STATE_RESIZABLE"
+              glib:nick="resizable">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="58">Indicates the size of this object is not fixed</doc>
+      </member>
+      <member name="selectable"
+              value="20"
+              c:identifier="ATK_STATE_SELECTABLE"
+              glib:nick="selectable">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="59">Indicates this object is the child of an object that allows its children to be 
selected and that this child is one of those children that can be selected</doc>
+      </member>
+      <member name="selected"
+              value="21"
+              c:identifier="ATK_STATE_SELECTED"
+              glib:nick="selected">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="60">Indicates this object is the child of an object that allows its children to be 
selected and that this child is one of those children that has been selected</doc>
+      </member>
+      <member name="sensitive"
+              value="22"
+              c:identifier="ATK_STATE_SENSITIVE"
+              glib:nick="sensitive">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="61">Indicates this object is sensitive, e.g. to user interaction.
+STATE_SENSITIVE usually accompanies STATE_ENABLED for user-actionable controls,
+but may be found in the absence of STATE_ENABLED if the current visible state of the
+control is "disconnected" from the application state.  In such cases, direct user interaction
+can often result in the object gaining STATE_SENSITIVE, for instance if a user makes
+an explicit selection using an object whose current state is ambiguous or undefined.
+@see STATE_ENABLED, STATE_INDETERMINATE.</doc>
+      </member>
+      <member name="showing"
+              value="23"
+              c:identifier="ATK_STATE_SHOWING"
+              glib:nick="showing">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="68">Indicates this object, the object's parent, the object's parent's parent, and so on,
+are all 'shown' to the end-user, i.e. subject to "exposure" if blocking or obscuring objects do not interpose
+between this object and the top of the window stack.</doc>
+      </member>
+      <member name="single_line"
+              value="24"
+              c:identifier="ATK_STATE_SINGLE_LINE"
+              glib:nick="single-line">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="71">Indicates this (text) object can contain only a single line of text</doc>
+      </member>
+      <member name="stale"
+              value="25"
+              c:identifier="ATK_STATE_STALE"
+              glib:nick="stale">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="72">Indicates that the information returned for this object may no longer be
+synchronized with the application state.  This is implied if the object has STATE_TRANSIENT,
+and can also occur towards the end of the object peer's lifecycle. It can also be used to indicate that
+the index associated with this object has changed since the user accessed the object (in lieu of
+"index-in-parent-changed" events).</doc>
+      </member>
+      <member name="transient"
+              value="26"
+              c:identifier="ATK_STATE_TRANSIENT"
+              glib:nick="transient">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="77">Indicates this object is transient, i.e. a snapshot which may not emit events when its
+state changes.  Data from objects with ATK_STATE_TRANSIENT should not be cached, since there may be no
+notification given when the cached data becomes obsolete.</doc>
+      </member>
+      <member name="vertical"
+              value="27"
+              c:identifier="ATK_STATE_VERTICAL"
+              glib:nick="vertical">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="80">Indicates the orientation of this object is vertical</doc>
+      </member>
+      <member name="visible"
+              value="28"
+              c:identifier="ATK_STATE_VISIBLE"
+              glib:nick="visible">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="81">Indicates this object is visible, e.g. has been explicitly marked for exposure to the 
user.
+**note**: %ATK_STATE_VISIBLE is no guarantee that the object is actually unobscured on the screen, only
+that it is 'potentially' visible, barring obstruction, being scrolled or clipped out of the
+field of view, or having an ancestor container that has not yet made visible.
+A widget is potentially onscreen if it has both %ATK_STATE_VISIBLE and %ATK_STATE_SHOWING.
+The absence of %ATK_STATE_VISIBLE and %ATK_STATE_SHOWING is semantically equivalent to saying
+that an object is 'hidden'.  See also %ATK_STATE_TRUNCATED, which applies if an object with
+%ATK_STATE_VISIBLE and %ATK_STATE_SHOWING set lies within a viewport which means that its
+contents are clipped, e.g. a truncated spreadsheet cell or
+an image within a scrolling viewport.  Mostly useful for screen-review and magnification
+algorithms.</doc>
+      </member>
+      <member name="manages_descendants"
+              value="29"
+              c:identifier="ATK_STATE_MANAGES_DESCENDANTS"
+              glib:nick="manages-descendants">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="92">Indicates that "active-descendant-changed" event
+is sent when children become 'active' (i.e. are selected or navigated to onscreen).
+Used to prevent need to enumerate all children in very large containers, like tables.
+The presence of STATE_MANAGES_DESCENDANTS is an indication to the client.
+that the children should not, and need not, be enumerated by the client.
+Objects implementing this state are expected to provide relevant state
+notifications to listening clients, for instance notifications of visibility
+changes and activation of their contained child objects, without the client
+having previously requested references to those children.</doc>
+      </member>
+      <member name="indeterminate"
+              value="30"
+              c:identifier="ATK_STATE_INDETERMINATE"
+              glib:nick="indeterminate">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="101">Indicates that the value, or some other quantifiable
+property, of this AtkObject cannot be fully determined. In the case of a large
+data set in which the total number of items in that set is unknown (e.g. 1 of
+999+), implementors should expose the currently-known set size (999) along
+with this state. In the case of a check box, this state should be used to
+indicate that the check box is a tri-state check box which is currently
+neither checked nor unchecked.</doc>
+      </member>
+      <member name="truncated"
+              value="31"
+              c:identifier="ATK_STATE_TRUNCATED"
+              glib:nick="truncated">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="108">Indicates that an object is truncated, e.g. a text value in a speradsheet cell.</doc>
+      </member>
+      <member name="required"
+              value="32"
+              c:identifier="ATK_STATE_REQUIRED"
+              glib:nick="required">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="109">Indicates that explicit user interaction with an object is required by the user 
interface, e.g. a required field in a "web-form" interface.</doc>
+      </member>
+      <member name="invalid_entry"
+              value="33"
+              c:identifier="ATK_STATE_INVALID_ENTRY"
+              glib:nick="invalid-entry">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="110">Indicates that the object has encountered an error condition due to failure of input 
validation. For instance, a form control may acquire this state in response to invalid or malformed user 
input.</doc>
+      </member>
+      <member name="supports_autocompletion"
+              value="34"
+              c:identifier="ATK_STATE_SUPPORTS_AUTOCOMPLETION"
+              glib:nick="supports-autocompletion">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="111">Indicates that the object in question implements some form of ¨typeahead¨ or
+pre-selection behavior whereby entering the first character of one or more sub-elements
+causes those elements to scroll into view or become selected.  Subsequent character input
+may narrow the selection further as long as one or more sub-elements match the string.
+This state is normally only useful and encountered on objects that implement Selection.
+In some cases the typeahead behavior may result in full or partial ¨completion¨ of
+the data in the input field, in which case these input events may trigger text-changed
+events from the AtkText interface.  This state supplants @ATK_ROLE_AUTOCOMPLETE.</doc>
+      </member>
+      <member name="selectable_text"
+              value="35"
+              c:identifier="ATK_STATE_SELECTABLE_TEXT"
+              glib:nick="selectable-text">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="119">Indicates that the object in question supports text selection. It should only be 
exposed on objects which implement the Text interface, in order to distinguish this state from 
@ATK_STATE_SELECTABLE, which infers that the object in question is a selectable child of an object which 
implements Selection. While similar, text selection and subelement selection are distinct operations.</doc>
+      </member>
+      <member name="default"
+              value="36"
+              c:identifier="ATK_STATE_DEFAULT"
+              glib:nick="default">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="120">Indicates that the object is the "default" active component, i.e. the object which 
is activated by an end-user press of the "Enter" or "Return" key.  Typically a "close" or "submit" 
button.</doc>
+      </member>
+      <member name="animated"
+              value="37"
+              c:identifier="ATK_STATE_ANIMATED"
+              glib:nick="animated">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="121">Indicates that the object changes its appearance dynamically as an inherent part of 
its presentation.  This state may come and go if an object is only temporarily animated on the way to a 
'final' onscreen presentation.
+**note**: some applications, notably content viewers, may not be able to detect
+all kinds of animated content.  Therefore the absence of this state should not
+be taken as definitive evidence that the object's visual representation is
+static; this state is advisory.</doc>
+      </member>
+      <member name="visited"
+              value="38"
+              c:identifier="ATK_STATE_VISITED"
+              glib:nick="visited">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="126">Indicates that the object (typically a hyperlink) has already been 'activated', 
and/or its backing data has already been downloaded, rendered, or otherwise "visited".</doc>
+      </member>
+      <member name="checkable"
+              value="39"
+              c:identifier="ATK_STATE_CHECKABLE"
+              glib:nick="checkable">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="127">Indicates this object has the potential to be
+ checked, such as a checkbox or toggle-able table cell. @Since:
+ ATK-2.12</doc>
+      </member>
+      <member name="has_popup"
+              value="40"
+              c:identifier="ATK_STATE_HAS_POPUP"
+              glib:nick="has-popup">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="130">Indicates that the object has a popup context
+menu or sub-level menu which may or may not be showing. This means
+that activation renders conditional content.  Note that ordinary
+tooltips are not considered popups in this context. @Since: ATK-2.12</doc>
+      </member>
+      <member name="has_tooltip"
+              value="41"
+              c:identifier="ATK_STATE_HAS_TOOLTIP"
+              glib:nick="has-tooltip">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="134">Indicates this object has a tooltip. @Since: ATK-2.16</doc>
+      </member>
+      <member name="read_only"
+              value="42"
+              c:identifier="ATK_STATE_READ_ONLY"
+              glib:nick="read-only">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="135">Indicates that a widget which is ENABLED and SENSITIVE
+has a value which can be read, but not modified, by the user. Note that this
+state should only be applied to widget types whose value is normally directly
+user modifiable, such as check boxes, radio buttons, spin buttons, text input
+fields, and combo boxes, as a means to convey that the expected interaction
+with that widget is not possible. When the expected interaction with a
+widget does not include modification by the user, as is the case with
+labels and containers, ATK_STATE_READ_ONLY should not be applied. See also
+ATK_STATE_EDITABLE. @Since: ATK-2-16</doc>
+      </member>
+      <member name="last_defined"
+              value="43"
+              c:identifier="ATK_STATE_LAST_DEFINED"
+              glib:nick="last-defined">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.h"
+             line="144">Not a valid state, used for finding end of enumeration</doc>
+      </member>
+      <function name="for_name" c:identifier="atk_state_type_for_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.c"
+             line="101">Gets the #AtkStateType corresponding to the description string @name.</doc>
+        <source-position filename="../atk/atkstate.h" line="204"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstate.c"
+               line="107">an #AtkStateType corresponding to @name</doc>
+          <type name="StateType" c:type="AtkStateType"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstate.c"
+                 line="103">a character string state name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_name" c:identifier="atk_state_type_get_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.c"
+             line="63">Gets the description string describing the #AtkStateType @type.</doc>
+        <source-position filename="../atk/atkstate.h" line="202"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstate.c"
+               line="69">the string describing the AtkStateType</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstate.c"
+                 line="65">The #AtkStateType whose name is required</doc>
+            <type name="StateType" c:type="AtkStateType"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="register" c:identifier="atk_state_type_register">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.c"
+             line="42">Register a new object state.</doc>
+        <source-position filename="../atk/atkstate.h" line="199"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstate.c"
+               line="48">an #AtkState value for the new state.</doc>
+          <type name="StateType" c:type="AtkStateType"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstate.c"
+                 line="44">a character string describing the new state.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+    </enumeration>
+    <interface name="StreamableContent"
+               c:symbol-prefix="streamable_content"
+               c:type="AtkStreamableContent"
+               glib:type-name="AtkStreamableContent"
+               glib:get-type="atk_streamable_content_get_type"
+               glib:type-struct="StreamableContentIface">
+      <doc xml:space="preserve"
+           filename="../atk/atkstreamablecontent.c"
+           line="24">An interface whereby an object allows its backing content to be
+streamed to clients.  Typical implementors would be images or
+icons, HTML content, or multimedia display/rendering widgets.
+
+Negotiation of content type is allowed. Clients may examine the
+backing data and transform, convert, or parse the content in order
+to present it in an alternate form to end-users.
+
+The AtkStreamableContent interface is particularly useful for
+saving, printing, or post-processing entire documents, or for
+persisting alternate views of a document. If document content
+itself is being serialized, stored, or converted, then use of the
+AtkStreamableContent interface can help address performance
+issues. Unlike most ATK interfaces, this interface is not strongly
+tied to the current user-agent view of the a particular document,
+but may in some cases give access to the underlying model data.</doc>
+      <source-position filename="../atk/atkstreamablecontent.h" line="90"/>
+      <virtual-method name="get_mime_type" invoker="get_mime_type">
+        <doc xml:space="preserve"
+             filename="../atk/atkstreamablecontent.c"
+             line="91">Gets the character string of the specified mime type. The first mime
+type is at position 0, the second at position 1, and so on.</doc>
+        <source-position filename="../atk/atkstreamablecontent.h" line="61"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstreamablecontent.c"
+               line="99">a gchar* representing the specified mime type; the caller
+should not free the character string.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="streamable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="93">a GObject instance that implements AtkStreamableContent</doc>
+            <type name="StreamableContent" c:type="AtkStreamableContent*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="94">a gint representing the position of the mime type starting from 0</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_n_mime_types" invoker="get_n_mime_types">
+        <doc xml:space="preserve"
+             filename="../atk/atkstreamablecontent.c"
+             line="68">Gets the number of mime types supported by this object.</doc>
+        <source-position filename="../atk/atkstreamablecontent.h" line="49"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstreamablecontent.c"
+               line="74">a gint which is the number of mime types supported by the object.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="streamable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="70">a GObject instance that implements AtkStreamableContentIface</doc>
+            <type name="StreamableContent" c:type="AtkStreamableContent*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_stream" invoker="get_stream">
+        <doc xml:space="preserve"
+             filename="../atk/atkstreamablecontent.c"
+             line="119">Gets the content in the specified mime type.</doc>
+        <source-position filename="../atk/atkstreamablecontent.h" line="69"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkstreamablecontent.c"
+               line="126">A #GIOChannel which contains the content in the
+specified mime type.</doc>
+          <type name="GLib.IOChannel" c:type="GIOChannel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="streamable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="121">a GObject instance that implements AtkStreamableContentIface</doc>
+            <type name="StreamableContent" c:type="AtkStreamableContent*"/>
+          </instance-parameter>
+          <parameter name="mime_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="122">a gchar* representing the mime type</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_uri" invoker="get_uri" version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkstreamablecontent.c"
+             line="146">Get a string representing a URI in IETF standard format
+(see http://www.ietf.org/rfc/rfc2396.txt) from which the object's content
+may be streamed in the specified mime-type, if one is available.
+If mime_type is NULL, the URI for the default (and possibly only) mime-type is
+returned.
+
+Note that it is possible for get_uri to return NULL but for
+get_stream to work nonetheless, since not all GIOChannels connect to URIs.</doc>
+        <source-position filename="../atk/atkstreamablecontent.h" line="83"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkstreamablecontent.c"
+               line="161">Returns a string representing a URI, or %NULL
+if no corresponding URI can be constructed.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="streamable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="148">a GObject instance that implements AtkStreamableContentIface</doc>
+            <type name="StreamableContent" c:type="AtkStreamableContent*"/>
+          </instance-parameter>
+          <parameter name="mime_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="149">a gchar* representing the mime type, or NULL to request a URI
+for the default mime type.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_mime_type"
+              c:identifier="atk_streamable_content_get_mime_type">
+        <doc xml:space="preserve"
+             filename="../atk/atkstreamablecontent.c"
+             line="91">Gets the character string of the specified mime type. The first mime
+type is at position 0, the second at position 1, and so on.</doc>
+        <source-position filename="../atk/atkstreamablecontent.h" line="98"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstreamablecontent.c"
+               line="99">a gchar* representing the specified mime type; the caller
+should not free the character string.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="streamable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="93">a GObject instance that implements AtkStreamableContent</doc>
+            <type name="StreamableContent" c:type="AtkStreamableContent*"/>
+          </instance-parameter>
+          <parameter name="i" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="94">a gint representing the position of the mime type starting from 0</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_n_mime_types"
+              c:identifier="atk_streamable_content_get_n_mime_types">
+        <doc xml:space="preserve"
+             filename="../atk/atkstreamablecontent.c"
+             line="68">Gets the number of mime types supported by this object.</doc>
+        <source-position filename="../atk/atkstreamablecontent.h" line="95"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstreamablecontent.c"
+               line="74">a gint which is the number of mime types supported by the object.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="streamable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="70">a GObject instance that implements AtkStreamableContentIface</doc>
+            <type name="StreamableContent" c:type="AtkStreamableContent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_stream"
+              c:identifier="atk_streamable_content_get_stream">
+        <doc xml:space="preserve"
+             filename="../atk/atkstreamablecontent.c"
+             line="119">Gets the content in the specified mime type.</doc>
+        <source-position filename="../atk/atkstreamablecontent.h" line="101"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkstreamablecontent.c"
+               line="126">A #GIOChannel which contains the content in the
+specified mime type.</doc>
+          <type name="GLib.IOChannel" c:type="GIOChannel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="streamable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="121">a GObject instance that implements AtkStreamableContentIface</doc>
+            <type name="StreamableContent" c:type="AtkStreamableContent*"/>
+          </instance-parameter>
+          <parameter name="mime_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="122">a gchar* representing the mime type</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uri"
+              c:identifier="atk_streamable_content_get_uri"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkstreamablecontent.c"
+             line="146">Get a string representing a URI in IETF standard format
+(see http://www.ietf.org/rfc/rfc2396.txt) from which the object's content
+may be streamed in the specified mime-type, if one is available.
+If mime_type is NULL, the URI for the default (and possibly only) mime-type is
+returned.
+
+Note that it is possible for get_uri to return NULL but for
+get_stream to work nonetheless, since not all GIOChannels connect to URIs.</doc>
+        <source-position filename="../atk/atkstreamablecontent.h" line="105"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkstreamablecontent.c"
+               line="161">Returns a string representing a URI, or %NULL
+if no corresponding URI can be constructed.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="streamable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="148">a GObject instance that implements AtkStreamableContentIface</doc>
+            <type name="StreamableContent" c:type="AtkStreamableContent*"/>
+          </instance-parameter>
+          <parameter name="mime_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="149">a gchar* representing the mime type, or NULL to request a URI
+for the default mime type.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="StreamableContentIface"
+            c:type="AtkStreamableContentIface"
+            glib:is-gtype-struct-for="StreamableContent">
+      <source-position filename="../atk/atkstreamablecontent.h" line="90"/>
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_n_mime_types">
+        <callback name="get_n_mime_types">
+          <source-position filename="../atk/atkstreamablecontent.h" line="49"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="74">a gint which is the number of mime types supported by the object.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="streamable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkstreamablecontent.c"
+                   line="70">a GObject instance that implements AtkStreamableContentIface</doc>
+              <type name="StreamableContent" c:type="AtkStreamableContent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_mime_type">
+        <callback name="get_mime_type">
+          <source-position filename="../atk/atkstreamablecontent.h" line="61"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="99">a gchar* representing the specified mime type; the caller
+should not free the character string.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="streamable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkstreamablecontent.c"
+                   line="93">a GObject instance that implements AtkStreamableContent</doc>
+              <type name="StreamableContent" c:type="AtkStreamableContent*"/>
+            </parameter>
+            <parameter name="i" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkstreamablecontent.c"
+                   line="94">a gint representing the position of the mime type starting from 0</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_stream">
+        <callback name="get_stream">
+          <source-position filename="../atk/atkstreamablecontent.h" line="69"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="126">A #GIOChannel which contains the content in the
+specified mime type.</doc>
+            <type name="GLib.IOChannel" c:type="GIOChannel*"/>
+          </return-value>
+          <parameters>
+            <parameter name="streamable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkstreamablecontent.c"
+                   line="121">a GObject instance that implements AtkStreamableContentIface</doc>
+              <type name="StreamableContent" c:type="AtkStreamableContent*"/>
+            </parameter>
+            <parameter name="mime_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkstreamablecontent.c"
+                   line="122">a gchar* representing the mime type</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_uri">
+        <callback name="get_uri">
+          <source-position filename="../atk/atkstreamablecontent.h" line="83"/>
+          <return-value transfer-ownership="none" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkstreamablecontent.c"
+                 line="161">Returns a string representing a URI, or %NULL
+if no corresponding URI can be constructed.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="streamable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkstreamablecontent.c"
+                   line="148">a GObject instance that implements AtkStreamableContentIface</doc>
+              <type name="StreamableContent" c:type="AtkStreamableContent*"/>
+            </parameter>
+            <parameter name="mime_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkstreamablecontent.c"
+                   line="149">a gchar* representing the mime type, or NULL to request a URI
+for the default mime type.</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pad1">
+        <type name="Function" c:type="AtkFunction"/>
+      </field>
+      <field name="pad2">
+        <type name="Function" c:type="AtkFunction"/>
+      </field>
+      <field name="pad3">
+        <type name="Function" c:type="AtkFunction"/>
+      </field>
+    </record>
+    <function-macro name="TABLE" c:identifier="ATK_TABLE" introspectable="0">
+      <source-position filename="../atk/atktable.h" line="33"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TABLE_CELL"
+                    c:identifier="ATK_TABLE_CELL"
+                    introspectable="0">
+      <source-position filename="../atk/atktablecell.h" line="33"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TABLE_CELL_GET_IFACE"
+                    c:identifier="ATK_TABLE_CELL_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atktablecell.h" line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TABLE_GET_IFACE"
+                    c:identifier="ATK_TABLE_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atktable.h" line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXT" c:identifier="ATK_TEXT" introspectable="0">
+      <source-position filename="../atk/atktext.h" line="109"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXT_GET_IFACE"
+                    c:identifier="ATK_TEXT_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atktext.h" line="110"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <interface name="Table"
+               c:symbol-prefix="table"
+               c:type="AtkTable"
+               glib:type-name="AtkTable"
+               glib:get-type="atk_table_get_type"
+               glib:type-struct="TableIface">
+      <doc xml:space="preserve"
+           filename="../atk/atktable.c"
+           line="25">#AtkTable should be implemented by components which present
+elements ordered via rows and columns.  It may also be used to
+present tree-structured information if the nodes of the trees can
+be said to contain multiple "columns".  Individual elements of an
+#AtkTable are typically referred to as "cells". Those cells should
+implement the interface #AtkTableCell, but #Atk doesn't require
+them to be direct children of the current #AtkTable. They can be
+grand-children, grand-grand-children etc. #AtkTable provides the
+API needed to get a individual cell based on the row and column
+numbers.
+
+Children of #AtkTable are frequently "lightweight" objects, that
+is, they may not have backing widgets in the host UI toolkit.  They
+are therefore often transient.
+
+Since tables are often very complex, #AtkTable includes provision
+for offering simplified summary information, as well as row and
+column headers and captions.  Headers and captions are #AtkObjects
+which may implement other interfaces (#AtkText, #AtkImage, etc.) as
+appropriate.  #AtkTable summaries may themselves be (simplified)
+#AtkTables, etc.
+
+Note for implementors: in the past, #AtkTable required that all the
+cells should be direct children of #AtkTable, and provided some
+index based methods to request the cells. The practice showed that
+that forcing made #AtkTable implementation complex, and hard to
+expose other kind of children, like rows or captions. Right now,
+index-based methods are deprecated.</doc>
+      <source-position filename="../atk/atktable.h" line="129"/>
+      <virtual-method name="add_column_selection"
+                      invoker="add_column_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="797">Adds the specified @column to the selection.</doc>
+        <source-position filename="../atk/atktable.h" line="106"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="804">a gboolean representing if the column was successfully added to
+the selection, or 0 if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="799">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="800">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="add_row_selection" invoker="add_row_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="747">Adds the specified @row to the selection.</doc>
+        <source-position filename="../atk/atktable.h" line="102"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="754">a gboolean representing if row was successfully added to selection,
+or 0 if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="749">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="750">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="column_deleted">
+        <source-position filename="../atk/atktable.h" line="123"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="num_deleted" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="column_inserted">
+        <source-position filename="../atk/atktable.h" line="117"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="num_inserted" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="column_reordered">
+        <source-position filename="../atk/atktable.h" line="127"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_caption" invoker="get_caption">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="354">Gets the caption for the @table.</doc>
+        <source-position filename="../atk/atktable.h" line="65"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="360">a AtkObject* representing the
+table caption, or %NULL if value does not implement this interface.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="356">a GObject instance that implements AtkTableInterface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_column_at_index"
+                      invoker="get_column_at_index"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="326">Gets a #gint representing the column at the specified @index_.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12.</doc-deprecated>
+        <source-position filename="../atk/atktable.h" line="52"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="335">a gint representing the column at the specified index,
+or -1 if the table does not implement this method.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="328">a GObject instance that implements AtkTableInterface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="329">a #gint representing an index in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_column_description"
+                      invoker="get_column_description">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="402">Gets the description text of the specified @column in the table</doc>
+        <source-position filename="../atk/atktable.h" line="66"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="409">a gchar* representing the column description, or %NULL
+if value does not implement this interface.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="404">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="405">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_column_extent_at"
+                      invoker="get_column_extent_at">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="428">Gets the number of columns occupied by the accessible object
+at the specified @row and @column in the @table.</doc>
+        <source-position filename="../atk/atktable.h" line="58"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="437">a gint representing the column extent at specified position, or 0
+if value does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="430">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="431">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="432">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_column_header" invoker="get_column_header">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="457">Gets the column header of a specified column in an accessible table.</doc>
+        <source-position filename="../atk/atktable.h" line="68"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="464">a AtkObject* representing the
+specified column header, or %NULL if value does not implement this
+interface.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="459">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="460">a #gint representing a column in the table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_index_at"
+                      invoker="get_index_at"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="263">Gets a #gint representing the index at the specified @row and
+@column.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_table_ref_at() in order to get the
+accessible that represents the cell at (@row, @column)</doc-deprecated>
+        <source-position filename="../atk/atktable.h" line="49"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="275">a #gint representing the index at specified position.
+The value -1 is returned if the object at row,column is not a child
+of table or table does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="265">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="266">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="267">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_n_columns" invoker="get_n_columns">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="378">Gets the number of columns in the table.</doc>
+        <source-position filename="../atk/atktable.h" line="56"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="384">a gint representing the number of columns, or 0
+if value does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="380">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_n_rows" invoker="get_n_rows">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="483">Gets the number of rows in the table.</doc>
+        <source-position filename="../atk/atktable.h" line="57"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="489">a gint representing the number of rows, or 0
+if value does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="485">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_row_at_index"
+                      invoker="get_row_at_index"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="298">Gets a #gint representing the row at the specified @index_.</doc>
+        <doc-deprecated xml:space="preserve">since 2.12.</doc-deprecated>
+        <source-position filename="../atk/atktable.h" line="54"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="307">a gint representing the row at the specified index,
+or -1 if the table does not implement this method.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="300">a GObject instance that implements AtkTableInterface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="301">a #gint representing an index in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_row_description" invoker="get_row_description">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="507">Gets the description text of the specified row in the table</doc>
+        <source-position filename="../atk/atktable.h" line="70"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="514">a gchar* representing the row description, or
+%NULL if value does not implement this interface.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="509">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="510">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_row_extent_at" invoker="get_row_extent_at">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="533">Gets the number of rows occupied by the accessible object
+at a specified @row and @column in the @table.</doc>
+        <source-position filename="../atk/atktable.h" line="61"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="542">a gint representing the row extent at specified position, or 0
+if value does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="535">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="536">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="537">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_row_header" invoker="get_row_header">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="562">Gets the row header of a specified row in an accessible table.</doc>
+        <source-position filename="../atk/atktable.h" line="72"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="569">a AtkObject* representing the
+specified row header, or %NULL if value does not implement this
+interface.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="564">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="565">a #gint representing a row in the table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_selected_columns"
+                      invoker="get_selected_columns">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="638">Gets the selected columns of the table by initializing **selected with
+the selected column numbers. This array should be freed by the caller.</doc>
+        <source-position filename="../atk/atktable.h" line="91"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="646">a gint representing the number of selected columns,
+or %0 if value does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="640">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="selected" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="641">a #gint** that is to contain the selected columns numbers</doc>
+            <type name="gint" c:type="gint**"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_selected_rows" invoker="get_selected_rows">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="612">Gets the selected rows of the table by initializing **selected with
+the selected row numbers. This array should be freed by the caller.</doc>
+        <source-position filename="../atk/atktable.h" line="93"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="620">a gint representing the number of selected rows,
+or zero if value does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="614">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="selected" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="615">a #gint** that is to contain the selected row numbers</doc>
+            <type name="gint" c:type="gint**"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_summary" invoker="get_summary">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="588">Gets the summary description of the table.</doc>
+        <source-position filename="../atk/atktable.h" line="74"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="594">a AtkObject* representing a summary description
+of the table, or zero if value does not implement this interface.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="590">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="is_column_selected" invoker="is_column_selected">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="664">Gets a boolean value indicating whether the specified @column
+is selected</doc>
+        <source-position filename="../atk/atktable.h" line="95"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="672">a gboolean representing if the column is selected, or 0
+if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="666">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="667">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="is_row_selected" invoker="is_row_selected">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="691">Gets a boolean value indicating whether the specified @row
+is selected</doc>
+        <source-position filename="../atk/atktable.h" line="97"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="699">a gboolean representing if the row is selected, or 0
+if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="693">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="694">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="is_selected" invoker="is_selected">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="718">Gets a boolean value indicating whether the accessible object
+at the specified @row and @column is selected</doc>
+        <source-position filename="../atk/atktable.h" line="99"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="727">a gboolean representing if the cell is selected, or 0
+if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="720">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="721">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="722">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="model_changed">
+        <source-position filename="../atk/atktable.h" line="128"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="ref_at" invoker="ref_at">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="232">Get a reference to the table cell at @row, @column. This cell
+should implement the interface #AtkTableCell</doc>
+        <source-position filename="../atk/atktable.h" line="46"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="241">an #AtkObject representing the referred
+to accessible</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="234">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="235">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="236">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="remove_column_selection"
+                      invoker="remove_column_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="822">Adds the specified @column to the selection.</doc>
+        <source-position filename="../atk/atktable.h" line="108"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="829">a gboolean representing if the column was successfully removed from
+the selection, or 0 if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="824">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="825">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="remove_row_selection"
+                      invoker="remove_row_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="772">Removes the specified @row from the selection.</doc>
+        <source-position filename="../atk/atktable.h" line="104"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="779">a gboolean representing if the row was successfully removed from
+the selection, or 0 if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="774">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="775">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="row_deleted">
+        <source-position filename="../atk/atktable.h" line="120"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="num_deleted" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="row_inserted">
+        <source-position filename="../atk/atktable.h" line="114"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="num_inserted" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="row_reordered">
+        <source-position filename="../atk/atktable.h" line="126"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_caption" invoker="set_caption">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="848">Sets the caption for the table.</doc>
+        <source-position filename="../atk/atktable.h" line="75"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="850">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="caption" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="851">a #AtkObject representing the caption to set for @table</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_column_description"
+                      invoker="set_column_description">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="869">Sets the description text for the specified @column of the @table.</doc>
+        <source-position filename="../atk/atktable.h" line="77"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="871">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="872">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="873">a #gchar representing the description text
+to set for the specified @column of the @table</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_column_header" invoker="set_column_header">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="893">Sets the specified column header to @header.</doc>
+        <source-position filename="../atk/atktable.h" line="80"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="895">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="896">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="header" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="897">an #AtkTable</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_row_description" invoker="set_row_description">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="916">Sets the description text for the specified @row of @table.</doc>
+        <source-position filename="../atk/atktable.h" line="83"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="918">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="919">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="920">a #gchar representing the description text
+to set for the specified @row of @table</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_row_header" invoker="set_row_header">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="940">Sets the specified row header to @header.</doc>
+        <source-position filename="../atk/atktable.h" line="86"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="942">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="943">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="header" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="944">an #AtkTable</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_summary" invoker="set_summary">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="963">Sets the summary description of the table.</doc>
+        <source-position filename="../atk/atktable.h" line="89"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="965">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="966">an #AtkObject representing the summary description
+to set for @table</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_column_selection"
+              c:identifier="atk_table_add_column_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="797">Adds the specified @column to the selection.</doc>
+        <source-position filename="../atk/atktable.h" line="224"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="804">a gboolean representing if the column was successfully added to
+the selection, or 0 if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="799">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="800">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_row_selection"
+              c:identifier="atk_table_add_row_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="747">Adds the specified @row to the selection.</doc>
+        <source-position filename="../atk/atktable.h" line="218"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="754">a gboolean representing if row was successfully added to selection,
+or 0 if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="749">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="750">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_caption" c:identifier="atk_table_get_caption">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="354">Gets the caption for the @table.</doc>
+        <source-position filename="../atk/atktable.h" line="162"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="360">a AtkObject* representing the
+table caption, or %NULL if value does not implement this interface.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="356">a GObject instance that implements AtkTableInterface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_column_at_index"
+              c:identifier="atk_table_get_column_at_index"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="326">Gets a #gint representing the column at the specified @index_.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12.</doc-deprecated>
+        <source-position filename="../atk/atktable.h" line="143"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="335">a gint representing the column at the specified index,
+or -1 if the table does not implement this method.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="328">a GObject instance that implements AtkTableInterface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="329">a #gint representing an index in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_column_description"
+              c:identifier="atk_table_get_column_description">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="402">Gets the description text of the specified @column in the table</doc>
+        <source-position filename="../atk/atktable.h" line="164"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="409">a gchar* representing the column description, or %NULL
+if value does not implement this interface.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="404">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="405">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_column_extent_at"
+              c:identifier="atk_table_get_column_extent_at">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="428">Gets the number of columns occupied by the accessible object
+at the specified @row and @column in the @table.</doc>
+        <source-position filename="../atk/atktable.h" line="153"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="437">a gint representing the column extent at specified position, or 0
+if value does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="430">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="431">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="432">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_column_header"
+              c:identifier="atk_table_get_column_header">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="457">Gets the column header of a specified column in an accessible table.</doc>
+        <source-position filename="../atk/atktable.h" line="168"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="464">a AtkObject* representing the
+specified column header, or %NULL if value does not implement this
+interface.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="459">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="460">a #gint representing a column in the table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_index_at"
+              c:identifier="atk_table_get_index_at"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="263">Gets a #gint representing the index at the specified @row and
+@column.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_table_ref_at() in order to get the
+accessible that represents the cell at (@row, @column)</doc-deprecated>
+        <source-position filename="../atk/atktable.h" line="139"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="275">a #gint representing the index at specified position.
+The value -1 is returned if the object at row,column is not a child
+of table or table does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="265">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="266">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="267">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_n_columns" c:identifier="atk_table_get_n_columns">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="378">Gets the number of columns in the table.</doc>
+        <source-position filename="../atk/atktable.h" line="149"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="384">a gint representing the number of columns, or 0
+if value does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="380">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_rows" c:identifier="atk_table_get_n_rows">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="483">Gets the number of rows in the table.</doc>
+        <source-position filename="../atk/atktable.h" line="151"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="489">a gint representing the number of rows, or 0
+if value does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="485">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_row_at_index"
+              c:identifier="atk_table_get_row_at_index"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="298">Gets a #gint representing the row at the specified @index_.</doc>
+        <doc-deprecated xml:space="preserve">since 2.12.</doc-deprecated>
+        <source-position filename="../atk/atktable.h" line="146"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="307">a gint representing the row at the specified index,
+or -1 if the table does not implement this method.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="300">a GObject instance that implements AtkTableInterface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="301">a #gint representing an index in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_row_description"
+              c:identifier="atk_table_get_row_description">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="507">Gets the description text of the specified row in the table</doc>
+        <source-position filename="../atk/atktable.h" line="171"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="514">a gchar* representing the row description, or
+%NULL if value does not implement this interface.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="509">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="510">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_row_extent_at"
+              c:identifier="atk_table_get_row_extent_at">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="533">Gets the number of rows occupied by the accessible object
+at a specified @row and @column in the @table.</doc>
+        <source-position filename="../atk/atktable.h" line="157"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="542">a gint representing the row extent at specified position, or 0
+if value does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="535">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="536">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="537">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_row_header" c:identifier="atk_table_get_row_header">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="562">Gets the row header of a specified row in an accessible table.</doc>
+        <source-position filename="../atk/atktable.h" line="174"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="569">a AtkObject* representing the
+specified row header, or %NULL if value does not implement this
+interface.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="564">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="565">a #gint representing a row in the table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_selected_columns"
+              c:identifier="atk_table_get_selected_columns">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="638">Gets the selected columns of the table by initializing **selected with
+the selected column numbers. This array should be freed by the caller.</doc>
+        <source-position filename="../atk/atktable.h" line="202"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="646">a gint representing the number of selected columns,
+or %0 if value does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="640">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="selected" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="641">a #gint** that is to contain the selected columns numbers</doc>
+            <type name="gint" c:type="gint**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_selected_rows"
+              c:identifier="atk_table_get_selected_rows">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="612">Gets the selected rows of the table by initializing **selected with
+the selected row numbers. This array should be freed by the caller.</doc>
+        <source-position filename="../atk/atktable.h" line="205"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="620">a gint representing the number of selected rows,
+or zero if value does not implement this interface.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="614">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="selected" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="615">a #gint** that is to contain the selected row numbers</doc>
+            <type name="gint" c:type="gint**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_summary" c:identifier="atk_table_get_summary">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="588">Gets the summary description of the table.</doc>
+        <source-position filename="../atk/atktable.h" line="177"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="594">a AtkObject* representing a summary description
+of the table, or zero if value does not implement this interface.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="590">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_column_selected"
+              c:identifier="atk_table_is_column_selected">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="664">Gets a boolean value indicating whether the specified @column
+is selected</doc>
+        <source-position filename="../atk/atktable.h" line="208"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="672">a gboolean representing if the column is selected, or 0
+if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="666">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="667">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_row_selected" c:identifier="atk_table_is_row_selected">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="691">Gets a boolean value indicating whether the specified @row
+is selected</doc>
+        <source-position filename="../atk/atktable.h" line="211"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="699">a gboolean representing if the row is selected, or 0
+if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="693">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="694">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_selected" c:identifier="atk_table_is_selected">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="718">Gets a boolean value indicating whether the accessible object
+at the specified @row and @column is selected</doc>
+        <source-position filename="../atk/atktable.h" line="214"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="727">a gboolean representing if the cell is selected, or 0
+if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="720">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="721">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="722">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ref_at" c:identifier="atk_table_ref_at">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="232">Get a reference to the table cell at @row, @column. This cell
+should implement the interface #AtkTableCell</doc>
+        <source-position filename="../atk/atktable.h" line="135"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="241">an #AtkObject representing the referred
+to accessible</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="234">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="235">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="236">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_column_selection"
+              c:identifier="atk_table_remove_column_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="822">Adds the specified @column to the selection.</doc>
+        <source-position filename="../atk/atktable.h" line="227"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="829">a gboolean representing if the column was successfully removed from
+the selection, or 0 if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="824">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="825">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_row_selection"
+              c:identifier="atk_table_remove_row_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="772">Removes the specified @row from the selection.</doc>
+        <source-position filename="../atk/atktable.h" line="221"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktable.c"
+               line="779">a gboolean representing if the row was successfully removed from
+the selection, or 0 if value does not implement this interface.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="774">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="775">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_caption" c:identifier="atk_table_set_caption">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="848">Sets the caption for the table.</doc>
+        <source-position filename="../atk/atktable.h" line="179"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="850">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="caption" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="851">a #AtkObject representing the caption to set for @table</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_column_description"
+              c:identifier="atk_table_set_column_description">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="869">Sets the description text for the specified @column of the @table.</doc>
+        <source-position filename="../atk/atktable.h" line="182"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="871">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="872">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="873">a #gchar representing the description text
+to set for the specified @column of the @table</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_column_header"
+              c:identifier="atk_table_set_column_header">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="893">Sets the specified column header to @header.</doc>
+        <source-position filename="../atk/atktable.h" line="187"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="895">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="896">a #gint representing a column in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="header" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="897">an #AtkTable</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_row_description"
+              c:identifier="atk_table_set_row_description">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="916">Sets the description text for the specified @row of @table.</doc>
+        <source-position filename="../atk/atktable.h" line="191"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="918">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="919">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="920">a #gchar representing the description text
+to set for the specified @row of @table</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_row_header" c:identifier="atk_table_set_row_header">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="940">Sets the specified row header to @header.</doc>
+        <source-position filename="../atk/atktable.h" line="195"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="942">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="943">a #gint representing a row in @table</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="header" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="944">an #AtkTable</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_summary" c:identifier="atk_table_set_summary">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="963">Sets the summary description of the table.</doc>
+        <source-position filename="../atk/atktable.h" line="199"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="965">a GObject instance that implements AtkTableIface</doc>
+            <type name="Table" c:type="AtkTable*"/>
+          </instance-parameter>
+          <parameter name="accessible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="966">an #AtkObject representing the summary description
+to set for @table</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="column-deleted" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="158">The "column-deleted" signal is emitted by an object which
+implements the AtkTable interface when a column is deleted.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="161">The index of the first column deleted.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="162">The number of columns deleted.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="column-inserted" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="122">The "column-inserted" signal is emitted by an object which
+implements the AtkTable interface when a column is inserted.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="125">The index of the column inserted.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="126">The number of colums inserted.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="column-reordered" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="193">The "column-reordered" signal is emitted by an object which
+implements the AtkTable interface when the columns are
+reordered.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="model-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="211">The "model-changed" signal is emitted by an object which
+implements the AtkTable interface when the model displayed by
+the table changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="row-deleted" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="140">The "row-deleted" signal is emitted by an object which
+implements the AtkTable interface when a row is deleted.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="143">The index of the first row deleted.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="144">The number of rows deleted.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="row-inserted" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="104">The "row-inserted" signal is emitted by an object which
+implements the AtkTable interface when a row is inserted.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="107">The index of the first row inserted.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="108">The number of rows inserted.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="row-reordered" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atktable.c"
+             line="176">The "row-reordered" signal is emitted by an object which
+implements the AtkTable interface when the rows are
+reordered.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </interface>
+    <interface name="TableCell"
+               c:symbol-prefix="table_cell"
+               c:type="AtkTableCell"
+               glib:type-name="AtkTableCell"
+               glib:get-type="atk_table_cell_get_type"
+               glib:type-struct="TableCellIface">
+      <doc xml:space="preserve"
+           filename="../atk/atktablecell.c"
+           line="25">Being #AtkTable a component which present elements ordered via rows
+and columns, an #AtkTableCell is the interface which each of those
+elements, so "cells" should implement.
+
+See also #AtkTable.</doc>
+      <source-position filename="../atk/atktablecell.h" line="82"/>
+      <prerequisite name="Object"/>
+      <virtual-method name="get_column_header_cells"
+                      invoker="get_column_header_cells"
+                      version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="79">Returns the column headers as an array of cell accessibles.</doc>
+        <source-position filename="../atk/atktablecell.h" line="70"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="85">a GPtrArray of AtkObjects
+representing the column header cells.</doc>
+          <array name="GLib.PtrArray" c:type="GPtrArray*">
+            <type name="Object"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="81">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_column_span"
+                      invoker="get_column_span"
+                      version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="53">Returns the number of columns occupied by this cell accessible.</doc>
+        <source-position filename="../atk/atktablecell.h" line="69"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="59">a gint representing the number of columns occupied by this cell,
+or 0 if the cell does not implement this method.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="55">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_position"
+                      invoker="get_position"
+                      version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="105">Retrieves the tabular position of this cell.</doc>
+        <source-position filename="../atk/atktablecell.h" line="71"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="113">TRUE if successful; FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="107">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+          <parameter name="row"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="108">the row of the given cell.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="column"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="109">the column of the given cell.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_row_column_span"
+                      invoker="get_row_column_span"
+                      version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="192">Gets the row and column indexes and span of this cell accessible.
+
+Note: If the object does not implement this function, then, by default, atk
+will implement this function by calling get_row_span and get_column_span
+on the object.</doc>
+        <source-position filename="../atk/atktablecell.h" line="76"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="206">TRUE if successful; FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="194">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+          <parameter name="row"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="195">the row index of the given cell.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="column"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="196">the column index of the given cell.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="row_span"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="197">the number of rows occupied by this cell.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="column_span"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="198">the number of columns occupied by this cell.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_row_header_cells"
+                      invoker="get_row_header_cells"
+                      version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="166">Returns the row headers as an array of cell accessibles.</doc>
+        <source-position filename="../atk/atktablecell.h" line="75"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="172">a GPtrArray of AtkObjects
+representing the row header cells.</doc>
+          <array name="GLib.PtrArray" c:type="GPtrArray*">
+            <type name="Object"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="168">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_row_span"
+                      invoker="get_row_span"
+                      version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="140">Returns the number of rows occupied by this cell accessible.</doc>
+        <source-position filename="../atk/atktablecell.h" line="74"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="146">a gint representing the number of rows occupied by this cell,
+or 0 if the cell does not implement this method.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="142">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_table" invoker="get_table" version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="240">Returns a reference to the accessible of the containing table.</doc>
+        <source-position filename="../atk/atktablecell.h" line="81"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="246">the atk object for the containing table.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="242">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_column_header_cells"
+              c:identifier="atk_table_cell_get_column_header_cells"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="79">Returns the column headers as an array of cell accessibles.</doc>
+        <source-position filename="../atk/atktablecell.h" line="90"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="85">a GPtrArray of AtkObjects
+representing the column header cells.</doc>
+          <array name="GLib.PtrArray" c:type="GPtrArray*">
+            <type name="Object"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="81">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_column_span"
+              c:identifier="atk_table_cell_get_column_span"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="53">Returns the number of columns occupied by this cell accessible.</doc>
+        <source-position filename="../atk/atktablecell.h" line="88"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="59">a gint representing the number of columns occupied by this cell,
+or 0 if the cell does not implement this method.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="55">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_position"
+              c:identifier="atk_table_cell_get_position"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="105">Retrieves the tabular position of this cell.</doc>
+        <source-position filename="../atk/atktablecell.h" line="92"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="113">TRUE if successful; FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="107">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+          <parameter name="row"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="108">the row of the given cell.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="column"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="109">the column of the given cell.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_row_column_span"
+              c:identifier="atk_table_cell_get_row_column_span"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="192">Gets the row and column indexes and span of this cell accessible.
+
+Note: If the object does not implement this function, then, by default, atk
+will implement this function by calling get_row_span and get_column_span
+on the object.</doc>
+        <source-position filename="../atk/atktablecell.h" line="100"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="206">TRUE if successful; FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="194">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+          <parameter name="row"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="195">the row index of the given cell.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="column"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="196">the column index of the given cell.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="row_span"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="197">the number of rows occupied by this cell.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="column_span"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="198">the number of columns occupied by this cell.</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_row_header_cells"
+              c:identifier="atk_table_cell_get_row_header_cells"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="166">Returns the row headers as an array of cell accessibles.</doc>
+        <source-position filename="../atk/atktablecell.h" line="98"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="172">a GPtrArray of AtkObjects
+representing the row header cells.</doc>
+          <array name="GLib.PtrArray" c:type="GPtrArray*">
+            <type name="Object"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="168">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_row_span"
+              c:identifier="atk_table_cell_get_row_span"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="140">Returns the number of rows occupied by this cell accessible.</doc>
+        <source-position filename="../atk/atktablecell.h" line="96"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="146">a gint representing the number of rows occupied by this cell,
+or 0 if the cell does not implement this method.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="142">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_table"
+              c:identifier="atk_table_cell_get_table"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atktablecell.c"
+             line="240">Returns a reference to the accessible of the containing table.</doc>
+        <source-position filename="../atk/atktablecell.h" line="106"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktablecell.c"
+               line="246">the atk object for the containing table.</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cell" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="242">a GObject instance that implements AtkTableCellIface</doc>
+            <type name="TableCell" c:type="AtkTableCell*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="TableCellIface"
+            c:type="AtkTableCellIface"
+            glib:is-gtype-struct-for="TableCell"
+            version="2.12">
+      <doc xml:space="preserve"
+           filename="../atk/atktablecell.h"
+           line="42">AtkTableCell is an interface for cells inside an #AtkTable.</doc>
+      <source-position filename="../atk/atktablecell.h" line="82"/>
+      <field name="parent" readable="0" private="1">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_column_span">
+        <callback name="get_column_span">
+          <source-position filename="../atk/atktablecell.h" line="69"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="59">a gint representing the number of columns occupied by this cell,
+or 0 if the cell does not implement this method.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="cell" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="55">a GObject instance that implements AtkTableCellIface</doc>
+              <type name="TableCell" c:type="AtkTableCell*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_column_header_cells">
+        <callback name="get_column_header_cells">
+          <source-position filename="../atk/atktablecell.h" line="70"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="85">a GPtrArray of AtkObjects
+representing the column header cells.</doc>
+            <array name="GLib.PtrArray" c:type="GPtrArray*">
+              <type name="Object"/>
+            </array>
+          </return-value>
+          <parameters>
+            <parameter name="cell" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="81">a GObject instance that implements AtkTableCellIface</doc>
+              <type name="TableCell" c:type="AtkTableCell*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_position">
+        <callback name="get_position">
+          <source-position filename="../atk/atktablecell.h" line="71"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="113">TRUE if successful; FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="cell" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="107">a GObject instance that implements AtkTableCellIface</doc>
+              <type name="TableCell" c:type="AtkTableCell*"/>
+            </parameter>
+            <parameter name="row"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="108">the row of the given cell.</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="column"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="109">the column of the given cell.</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_row_span">
+        <callback name="get_row_span">
+          <source-position filename="../atk/atktablecell.h" line="74"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="146">a gint representing the number of rows occupied by this cell,
+or 0 if the cell does not implement this method.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="cell" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="142">a GObject instance that implements AtkTableCellIface</doc>
+              <type name="TableCell" c:type="AtkTableCell*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_row_header_cells">
+        <callback name="get_row_header_cells">
+          <source-position filename="../atk/atktablecell.h" line="75"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="172">a GPtrArray of AtkObjects
+representing the row header cells.</doc>
+            <array name="GLib.PtrArray" c:type="GPtrArray*">
+              <type name="Object"/>
+            </array>
+          </return-value>
+          <parameters>
+            <parameter name="cell" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="168">a GObject instance that implements AtkTableCellIface</doc>
+              <type name="TableCell" c:type="AtkTableCell*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_row_column_span">
+        <callback name="get_row_column_span">
+          <source-position filename="../atk/atktablecell.h" line="76"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="206">TRUE if successful; FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="cell" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="194">a GObject instance that implements AtkTableCellIface</doc>
+              <type name="TableCell" c:type="AtkTableCell*"/>
+            </parameter>
+            <parameter name="row"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="195">the row index of the given cell.</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="column"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="196">the column index of the given cell.</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="row_span"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="197">the number of rows occupied by this cell.</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="column_span"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="198">the number of columns occupied by this cell.</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_table">
+        <callback name="get_table">
+          <source-position filename="../atk/atktablecell.h" line="81"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktablecell.c"
+                 line="246">the atk object for the containing table.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="cell" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktablecell.c"
+                   line="242">a GObject instance that implements AtkTableCellIface</doc>
+              <type name="TableCell" c:type="AtkTableCell*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <record name="TableIface"
+            c:type="AtkTableIface"
+            glib:is-gtype-struct-for="Table">
+      <source-position filename="../atk/atktable.h" line="129"/>
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="ref_at">
+        <callback name="ref_at">
+          <source-position filename="../atk/atktable.h" line="46"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="241">an #AtkObject representing the referred
+to accessible</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="234">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="235">a #gint representing a row in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="236">a #gint representing a column in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_index_at">
+        <callback name="get_index_at">
+          <source-position filename="../atk/atktable.h" line="49"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="275">a #gint representing the index at specified position.
+The value -1 is returned if the object at row,column is not a child
+of table or table does not implement this interface.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="265">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="266">a #gint representing a row in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="267">a #gint representing a column in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_column_at_index">
+        <callback name="get_column_at_index">
+          <source-position filename="../atk/atktable.h" line="52"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="335">a gint representing the column at the specified index,
+or -1 if the table does not implement this method.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="328">a GObject instance that implements AtkTableInterface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="index_" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="329">a #gint representing an index in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_row_at_index">
+        <callback name="get_row_at_index">
+          <source-position filename="../atk/atktable.h" line="54"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="307">a gint representing the row at the specified index,
+or -1 if the table does not implement this method.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="300">a GObject instance that implements AtkTableInterface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="index_" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="301">a #gint representing an index in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_n_columns">
+        <callback name="get_n_columns">
+          <source-position filename="../atk/atktable.h" line="56"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="384">a gint representing the number of columns, or 0
+if value does not implement this interface.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="380">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_n_rows">
+        <callback name="get_n_rows">
+          <source-position filename="../atk/atktable.h" line="57"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="489">a gint representing the number of rows, or 0
+if value does not implement this interface.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="485">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_column_extent_at">
+        <callback name="get_column_extent_at">
+          <source-position filename="../atk/atktable.h" line="58"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="437">a gint representing the column extent at specified position, or 0
+if value does not implement this interface.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="430">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="431">a #gint representing a row in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="432">a #gint representing a column in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_row_extent_at">
+        <callback name="get_row_extent_at">
+          <source-position filename="../atk/atktable.h" line="61"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="542">a gint representing the row extent at specified position, or 0
+if value does not implement this interface.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="535">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="536">a #gint representing a row in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="537">a #gint representing a column in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_caption">
+        <callback name="get_caption">
+          <source-position filename="../atk/atktable.h" line="65"/>
+          <return-value transfer-ownership="none" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="360">a AtkObject* representing the
+table caption, or %NULL if value does not implement this interface.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="356">a GObject instance that implements AtkTableInterface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_column_description">
+        <callback name="get_column_description">
+          <source-position filename="../atk/atktable.h" line="66"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="409">a gchar* representing the column description, or %NULL
+if value does not implement this interface.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="404">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="405">a #gint representing a column in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_column_header">
+        <callback name="get_column_header">
+          <source-position filename="../atk/atktable.h" line="68"/>
+          <return-value transfer-ownership="none" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="464">a AtkObject* representing the
+specified column header, or %NULL if value does not implement this
+interface.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="459">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="460">a #gint representing a column in the table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_row_description">
+        <callback name="get_row_description">
+          <source-position filename="../atk/atktable.h" line="70"/>
+          <return-value transfer-ownership="none" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="514">a gchar* representing the row description, or
+%NULL if value does not implement this interface.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="509">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="510">a #gint representing a row in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_row_header">
+        <callback name="get_row_header">
+          <source-position filename="../atk/atktable.h" line="72"/>
+          <return-value transfer-ownership="none" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="569">a AtkObject* representing the
+specified row header, or %NULL if value does not implement this
+interface.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="564">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="565">a #gint representing a row in the table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_summary">
+        <callback name="get_summary">
+          <source-position filename="../atk/atktable.h" line="74"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="594">a AtkObject* representing a summary description
+of the table, or zero if value does not implement this interface.</doc>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="590">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_caption">
+        <callback name="set_caption">
+          <source-position filename="../atk/atktable.h" line="75"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="850">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="caption" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="851">a #AtkObject representing the caption to set for @table</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_column_description">
+        <callback name="set_column_description">
+          <source-position filename="../atk/atktable.h" line="77"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="871">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="872">a #gint representing a column in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="description" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="873">a #gchar representing the description text
+to set for the specified @column of the @table</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_column_header">
+        <callback name="set_column_header">
+          <source-position filename="../atk/atktable.h" line="80"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="895">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="896">a #gint representing a column in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="header" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="897">an #AtkTable</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_row_description">
+        <callback name="set_row_description">
+          <source-position filename="../atk/atktable.h" line="83"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="918">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="919">a #gint representing a row in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="description" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="920">a #gchar representing the description text
+to set for the specified @row of @table</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_row_header">
+        <callback name="set_row_header">
+          <source-position filename="../atk/atktable.h" line="86"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="942">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="943">a #gint representing a row in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="header" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="944">an #AtkTable</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_summary">
+        <callback name="set_summary">
+          <source-position filename="../atk/atktable.h" line="89"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="965">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="accessible" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="966">an #AtkObject representing the summary description
+to set for @table</doc>
+              <type name="Object" c:type="AtkObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_selected_columns">
+        <callback name="get_selected_columns">
+          <source-position filename="../atk/atktable.h" line="91"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="646">a gint representing the number of selected columns,
+or %0 if value does not implement this interface.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="640">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="selected" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="641">a #gint** that is to contain the selected columns numbers</doc>
+              <type name="gint" c:type="gint**"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_selected_rows">
+        <callback name="get_selected_rows">
+          <source-position filename="../atk/atktable.h" line="93"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="620">a gint representing the number of selected rows,
+or zero if value does not implement this interface.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="614">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="selected" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="615">a #gint** that is to contain the selected row numbers</doc>
+              <type name="gint" c:type="gint**"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="is_column_selected">
+        <callback name="is_column_selected">
+          <source-position filename="../atk/atktable.h" line="95"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="672">a gboolean representing if the column is selected, or 0
+if value does not implement this interface.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="666">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="667">a #gint representing a column in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="is_row_selected">
+        <callback name="is_row_selected">
+          <source-position filename="../atk/atktable.h" line="97"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="699">a gboolean representing if the row is selected, or 0
+if value does not implement this interface.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="693">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="694">a #gint representing a row in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="is_selected">
+        <callback name="is_selected">
+          <source-position filename="../atk/atktable.h" line="99"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="727">a gboolean representing if the cell is selected, or 0
+if value does not implement this interface.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="720">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="721">a #gint representing a row in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="722">a #gint representing a column in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="add_row_selection">
+        <callback name="add_row_selection">
+          <source-position filename="../atk/atktable.h" line="102"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="754">a gboolean representing if row was successfully added to selection,
+or 0 if value does not implement this interface.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="749">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="750">a #gint representing a row in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove_row_selection">
+        <callback name="remove_row_selection">
+          <source-position filename="../atk/atktable.h" line="104"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="779">a gboolean representing if the row was successfully removed from
+the selection, or 0 if value does not implement this interface.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="774">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="775">a #gint representing a row in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="add_column_selection">
+        <callback name="add_column_selection">
+          <source-position filename="../atk/atktable.h" line="106"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="804">a gboolean representing if the column was successfully added to
+the selection, or 0 if value does not implement this interface.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="799">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="800">a #gint representing a column in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove_column_selection">
+        <callback name="remove_column_selection">
+          <source-position filename="../atk/atktable.h" line="108"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktable.c"
+                 line="829">a gboolean representing if the column was successfully removed from
+the selection, or 0 if value does not implement this interface.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="824">a GObject instance that implements AtkTableIface</doc>
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktable.c"
+                   line="825">a #gint representing a column in @table</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="row_inserted">
+        <callback name="row_inserted">
+          <source-position filename="../atk/atktable.h" line="114"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="num_inserted" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="column_inserted">
+        <callback name="column_inserted">
+          <source-position filename="../atk/atktable.h" line="117"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="num_inserted" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="row_deleted">
+        <callback name="row_deleted">
+          <source-position filename="../atk/atktable.h" line="120"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="num_deleted" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="column_deleted">
+        <callback name="column_deleted">
+          <source-position filename="../atk/atktable.h" line="123"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="num_deleted" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="row_reordered">
+        <callback name="row_reordered">
+          <source-position filename="../atk/atktable.h" line="126"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="column_reordered">
+        <callback name="column_reordered">
+          <source-position filename="../atk/atktable.h" line="127"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="model_changed">
+        <callback name="model_changed">
+          <source-position filename="../atk/atktable.h" line="128"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="table" transfer-ownership="none">
+              <type name="Table" c:type="AtkTable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <interface name="Text"
+               c:symbol-prefix="text"
+               c:type="AtkText"
+               glib:type-name="AtkText"
+               glib:get-type="atk_text_get_type"
+               glib:type-struct="TextIface">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.c"
+           line="27">#AtkText should be implemented by #AtkObjects on behalf of widgets
+that have text content which is either attributed or otherwise
+non-trivial.  #AtkObjects whose text content is simple,
+unattributed, and very brief may expose that content via
+#atk_object_get_name instead; however if the text is editable,
+multi-line, typically longer than three or four words, attributed,
+selectable, or if the object already uses the 'name' ATK property
+for other information, the #AtkText interface should be used to
+expose the text content.  In the case of editable text content,
+#AtkEditableText (a subtype of the #AtkText interface) should be
+implemented instead.
+
+ #AtkText provides not only traversal facilities and change
+notification for text content, but also caret tracking and glyph
+bounding box calculations.  Note that the text strings are exposed
+as UTF-8, and are therefore potentially multi-byte, and
+caret-to-byte offset mapping makes no assumptions about the
+character length; also bounding box glyph-to-offset mapping may be
+complex for languages which use ligatures.</doc>
+      <source-position filename="../atk/atktext.h" line="360"/>
+      <function name="free_ranges"
+                c:identifier="atk_text_free_ranges"
+                version="1.3">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1590">Frees the memory associated with an array of AtkTextRange. It is assumed
+that the array was returned by the function atk_text_get_bounded_ranges
+and is NULL terminated.</doc>
+        <source-position filename="../atk/atktext.h" line="464"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="ranges" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1592">A pointer to an array of #AtkTextRange which is
+  to be freed.</doc>
+            <array zero-terminated="0" c:type="AtkTextRange**">
+              <type name="TextRange" c:type="AtkTextRange*"/>
+            </array>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="add_selection" invoker="add_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="942">Adds a selection bounded by the specified offsets.</doc>
+        <source-position filename="../atk/atktext.h" line="297"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="950">%TRUE if successful, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="944">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="945">the starting character offset of the selected region</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="946">the offset of the first character after the selected region.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_bounded_ranges"
+                      invoker="get_bounded_ranges"
+                      version="1.3">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1123">Get the ranges of text in the specified bounding box.</doc>
+        <source-position filename="../atk/atktext.h" line="328"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1135">Array of AtkTextRange. The last
+         element of the array returned by this function will be NULL.</doc>
+          <array c:type="AtkTextRange**">
+            <type name="TextRange" c:type="AtkTextRange*"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1125">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1126">An AtkTextRectangle giving the dimensions of the bounding box.</doc>
+            <type name="TextRectangle" c:type="AtkTextRectangle*"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1127">Specify whether coordinates are relative to the screen or widget window.</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+          <parameter name="x_clip_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1128">Specify the horizontal clip type.</doc>
+            <type name="TextClipType" c:type="AtkTextClipType"/>
+          </parameter>
+          <parameter name="y_clip_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1129">Specify the vertical clip type.</doc>
+            <type name="TextClipType" c:type="AtkTextClipType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_caret_offset" invoker="get_caret_offset">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="641">Gets the offset of the position of the caret (cursor).</doc>
+        <source-position filename="../atk/atktext.h" line="274"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="647">the character offset of the position of the caret or -1 if
+         the caret is not located inside the element or in the case of
+         any other failure.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="643">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_character_at_offset"
+                      invoker="get_character_at_offset">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="358">Gets the specified text.</doc>
+        <source-position filename="../atk/atktext.h" line="267"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="365">the character at @offset or 0 in the case of failure.</doc>
+          <type name="gunichar" c:type="gunichar"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="360">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="361">a character offset within @text</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_character_count" invoker="get_character_count">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="814">Gets the character count.</doc>
+        <source-position filename="../atk/atktext.h" line="287"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="820">the number of characters or -1 in case of failure.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="816">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_character_extents"
+                      invoker="get_character_extents">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="666">If the extent can not be obtained (e.g. missing support), all of x, y, width,
+height are set to -1.
+
+Get the bounding box containing the glyph representing the character at
+    a particular text offset.</doc>
+        <source-position filename="../atk/atktext.h" line="280"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="668">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="669">The offset of the text character for which bounding information is 
required.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="670">Pointer for the x coordinate of the bounding box</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="671">Pointer for the y coordinate of the bounding box</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="672">Pointer for the width of the bounding box</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="673">Pointer for the height of the bounding box</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="coords" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="674">specify whether coordinates are relative to the screen or widget window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_default_attributes"
+                      invoker="get_default_attributes">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="786">Creates an #AtkAttributeSet which consists of the default values of
+attributes for the text. See the enum AtkTextAttribute for types of text
+attributes that can be returned. Note that other attributes may also be
+returned.</doc>
+        <source-position filename="../atk/atktext.h" line="279"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="795">an #AtkAttributeSet which contains the default text
+         attributes for this #AtkText. This #AtkAttributeSet should be freed by
+         a call to atk_attribute_set_free().</doc>
+          <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="788">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_n_selections" invoker="get_n_selections">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="870">Gets the number of selected regions.</doc>
+        <source-position filename="../atk/atktext.h" line="292"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="876">The number of selected regions, or -1 in the case of failure.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="872">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_offset_at_point" invoker="get_offset_at_point">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="837">Gets the offset of the character located at coordinates @x and @y. @x and @y
+are interpreted as being relative to the screen or this widget's window
+depending on @coords.</doc>
+        <source-position filename="../atk/atktext.h" line="288"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="849">the offset to the character which is located at  the specified
+         @x and @y coordinates of -1 in case of failure.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="839">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="840">screen x-position of character</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="841">screen y-position of character</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coords" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="842">specify whether coordinates are relative to the screen or
+widget window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_range_extents"
+                      invoker="get_range_extents"
+                      version="1.3">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1080">Get the bounding box for text within the specified range.
+
+If the extents can not be obtained (e.g. or missing support), the rectangle
+fields are set to -1.</doc>
+        <source-position filename="../atk/atktext.h" line="322"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1082">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1083">The offset of the first text character for which boundary
+       information is required.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1085">The offset of the text character after the last character
+       for which boundary information is required.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1087">Specify whether coordinates are relative to the screen or widget window.</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+          <parameter name="rect"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1088">A pointer to a AtkTextRectangle which is filled in by this function.</doc>
+            <type name="TextRectangle" c:type="AtkTextRectangle*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_run_attributes" invoker="get_run_attributes">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="734">Creates an #AtkAttributeSet which consists of the attributes explicitly
+set at the position @offset in the text. @start_offset and @end_offset are
+set to the start and end of the range around @offset where the attributes are
+invariant. Note that @end_offset is the offset of the first character
+after the range.  See the enum AtkTextAttribute for types of text
+attributes that can be returned. Note that other attributes may also be
+returned.</doc>
+        <source-position filename="../atk/atktext.h" line="275"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="750">an #AtkAttributeSet which contains the attributes
+        explicitly set at @offset. This #AtkAttributeSet should be freed by
+        a call to atk_attribute_set_free().</doc>
+          <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="736">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="737">the character offset at which to get the attributes, -1 means the offset of
+the character to be inserted at the caret location.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="start_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="739">the address to put the start offset of the range</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="end_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="740">the address to put the end offset of the range</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_selection" invoker="get_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="893">Gets the text from the specified selection.</doc>
+        <source-position filename="../atk/atktext.h" line="293"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="907">a newly allocated string containing the selected text. Use g_free()
+         to free the returned string.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="895">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="selection_num" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="896">The selection number.  The selected regions are
+assigned numbers that correspond to how far the region is from the
+start of the text.  The selected region closest to the beginning
+of the text region is assigned the number 0, etc.  Note that adding,
+moving or deleting a selected region can change the numbering.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="start_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="901">passes back the starting character offset of the selected region</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="end_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="902">passes back the ending character offset (offset immediately past)
+of the selected region</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_string_at_offset"
+                      invoker="get_string_at_offset"
+                      version="2.10">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="554">Gets a portion of the text exposed through an #AtkText according to a given @offset
+and a specific @granularity, along with the start and end offsets defining the
+boundaries of such a portion of text.
+
+If @granularity is ATK_TEXT_GRANULARITY_CHAR the character at the
+offset is returned.
+
+If @granularity is ATK_TEXT_GRANULARITY_WORD the returned string
+is from the word start at or before the offset to the word start after
+the offset.
+
+The returned string will contain the word at the offset if the offset
+is inside a word and will contain the word before the offset if the
+offset is not inside a word.
+
+If @granularity is ATK_TEXT_GRANULARITY_SENTENCE the returned string
+is from the sentence start at or before the offset to the sentence
+start after the offset.
+
+The returned string will contain the sentence at the offset if the offset
+is inside a sentence and will contain the sentence before the offset
+if the offset is not inside a sentence.
+
+If @granularity is ATK_TEXT_GRANULARITY_LINE the returned string
+is from the line start at or before the offset to the line
+start after the offset.
+
+If @granularity is ATK_TEXT_GRANULARITY_PARAGRAPH the returned string
+is from the start of the paragraph at or before the offset to the start
+of the following paragraph after the offset.</doc>
+        <source-position filename="../atk/atktext.h" line="334"/>
+        <return-value transfer-ownership="full" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="597">a newly allocated string containing the text at
+         the @offset bounded by the specified @granularity. Use g_free()
+         to free the returned string.  Returns %NULL if the offset is invalid
+         or no implementation is available.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="556">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="557">position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="granularity" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="558">An #AtkTextGranularity</doc>
+            <type name="TextGranularity" c:type="AtkTextGranularity"/>
+          </parameter>
+          <parameter name="start_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="559">the starting character offset of the returned string, or -1
+               in the case of error (e.g. invalid offset, not implemented)</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="end_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="561">the offset of the first character after the returned string,
+             or -1 in the case of error (e.g. invalid offset, not implemented)</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_text" invoker="get_text">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="325">Gets the specified text.</doc>
+        <source-position filename="../atk/atktext.h" line="254"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="333">a newly allocated string containing the text from @start_offset up
+         to, but not including @end_offset. Use g_free() to free the returned
+         string.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="327">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="328">a starting character offset within @text</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="329">an ending character offset within @text, or -1 for the end of the string.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_text_after_offset"
+                      invoker="get_text_after_offset"
+                      deprecated="1"
+                      deprecated-version="2.9.3">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="383">Gets the specified text.</doc>
+        <doc-deprecated xml:space="preserve">Please use atk_text_get_string_at_offset() 
instead.</doc-deprecated>
+        <source-position filename="../atk/atktext.h" line="257"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="396">a newly allocated string containing the text after @offset bounded
+         by the specified @boundary_type. Use g_free() to free the returned
+         string.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="385">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="386">position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="boundary_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="387">An #AtkTextBoundary</doc>
+            <type name="TextBoundary" c:type="AtkTextBoundary"/>
+          </parameter>
+          <parameter name="start_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="388">the starting character offset of the returned string</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="end_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="389">the offset of the first character after the
+             returned substring</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_text_at_offset"
+                      invoker="get_text_at_offset"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="433">Gets the specified text.
+
+If the boundary_type if ATK_TEXT_BOUNDARY_CHAR the character at the
+offset is returned.
+
+If the boundary_type is ATK_TEXT_BOUNDARY_WORD_START the returned string
+is from the word start at or before the offset to the word start after
+the offset.
+
+The returned string will contain the word at the offset if the offset
+is inside a word and will contain the word before the offset if the
+offset is not inside a word.
+
+If the boundary type is ATK_TEXT_BOUNDARY_SENTENCE_START the returned
+string is from the sentence start at or before the offset to the sentence
+start after the offset.
+
+The returned string will contain the sentence at the offset if the offset
+is inside a sentence and will contain the sentence before the offset
+if the offset is not inside a sentence.
+
+If the boundary type is ATK_TEXT_BOUNDARY_LINE_START the returned
+string is from the line start at or before the offset to the line
+start after the offset.</doc>
+        <doc-deprecated xml:space="preserve">This method is deprecated since ATK version
+2.9.4. Please use atk_text_get_string_at_offset() instead.</doc-deprecated>
+        <source-position filename="../atk/atktext.h" line="262"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="470">a newly allocated string containing the text at @offset bounded
+         by the specified @boundary_type. Use g_free() to free the returned
+         string.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="435">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="436">position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="boundary_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="437">An #AtkTextBoundary</doc>
+            <type name="TextBoundary" c:type="AtkTextBoundary"/>
+          </parameter>
+          <parameter name="start_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="438">the starting character offset of the returned string</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="end_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="439">the offset of the first character after the
+             returned substring</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_text_before_offset"
+                      invoker="get_text_before_offset"
+                      deprecated="1"
+                      deprecated-version="2.9.3">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="504">Gets the specified text.</doc>
+        <doc-deprecated xml:space="preserve">Please use atk_text_get_string_at_offset() 
instead.</doc-deprecated>
+        <source-position filename="../atk/atktext.h" line="269"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="517">a newly allocated string containing the text before @offset bounded
+         by the specified @boundary_type. Use g_free() to free the returned
+         string.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="506">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="507">position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="boundary_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="508">An #AtkTextBoundary</doc>
+            <type name="TextBoundary" c:type="AtkTextBoundary"/>
+          </parameter>
+          <parameter name="start_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="509">the starting character offset of the returned string</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="end_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="510">the offset of the first character after the
+             returned substring</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="remove_selection" invoker="remove_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="969">Removes the specified selection.</doc>
+        <source-position filename="../atk/atktext.h" line="300"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="980">%TRUE if successful, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="971">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="selection_num" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="972">The selection number.  The selected regions are
+assigned numbers that correspond to how far the region is from the
+start of the text.  The selected region closest to the beginning
+of the text region is assigned the number 0, etc.  Note that adding,
+moving or deleting a selected region can change the numbering.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="scroll_substring_to"
+                      invoker="scroll_substring_to"
+                      version="2.32">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1418">Makes a substring of @text visible on the screen by scrolling all necessary 
parents.</doc>
+        <source-position filename="../atk/atktext.h" line="350"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1429">whether scrolling was successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1420">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1421">start offset in the @text</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1422">end offset in the @text, or -1 for the end of the text.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1423">specify where the object should be made visible.</doc>
+            <type name="ScrollType" c:type="AtkScrollType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="scroll_substring_to_point"
+                      invoker="scroll_substring_to_point"
+                      version="2.32">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1448">Move the top-left of a substring of @text to a given position of the screen
+by scrolling all necessary parents.</doc>
+        <source-position filename="../atk/atktext.h" line="354"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1463">whether scrolling was successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1450">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1451">start offset in the @text</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1452">end offset in the @text, or -1 for the end of the text.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coords" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1453">specify whether coordinates are relative to the screen or to the
+parent object.</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1455">x-position where to scroll to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1456">y-position where to scroll to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_caret_offset" invoker="set_caret_offset">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1035">Sets the caret (cursor) position to the specified @offset.
+
+In the case of rich-text content, this method should either grab focus
+or move the sequential focus navigation starting point (if the application
+supports this concept) as if the user had clicked on the new caret position.
+Typically, this means that the target of this operation is the node containing
+the new caret position or one of its ancestors. In other words, after this
+method is called, if the user advances focus, it should move to the first
+focusable node following the new caret position.
+
+Calling this method should also scroll the application viewport in a way
+that matches the behavior of the application's typical caret motion or tab
+navigation as closely as possible. This also means that if the application's
+caret motion or focus navigation does not trigger a scroll operation, this
+method should not trigger one either. If the application does not have a caret
+motion or focus navigation operation, this method should try to scroll the new
+caret position into view while minimizing unnecessary scroll motion.</doc>
+        <source-position filename="../atk/atktext.h" line="306"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1058">%TRUE if successful, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1037">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1038">the character offset of the new caret position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_selection" invoker="set_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="998">Changes the start and end offset of the specified selection.</doc>
+        <source-position filename="../atk/atktext.h" line="302"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1012">%TRUE if successful, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1000">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="selection_num" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1001">The selection number.  The selected regions are
+assigned numbers that correspond to how far the region is from the
+start of the text.  The selected region closest to the beginning
+of the text region is assigned the number 0, etc.  Note that adding,
+moving or deleting a selected region can change the numbering.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1006">the new starting character offset of the selection</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1007">the new end position of (e.g. offset immediately past)
+the selection</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="text_attributes_changed">
+        <source-position filename="../atk/atktext.h" line="319"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="text_caret_moved">
+        <source-position filename="../atk/atktext.h" line="315"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="location" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="text_changed">
+        <source-position filename="../atk/atktext.h" line="312"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="text_selection_changed">
+        <source-position filename="../atk/atktext.h" line="317"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_selection" c:identifier="atk_text_add_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="942">Adds a selection bounded by the specified offsets.</doc>
+        <source-position filename="../atk/atktext.h" line="436"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="950">%TRUE if successful, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="944">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="945">the starting character offset of the selected region</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="946">the offset of the first character after the selected region.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_bounded_ranges"
+              c:identifier="atk_text_get_bounded_ranges"
+              version="1.3">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1123">Get the ranges of text in the specified bounding box.</doc>
+        <source-position filename="../atk/atktext.h" line="458"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1135">Array of AtkTextRange. The last
+         element of the array returned by this function will be NULL.</doc>
+          <array c:type="AtkTextRange**">
+            <type name="TextRange" c:type="AtkTextRange*"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1125">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1126">An AtkTextRectangle giving the dimensions of the bounding box.</doc>
+            <type name="TextRectangle" c:type="AtkTextRectangle*"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1127">Specify whether coordinates are relative to the screen or widget window.</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+          <parameter name="x_clip_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1128">Specify the horizontal clip type.</doc>
+            <type name="TextClipType" c:type="AtkTextClipType"/>
+          </parameter>
+          <parameter name="y_clip_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1129">Specify the vertical clip type.</doc>
+            <type name="TextClipType" c:type="AtkTextClipType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_caret_offset" c:identifier="atk_text_get_caret_offset">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="641">Gets the offset of the position of the caret (cursor).</doc>
+        <source-position filename="../atk/atktext.h" line="405"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="647">the character offset of the position of the caret or -1 if
+         the caret is not located inside the element or in the case of
+         any other failure.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="643">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_character_at_offset"
+              c:identifier="atk_text_get_character_at_offset">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="358">Gets the specified text.</doc>
+        <source-position filename="../atk/atktext.h" line="378"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="365">the character at @offset or 0 in the case of failure.</doc>
+          <type name="gunichar" c:type="gunichar"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="360">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="361">a character offset within @text</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_character_count"
+              c:identifier="atk_text_get_character_count">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="814">Gets the character count.</doc>
+        <source-position filename="../atk/atktext.h" line="422"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="820">the number of characters or -1 in case of failure.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="816">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_character_extents"
+              c:identifier="atk_text_get_character_extents">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="666">If the extent can not be obtained (e.g. missing support), all of x, y, width,
+height are set to -1.
+
+Get the bounding box containing the glyph representing the character at
+    a particular text offset.</doc>
+        <source-position filename="../atk/atktext.h" line="407"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="668">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="669">The offset of the text character for which bounding information is 
required.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="670">Pointer for the x coordinate of the bounding box</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="671">Pointer for the y coordinate of the bounding box</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="672">Pointer for the width of the bounding box</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="673">Pointer for the height of the bounding box</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="coords" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="674">specify whether coordinates are relative to the screen or widget window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_default_attributes"
+              c:identifier="atk_text_get_default_attributes">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="786">Creates an #AtkAttributeSet which consists of the default values of
+attributes for the text. See the enum AtkTextAttribute for types of text
+attributes that can be returned. Note that other attributes may also be
+returned.</doc>
+        <source-position filename="../atk/atktext.h" line="420"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="795">an #AtkAttributeSet which contains the default text
+         attributes for this #AtkText. This #AtkAttributeSet should be freed by
+         a call to atk_attribute_set_free().</doc>
+          <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="788">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_selections" c:identifier="atk_text_get_n_selections">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="870">Gets the number of selected regions.</doc>
+        <source-position filename="../atk/atktext.h" line="429"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="876">The number of selected regions, or -1 in the case of failure.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="872">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_offset_at_point"
+              c:identifier="atk_text_get_offset_at_point">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="837">Gets the offset of the character located at coordinates @x and @y. @x and @y
+are interpreted as being relative to the screen or this widget's window
+depending on @coords.</doc>
+        <source-position filename="../atk/atktext.h" line="424"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="849">the offset to the character which is located at  the specified
+         @x and @y coordinates of -1 in case of failure.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="839">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="840">screen x-position of character</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="841">screen y-position of character</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coords" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="842">specify whether coordinates are relative to the screen or
+widget window</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_range_extents"
+              c:identifier="atk_text_get_range_extents"
+              version="1.3">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1080">Get the bounding box for text within the specified range.
+
+If the extents can not be obtained (e.g. or missing support), the rectangle
+fields are set to -1.</doc>
+        <source-position filename="../atk/atktext.h" line="451"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1082">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1083">The offset of the first text character for which boundary
+       information is required.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1085">The offset of the text character after the last character
+       for which boundary information is required.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coord_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1087">Specify whether coordinates are relative to the screen or widget window.</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+          <parameter name="rect"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1088">A pointer to a AtkTextRectangle which is filled in by this function.</doc>
+            <type name="TextRectangle" c:type="AtkTextRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_run_attributes"
+              c:identifier="atk_text_get_run_attributes">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="734">Creates an #AtkAttributeSet which consists of the attributes explicitly
+set at the position @offset in the text. @start_offset and @end_offset are
+set to the start and end of the range around @offset where the attributes are
+invariant. Note that @end_offset is the offset of the first character
+after the range.  See the enum AtkTextAttribute for types of text
+attributes that can be returned. Note that other attributes may also be
+returned.</doc>
+        <source-position filename="../atk/atktext.h" line="415"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="750">an #AtkAttributeSet which contains the attributes
+        explicitly set at @offset. This #AtkAttributeSet should be freed by
+        a call to atk_attribute_set_free().</doc>
+          <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="736">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="737">the character offset at which to get the attributes, -1 means the offset of
+the character to be inserted at the caret location.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="start_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="739">the address to put the start offset of the range</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="end_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="740">the address to put the end offset of the range</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_selection" c:identifier="atk_text_get_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="893">Gets the text from the specified selection.</doc>
+        <source-position filename="../atk/atktext.h" line="431"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="907">a newly allocated string containing the selected text. Use g_free()
+         to free the returned string.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="895">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="selection_num" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="896">The selection number.  The selected regions are
+assigned numbers that correspond to how far the region is from the
+start of the text.  The selected region closest to the beginning
+of the text region is assigned the number 0, etc.  Note that adding,
+moving or deleting a selected region can change the numbering.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="start_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="901">passes back the starting character offset of the selected region</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="end_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="902">passes back the ending character offset (offset immediately past)
+of the selected region</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_string_at_offset"
+              c:identifier="atk_text_get_string_at_offset"
+              version="2.10">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="554">Gets a portion of the text exposed through an #AtkText according to a given @offset
+and a specific @granularity, along with the start and end offsets defining the
+boundaries of such a portion of text.
+
+If @granularity is ATK_TEXT_GRANULARITY_CHAR the character at the
+offset is returned.
+
+If @granularity is ATK_TEXT_GRANULARITY_WORD the returned string
+is from the word start at or before the offset to the word start after
+the offset.
+
+The returned string will contain the word at the offset if the offset
+is inside a word and will contain the word before the offset if the
+offset is not inside a word.
+
+If @granularity is ATK_TEXT_GRANULARITY_SENTENCE the returned string
+is from the sentence start at or before the offset to the sentence
+start after the offset.
+
+The returned string will contain the sentence at the offset if the offset
+is inside a sentence and will contain the sentence before the offset
+if the offset is not inside a sentence.
+
+If @granularity is ATK_TEXT_GRANULARITY_LINE the returned string
+is from the line start at or before the offset to the line
+start after the offset.
+
+If @granularity is ATK_TEXT_GRANULARITY_PARAGRAPH the returned string
+is from the start of the paragraph at or before the offset to the start
+of the following paragraph after the offset.</doc>
+        <source-position filename="../atk/atktext.h" line="399"/>
+        <return-value transfer-ownership="full" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="597">a newly allocated string containing the text at
+         the @offset bounded by the specified @granularity. Use g_free()
+         to free the returned string.  Returns %NULL if the offset is invalid
+         or no implementation is available.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="556">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="557">position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="granularity" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="558">An #AtkTextGranularity</doc>
+            <type name="TextGranularity" c:type="AtkTextGranularity"/>
+          </parameter>
+          <parameter name="start_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="559">the starting character offset of the returned string, or -1
+               in the case of error (e.g. invalid offset, not implemented)</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="end_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="561">the offset of the first character after the returned string,
+             or -1 in the case of error (e.g. invalid offset, not implemented)</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_text" c:identifier="atk_text_get_text">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="325">Gets the specified text.</doc>
+        <source-position filename="../atk/atktext.h" line="374"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="333">a newly allocated string containing the text from @start_offset up
+         to, but not including @end_offset. Use g_free() to free the returned
+         string.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="327">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="328">a starting character offset within @text</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="329">an ending character offset within @text, or -1 for the end of the string.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_text_after_offset"
+              c:identifier="atk_text_get_text_after_offset"
+              deprecated="1"
+              deprecated-version="2.9.3">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="383">Gets the specified text.</doc>
+        <doc-deprecated xml:space="preserve">Please use atk_text_get_string_at_offset() 
instead.</doc-deprecated>
+        <source-position filename="../atk/atktext.h" line="381"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="396">a newly allocated string containing the text after @offset bounded
+         by the specified @boundary_type. Use g_free() to free the returned
+         string.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="385">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="386">position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="boundary_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="387">An #AtkTextBoundary</doc>
+            <type name="TextBoundary" c:type="AtkTextBoundary"/>
+          </parameter>
+          <parameter name="start_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="388">the starting character offset of the returned string</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="end_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="389">the offset of the first character after the
+             returned substring</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_text_at_offset"
+              c:identifier="atk_text_get_text_at_offset"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="433">Gets the specified text.
+
+If the boundary_type if ATK_TEXT_BOUNDARY_CHAR the character at the
+offset is returned.
+
+If the boundary_type is ATK_TEXT_BOUNDARY_WORD_START the returned string
+is from the word start at or before the offset to the word start after
+the offset.
+
+The returned string will contain the word at the offset if the offset
+is inside a word and will contain the word before the offset if the
+offset is not inside a word.
+
+If the boundary type is ATK_TEXT_BOUNDARY_SENTENCE_START the returned
+string is from the sentence start at or before the offset to the sentence
+start after the offset.
+
+The returned string will contain the sentence at the offset if the offset
+is inside a sentence and will contain the sentence before the offset
+if the offset is not inside a sentence.
+
+If the boundary type is ATK_TEXT_BOUNDARY_LINE_START the returned
+string is from the line start at or before the offset to the line
+start after the offset.</doc>
+        <doc-deprecated xml:space="preserve">This method is deprecated since ATK version
+2.9.4. Please use atk_text_get_string_at_offset() instead.</doc-deprecated>
+        <source-position filename="../atk/atktext.h" line="387"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="470">a newly allocated string containing the text at @offset bounded
+         by the specified @boundary_type. Use g_free() to free the returned
+         string.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="435">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="436">position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="boundary_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="437">An #AtkTextBoundary</doc>
+            <type name="TextBoundary" c:type="AtkTextBoundary"/>
+          </parameter>
+          <parameter name="start_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="438">the starting character offset of the returned string</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="end_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="439">the offset of the first character after the
+             returned substring</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_text_before_offset"
+              c:identifier="atk_text_get_text_before_offset"
+              deprecated="1"
+              deprecated-version="2.9.3">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="504">Gets the specified text.</doc>
+        <doc-deprecated xml:space="preserve">Please use atk_text_get_string_at_offset() 
instead.</doc-deprecated>
+        <source-position filename="../atk/atktext.h" line="393"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="517">a newly allocated string containing the text before @offset bounded
+         by the specified @boundary_type. Use g_free() to free the returned
+         string.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="506">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="507">position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="boundary_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="508">An #AtkTextBoundary</doc>
+            <type name="TextBoundary" c:type="AtkTextBoundary"/>
+          </parameter>
+          <parameter name="start_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="509">the starting character offset of the returned string</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="end_offset"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="510">the offset of the first character after the
+             returned substring</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_selection" c:identifier="atk_text_remove_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="969">Removes the specified selection.</doc>
+        <source-position filename="../atk/atktext.h" line="440"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="980">%TRUE if successful, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="971">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="selection_num" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="972">The selection number.  The selected regions are
+assigned numbers that correspond to how far the region is from the
+start of the text.  The selected region closest to the beginning
+of the text region is assigned the number 0, etc.  Note that adding,
+moving or deleting a selected region can change the numbering.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="scroll_substring_to"
+              c:identifier="atk_text_scroll_substring_to"
+              version="2.32">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1418">Makes a substring of @text visible on the screen by scrolling all necessary 
parents.</doc>
+        <source-position filename="../atk/atktext.h" line="476"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1429">whether scrolling was successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1420">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1421">start offset in the @text</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1422">end offset in the @text, or -1 for the end of the text.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1423">specify where the object should be made visible.</doc>
+            <type name="ScrollType" c:type="AtkScrollType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="scroll_substring_to_point"
+              c:identifier="atk_text_scroll_substring_to_point"
+              version="2.32">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1448">Move the top-left of a substring of @text to a given position of the screen
+by scrolling all necessary parents.</doc>
+        <source-position filename="../atk/atktext.h" line="482"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1463">whether scrolling was successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1450">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1451">start offset in the @text</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1452">end offset in the @text, or -1 for the end of the text.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="coords" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1453">specify whether coordinates are relative to the screen or to the
+parent object.</doc>
+            <type name="CoordType" c:type="AtkCoordType"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1455">x-position where to scroll to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1456">y-position where to scroll to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_caret_offset" c:identifier="atk_text_set_caret_offset">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1035">Sets the caret (cursor) position to the specified @offset.
+
+In the case of rich-text content, this method should either grab focus
+or move the sequential focus navigation starting point (if the application
+supports this concept) as if the user had clicked on the new caret position.
+Typically, this means that the target of this operation is the node containing
+the new caret position or one of its ancestors. In other words, after this
+method is called, if the user advances focus, it should move to the first
+focusable node following the new caret position.
+
+Calling this method should also scroll the application viewport in a way
+that matches the behavior of the application's typical caret motion or tab
+navigation as closely as possible. This also means that if the application's
+caret motion or focus navigation does not trigger a scroll operation, this
+method should not trigger one either. If the application does not have a caret
+motion or focus navigation operation, this method should try to scroll the new
+caret position into view while minimizing unnecessary scroll motion.</doc>
+        <source-position filename="../atk/atktext.h" line="448"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1058">%TRUE if successful, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1037">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1038">the character offset of the new caret position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_selection" c:identifier="atk_text_set_selection">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="998">Changes the start and end offset of the specified selection.</doc>
+        <source-position filename="../atk/atktext.h" line="443"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1012">%TRUE if successful, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1000">an #AtkText</doc>
+            <type name="Text" c:type="AtkText*"/>
+          </instance-parameter>
+          <parameter name="selection_num" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1001">The selection number.  The selected regions are
+assigned numbers that correspond to how far the region is from the
+start of the text.  The selected region closest to the beginning
+of the text region is assigned the number 0, etc.  Note that adding,
+moving or deleting a selected region can change the numbering.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="start_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1006">the new starting character offset of the selection</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1007">the new end position of (e.g. offset immediately past)
+the selection</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="text-attributes-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="303">The "text-attributes-changed" signal is emitted when the text
+attributes of the text of an object which implements AtkText
+changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="text-caret-moved" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="269">The "text-caret-moved" signal is emitted when the caret
+position of the text of an object which implements AtkText
+changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="272">The new position of the text caret.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="text-changed"
+                   when="last"
+                   detailed="1"
+                   deprecated="1"
+                   deprecated-version="2.9.4">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="200">The "text-changed" signal is emitted when the text of the
+object which implements the AtkText interface changes, This
+signal will have a detail which is either "insert" or
+"delete" which identifies whether the text change was an
+insertion or a deletion.</doc>
+        <doc-deprecated xml:space="preserve">Use #AtkObject::text-insert or
+#AtkObject::text-remove instead.</doc-deprecated>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="203">The position (character offset) of the insertion or deletion.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="204">The length (in characters) of text inserted or deleted.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="text-insert" when="last" detailed="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="225">The "text-insert" signal is emitted when a new text is
+inserted. If the signal was not triggered by the user
+(e.g. typing or pasting text), the "system" detail should be
+included.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="228">The position (character offset) of the insertion.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="229">The length (in characters) of text inserted.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="arg3" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="230">The new text inserted</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="text-remove" when="last" detailed="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="247">The "text-remove" signal is emitted when a new text is
+removed. If the signal was not triggered by the user
+(e.g. typing or pasting text), the "system" detail should be
+included.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="arg1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="250">The position (character offset) of the removal.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="251">The length (in characters) of text removed.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="arg3" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="252">The old text removed</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="text-selection-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="288">The "text-selection-changed" signal is emitted when the
+selected text of an object which implements AtkText changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </interface>
+    <enumeration name="TextAttribute"
+                 glib:type-name="AtkTextAttribute"
+                 glib:get-type="atk_text_attribute_get_type"
+                 c:type="AtkTextAttribute">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.h"
+           line="34">Describes the text attributes supported</doc>
+      <member name="invalid"
+              value="0"
+              c:identifier="ATK_TEXT_ATTR_INVALID"
+              glib:nick="invalid">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="36">Invalid attribute, like bad spelling or grammar.</doc>
+      </member>
+      <member name="left_margin"
+              value="1"
+              c:identifier="ATK_TEXT_ATTR_LEFT_MARGIN"
+              glib:nick="left-margin">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="37">The pixel width of the left margin</doc>
+      </member>
+      <member name="right_margin"
+              value="2"
+              c:identifier="ATK_TEXT_ATTR_RIGHT_MARGIN"
+              glib:nick="right-margin">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="38">The pixel width of the right margin</doc>
+      </member>
+      <member name="indent"
+              value="3"
+              c:identifier="ATK_TEXT_ATTR_INDENT"
+              glib:nick="indent">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="39">The number of pixels that the text is indented</doc>
+      </member>
+      <member name="invisible"
+              value="4"
+              c:identifier="ATK_TEXT_ATTR_INVISIBLE"
+              glib:nick="invisible">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="40">Either "true" or "false" indicating whether text is visible or not</doc>
+      </member>
+      <member name="editable"
+              value="5"
+              c:identifier="ATK_TEXT_ATTR_EDITABLE"
+              glib:nick="editable">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="41">Either "true" or "false" indicating whether text is editable or not</doc>
+      </member>
+      <member name="pixels_above_lines"
+              value="6"
+              c:identifier="ATK_TEXT_ATTR_PIXELS_ABOVE_LINES"
+              glib:nick="pixels-above-lines">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="42">Pixels of blank space to leave above each newline-terminated line.</doc>
+      </member>
+      <member name="pixels_below_lines"
+              value="7"
+              c:identifier="ATK_TEXT_ATTR_PIXELS_BELOW_LINES"
+              glib:nick="pixels-below-lines">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="43">Pixels of blank space to leave below each newline-terminated line.</doc>
+      </member>
+      <member name="pixels_inside_wrap"
+              value="8"
+              c:identifier="ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP"
+              glib:nick="pixels-inside-wrap">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="44">Pixels of blank space to leave between wrapped lines inside the same 
newline-terminated line (paragraph).</doc>
+      </member>
+      <member name="bg_full_height"
+              value="9"
+              c:identifier="ATK_TEXT_ATTR_BG_FULL_HEIGHT"
+              glib:nick="bg-full-height">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="45">"true" or "false" whether to make the background color for each character the height 
of the highest font used on the current line, or the height of the font used for the current character.</doc>
+      </member>
+      <member name="rise"
+              value="10"
+              c:identifier="ATK_TEXT_ATTR_RISE"
+              glib:nick="rise">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="46">Number of pixels that the characters are risen above the baseline. See also 
ATK_TEXT_ATTR_TEXT_POSITION.</doc>
+      </member>
+      <member name="underline"
+              value="11"
+              c:identifier="ATK_TEXT_ATTR_UNDERLINE"
+              glib:nick="underline">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="47">"none", "single", "double", "low", or "error"</doc>
+      </member>
+      <member name="strikethrough"
+              value="12"
+              c:identifier="ATK_TEXT_ATTR_STRIKETHROUGH"
+              glib:nick="strikethrough">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="48">"true" or "false" whether the text is strikethrough</doc>
+      </member>
+      <member name="size"
+              value="13"
+              c:identifier="ATK_TEXT_ATTR_SIZE"
+              glib:nick="size">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="49">The size of the characters in points. eg: 10</doc>
+      </member>
+      <member name="scale"
+              value="14"
+              c:identifier="ATK_TEXT_ATTR_SCALE"
+              glib:nick="scale">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="50">The scale of the characters. The value is a string representation of a double</doc>
+      </member>
+      <member name="weight"
+              value="15"
+              c:identifier="ATK_TEXT_ATTR_WEIGHT"
+              glib:nick="weight">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="51">The weight of the characters.</doc>
+      </member>
+      <member name="language"
+              value="16"
+              c:identifier="ATK_TEXT_ATTR_LANGUAGE"
+              glib:nick="language">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="52">The language used</doc>
+      </member>
+      <member name="family_name"
+              value="17"
+              c:identifier="ATK_TEXT_ATTR_FAMILY_NAME"
+              glib:nick="family-name">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="53">The font family name</doc>
+      </member>
+      <member name="bg_color"
+              value="18"
+              c:identifier="ATK_TEXT_ATTR_BG_COLOR"
+              glib:nick="bg-color">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="54">The background color. The value is an RGB value of the format "%u,%u,%u"</doc>
+      </member>
+      <member name="fg_color"
+              value="19"
+              c:identifier="ATK_TEXT_ATTR_FG_COLOR"
+              glib:nick="fg-color">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="55">The foreground color. The value is an RGB value of the format "%u,%u,%u"</doc>
+      </member>
+      <member name="bg_stipple"
+              value="20"
+              c:identifier="ATK_TEXT_ATTR_BG_STIPPLE"
+              glib:nick="bg-stipple">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="56">"true" if a #GdkBitmap is set for stippling the background color.</doc>
+      </member>
+      <member name="fg_stipple"
+              value="21"
+              c:identifier="ATK_TEXT_ATTR_FG_STIPPLE"
+              glib:nick="fg-stipple">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="57">"true" if a #GdkBitmap is set for stippling the foreground color.</doc>
+      </member>
+      <member name="wrap_mode"
+              value="22"
+              c:identifier="ATK_TEXT_ATTR_WRAP_MODE"
+              glib:nick="wrap-mode">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="58">The wrap mode of the text, if any. Values are "none", "char", "word", or 
"word_char".</doc>
+      </member>
+      <member name="direction"
+              value="23"
+              c:identifier="ATK_TEXT_ATTR_DIRECTION"
+              glib:nick="direction">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="59">The direction of the text, if set. Values are "none", "ltr" or "rtl"</doc>
+      </member>
+      <member name="justification"
+              value="24"
+              c:identifier="ATK_TEXT_ATTR_JUSTIFICATION"
+              glib:nick="justification">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="60">The justification of the text, if set. Values are "left", "right", "center" or 
"fill"</doc>
+      </member>
+      <member name="stretch"
+              value="25"
+              c:identifier="ATK_TEXT_ATTR_STRETCH"
+              glib:nick="stretch">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="61">The stretch of the text, if set. Values are "ultra_condensed", "extra_condensed", 
"condensed", "semi_condensed", "normal", "semi_expanded", "expanded", "extra_expanded" or 
"ultra_expanded"</doc>
+      </member>
+      <member name="variant"
+              value="26"
+              c:identifier="ATK_TEXT_ATTR_VARIANT"
+              glib:nick="variant">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="62">The capitalization variant of the text, if set. Values are "normal" or 
"small_caps"</doc>
+      </member>
+      <member name="style"
+              value="27"
+              c:identifier="ATK_TEXT_ATTR_STYLE"
+              glib:nick="style">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="63">The slant style of the text, if set. Values are "normal", "oblique" or "italic"</doc>
+      </member>
+      <member name="text_position"
+              value="28"
+              c:identifier="ATK_TEXT_ATTR_TEXT_POSITION"
+              glib:nick="text-position">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="64">The vertical position with respect to the baseline. Values are "baseline", "super", 
or "sub". Note that a super or sub text attribute refers to position with respect to the baseline of the 
prior character.</doc>
+      </member>
+      <member name="last_defined"
+              value="29"
+              c:identifier="ATK_TEXT_ATTR_LAST_DEFINED"
+              glib:nick="last-defined">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="65">not a valid text attribute, used for finding end of enumeration</doc>
+      </member>
+      <function name="for_name" c:identifier="atk_text_attribute_for_name">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1247">Get the #AtkTextAttribute type corresponding to a text attribute name.</doc>
+        <source-position filename="../atk/atktext.h" line="470"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1253">the #AtkTextAttribute enumerated type corresponding to the specified
+         name, or #ATK_TEXT_ATTRIBUTE_INVALID if no matching text attribute
+         is found.</doc>
+          <type name="TextAttribute" c:type="AtkTextAttribute"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1249">a string which is the (non-localized) name of an ATK text attribute.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_name" c:identifier="atk_text_attribute_get_name">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1206">Gets the name corresponding to the #AtkTextAttribute</doc>
+        <source-position filename="../atk/atktext.h" line="468"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1212">a string containing the name; this string should not be freed</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="attr" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1208">The #AtkTextAttribute whose name is required</doc>
+            <type name="TextAttribute" c:type="AtkTextAttribute"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_value" c:identifier="atk_text_attribute_get_value">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1300">Gets the value for the index of the #AtkTextAttribute</doc>
+        <source-position filename="../atk/atktext.h" line="472"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1307">a string containing the value; this string
+should not be freed; %NULL is returned if there are no values
+maintained for the attr value.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="attr" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1302">The #AtkTextAttribute for which a value is required</doc>
+            <type name="TextAttribute" c:type="AtkTextAttribute"/>
+          </parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1303">The index of the required value</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="register" c:identifier="atk_text_attribute_register">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1186">Associate @name with a new #AtkTextAttribute</doc>
+        <source-position filename="../atk/atktext.h" line="104"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1192">an #AtkTextAttribute associated with @name</doc>
+          <type name="TextAttribute" c:type="AtkTextAttribute"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1188">a name string</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+    </enumeration>
+    <enumeration name="TextBoundary"
+                 glib:type-name="AtkTextBoundary"
+                 glib:get-type="atk_text_boundary_get_type"
+                 c:type="AtkTextBoundary">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.h"
+           line="119">Text boundary types used for specifying boundaries for regions of text.
+This enumeration is deprecated since 2.9.4 and should not be used. Use
+AtkTextGranularity with #atk_text_get_string_at_offset instead.</doc>
+      <member name="char"
+              value="0"
+              c:identifier="ATK_TEXT_BOUNDARY_CHAR"
+              glib:nick="char">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="121">Boundary is the boundary between characters
+(including non-printing characters)</doc>
+      </member>
+      <member name="word_start"
+              value="1"
+              c:identifier="ATK_TEXT_BOUNDARY_WORD_START"
+              glib:nick="word-start">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="123">Boundary is the start (i.e. first character) of a word.</doc>
+      </member>
+      <member name="word_end"
+              value="2"
+              c:identifier="ATK_TEXT_BOUNDARY_WORD_END"
+              glib:nick="word-end">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="124">Boundary is the end (i.e. last
+character) of a word.</doc>
+      </member>
+      <member name="sentence_start"
+              value="3"
+              c:identifier="ATK_TEXT_BOUNDARY_SENTENCE_START"
+              glib:nick="sentence-start">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="126">Boundary is the first character in a sentence.</doc>
+      </member>
+      <member name="sentence_end"
+              value="4"
+              c:identifier="ATK_TEXT_BOUNDARY_SENTENCE_END"
+              glib:nick="sentence-end">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="127">Boundary is the last (terminal)
+character in a sentence; in languages which use "sentence stop"
+punctuation such as English, the boundary is thus the '.', '?', or
+similar terminal punctuation character.</doc>
+      </member>
+      <member name="line_start"
+              value="5"
+              c:identifier="ATK_TEXT_BOUNDARY_LINE_START"
+              glib:nick="line-start">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="131">Boundary is the initial character of the content or a
+character immediately following a newline, linefeed, or return character.</doc>
+      </member>
+      <member name="line_end"
+              value="6"
+              c:identifier="ATK_TEXT_BOUNDARY_LINE_END"
+              glib:nick="line-end">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="133">Boundary is the linefeed, or return
+character.</doc>
+      </member>
+    </enumeration>
+    <enumeration name="TextClipType"
+                 glib:type-name="AtkTextClipType"
+                 glib:get-type="atk_text_clip_type_get_type"
+                 c:type="AtkTextClipType">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.h"
+           line="218">Describes the type of clipping required.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="ATK_TEXT_CLIP_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="220">No clipping to be done</doc>
+      </member>
+      <member name="min"
+              value="1"
+              c:identifier="ATK_TEXT_CLIP_MIN"
+              glib:nick="min">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="221">Text clipped by min coordinate is omitted</doc>
+      </member>
+      <member name="max"
+              value="2"
+              c:identifier="ATK_TEXT_CLIP_MAX"
+              glib:nick="max">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="222">Text clipped by max coordinate is omitted</doc>
+      </member>
+      <member name="both"
+              value="3"
+              c:identifier="ATK_TEXT_CLIP_BOTH"
+              glib:nick="both">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="223">Only text fully within mix/max bound is retained</doc>
+      </member>
+    </enumeration>
+    <enumeration name="TextGranularity"
+                 glib:type-name="AtkTextGranularity"
+                 glib:get-type="atk_text_granularity_get_type"
+                 c:type="AtkTextGranularity">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.h"
+           line="150">Text granularity types used for specifying the granularity of the region of
+text we are interested in.</doc>
+      <member name="char"
+              value="0"
+              c:identifier="ATK_TEXT_GRANULARITY_CHAR"
+              glib:nick="char">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="152">Granularity is defined by the boundaries between characters
+(including non-printing characters)</doc>
+      </member>
+      <member name="word"
+              value="1"
+              c:identifier="ATK_TEXT_GRANULARITY_WORD"
+              glib:nick="word">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="154">Granularity is defined by the boundaries of a word,
+starting at the beginning of the current word and finishing at the beginning of
+the following one, if present.</doc>
+      </member>
+      <member name="sentence"
+              value="2"
+              c:identifier="ATK_TEXT_GRANULARITY_SENTENCE"
+              glib:nick="sentence">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="157">Granularity is defined by the boundaries of a sentence,
+starting at the beginning of the current sentence and finishing at the beginning of
+the following one, if present.</doc>
+      </member>
+      <member name="line"
+              value="3"
+              c:identifier="ATK_TEXT_GRANULARITY_LINE"
+              glib:nick="line">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="160">Granularity is defined by the boundaries of a line,
+starting at the beginning of the current line and finishing at the beginning of
+the following one, if present.</doc>
+      </member>
+      <member name="paragraph"
+              value="4"
+              c:identifier="ATK_TEXT_GRANULARITY_PARAGRAPH"
+              glib:nick="paragraph">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="163">Granularity is defined by the boundaries of a paragraph,
+starting at the beginning of the current paragraph and finishing at the beginning of
+the following one, if present.</doc>
+      </member>
+    </enumeration>
+    <record name="TextIface"
+            c:type="AtkTextIface"
+            glib:is-gtype-struct-for="Text">
+      <source-position filename="../atk/atktext.h" line="360"/>
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_text">
+        <callback name="get_text">
+          <source-position filename="../atk/atktext.h" line="254"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="333">a newly allocated string containing the text from @start_offset up
+         to, but not including @end_offset. Use g_free() to free the returned
+         string.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="327">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="start_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="328">a starting character offset within @text</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="end_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="329">an ending character offset within @text, or -1 for the end of the string.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_text_after_offset">
+        <callback name="get_text_after_offset">
+          <source-position filename="../atk/atktext.h" line="257"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="396">a newly allocated string containing the text after @offset bounded
+         by the specified @boundary_type. Use g_free() to free the returned
+         string.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="385">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="386">position</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="boundary_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="387">An #AtkTextBoundary</doc>
+              <type name="TextBoundary" c:type="AtkTextBoundary"/>
+            </parameter>
+            <parameter name="start_offset"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="388">the starting character offset of the returned string</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="end_offset"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="389">the offset of the first character after the
+             returned substring</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_text_at_offset">
+        <callback name="get_text_at_offset">
+          <source-position filename="../atk/atktext.h" line="262"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="470">a newly allocated string containing the text at @offset bounded
+         by the specified @boundary_type. Use g_free() to free the returned
+         string.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="435">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="436">position</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="boundary_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="437">An #AtkTextBoundary</doc>
+              <type name="TextBoundary" c:type="AtkTextBoundary"/>
+            </parameter>
+            <parameter name="start_offset"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="438">the starting character offset of the returned string</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="end_offset"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="439">the offset of the first character after the
+             returned substring</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_character_at_offset">
+        <callback name="get_character_at_offset">
+          <source-position filename="../atk/atktext.h" line="267"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="365">the character at @offset or 0 in the case of failure.</doc>
+            <type name="gunichar" c:type="gunichar"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="360">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="361">a character offset within @text</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_text_before_offset">
+        <callback name="get_text_before_offset">
+          <source-position filename="../atk/atktext.h" line="269"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="517">a newly allocated string containing the text before @offset bounded
+         by the specified @boundary_type. Use g_free() to free the returned
+         string.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="506">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="507">position</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="boundary_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="508">An #AtkTextBoundary</doc>
+              <type name="TextBoundary" c:type="AtkTextBoundary"/>
+            </parameter>
+            <parameter name="start_offset"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="509">the starting character offset of the returned string</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="end_offset"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="510">the offset of the first character after the
+             returned substring</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_caret_offset">
+        <callback name="get_caret_offset">
+          <source-position filename="../atk/atktext.h" line="274"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="647">the character offset of the position of the caret or -1 if
+         the caret is not located inside the element or in the case of
+         any other failure.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="643">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_run_attributes">
+        <callback name="get_run_attributes">
+          <source-position filename="../atk/atktext.h" line="275"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="750">an #AtkAttributeSet which contains the attributes
+        explicitly set at @offset. This #AtkAttributeSet should be freed by
+        a call to atk_attribute_set_free().</doc>
+            <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="736">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="737">the character offset at which to get the attributes, -1 means the offset of
+the character to be inserted at the caret location.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="start_offset"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="739">the address to put the start offset of the range</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="end_offset"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="740">the address to put the end offset of the range</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_default_attributes">
+        <callback name="get_default_attributes">
+          <source-position filename="../atk/atktext.h" line="279"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="795">an #AtkAttributeSet which contains the default text
+         attributes for this #AtkText. This #AtkAttributeSet should be freed by
+         a call to atk_attribute_set_free().</doc>
+            <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="788">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_character_extents">
+        <callback name="get_character_extents">
+          <source-position filename="../atk/atktext.h" line="280"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="668">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="669">The offset of the text character for which bounding information is 
required.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="x"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="670">Pointer for the x coordinate of the bounding box</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="y"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="671">Pointer for the y coordinate of the bounding box</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="width"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="672">Pointer for the width of the bounding box</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="height"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="673">Pointer for the height of the bounding box</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="coords" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="674">specify whether coordinates are relative to the screen or widget window</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_character_count">
+        <callback name="get_character_count">
+          <source-position filename="../atk/atktext.h" line="287"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="820">the number of characters or -1 in case of failure.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="816">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_offset_at_point">
+        <callback name="get_offset_at_point">
+          <source-position filename="../atk/atktext.h" line="288"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="849">the offset to the character which is located at  the specified
+         @x and @y coordinates of -1 in case of failure.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="839">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="840">screen x-position of character</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="841">screen y-position of character</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="coords" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="842">specify whether coordinates are relative to the screen or
+widget window</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_n_selections">
+        <callback name="get_n_selections">
+          <source-position filename="../atk/atktext.h" line="292"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="876">The number of selected regions, or -1 in the case of failure.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="872">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_selection">
+        <callback name="get_selection">
+          <source-position filename="../atk/atktext.h" line="293"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="907">a newly allocated string containing the selected text. Use g_free()
+         to free the returned string.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="895">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="selection_num" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="896">The selection number.  The selected regions are
+assigned numbers that correspond to how far the region is from the
+start of the text.  The selected region closest to the beginning
+of the text region is assigned the number 0, etc.  Note that adding,
+moving or deleting a selected region can change the numbering.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="start_offset"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="901">passes back the starting character offset of the selected region</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="end_offset"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="902">passes back the ending character offset (offset immediately past)
+of the selected region</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="add_selection">
+        <callback name="add_selection">
+          <source-position filename="../atk/atktext.h" line="297"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="950">%TRUE if successful, %FALSE otherwise</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="944">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="start_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="945">the starting character offset of the selected region</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="end_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="946">the offset of the first character after the selected region.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove_selection">
+        <callback name="remove_selection">
+          <source-position filename="../atk/atktext.h" line="300"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="980">%TRUE if successful, %FALSE otherwise</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="971">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="selection_num" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="972">The selection number.  The selected regions are
+assigned numbers that correspond to how far the region is from the
+start of the text.  The selected region closest to the beginning
+of the text region is assigned the number 0, etc.  Note that adding,
+moving or deleting a selected region can change the numbering.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_selection">
+        <callback name="set_selection">
+          <source-position filename="../atk/atktext.h" line="302"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1012">%TRUE if successful, %FALSE otherwise</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1000">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="selection_num" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1001">The selection number.  The selected regions are
+assigned numbers that correspond to how far the region is from the
+start of the text.  The selected region closest to the beginning
+of the text region is assigned the number 0, etc.  Note that adding,
+moving or deleting a selected region can change the numbering.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="start_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1006">the new starting character offset of the selection</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="end_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1007">the new end position of (e.g. offset immediately past)
+the selection</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_caret_offset">
+        <callback name="set_caret_offset">
+          <source-position filename="../atk/atktext.h" line="306"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1058">%TRUE if successful, %FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1037">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1038">the character offset of the new caret position</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="text_changed">
+        <callback name="text_changed">
+          <source-position filename="../atk/atktext.h" line="312"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="position" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="length" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="text_caret_moved">
+        <callback name="text_caret_moved">
+          <source-position filename="../atk/atktext.h" line="315"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="location" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="text_selection_changed">
+        <callback name="text_selection_changed">
+          <source-position filename="../atk/atktext.h" line="317"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="text_attributes_changed">
+        <callback name="text_attributes_changed">
+          <source-position filename="../atk/atktext.h" line="319"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_range_extents">
+        <callback name="get_range_extents">
+          <source-position filename="../atk/atktext.h" line="322"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1082">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="start_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1083">The offset of the first text character for which boundary
+       information is required.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="end_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1085">The offset of the text character after the last character
+       for which boundary information is required.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="coord_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1087">Specify whether coordinates are relative to the screen or widget window.</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+            <parameter name="rect"
+                       direction="out"
+                       caller-allocates="1"
+                       transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1088">A pointer to a AtkTextRectangle which is filled in by this function.</doc>
+              <type name="TextRectangle" c:type="AtkTextRectangle*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_bounded_ranges">
+        <callback name="get_bounded_ranges">
+          <source-position filename="../atk/atktext.h" line="328"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1135">Array of AtkTextRange. The last
+         element of the array returned by this function will be NULL.</doc>
+            <array c:type="AtkTextRange**">
+              <type name="TextRange" c:type="AtkTextRange*"/>
+            </array>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1125">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="rect" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1126">An AtkTextRectangle giving the dimensions of the bounding box.</doc>
+              <type name="TextRectangle" c:type="AtkTextRectangle*"/>
+            </parameter>
+            <parameter name="coord_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1127">Specify whether coordinates are relative to the screen or widget window.</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+            <parameter name="x_clip_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1128">Specify the horizontal clip type.</doc>
+              <type name="TextClipType" c:type="AtkTextClipType"/>
+            </parameter>
+            <parameter name="y_clip_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1129">Specify the vertical clip type.</doc>
+              <type name="TextClipType" c:type="AtkTextClipType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_string_at_offset">
+        <callback name="get_string_at_offset">
+          <source-position filename="../atk/atktext.h" line="334"/>
+          <return-value transfer-ownership="full" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="597">a newly allocated string containing the text at
+         the @offset bounded by the specified @granularity. Use g_free()
+         to free the returned string.  Returns %NULL if the offset is invalid
+         or no implementation is available.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="556">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="557">position</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="granularity" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="558">An #AtkTextGranularity</doc>
+              <type name="TextGranularity" c:type="AtkTextGranularity"/>
+            </parameter>
+            <parameter name="start_offset"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="559">the starting character offset of the returned string, or -1
+               in the case of error (e.g. invalid offset, not implemented)</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+            <parameter name="end_offset"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="561">the offset of the first character after the returned string,
+             or -1 in the case of error (e.g. invalid offset, not implemented)</doc>
+              <type name="gint" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="scroll_substring_to">
+        <callback name="scroll_substring_to">
+          <source-position filename="../atk/atktext.h" line="350"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1429">whether scrolling was successful.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1420">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="start_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1421">start offset in the @text</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="end_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1422">end offset in the @text, or -1 for the end of the text.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1423">specify where the object should be made visible.</doc>
+              <type name="ScrollType" c:type="AtkScrollType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="scroll_substring_to_point">
+        <callback name="scroll_substring_to_point">
+          <source-position filename="../atk/atktext.h" line="354"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atktext.c"
+                 line="1463">whether scrolling was successful.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="text" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1450">an #AtkText</doc>
+              <type name="Text" c:type="AtkText*"/>
+            </parameter>
+            <parameter name="start_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1451">start offset in the @text</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="end_offset" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1452">end offset in the @text, or -1 for the end of the text.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="coords" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1453">specify whether coordinates are relative to the screen or to the
+parent object.</doc>
+              <type name="CoordType" c:type="AtkCoordType"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1455">x-position where to scroll to</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atktext.c"
+                   line="1456">y-position where to scroll to</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <record name="TextRange"
+            c:type="AtkTextRange"
+            glib:type-name="AtkTextRange"
+            glib:get-type="atk_text_range_get_type"
+            c:symbol-prefix="text_range">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.h"
+           line="197">A structure used to describe a text range.</doc>
+      <source-position filename="../atk/atktext.h" line="213"/>
+      <field name="bounds" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="199">A rectangle giving the bounds of the text range</doc>
+        <type name="TextRectangle" c:type="AtkTextRectangle"/>
+      </field>
+      <field name="start_offset" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="200">The start offset of a AtkTextRange</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="end_offset" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="201">The end offset of a AtkTextRange</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="content" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="202">The text in the text range</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+    </record>
+    <record name="TextRectangle" c:type="AtkTextRectangle">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.h"
+           line="178">A structure used to store a rectangle used by AtkText.</doc>
+      <source-position filename="../atk/atktext.h" line="195"/>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="180">The horizontal coordinate of a rectangle</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="181">The vertical coordinate of a rectangle</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="width" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="182">The width of a rectangle</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="height" writable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.h"
+             line="183">The height of a rectangle</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+    </record>
+    <function-macro name="UNAVAILABLE"
+                    c:identifier="ATK_UNAVAILABLE"
+                    introspectable="0">
+      <source-position filename="../atk/atkversion.h" line="290"/>
+      <parameters>
+        <parameter name="maj">
+        </parameter>
+        <parameter name="min">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="UTIL" c:identifier="ATK_UTIL" introspectable="0">
+      <source-position filename="../atk/atkutil.h" line="33"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="UTIL_CLASS"
+                    c:identifier="ATK_UTIL_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkutil.h" line="34"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="UTIL_GET_CLASS"
+                    c:identifier="ATK_UTIL_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../atk/atkutil.h" line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Util"
+           c:symbol-prefix="util"
+           c:type="AtkUtil"
+           parent="GObject.Object"
+           glib:type-name="AtkUtil"
+           glib:get-type="atk_util_get_type"
+           glib:type-struct="UtilClass">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="25">A set of ATK utility functions which are used to support event
+registration of various types, and obtaining the 'root' accessible
+of a process and information about the current ATK implementation
+and toolkit version.</doc>
+      <source-position filename="../atk/atkutil.h" line="172"/>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+    </class>
+    <record name="UtilClass"
+            c:type="AtkUtilClass"
+            glib:is-gtype-struct-for="Util">
+      <source-position filename="../atk/atkutil.h" line="172"/>
+      <field name="parent">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="add_global_event_listener" introspectable="0">
+        <callback name="add_global_event_listener" introspectable="0">
+          <source-position filename="../atk/atkutil.h" line="163"/>
+          <return-value transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="listener" transfer-ownership="none">
+              <type name="GObject.SignalEmissionHook"
+                    c:type="GSignalEmissionHook"/>
+            </parameter>
+            <parameter name="event_type" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove_global_event_listener">
+        <callback name="remove_global_event_listener">
+          <source-position filename="../atk/atkutil.h" line="165"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="listener_id" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="add_key_event_listener" introspectable="0">
+        <callback name="add_key_event_listener" introspectable="0">
+          <source-position filename="../atk/atkutil.h" line="166"/>
+          <return-value transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="listener" transfer-ownership="none" closure="1">
+              <type name="KeySnoopFunc" c:type="AtkKeySnoopFunc"/>
+            </parameter>
+            <parameter name="data"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove_key_event_listener">
+        <callback name="remove_key_event_listener">
+          <source-position filename="../atk/atkutil.h" line="168"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="listener_id" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_root" introspectable="0">
+        <callback name="get_root" introspectable="0">
+          <source-position filename="../atk/atkutil.h" line="169"/>
+          <return-value>
+            <type name="Object" c:type="AtkObject*"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="get_toolkit_name">
+        <callback name="get_toolkit_name">
+          <source-position filename="../atk/atkutil.h" line="170"/>
+          <return-value transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="get_toolkit_version">
+        <callback name="get_toolkit_version">
+          <source-position filename="../atk/atkutil.h" line="171"/>
+          <return-value transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <function-macro name="VALUE" c:identifier="ATK_VALUE" introspectable="0">
+      <source-position filename="../atk/atkvalue.h" line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="VALUE_GET_IFACE"
+                    c:identifier="ATK_VALUE_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atkvalue.h" line="35"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="VERSION_MIN_REQUIRED"
+              value="2"
+              c:type="ATK_VERSION_MIN_REQUIRED"
+              version="2.14">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.h"
+           line="215">A macro that should be defined by the user prior to including
+the atk/atk.h header.
+The definition should be one of the predefined ATK version
+macros: %ATK_VERSION_2_12, %ATK_VERSION_2_14,...
+
+This macro defines the earliest version of ATK that the package is
+required to be able to compile against.
+
+If the compiler is configured to warn about the use of deprecated
+functions, then using functions that were deprecated in version
+%ATK_VERSION_MIN_REQUIRED or earlier will cause warnings (but
+using functions deprecated in later releases will not).</doc>
+      <source-position filename="../atk/atkversion.h" line="241"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <interface name="Value"
+               c:symbol-prefix="value"
+               c:type="AtkValue"
+               glib:type-name="AtkValue"
+               glib:get-type="atk_value_get_type"
+               glib:type-struct="ValueIface">
+      <doc xml:space="preserve"
+           filename="../atk/atkvalue.c"
+           line="30">#AtkValue should be implemented for components which either display
+a value from a bounded range, or which allow the user to specify a
+value from a bounded range, or both. For instance, most sliders and
+range controls, as well as dials, should have #AtkObject
+representations which implement #AtkValue on the component's
+behalf. #AtKValues may be read-only, in which case attempts to
+alter the value return would fail.
+
+&lt;refsect1 id="current-value-text"&gt;
+&lt;title&gt;On the subject of current value text&lt;/title&gt;
+&lt;para&gt;
+In addition to providing the current value, implementors can
+optionally provide an end-user-consumable textual description
+associated with this value. This description should be included
+when the numeric value fails to convey the full, on-screen
+representation seen by users.
+&lt;/para&gt;
+
+&lt;example&gt;
+&lt;title&gt;Password strength&lt;/title&gt;
+A password strength meter whose value changes as the user types
+their new password. Red is used for values less than 4.0, yellow
+for values between 4.0 and 7.0, and green for values greater than
+7.0. In this instance, value text should be provided by the
+implementor. Appropriate value text would be "weak", "acceptable,"
+and "strong" respectively.
+&lt;/example&gt;
+
+A level bar whose value changes to reflect the battery charge. The
+color remains the same regardless of the charge and there is no
+on-screen text reflecting the fullness of the battery. In this
+case, because the position within the bar is the only indication
+the user has of the current charge, value text should not be
+provided by the implementor.
+
+&lt;refsect2 id="implementor-notes"&gt;
+&lt;title&gt;Implementor Notes&lt;/title&gt;
+&lt;para&gt;
+Implementors should bear in mind that assistive technologies will
+likely prefer the value text provided over the numeric value when
+presenting a widget's value. As a result, strings not intended for
+end users should not be exposed in the value text, and strings
+which are exposed should be localized. In the case of widgets which
+display value text on screen, for instance through a separate label
+in close proximity to the value-displaying widget, it is still
+expected that implementors will expose the value text using the
+above API.
+&lt;/para&gt;
+
+&lt;para&gt;
+#AtkValue should NOT be implemented for widgets whose displayed
+value is not reflective of a meaningful amount. For instance, a
+progress pulse indicator whose value alternates between 0.0 and 1.0
+to indicate that some process is still taking place should not
+implement #AtkValue because the current value does not reflect
+progress towards completion.
+&lt;/para&gt;
+&lt;/refsect2&gt;
+&lt;/refsect1&gt;
+
+&lt;refsect1 id="ranges"&gt;
+&lt;title&gt;On the subject of ranges&lt;/title&gt;
+&lt;para&gt;
+In addition to providing the minimum and maximum values,
+implementors can optionally provide details about subranges
+associated with the widget. These details should be provided by the
+implementor when both of the following are communicated visually to
+the end user:
+&lt;/para&gt;
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;The existence of distinct ranges such as "weak",
+  "acceptable", and "strong" indicated by color, bar tick marks,
+  and/or on-screen text.&lt;/listitem&gt;
+  &lt;listitem&gt;Where the current value stands within a given subrange,
+  for instance illustrating progression from very "weak" towards
+  nearly "acceptable" through changes in shade and/or position on
+  the bar within the "weak" subrange.&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+&lt;para&gt;
+If both of the above do not apply to the widget, it should be
+sufficient to expose the numeric value, along with the value text
+if appropriate, to make the widget accessible.
+&lt;/para&gt;
+
+&lt;refsect2 id="ranges-implementor-notes"&gt;
+&lt;title&gt;Implementor Notes&lt;/title&gt;
+&lt;para&gt;
+If providing subrange details is deemed necessary, all possible
+values of the widget are expected to fall within one of the
+subranges defined by the implementor.
+&lt;/para&gt;
+&lt;/refsect2&gt;
+&lt;/refsect1&gt;
+
+&lt;refsect1 id="localization"&gt;
+&lt;title&gt;On the subject of localization of end-user-consumable text
+values&lt;/title&gt;
+&lt;para&gt;
+Because value text and subrange descriptors are human-consumable,
+implementors are expected to provide localized strings which can be
+directly presented to end users via their assistive technology. In
+order to simplify this for implementors, implementors can use
+atk_value_type_get_localized_name() with the following
+already-localized constants for commonly-needed values can be used:
+&lt;/para&gt;
+
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;ATK_VALUE_VERY_WEAK&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_WEAK&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_ACCEPTABLE&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_STRONG&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_VERY_STRONG&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_VERY_LOW&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_LOW&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_MEDIUM&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_HIGH&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_VERY_HIGH&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_VERY_BAD&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_BAD&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_GOOD&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_VERY_GOOD&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_BEST&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_SUBSUBOPTIMAL&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_SUBOPTIMAL&lt;/listitem&gt;
+  &lt;listitem&gt;ATK_VALUE_OPTIMAL&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+&lt;para&gt;
+Proposals for additional constants, along with their use cases,
+should be submitted to the GNOME Accessibility Team.
+&lt;/para&gt;
+&lt;/refsect1&gt;
+
+&lt;refsect1 id="changes"&gt;
+&lt;title&gt;On the subject of changes&lt;/title&gt;
+&lt;para&gt;
+Note that if there is a textual description associated with the new
+numeric value, that description should be included regardless of
+whether or not it has also changed.
+&lt;/para&gt;
+&lt;/refsect1&gt;</doc>
+      <source-position filename="../atk/atkvalue.h" line="120"/>
+      <virtual-method name="get_current_value"
+                      invoker="get_current_value"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="363">Gets the value of this object.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_value_get_value_and_text()
+instead.</doc-deprecated>
+        <source-position filename="../atk/atkvalue.h" line="100"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="365">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="366">a #GValue representing the current accessible value</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_increment"
+                      invoker="get_increment"
+                      version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="586">Gets the minimum increment by which the value of this object may be
+changed.  If zero, the minimum increment is undefined, which may
+mean that it is limited only by the floating point precision of the
+platform.</doc>
+        <source-position filename="../atk/atkvalue.h" line="115"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkvalue.c"
+               line="595">the minimum increment by which the value of this
+object may be changed. zero if undefined.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="588">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_maximum_value"
+                      invoker="get_maximum_value"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="395">Gets the maximum value of this object.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_value_get_range() instead.</doc-deprecated>
+        <source-position filename="../atk/atkvalue.h" line="102"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="397">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="398">a #GValue representing the maximum accessible value</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_minimum_increment"
+                      invoker="get_minimum_increment"
+                      version="1.12"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="457">Gets the minimum increment by which the value of this object may be changed.  If 
zero,
+the minimum increment is undefined, which may mean that it is limited only by the
+floating point precision of the platform.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_value_get_increment() 
instead.</doc-deprecated>
+        <source-position filename="../atk/atkvalue.h" line="108"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="459">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="460">a #GValue representing the minimum increment by which the accessible value may 
be changed</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_minimum_value"
+                      invoker="get_minimum_value"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="426">Gets the minimum value of this object.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_value_get_range() instead.</doc-deprecated>
+        <source-position filename="../atk/atkvalue.h" line="104"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="428">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="429">a #GValue representing the minimum accessible value</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_range" invoker="get_range" version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="557">Gets the range of this object.</doc>
+        <source-position filename="../atk/atkvalue.h" line="114"/>
+        <return-value transfer-ownership="full" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkvalue.c"
+               line="563">a newly allocated #AtkRange
+that represents the minimum, maximum and descriptor (if available)
+of @obj. NULL if that range is not defined.</doc>
+          <type name="Range" c:type="AtkRange*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="559">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_sub_ranges"
+                      invoker="get_sub_ranges"
+                      version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="618">Gets the list of subranges defined for this object. See #AtkValue
+introduction for examples of subranges and when to expose them.</doc>
+        <source-position filename="../atk/atkvalue.h" line="116"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkvalue.c"
+               line="625">an #GSList of
+#AtkRange which each of the subranges defined for this object. Free
+the returns list with g_slist_free().</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="Range"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="620">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_value_and_text"
+                      invoker="get_value_and_text"
+                      version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="521">Gets the current value and the human readable text alternative of
+@obj. @text is a newly created string, that must be freed by the
+caller. Can be NULL if no descriptor is available.</doc>
+        <source-position filename="../atk/atkvalue.h" line="111"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="523">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="524">address of #gdouble to put the current value of @obj</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="text"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="525">address of #gchar to put the human
+readable text alternative for @value</doc>
+            <type name="utf8" c:type="gchar**"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_current_value"
+                      invoker="set_current_value"
+                      deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="492">Sets the value of this object.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_value_set_value() instead.</doc-deprecated>
+        <source-position filename="../atk/atkvalue.h" line="106"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkvalue.c"
+               line="499">%TRUE if new value is successfully set, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="494">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="495">a #GValue which is the desired new accessible value.</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_value" invoker="set_value" version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="648">Sets the value of this object.
+
+This method is intended to provide a way to change the value of the
+object. In any case, it is possible that the value can't be
+modified (ie: a read-only component). If the value changes due this
+call, it is possible that the text could change, and will trigger
+an #AtkValue::value-changed signal emission.
+
+Note for implementors: the deprecated atk_value_set_current_value()
+method returned TRUE or FALSE depending if the value was assigned
+or not. In the practice several implementors were not able to
+decide it, and returned TRUE in any case. For that reason it is not
+required anymore to return if the value was properly assigned or
+not.</doc>
+        <source-position filename="../atk/atkvalue.h" line="117"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="650">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="new_value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="651">a double which is the desired new accessible value.</doc>
+            <type name="gdouble" c:type="const gdouble"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_current_value"
+              c:identifier="atk_value_get_current_value"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="363">Gets the value of this object.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_value_get_value_and_text()
+instead.</doc-deprecated>
+        <source-position filename="../atk/atkvalue.h" line="126"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="365">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="366">a #GValue representing the current accessible value</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_increment"
+              c:identifier="atk_value_get_increment"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="586">Gets the minimum increment by which the value of this object may be
+changed.  If zero, the minimum increment is undefined, which may
+mean that it is limited only by the floating point precision of the
+platform.</doc>
+        <source-position filename="../atk/atkvalue.h" line="149"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkvalue.c"
+               line="595">the minimum increment by which the value of this
+object may be changed. zero if undefined.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="588">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_maximum_value"
+              c:identifier="atk_value_get_maximum_value"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="395">Gets the maximum value of this object.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_value_get_range() instead.</doc-deprecated>
+        <source-position filename="../atk/atkvalue.h" line="130"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="397">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="398">a #GValue representing the maximum accessible value</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_minimum_increment"
+              c:identifier="atk_value_get_minimum_increment"
+              version="1.12"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="457">Gets the minimum increment by which the value of this object may be changed.  If 
zero,
+the minimum increment is undefined, which may mean that it is limited only by the
+floating point precision of the platform.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_value_get_increment() 
instead.</doc-deprecated>
+        <source-position filename="../atk/atkvalue.h" line="139"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="459">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="460">a #GValue representing the minimum increment by which the accessible value may 
be changed</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_minimum_value"
+              c:identifier="atk_value_get_minimum_value"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="426">Gets the minimum value of this object.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_value_get_range() instead.</doc-deprecated>
+        <source-position filename="../atk/atkvalue.h" line="133"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="428">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="429">a #GValue representing the minimum accessible value</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_range"
+              c:identifier="atk_value_get_range"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="557">Gets the range of this object.</doc>
+        <source-position filename="../atk/atkvalue.h" line="147"/>
+        <return-value transfer-ownership="full" nullable="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkvalue.c"
+               line="563">a newly allocated #AtkRange
+that represents the minimum, maximum and descriptor (if available)
+of @obj. NULL if that range is not defined.</doc>
+          <type name="Range" c:type="AtkRange*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="559">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_sub_ranges"
+              c:identifier="atk_value_get_sub_ranges"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="618">Gets the list of subranges defined for this object. See #AtkValue
+introduction for examples of subranges and when to expose them.</doc>
+        <source-position filename="../atk/atkvalue.h" line="151"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../atk/atkvalue.c"
+               line="625">an #GSList of
+#AtkRange which each of the subranges defined for this object. Free
+the returns list with g_slist_free().</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="Range"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="620">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_value_and_text"
+              c:identifier="atk_value_get_value_and_text"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="521">Gets the current value and the human readable text alternative of
+@obj. @text is a newly created string, that must be freed by the
+caller. Can be NULL if no descriptor is available.</doc>
+        <source-position filename="../atk/atkvalue.h" line="143"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="523">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="524">address of #gdouble to put the current value of @obj</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="text"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="525">address of #gchar to put the human
+readable text alternative for @value</doc>
+            <type name="utf8" c:type="gchar**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_current_value"
+              c:identifier="atk_value_set_current_value"
+              deprecated="1">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="492">Sets the value of this object.</doc>
+        <doc-deprecated xml:space="preserve">Since 2.12. Use atk_value_set_value() instead.</doc-deprecated>
+        <source-position filename="../atk/atkvalue.h" line="136"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkvalue.c"
+               line="499">%TRUE if new value is successfully set, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="494">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="495">a #GValue which is the desired new accessible value.</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value"
+              c:identifier="atk_value_set_value"
+              version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="648">Sets the value of this object.
+
+This method is intended to provide a way to change the value of the
+object. In any case, it is possible that the value can't be
+modified (ie: a read-only component). If the value changes due this
+call, it is possible that the text could change, and will trigger
+an #AtkValue::value-changed signal emission.
+
+Note for implementors: the deprecated atk_value_set_current_value()
+method returned TRUE or FALSE depending if the value was assigned
+or not. In the practice several implementors were not able to
+decide it, and returned TRUE in any case. For that reason it is not
+required anymore to return if the value was properly assigned or
+not.</doc>
+        <source-position filename="../atk/atkvalue.h" line="153"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="650">a GObject instance that implements AtkValueIface</doc>
+            <type name="Value" c:type="AtkValue*"/>
+          </instance-parameter>
+          <parameter name="new_value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="651">a double which is the desired new accessible value.</doc>
+            <type name="gdouble" c:type="const gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="value-changed" when="last" version="2.12">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="327">The 'value-changed' signal is emitted when the current value
+that represent the object changes. @value is the numerical
+representation of this new value.  @text is the human
+readable text alternative of @value, and can be NULL if it is
+not available. Note that if there is a textual description
+associated with the new numeric value, that description
+should be included regardless of whether or not it has also
+changed.
+
+Example: a password meter whose value changes as the user
+types their new password. Appropiate value text would be
+"weak", "acceptable" and "strong".</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="330">the new value in a numerical form.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="331">human readable text alternative (also called
+description) of this object. NULL if not available.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="ValueIface"
+            c:type="AtkValueIface"
+            glib:is-gtype-struct-for="Value">
+      <source-position filename="../atk/atkvalue.h" line="120"/>
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_current_value">
+        <callback name="get_current_value">
+          <source-position filename="../atk/atkvalue.h" line="100"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="365">a GObject instance that implements AtkValueIface</doc>
+              <type name="Value" c:type="AtkValue*"/>
+            </parameter>
+            <parameter name="value"
+                       direction="out"
+                       caller-allocates="1"
+                       transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="366">a #GValue representing the current accessible value</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_maximum_value">
+        <callback name="get_maximum_value">
+          <source-position filename="../atk/atkvalue.h" line="102"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="397">a GObject instance that implements AtkValueIface</doc>
+              <type name="Value" c:type="AtkValue*"/>
+            </parameter>
+            <parameter name="value"
+                       direction="out"
+                       caller-allocates="1"
+                       transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="398">a #GValue representing the maximum accessible value</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_minimum_value">
+        <callback name="get_minimum_value">
+          <source-position filename="../atk/atkvalue.h" line="104"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="428">a GObject instance that implements AtkValueIface</doc>
+              <type name="Value" c:type="AtkValue*"/>
+            </parameter>
+            <parameter name="value"
+                       direction="out"
+                       caller-allocates="1"
+                       transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="429">a #GValue representing the minimum accessible value</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_current_value">
+        <callback name="set_current_value">
+          <source-position filename="../atk/atkvalue.h" line="106"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="499">%TRUE if new value is successfully set, %FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="494">a GObject instance that implements AtkValueIface</doc>
+              <type name="Value" c:type="AtkValue*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="495">a #GValue which is the desired new accessible value.</doc>
+              <type name="GObject.Value" c:type="const GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_minimum_increment">
+        <callback name="get_minimum_increment">
+          <source-position filename="../atk/atkvalue.h" line="108"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="459">a GObject instance that implements AtkValueIface</doc>
+              <type name="Value" c:type="AtkValue*"/>
+            </parameter>
+            <parameter name="value"
+                       direction="out"
+                       caller-allocates="1"
+                       transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="460">a #GValue representing the minimum increment by which the accessible value may 
be changed</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_value_and_text">
+        <callback name="get_value_and_text">
+          <source-position filename="../atk/atkvalue.h" line="111"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="523">a GObject instance that implements AtkValueIface</doc>
+              <type name="Value" c:type="AtkValue*"/>
+            </parameter>
+            <parameter name="value"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="524">address of #gdouble to put the current value of @obj</doc>
+              <type name="gdouble" c:type="gdouble*"/>
+            </parameter>
+            <parameter name="text"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="525">address of #gchar to put the human
+readable text alternative for @value</doc>
+              <type name="utf8" c:type="gchar**"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_range">
+        <callback name="get_range">
+          <source-position filename="../atk/atkvalue.h" line="114"/>
+          <return-value transfer-ownership="full" nullable="1">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="563">a newly allocated #AtkRange
+that represents the minimum, maximum and descriptor (if available)
+of @obj. NULL if that range is not defined.</doc>
+            <type name="Range" c:type="AtkRange*"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="559">a GObject instance that implements AtkValueIface</doc>
+              <type name="Value" c:type="AtkValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_increment">
+        <callback name="get_increment">
+          <source-position filename="../atk/atkvalue.h" line="115"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="595">the minimum increment by which the value of this
+object may be changed. zero if undefined.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="588">a GObject instance that implements AtkValueIface</doc>
+              <type name="Value" c:type="AtkValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_sub_ranges">
+        <callback name="get_sub_ranges">
+          <source-position filename="../atk/atkvalue.h" line="116"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="625">an #GSList of
+#AtkRange which each of the subranges defined for this object. Free
+the returns list with g_slist_free().</doc>
+            <type name="GLib.SList" c:type="GSList*">
+              <type name="Range"/>
+            </type>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="620">a GObject instance that implements AtkValueIface</doc>
+              <type name="Value" c:type="AtkValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_value">
+        <callback name="set_value">
+          <source-position filename="../atk/atkvalue.h" line="117"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="650">a GObject instance that implements AtkValueIface</doc>
+              <type name="Value" c:type="AtkValue*"/>
+            </parameter>
+            <parameter name="new_value" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../atk/atkvalue.c"
+                   line="651">a double which is the desired new accessible value.</doc>
+              <type name="gdouble" c:type="const gdouble"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="ValueType"
+                 glib:type-name="AtkValueType"
+                 glib:get-type="atk_value_type_get_type"
+                 c:type="AtkValueType">
+      <doc xml:space="preserve"
+           filename="../atk/atkvalue.h"
+           line="43">Default types for a given value. Those are defined in order to
+easily get localized strings to describe a given value or a given
+subrange, using atk_value_type_get_localized_name().</doc>
+      <member name="very_weak"
+              value="0"
+              c:identifier="ATK_VALUE_VERY_WEAK"
+              glib:nick="very-weak">
+      </member>
+      <member name="weak"
+              value="1"
+              c:identifier="ATK_VALUE_WEAK"
+              glib:nick="weak">
+      </member>
+      <member name="acceptable"
+              value="2"
+              c:identifier="ATK_VALUE_ACCEPTABLE"
+              glib:nick="acceptable">
+      </member>
+      <member name="strong"
+              value="3"
+              c:identifier="ATK_VALUE_STRONG"
+              glib:nick="strong">
+      </member>
+      <member name="very_strong"
+              value="4"
+              c:identifier="ATK_VALUE_VERY_STRONG"
+              glib:nick="very-strong">
+      </member>
+      <member name="very_low"
+              value="5"
+              c:identifier="ATK_VALUE_VERY_LOW"
+              glib:nick="very-low">
+      </member>
+      <member name="low"
+              value="6"
+              c:identifier="ATK_VALUE_LOW"
+              glib:nick="low">
+      </member>
+      <member name="medium"
+              value="7"
+              c:identifier="ATK_VALUE_MEDIUM"
+              glib:nick="medium">
+      </member>
+      <member name="high"
+              value="8"
+              c:identifier="ATK_VALUE_HIGH"
+              glib:nick="high">
+      </member>
+      <member name="very_high"
+              value="9"
+              c:identifier="ATK_VALUE_VERY_HIGH"
+              glib:nick="very-high">
+      </member>
+      <member name="very_bad"
+              value="10"
+              c:identifier="ATK_VALUE_VERY_BAD"
+              glib:nick="very-bad">
+      </member>
+      <member name="bad"
+              value="11"
+              c:identifier="ATK_VALUE_BAD"
+              glib:nick="bad">
+      </member>
+      <member name="good"
+              value="12"
+              c:identifier="ATK_VALUE_GOOD"
+              glib:nick="good">
+      </member>
+      <member name="very_good"
+              value="13"
+              c:identifier="ATK_VALUE_VERY_GOOD"
+              glib:nick="very-good">
+      </member>
+      <member name="best"
+              value="14"
+              c:identifier="ATK_VALUE_BEST"
+              glib:nick="best">
+      </member>
+      <member name="last_defined"
+              value="15"
+              c:identifier="ATK_VALUE_LAST_DEFINED"
+              glib:nick="last-defined">
+      </member>
+      <function name="get_localized_name"
+                c:identifier="atk_value_type_get_localized_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="735">Gets the localized description string describing the #AtkValueType @value_type.</doc>
+        <source-position filename="../atk/atkvalue.h" line="159"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkvalue.c"
+               line="741">the localized string describing the #AtkValueType</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="value_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="737">The #AtkValueType whose localized name is required</doc>
+            <type name="ValueType" c:type="AtkValueType"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_name" c:identifier="atk_value_type_get_name">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="713">Gets the description string describing the #AtkValueType @value_type.</doc>
+        <source-position filename="../atk/atkvalue.h" line="157"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkvalue.c"
+               line="719">the string describing the #AtkValueType</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="value_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../atk/atkvalue.c"
+                 line="715">The #AtkValueType whose name is required</doc>
+            <type name="ValueType" c:type="AtkValueType"/>
+          </parameter>
+        </parameters>
+      </function>
+    </enumeration>
+    <function-macro name="WINDOW" c:identifier="ATK_WINDOW" introspectable="0">
+      <source-position filename="../atk/atkwindow.h" line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="WINDOW_GET_IFACE"
+                    c:identifier="ATK_WINDOW_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../atk/atkwindow.h" line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <interface name="Window"
+               c:symbol-prefix="window"
+               c:type="AtkWindow"
+               glib:type-name="AtkWindow"
+               glib:get-type="atk_window_get_type"
+               glib:type-struct="WindowIface">
+      <doc xml:space="preserve"
+           filename="../atk/atkwindow.c"
+           line="25">#AtkWindow should be implemented by the UI elements that represent
+a top-level window, such as the main window of an application or
+dialog.</doc>
+      <source-position filename="../atk/atkwindow.h" line="47"/>
+      <prerequisite name="Object"/>
+      <glib:signal name="activate" when="last" version="2.2">
+        <doc xml:space="preserve"
+             filename="../atk/atkwindow.c"
+             line="75">The signal #AtkWindow::activate is emitted when a window
+becomes the active window of the application or session.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="create" when="last" version="2.2">
+        <doc xml:space="preserve"
+             filename="../atk/atkwindow.c"
+             line="85">The signal #AtkWindow::create is emitted when a new window
+is created.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="deactivate" when="last" version="2.2">
+        <doc xml:space="preserve"
+             filename="../atk/atkwindow.c"
+             line="95">The signal #AtkWindow::deactivate is emitted when a window is
+no longer the active window of the application or session.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="destroy" when="last" version="2.2">
+        <doc xml:space="preserve"
+             filename="../atk/atkwindow.c"
+             line="105">The signal #AtkWindow::destroy is emitted when a window is
+destroyed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="maximize" when="last" version="2.2">
+        <doc xml:space="preserve"
+             filename="../atk/atkwindow.c"
+             line="115">The signal #AtkWindow::maximize is emitted when a window
+is maximized.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="minimize" when="last" version="2.2">
+        <doc xml:space="preserve"
+             filename="../atk/atkwindow.c"
+             line="125">The signal #AtkWindow::minimize is emitted when a window
+is minimized.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="move" when="last" version="2.2">
+        <doc xml:space="preserve"
+             filename="../atk/atkwindow.c"
+             line="135">The signal #AtkWindow::move is emitted when a window
+is moved.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="resize" when="last" version="2.2">
+        <doc xml:space="preserve"
+             filename="../atk/atkwindow.c"
+             line="145">The signal #AtkWindow::resize is emitted when a window
+is resized.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="restore" when="last" version="2.2">
+        <doc xml:space="preserve"
+             filename="../atk/atkwindow.c"
+             line="155">The signal #AtkWindow::restore is emitted when a window
+is restored.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </interface>
+    <record name="WindowIface"
+            c:type="AtkWindowIface"
+            glib:is-gtype-struct-for="Window">
+      <source-position filename="../atk/atkwindow.h" line="47"/>
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+    </record>
+    <function name="add_focus_tracker"
+              c:identifier="atk_add_focus_tracker"
+              introspectable="0"
+              deprecated="1"
+              deprecated-version="2.9.4">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="114">Adds the specified function to the list of functions to be called
+when an object receives focus.</doc>
+      <doc-deprecated xml:space="preserve">Focus tracking has been dropped as a feature
+to be implemented by ATK itself. If you need focus tracking on your
+implementation, subscribe to the #AtkObject::state-change "focused" signal.</doc-deprecated>
+      <source-position filename="../atk/atkutil.h" line="194"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.c"
+             line="126">added focus tracker id, or 0 on failure.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="focus_tracker" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.c"
+               line="116">Function to be added to the list of functions to be called
+when an object receives focus.</doc>
+          <type name="EventListener" c:type="AtkEventListener"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="add_global_event_listener"
+              c:identifier="atk_add_global_event_listener"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="347">Adds the specified function to the list of functions to be called
+when an ATK event of type event_type occurs.
+
+The format of event_type is the following:
+ "ATK:&amp;lt;atk_type&amp;gt;:&amp;lt;atk_event&amp;gt;:&amp;lt;atk_event_detail&amp;gt;
+
+Where "ATK" works as the namespace, &amp;lt;atk_interface&amp;gt; is the name of
+the ATK type (interface or object), &amp;lt;atk_event&amp;gt; is the name of the
+signal defined on that interface and &amp;lt;atk_event_detail&amp;gt; is the
+gsignal detail of that signal. You can find more info about gsignal
+details here:
+http://developer.gnome.org/gobject/stable/gobject-Signals.html
+
+The first three parameters are mandatory. The last one is optional.
+
+For example:
+  ATK:AtkObject:state-change
+  ATK:AtkText:text-selection-changed
+  ATK:AtkText:text-insert:system
+
+Toolkit implementor note: ATK provides a default implementation for
+this virtual method. ATK implementors are discouraged from
+reimplementing this method.
+
+Toolkit implementor note: this method is not intended to be used by
+ATK implementors but by ATK consumers.
+
+ATK consumers note: as this method adds a listener for a given ATK
+type, that type should be already registered on the GType system
+before calling this method. A simple way to do that is creating an
+instance of #AtkNoOpObject. This class implements all ATK
+interfaces, so creating the instance will register all ATK types as
+a collateral effect.</doc>
+      <source-position filename="../atk/atkutil.h" line="202"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.c"
+             line="386">added event listener id, or 0 on failure.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="listener" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.c"
+               line="349">the listener to notify</doc>
+          <type name="GObject.SignalEmissionHook"
+                c:type="GSignalEmissionHook"/>
+        </parameter>
+        <parameter name="event_type" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.c"
+               line="350">the type of event for which notification is requested</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="add_key_event_listener"
+              c:identifier="atk_add_key_event_listener"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="433">Adds the specified function to the list of functions to be called
+       when a key event occurs.  The @data element will be passed to the
+       #AtkKeySnoopFunc (@listener) as the @func_data param, on notification.</doc>
+      <source-position filename="../atk/atkutil.h" line="207"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.c"
+             line="443">added event listener id, or 0 on failure.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="listener" transfer-ownership="none" closure="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.c"
+               line="435">the listener to notify</doc>
+          <type name="KeySnoopFunc" c:type="AtkKeySnoopFunc"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.c"
+               line="436">a #gpointer that points to a block of data that should be sent to the registered 
listeners,
+       along with the event notification, when it occurs.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <docsection name="atkstate">
+      <doc xml:space="preserve"
+           filename="../atk/atkstate.c"
+           line="26">An AtkState describes a single state of an object. The full set of states
+that apply to an object at a given time are contained in its #AtkStateSet.
+See also #atk_object_ref_state_set and #atk_object_notify_state_change.</doc>
+    </docsection>
+    <docsection name="atkversion">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.c"
+           line="27">ATK provides a set of macros and methods for checking the version
+of the library at compile and run time.</doc>
+    </docsection>
+    <function name="attribute_set_free"
+              c:identifier="atk_attribute_set_free"
+              moved-to="Attribute.set_free">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.c"
+           line="1158">Frees the memory used by an #AtkAttributeSet, including all its
+#AtkAttributes.</doc>
+      <source-position filename="../atk/atktext.h" line="466"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="attrib_set" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1160">The #AtkAttributeSet to free</doc>
+          <type name="AttributeSet" c:type="AtkAttributeSet*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="focus_tracker_init"
+              c:identifier="atk_focus_tracker_init"
+              introspectable="0"
+              deprecated="1"
+              deprecated-version="2.9.4">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="94">Specifies the function to be called for focus tracker initialization.
+This function should be called by an implementation of the
+ATK interface if any specific work needs to be done to enable
+focus tracking.</doc>
+      <doc-deprecated xml:space="preserve">Focus tracking has been dropped as a feature
+to be implemented by ATK itself.</doc-deprecated>
+      <source-position filename="../atk/atkutil.h" line="198"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="init" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.c"
+               line="96">Function to be called for focus tracker initialization</doc>
+          <type name="EventListenerInit" c:type="AtkEventListenerInit"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="focus_tracker_notify"
+              c:identifier="atk_focus_tracker_notify"
+              deprecated="1"
+              deprecated-version="2.9.4">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="192">Cause the focus tracker functions which have been specified to be
+executed for the object.</doc>
+      <doc-deprecated xml:space="preserve">Focus tracking has been dropped as a feature
+to be implemented by ATK itself. As #AtkObject::focus-event was
+deprecated in favor of a #AtkObject::state-change signal, in order
+to notify a focus change on your implementation, you can use
+atk_object_notify_state_change() instead.</doc-deprecated>
+      <source-position filename="../atk/atkutil.h" line="200"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.c"
+               line="194">an #AtkObject</doc>
+          <type name="Object" c:type="AtkObject*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_binary_age"
+              c:identifier="atk_get_binary_age"
+              version="2.8">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.c"
+           line="99">Returns the binary age as passed to libtool when building the ATK
+library the process is running against.</doc>
+      <source-position filename="../atk/atkversion.h" line="434"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkversion.c"
+             line="105">the binary age of the ATK library</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+    </function>
+    <function name="get_default_registry"
+              c:identifier="atk_get_default_registry">
+      <doc xml:space="preserve"
+           filename="../atk/atkregistry.c"
+           line="252">Gets a default implementation of the #AtkObjectFactory/type
+registry.
+Note: For most toolkit maintainers, this will be the correct
+registry for registering new #AtkObject factories. Following
+a call to this function, maintainers may call atk_registry_set_factory_type()
+to associate an #AtkObjectFactory subclass with the GType of objects
+for whom accessibility information will be provided.</doc>
+      <source-position filename="../atk/atkregistry.h" line="69"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../atk/atkregistry.c"
+             line="263">a default implementation of the
+#AtkObjectFactory/type registry</doc>
+        <type name="Registry" c:type="AtkRegistry*"/>
+      </return-value>
+    </function>
+    <function name="get_focus_object"
+              c:identifier="atk_get_focus_object"
+              version="1.6">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="506">Gets the currently focused object.</doc>
+      <source-position filename="../atk/atkutil.h" line="214"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.c"
+             line="513">the currently focused object for the current
+application</doc>
+        <type name="Object" c:type="AtkObject*"/>
+      </return-value>
+    </function>
+    <function name="get_interface_age"
+              c:identifier="atk_get_interface_age"
+              version="2.8">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.c"
+           line="115">Returns the interface age as passed to libtool when building the
+ATK library the process is running against.</doc>
+      <source-position filename="../atk/atkversion.h" line="436"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkversion.c"
+             line="121">the interface age of the ATK library</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+    </function>
+    <function name="get_major_version"
+              c:identifier="atk_get_major_version"
+              version="2.8">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.c"
+           line="36">Returns the major version number of the ATK library.  (e.g. in ATK
+version 2.7.4 this is 2.)
+
+This function is in the library, so it represents the ATK library
+your code is running against. In contrast, the #ATK_MAJOR_VERSION
+macro represents the major version of the ATK headers you have
+included when compiling your code.</doc>
+      <source-position filename="../atk/atkversion.h" line="428"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkversion.c"
+             line="47">the major version number of the ATK library</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+    </function>
+    <function name="get_micro_version"
+              c:identifier="atk_get_micro_version"
+              version="2.8">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.c"
+           line="78">Returns the micro version number of the ATK library.  (e.g. in ATK
+version 2.7.4 this is 4.)
+
+This function is in the library, so it represents the ATK library
+your code is are running against. In contrast, the
+#ATK_MICRO_VERSION macro represents the micro version of the ATK
+headers you have included when compiling your code.</doc>
+      <source-position filename="../atk/atkversion.h" line="432"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkversion.c"
+             line="89">the micro version number of the ATK library</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+    </function>
+    <function name="get_minor_version"
+              c:identifier="atk_get_minor_version"
+              version="2.8">
+      <doc xml:space="preserve"
+           filename="../atk/atkversion.c"
+           line="57">Returns the minor version number of the ATK library.  (e.g. in ATK
+version 2.7.4 this is 7.)
+
+This function is in the library, so it represents the ATK library
+your code is are running against. In contrast, the
+#ATK_MINOR_VERSION macro represents the minor version of the ATK
+headers you have included when compiling your code.</doc>
+      <source-position filename="../atk/atkversion.h" line="430"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkversion.c"
+             line="68">the minor version number of the ATK library</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+    </function>
+    <function name="get_root" c:identifier="atk_get_root">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="480">Gets the root accessible container for the current application.</doc>
+      <source-position filename="../atk/atkutil.h" line="212"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.c"
+             line="485">the root accessible container for the current
+application</doc>
+        <type name="Object" c:type="AtkObject*"/>
+      </return-value>
+    </function>
+    <function name="get_toolkit_name" c:identifier="atk_get_toolkit_name">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="522">Gets name string for the GUI toolkit implementing ATK for this application.</doc>
+      <source-position filename="../atk/atkutil.h" line="217"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.c"
+             line="527">name string for the GUI toolkit implementing ATK for this application</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_toolkit_version"
+              c:identifier="atk_get_toolkit_version">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="547">Gets version string for the GUI toolkit implementing ATK for this application.</doc>
+      <source-position filename="../atk/atkutil.h" line="219"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.c"
+             line="552">version string for the GUI toolkit implementing ATK for this application</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_version" c:identifier="atk_get_version" version="1.20">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="572">Gets the current version for ATK.</doc>
+      <source-position filename="../atk/atkutil.h" line="221"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkutil.c"
+             line="577">version string for ATK</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+    </function>
+    <function name="relation_type_for_name"
+              c:identifier="atk_relation_type_for_name"
+              moved-to="RelationType.for_name">
+      <doc xml:space="preserve"
+           filename="../atk/atkrelation.c"
+           line="176">Get the #AtkRelationType type corresponding to a relation name.</doc>
+      <source-position filename="../atk/atkrelation.h" line="70"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelation.c"
+             line="182">the #AtkRelationType enumerated type corresponding to the specified name,
+         or #ATK_RELATION_NULL if no matching relation type is found.</doc>
+        <type name="RelationType" c:type="AtkRelationType"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelation.c"
+               line="178">a string which is the (non-localized) name of an ATK relation type.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="relation_type_get_name"
+              c:identifier="atk_relation_type_get_name"
+              moved-to="RelationType.get_name">
+      <doc xml:space="preserve"
+           filename="../atk/atkrelation.c"
+           line="136">Gets the description string describing the #AtkRelationType @type.</doc>
+      <source-position filename="../atk/atkrelation.h" line="68"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelation.c"
+             line="142">the string describing the AtkRelationType</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelation.c"
+               line="138">The #AtkRelationType whose name is required</doc>
+          <type name="RelationType" c:type="AtkRelationType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="relation_type_register"
+              c:identifier="atk_relation_type_register"
+              moved-to="RelationType.register">
+      <doc xml:space="preserve"
+           filename="../atk/atkrelation.c"
+           line="116">Associate @name with a new #AtkRelationType</doc>
+      <source-position filename="../atk/atkrelation.h" line="66"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkrelation.c"
+             line="122">an #AtkRelationType associated with @name</doc>
+        <type name="RelationType" c:type="AtkRelationType"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkrelation.c"
+               line="118">a name string</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="remove_focus_tracker"
+              c:identifier="atk_remove_focus_tracker"
+              deprecated="1"
+              deprecated-version="2.9.4">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="157">Removes the specified focus tracker from the list of functions
+to be called when any object receives focus.</doc>
+      <doc-deprecated xml:space="preserve">Focus tracking has been dropped as a feature
+  to be implemented by ATK itself. If you need focus tracking on your
+  implementation, subscribe to the #AtkObject::state-change "focused"
+  signal.</doc-deprecated>
+      <source-position filename="../atk/atkutil.h" line="196"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="tracker_id" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.c"
+               line="159">the id of the focus tracker to remove</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="remove_global_event_listener"
+              c:identifier="atk_remove_global_event_listener">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="408">@listener_id is the value returned by #atk_add_global_event_listener
+when you registered that event listener.
+
+Toolkit implementor note: ATK provides a default implementation for
+this virtual method. ATK implementors are discouraged from
+reimplementing this method.
+
+Toolkit implementor note: this method is not intended to be used by
+ATK implementors but by ATK consumers.
+
+Removes the specified event listener</doc>
+      <source-position filename="../atk/atkutil.h" line="205"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="listener_id" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.c"
+               line="410">the id of the event listener to remove</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="remove_key_event_listener"
+              c:identifier="atk_remove_key_event_listener">
+      <doc xml:space="preserve"
+           filename="../atk/atkutil.c"
+           line="462">@listener_id is the value returned by #atk_add_key_event_listener
+when you registered that event listener.
+
+Removes the specified event listener.</doc>
+      <source-position filename="../atk/atkutil.h" line="209"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="listener_id" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkutil.c"
+               line="464">the id of the event listener to remove</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="role_for_name"
+              c:identifier="atk_role_for_name"
+              moved-to="Role.for_name">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.c"
+           line="1643">Get the #AtkRole type corresponding to a rolew name.</doc>
+      <source-position filename="../atk/atkobject.h" line="771"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1649">the #AtkRole enumerated type corresponding to the specified name,
+         or #ATK_ROLE_INVALID if no matching role is found.</doc>
+        <type name="Role" c:type="AtkRole"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1645">a string which is the (non-localized) name of an ATK role.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="role_get_localized_name"
+              c:identifier="atk_role_get_localized_name"
+              moved-to="Role.get_localized_name">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.c"
+           line="1594">Gets the localized description string describing the #AtkRole @role.</doc>
+      <source-position filename="../atk/atkobject.h" line="784"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1600">the localized string describing the AtkRole</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="role" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1596">The #AtkRole whose localized name is required</doc>
+          <type name="Role" c:type="AtkRole"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="role_get_name"
+              c:identifier="atk_role_get_name"
+              moved-to="Role.get_name">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.c"
+           line="1572">Gets the description string describing the #AtkRole @role.</doc>
+      <source-position filename="../atk/atkobject.h" line="769"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="1578">the string describing the AtkRole</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="role" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="1574">The #AtkRole whose name is required</doc>
+          <type name="Role" c:type="AtkRole"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="role_register"
+              c:identifier="atk_role_register"
+              moved-to="Role.register"
+              deprecated="1">
+      <doc xml:space="preserve"
+           filename="../atk/atkobject.c"
+           line="892">Registers the role specified by @name. @name must be a meaningful
+name. So it should not be empty, or consisting on whitespaces.</doc>
+      <doc-deprecated xml:space="preserve">Since 2.12. If your application/toolkit doesn't find a
+suitable role for a specific object defined at #AtkRole, please
+submit a bug in order to add a new role to the specification.</doc-deprecated>
+      <source-position filename="../atk/atkobject.h" line="786"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkobject.c"
+             line="903">an #AtkRole for the new role if added
+properly. ATK_ROLE_INVALID in case of error.</doc>
+        <type name="Role" c:type="AtkRole"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkobject.c"
+               line="894">a character string describing the new role.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="state_type_for_name"
+              c:identifier="atk_state_type_for_name"
+              moved-to="StateType.for_name">
+      <doc xml:space="preserve"
+           filename="../atk/atkstate.c"
+           line="101">Gets the #AtkStateType corresponding to the description string @name.</doc>
+      <source-position filename="../atk/atkstate.h" line="204"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.c"
+             line="107">an #AtkStateType corresponding to @name</doc>
+        <type name="StateType" c:type="AtkStateType"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstate.c"
+               line="103">a character string state name</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="state_type_get_name"
+              c:identifier="atk_state_type_get_name"
+              moved-to="StateType.get_name">
+      <doc xml:space="preserve"
+           filename="../atk/atkstate.c"
+           line="63">Gets the description string describing the #AtkStateType @type.</doc>
+      <source-position filename="../atk/atkstate.h" line="202"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.c"
+             line="69">the string describing the AtkStateType</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstate.c"
+               line="65">The #AtkStateType whose name is required</doc>
+          <type name="StateType" c:type="AtkStateType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="state_type_register"
+              c:identifier="atk_state_type_register"
+              moved-to="StateType.register">
+      <doc xml:space="preserve"
+           filename="../atk/atkstate.c"
+           line="42">Register a new object state.</doc>
+      <source-position filename="../atk/atkstate.h" line="199"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkstate.c"
+             line="48">an #AtkState value for the new state.</doc>
+        <type name="StateType" c:type="AtkStateType"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkstate.c"
+               line="44">a character string describing the new state.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="text_attribute_for_name"
+              c:identifier="atk_text_attribute_for_name"
+              moved-to="TextAttribute.for_name">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.c"
+           line="1247">Get the #AtkTextAttribute type corresponding to a text attribute name.</doc>
+      <source-position filename="../atk/atktext.h" line="470"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1253">the #AtkTextAttribute enumerated type corresponding to the specified
+         name, or #ATK_TEXT_ATTRIBUTE_INVALID if no matching text attribute
+         is found.</doc>
+        <type name="TextAttribute" c:type="AtkTextAttribute"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1249">a string which is the (non-localized) name of an ATK text attribute.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="text_attribute_get_name"
+              c:identifier="atk_text_attribute_get_name"
+              moved-to="TextAttribute.get_name">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.c"
+           line="1206">Gets the name corresponding to the #AtkTextAttribute</doc>
+      <source-position filename="../atk/atktext.h" line="468"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1212">a string containing the name; this string should not be freed</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="attr" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1208">The #AtkTextAttribute whose name is required</doc>
+          <type name="TextAttribute" c:type="AtkTextAttribute"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="text_attribute_get_value"
+              c:identifier="atk_text_attribute_get_value"
+              moved-to="TextAttribute.get_value">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.c"
+           line="1300">Gets the value for the index of the #AtkTextAttribute</doc>
+      <source-position filename="../atk/atktext.h" line="472"/>
+      <return-value transfer-ownership="none" nullable="1">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1307">a string containing the value; this string
+should not be freed; %NULL is returned if there are no values
+maintained for the attr value.</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="attr" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1302">The #AtkTextAttribute for which a value is required</doc>
+          <type name="TextAttribute" c:type="AtkTextAttribute"/>
+        </parameter>
+        <parameter name="index_" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1303">The index of the required value</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="text_attribute_register"
+              c:identifier="atk_text_attribute_register"
+              moved-to="TextAttribute.register">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.c"
+           line="1186">Associate @name with a new #AtkTextAttribute</doc>
+      <source-position filename="../atk/atktext.h" line="104"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atktext.c"
+             line="1192">an #AtkTextAttribute associated with @name</doc>
+        <type name="TextAttribute" c:type="AtkTextAttribute"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1188">a name string</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="text_free_ranges"
+              c:identifier="atk_text_free_ranges"
+              moved-to="Text.free_ranges"
+              version="1.3">
+      <doc xml:space="preserve"
+           filename="../atk/atktext.c"
+           line="1590">Frees the memory associated with an array of AtkTextRange. It is assumed
+that the array was returned by the function atk_text_get_bounded_ranges
+and is NULL terminated.</doc>
+      <source-position filename="../atk/atktext.h" line="464"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="ranges" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atktext.c"
+               line="1592">A pointer to an array of #AtkTextRange which is
+  to be freed.</doc>
+          <array zero-terminated="0" c:type="AtkTextRange**">
+            <type name="TextRange" c:type="AtkTextRange*"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_type_get_localized_name"
+              c:identifier="atk_value_type_get_localized_name"
+              moved-to="ValueType.get_localized_name">
+      <doc xml:space="preserve"
+           filename="../atk/atkvalue.c"
+           line="735">Gets the localized description string describing the #AtkValueType @value_type.</doc>
+      <source-position filename="../atk/atkvalue.h" line="159"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="741">the localized string describing the #AtkValueType</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value_type" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkvalue.c"
+               line="737">The #AtkValueType whose localized name is required</doc>
+          <type name="ValueType" c:type="AtkValueType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_type_get_name"
+              c:identifier="atk_value_type_get_name"
+              moved-to="ValueType.get_name">
+      <doc xml:space="preserve"
+           filename="../atk/atkvalue.c"
+           line="713">Gets the description string describing the #AtkValueType @value_type.</doc>
+      <source-position filename="../atk/atkvalue.h" line="157"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../atk/atkvalue.c"
+             line="719">the string describing the #AtkValueType</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value_type" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../atk/atkvalue.c"
+               line="715">The #AtkValueType whose name is required</doc>
+          <type name="ValueType" c:type="AtkValueType"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/atk/atk/atk.toml.in b/atk/atk/atk.toml.in
new file mode 100644
index 0000000000..47bfc0a334
--- /dev/null
+++ b/atk/atk/atk.toml.in
@@ -0,0 +1,39 @@
+[library]
+version = "2.37"
+browse_url = "https://gitlab.gnome.org/GNOME/atk/";
+repository_url = "https://gitlab.gnome.org/GNOME/atk.git";
+website_url = "https://www.gtk.org";
+authors = "GTK Development Team"
+license = "LGPL-2.1-or-later"
+description = "The Accessibility toolkit"
+dependencies = [ "GObject-2.0", ]
+devhelp = true
+search_index = true
+
+  [dependencies."GObject-2.0"]
+  name = "GObject"
+  description = "The base type system library"
+  docs_url = "https://docs.gtk.org/gobject/";
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/atk/-/blob/HEAD/";
+
+[extra]
+content_files = [
+]
+content_images = [
+]
+urlmap_file = "urlmap.js"
+
+[[object]]
+pattern = "DEPRECATED_IN_*"
+hidden = true
+
+[[object]]
+pattern = "AVAILABLE_IN_*"
+hidden = true
diff --git a/atk/atk/meson.build b/atk/atk/meson.build
new file mode 100644
index 0000000000..066a1a3a10
--- /dev/null
+++ b/atk/atk/meson.build
@@ -0,0 +1,22 @@
+expand_content_files = [
+]
+
+atk_gir = meson.current_source_dir() / 'Atk-1.0.gir'
+atk_toml = configure_file(input: 'atk.toml.in', output: 'atk.toml', configuration: toml_conf)
+
+custom_target('atk-doc',
+  input: [ atk_toml, atk_gir ],
+  output: 'atk',
+  command: [
+    gidocgen,
+    'generate',
+    '--quiet',
+    '--config=@INPUT0@',
+    '--output-dir=@OUTPUT@',
+    '--no-namespace-dir',
+    '--content-dir=@0@'.format(meson.current_source_dir()),
+    '@INPUT1@',
+  ],
+  build_by_default: true,
+  depend_files: expand_content_files,
+)
diff --git a/atk/atk/urlmap.js b/atk/atk/urlmap.js
new file mode 100644
index 0000000000..4efba9b23e
--- /dev/null
+++ b/atk/atk/urlmap.js
@@ -0,0 +1,16 @@
+// SPDX-FileCopyrightText: 2021 GNOME Foundation
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
+// A map between namespaces and base URLs for their online documentation
+baseURLs = [
+    [ 'GLib', 'https://docs.gtk.org/glib/' ],
+    [ 'GObject', 'https://docs.gtk.org/gobject/' ],
+    [ 'Gio', 'https://docs.gtk.org/gio/' ],
+    [ 'Gdk', 'https://docs.gtk.org/gdk3/' ],
+    [ 'GdkX11', 'https://docs.gtk.org/gdk3-x11/' ],
+    [ 'Gtk', 'https://docs.gtk.org/gtk3/' ],
+    [ 'Pango', 'https://docs.gtk.org/Pango/' ],
+    [ 'PangoCairo', 'https://docs.gtk.org/PangoCairo/' ],
+    [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ],
+    [ 'Atk', 'https://docs.gtk.org/atk/' ],
+]
diff --git a/gtk3/gtk/gtk3.toml.in b/gtk3/gtk/gtk3.toml.in
index f06ed9efbf..ccaaa36954 100644
--- a/gtk3/gtk/gtk3.toml.in
+++ b/gtk3/gtk/gtk3.toml.in
@@ -7,7 +7,7 @@ authors = "GTK Development Team"
 logo_url = "gtk-logo.svg"
 license = "LGPL-2.1-or-later"
 description = "The GTK toolkit"
-dependencies = [ "GObject-2.0", "cairo-1.0", "Pango-1.0", "Gdk-3.0" ]
+dependencies = [ "GObject-2.0", "cairo-1.0", "Pango-1.0", "Gdk-3.0", "Atk-1.0" ]
 devhelp = true
 search_index = true
 
@@ -31,6 +31,11 @@ search_index = true
   description = "The GTK windowing system backend"
   docs_url = "https://docs.gtk.org/gdk3/";
 
+  [dependencies."Atk-1.0"]
+  name = "Atk"
+  description = "The Accessibility toolkit"
+  docs_url = "https://docs.gtk.org/atk/";
+
 [theme]
 name = "basic"
 show_index_summary = true
diff --git a/gtk3/gtk/meson.build b/gtk3/gtk/meson.build
index 5c7f0c0cd3..f0d34b3e1f 100644
--- a/gtk3/gtk/meson.build
+++ b/gtk3/gtk/meson.build
@@ -37,6 +37,7 @@ custom_target('gtk3-doc',
     '--no-namespace-dir',
     '--content-dir=@0@'.format(meson.current_source_dir()),
     '--add-include-path=@0@'.format(meson.current_source_dir() / '../gdk'),
+    '--add-include-path=@0@'.format(meson.current_source_dir() / '../../atk'),
     '@INPUT1@',
   ],
   build_by_default: true,
diff --git a/gtk3/gtk/urlmap.js b/gtk3/gtk/urlmap.js
index 9dd9c47597..4efba9b23e 100644
--- a/gtk3/gtk/urlmap.js
+++ b/gtk3/gtk/urlmap.js
@@ -12,4 +12,5 @@ baseURLs = [
     [ 'Pango', 'https://docs.gtk.org/Pango/' ],
     [ 'PangoCairo', 'https://docs.gtk.org/PangoCairo/' ],
     [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ],
+    [ 'Atk', 'https://docs.gtk.org/atk/' ],
 ]
diff --git a/meson.build b/meson.build
index 09d9a93c3c..be3a9c9f78 100644
--- a/meson.build
+++ b/meson.build
@@ -20,5 +20,7 @@ subdir('glib/glib')
 subdir('glib/gobject')
 subdir('glib/gio')
 
+subdir('atk/atk')
+
 subdir('gtk3/gdk')
 subdir('gtk3/gtk')
diff --git a/static/index.html b/static/index.html
index 5b2736c7f8..8f1f23f92d 100644
--- a/static/index.html
+++ b/static/index.html
@@ -149,13 +149,21 @@ SPDX-License-Identifier: LGPL-2.1-or-later
 
         <div class="docblock">
           <h5 id="glib">GTK 3</h5>
+          <p>The GTK 3 toolkit.</p>
           <p><a href="https://docs.gtk.org/gtk3/"; class="external">GTK 3 API reference</a></p>
         </div>
 
         <div class="docblock">
           <h5 id="gobject">GDK 3</h5>
+          <p>The GTK 3 windowing system abstraction.</p>
           <p><a href="https://docs.gtk.org/gdk3/"; class="external">GDK 3 API reference</a></p>
         </div>
+
+        <div class="docblock">
+          <h5 id="gobject">ATK</h5>
+          <p>The accessibility toolkit, used by GTK 3.</p>
+          <p><a href="https://docs.gtk.org/atk/"; class="external">ATK API reference</a></p>
+        </div>
       </div>
 
     </section>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]