[gtk/a11y/atspi: 17/43] a11y: Add the AT-SPI DBus descriptions




commit 0b953f5f487f50d8b7f1b939fdab4f656b49650e
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Tue Sep 29 17:55:01 2020 +0100

    a11y: Add the AT-SPI DBus descriptions
    
    And generate the code for the DBus interfaces.
    
    We don't want the full object manager experience, here, because we're
    going to have a single object responding to various interfaces and
    remote method calls. For this reason, we're not using the gnome module
    in Meson to call gdbus-codegen for us: we need to use the interface info
    command line arguments, and those are not available from Meson.

 gtk/a11y/atspi/Accessibility.xml         |  22 ++++
 gtk/a11y/atspi/Accessible.xml            |  67 +++++++++++
 gtk/a11y/atspi/Action.xml                |  38 ++++++
 gtk/a11y/atspi/Application.xml           |  26 +++++
 gtk/a11y/atspi/Cache.xml                 |  21 ++++
 gtk/a11y/atspi/Collection.xml            |  48 ++++++++
 gtk/a11y/atspi/Component.xml             |  86 ++++++++++++++
 gtk/a11y/atspi/DeviceEventController.xml |  64 ++++++++++
 gtk/a11y/atspi/DeviceEventListener.xml   |  12 ++
 gtk/a11y/atspi/Document.xml              |  24 ++++
 gtk/a11y/atspi/EditableText.xml          |  40 +++++++
 gtk/a11y/atspi/Event.xml                 | 193 +++++++++++++++++++++++++++++++
 gtk/a11y/atspi/Hyperlink.xml             |  27 +++++
 gtk/a11y/atspi/Hypertext.xml             |  21 ++++
 gtk/a11y/atspi/Image.xml                 |  27 +++++
 gtk/a11y/atspi/Registry.xml              |  30 +++++
 gtk/a11y/atspi/Selection.xml             |  42 +++++++
 gtk/a11y/atspi/Socket.xml                |  27 +++++
 gtk/a11y/atspi/Table.xml                 | 135 +++++++++++++++++++++
 gtk/a11y/atspi/TableCell.xml             |  22 ++++
 gtk/a11y/atspi/Text.xml                  | 170 +++++++++++++++++++++++++++
 gtk/a11y/atspi/Value.xml                 |  14 +++
 gtk/a11y/atspi/meson.build               |  65 +++++++++++
 gtk/a11y/meson.build                     |  10 ++
 gtk/meson.build                          |   2 +
 25 files changed, 1233 insertions(+)
---
diff --git a/gtk/a11y/atspi/Accessibility.xml b/gtk/a11y/atspi/Accessibility.xml
new file mode 100644
index 0000000000..a454aeb55b
--- /dev/null
+++ b/gtk/a11y/atspi/Accessibility.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<spec xmlns:xi="http://www.w3.org/2001/XInclude";>
+  <xi:include href="Accessible.xml" parse="xml"/>
+  <xi:include href="Action.xml" parse="xml"/>
+  <xi:include href="Application.xml" parse="xml"/>
+  <xi:include href="Collection.xml" parse="xml"/>
+  <xi:include href="Component.xml" parse="xml"/>
+  <xi:include href="Document.xml" parse="xml"/>
+  <xi:include href="Hypertext.xml" parse="xml"/>
+  <xi:include href="Hyperlink.xml" parse="xml"/>
+  <xi:include href="Image.xml" parse="xml"/>
+  <xi:include href="Selection.xml" parse="xml"/>
+  <xi:include href="Table.xml" parse="xml"/>
+  <xi:include href="TableCell.xml" parse="xml"/>
+  <xi:include href="Text.xml" parse="xml"/>
+  <xi:include href="EditableText.xml" parse="xml"/>
+  <xi:include href="Cache.xml" parse="xml"/>
+  <xi:include href="Value.xml" parse="xml"/>
+  <xi:include href="Registry.xml" parse="xml"/>
+  <xi:include href="DeviceEventController.xml" parse="xml"/>
+  <xi:include href="DeviceEventListener.xml" parse="xml"/>
+</spec>
diff --git a/gtk/a11y/atspi/Accessible.xml b/gtk/a11y/atspi/Accessible.xml
new file mode 100644
index 0000000000..7015466060
--- /dev/null
+++ b/gtk/a11y/atspi/Accessible.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Accessible">
+
+  <property name="Name" type="s" access="read"/>
+
+  <property name="Description" type="s" access="read"/>
+
+  <property name="Parent" type="(so)" access="read">
+    <annotation name="com.trolltech.QtDBus.QtTypeName" value="QSpiObjectReference"/>
+  </property>
+
+  <property name="ChildCount" type="i" access="read"/>
+
+  <property name="Locale" type="s" access="read"/>
+
+  <property name="AccessibleId" type="s" access="read"/>
+
+  <method name="GetChildAtIndex">
+    <arg direction="in" name="index" type="i"/>
+    <arg direction="out" type="(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
+  </method>
+
+  <method name="GetChildren">
+    <arg direction="out" type="a(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiObjectReferenceArray"/>
+  </method>
+
+  <method name="GetIndexInParent">
+    <arg direction="out" type="i"/>
+  </method>
+
+  <method name="GetRelationSet">
+    <arg direction="out" type="a(ua(so))"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiRelationArray"/>
+  </method>
+
+  <method name="GetRole">
+    <arg direction="out" type="u"/>
+  </method>
+
+  <method name="GetRoleName">
+    <arg direction="out" type="s"/>
+  </method>
+
+  <method name="GetLocalizedRoleName">
+    <arg direction="out" type="s"/>
+  </method>
+
+  <method name="GetState">
+    <arg direction="out" type="au"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiIntList"/>
+  </method>
+
+  <method name="GetAttributes">
+    <arg direction="out" type="a{ss}"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiAttributeSet"/>
+  </method>
+
+  <method name="GetApplication">
+    <arg direction="out" type="(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Action.xml b/gtk/a11y/atspi/Action.xml
new file mode 100644
index 0000000000..0f5aa850bd
--- /dev/null
+++ b/gtk/a11y/atspi/Action.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Action">
+
+  <property name="NActions" type="i" access="read"/>
+
+  <method name="GetDescription">
+    <arg type="i" name="index" direction="in"/>
+    <arg type="s" direction="out"/>
+  </method>
+
+  <method name="GetName">
+    <arg type="i" name="index" direction="in"/>
+    <arg type="s" direction="out"/>
+  </method>
+
+  <method name="GetLocalizedName">
+    <arg type="i" name="index" direction="in"/>
+    <arg type="s" direction="out"/>
+  </method>
+
+  <method name="GetKeyBinding">
+    <arg type="i" name="index" direction="in"/>
+    <arg type="s" direction="out"/>
+  </method>
+
+  <method name="GetActions">
+    <arg direction="out" type="a(sss)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiActionArray"/>
+  </method>
+
+  <method name="DoAction">
+    <arg direction="in" name="index" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Application.xml b/gtk/a11y/atspi/Application.xml
new file mode 100644
index 0000000000..2191f08858
--- /dev/null
+++ b/gtk/a11y/atspi/Application.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Application">
+
+  <property name="ToolkitName" type="s" access="read"/>
+
+  <property name="Version" type="s" access="read"/>
+
+  <property name="AtspiVersion" type="s" access="read"/>
+  <property name="Id" type="i" access="readwrite"/>
+
+  <method name="GetLocale">
+    <arg direction="in" name="lctype" type="u"/>
+    <arg direction="out" type="s"/>
+  </method>
+
+  <method name="RegisterEventListener">
+    <arg direction="in" name="event" type="s"/>
+  </method>
+
+  <method name="DeregisterEventListener">
+    <arg direction="in" name="event" type="s"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Cache.xml b/gtk/a11y/atspi/Cache.xml
new file mode 100644
index 0000000000..e693b54cdb
--- /dev/null
+++ b/gtk/a11y/atspi/Cache.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Cache">
+
+  <method name="GetItems">
+    <arg name="nodes" type="a((so)(so)iiassusau)" direction="out"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiAccessibleCacheArray"/>
+  </method>
+
+  <signal name="AddAccessible">
+    <arg name="nodeAdded" type="((so)(so)iiassusau)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiAccessibleCacheItem"/>
+  </signal>
+
+  <signal name="RemoveAccessible">
+    <arg name="nodeRemoved" type="(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiObjectReference"/>
+  </signal>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Collection.xml b/gtk/a11y/atspi/Collection.xml
new file mode 100644
index 0000000000..7b39776a0a
--- /dev/null
+++ b/gtk/a11y/atspi/Collection.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Collection">
+
+  <method name="GetMatches">
+    <arg direction="in" name="rule" type="(auuasuauusub)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="QSpiMatchRule"/>
+    <arg direction="in" name="sortby" type="u"/>
+    <arg direction="in" name="count" type="i"/>
+    <arg direction="in" name="traverse" type="b"/>
+    <arg direction="out" type="a(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiReferenceSet"/>
+  </method>
+
+  <method name="GetMatchesTo">
+    <arg direction="in" name="current_object" type="o"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiObjectReference"/>
+    <arg direction="in" name="rule" type="(auuasuauusub)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="QSpiMatchRule"/>
+    <arg direction="in" name="sortby" type="u"/>
+    <arg direction="in" name="tree" type="u"/>
+    <arg direction="in" name="limit_scope" type="b"/>
+    <arg direction="in" name="count" type="i"/>
+    <arg direction="in" name="traverse" type="b"/>
+    <arg direction="out" type="a(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiReferenceSet"/>
+  </method>
+
+  <method name="GetMatchesFrom">
+    <arg direction="in" name="current_object" type="o"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiObjectReference"/>
+    <arg direction="in" name="rule" type="(auuasuauusub)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="QSpiMatchRule"/>
+    <arg direction="in" name="sortby" type="u"/>
+    <arg direction="in" name="tree" type="u"/>
+    <arg direction="in" name="count" type="i"/>
+    <arg direction="in" name="traverse" type="b"/>
+    <arg direction="out" type="a(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiReferenceSet"/>
+  </method>
+
+  <method name="GetActiveDescendant">
+    <arg direction="out" type="(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiReferenceSet"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Component.xml b/gtk/a11y/atspi/Component.xml
new file mode 100644
index 0000000000..c1258d27c6
--- /dev/null
+++ b/gtk/a11y/atspi/Component.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Component">
+
+  <method name="Contains">
+    <arg direction="in" name="x" type="i"/>
+    <arg direction="in" name="y" type="i"/>
+    <arg direction="in" name="coord_type" type="u"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="GetAccessibleAtPoint">
+    <arg direction="in" name="x" type="i"/>
+    <arg direction="in" name="y" type="i"/>
+    <arg direction="in" name="coord_type" type="u"/>
+    <arg direction="out" type="(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
+  </method>
+
+  <method name="GetExtents">
+    <arg direction="in" name="coord_type" type="u"/>
+    <arg direction="out" type="(iiii)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiRect"/>
+  </method>
+
+  <method name="GetPosition">
+    <arg direction="in" name="coord_type" type="u"/>
+    <arg direction="out" name="x" type="i"/>
+    <arg direction="out" name="y" type="i"/>
+  </method>
+
+  <method name="GetSize">
+    <arg direction="out" name="width" type="i"/>
+    <arg direction="out" name="height" type="i"/>
+  </method>
+
+  <method name="GetLayer">
+    <arg direction="out" type="u"/>
+  </method>
+
+  <method name="GetMDIZOrder">
+    <arg direction="out" type="n"/>
+  </method>
+
+  <method name="GrabFocus">
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="GetAlpha">
+    <arg direction="out" type="d"/>
+  </method>
+
+  <method name="SetExtents">
+    <arg direction="in" name="x" type="i"/>
+    <arg direction="in" name="y" type="i"/>
+    <arg direction="in" name="width" type="i"/>
+    <arg direction="in" name="height" type="i"/>
+    <arg direction="in" name="coord_type" type="u"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="SetPosition">
+    <arg direction="in" name="x" type="i"/>
+    <arg direction="in" name="y" type="i"/>
+    <arg direction="in" name="coord_type" type="u"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="SetSize">
+    <arg direction="in" name="width" type="i"/>
+    <arg direction="in" name="height" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="ScrollTo">
+    <arg direction="in" name="type" type="u"/>
+  </method>
+
+  <method name="ScrollToPoint">
+    <arg direction="in" name="type" type="u"/>
+    <arg direction="in" name="x" type="i"/>
+    <arg direction="in" name="y" type="i"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/DeviceEventController.xml b/gtk/a11y/atspi/DeviceEventController.xml
new file mode 100644
index 0000000000..0af9aac27f
--- /dev/null
+++ b/gtk/a11y/atspi/DeviceEventController.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.DeviceEventController">
+
+  <method name="RegisterKeystrokeListener">
+    <arg direction="in" name="listener" type="o"/>
+    <arg direction="in" name="keys" type="a(iisi)">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="QSpiKeyTypeArray"/>
+    </arg>
+    <arg direction="in" name="mask" type="u"/>
+    <arg direction="in" name="type" type="au">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In3" value="QSpiEventTypeArray"/>
+    </arg>
+    <arg direction="in" name="mode" type="(bbb)">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In4" value="QSpiEventMode"/>
+    </arg>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="DeregisterKeystrokeListener">
+    <arg direction="in" name="listener" type="o"/>
+    <arg direction="in" name="keys" type="a(iisi)">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="QSpiKeyTypeArray"/>
+    </arg>
+    <arg direction="in" name="mask" type="u"/>
+    <arg direction="in" name="type" type="u"/>
+  </method>
+
+  <method name="RegisterDeviceEventListener">
+    <arg direction="in" name="listener" type="o"/>
+    <arg direction="in" name="types" type="u"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="DeregisterDeviceEventListener">
+    <arg direction="in" name="listener" type="o"/>
+    <arg direction="in" name="types" type="u"/>
+  </method>
+
+  <method name="GenerateKeyboardEvent">
+    <arg direction="in" name="keycode" type="i"/>
+    <arg direction="in" name="keystring" type="s"/>
+    <arg direction="in" name="type" type="u"/>
+  </method>
+
+  <method name="GenerateMouseEvent">
+    <arg direction="in" name="x" type="i"/>
+    <arg direction="in" name="y" type="i"/>
+    <arg direction="in" name="eventName" type="s"/>
+  </method>
+
+  <method name="NotifyListenersSync">
+    <arg direction="in" name="event" type="(uiuuisb)"/>
+    <arg direction="out" type="b"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiDeviceEvent"/>
+  </method>
+
+  <method name="NotifyListenersAsync">
+    <arg direction="in" name="event" type="(uiuuisb)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiDeviceEvent"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/DeviceEventListener.xml b/gtk/a11y/atspi/DeviceEventListener.xml
new file mode 100644
index 0000000000..a6dd3b60c8
--- /dev/null
+++ b/gtk/a11y/atspi/DeviceEventListener.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.DeviceEventListener">
+
+  <method name="NotifyEvent">
+    <arg direction="in" name="event" type="(uiuuisb)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiDeviceEvent"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Document.xml b/gtk/a11y/atspi/Document.xml
new file mode 100644
index 0000000000..d12a3060ca
--- /dev/null
+++ b/gtk/a11y/atspi/Document.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Document">
+
+  <property name="CurrentPageNumber" type="i" access="read"/>
+
+  <property name="PageCount" type="i" access="read"/>
+
+  <method name="GetLocale">
+    <arg direction="out" type="s"/>
+  </method>
+
+  <method name="GetAttributeValue">
+    <arg direction="in" name="attributename" type="s"/>
+    <arg direction="out" type="s"/>
+  </method>
+
+  <method name="GetAttributes">
+    <arg direction="out" type="{ss}"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiAttrubutes"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/EditableText.xml b/gtk/a11y/atspi/EditableText.xml
new file mode 100644
index 0000000000..09f62f5aa7
--- /dev/null
+++ b/gtk/a11y/atspi/EditableText.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.EditableText">
+
+  <method name="SetTextContents">
+    <arg direction="in" name="newContents" type="s"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="InsertText">
+    <arg direction="in" name="position" type="i"/>
+    <arg direction="in" name="text" type="s"/>
+    <arg direction="in" name="length" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="CopyText">
+    <arg direction="in" name="startPos" type="i"/>
+    <arg direction="in" name="endPos" type="i"/>
+  </method>
+
+  <method name="CutText">
+    <arg direction="in" name="startPos" type="i"/>
+    <arg direction="in" name="endPos" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="DeleteText">
+    <arg direction="in" name="startPos" type="i"/>
+    <arg direction="in" name="endPos" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="PasteText">
+    <arg direction="in" name="position" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Event.xml b/gtk/a11y/atspi/Event.xml
new file mode 100644
index 0000000000..fac67deb05
--- /dev/null
+++ b/gtk/a11y/atspi/Event.xml
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+
+<interface name="org.a11y.atspi.Event.Object">
+       <signal name="PropertyChange"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="BoundsChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="LinkSelected"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="StateChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="ChildrenChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="VisibleDataChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="SelectionChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="ModelChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="ActiveDescendantChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="RowInserted"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="RowReordered"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="RowDeleted"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="ColumnInserted"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="ColumnReordered"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="ColumnDeleted"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="TextBoundsChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="TextSelectionChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="TextChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="TextAttributesChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="TextCaretMoved"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="AttributesChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+</interface>
+
+<interface name="org.a11y.atspi.Event.Window">
+       <signal name="PropertyChange"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Minimize"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Maximize"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Restore"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Close"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Create"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Reparent"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="DesktopCreate"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="DesktopDestroy"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Destroy"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Activate"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Deactivate"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Raise"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Lower"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Move"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Resize"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Shade"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="uUshade"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Restyle"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+</interface>
+
+<interface name="org.a11y.atspi.Event.Mouse">
+       <signal name="Abs"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Rel"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Button"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+</interface>
+
+<interface name="org.a11y.atspi.Event.Keyboard">
+       <signal name="Modifiers"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+</interface>
+
+<interface name="org.a11y.atspi.Event.Terminal">
+       <signal name="LineChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="ColumncountChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="LinecountChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="ApplicationChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="CharwidthChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+</interface>
+
+<interface name="org.a11y.atspi.Event.Document">
+       <signal name="LoadComplete"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="Reload"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="LoadStopped"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="ContentChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="AttributesChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+       <signal name="PageChanged"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+</interface>
+
+<interface name="org.a11y.atspi.Event.Focus">
+       <signal name="Focus"><arg direction="in" type="(suuv)"/>
+          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
+        </signal>
+</interface>
+
+</node>
diff --git a/gtk/a11y/atspi/Hyperlink.xml b/gtk/a11y/atspi/Hyperlink.xml
new file mode 100644
index 0000000000..75f809931f
--- /dev/null
+++ b/gtk/a11y/atspi/Hyperlink.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Hyperlink">
+
+  <property name="NAnchors" type="n" access="read"/>
+
+  <property name="StartIndex" type="i" access="read"/>
+
+  <property name="EndIndex" type="i" access="read"/>
+
+  <method name="GetObject">
+    <arg direction="in" name="i" type="i"/>
+    <arg direction="out" type="(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
+  </method>
+
+  <method name="GetURI">
+    <arg direction="in" name="i" type="i"/>
+    <arg direction="out" type="s"/>
+  </method>
+
+  <method name="IsValid">
+    <arg direction="out" type="b"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Hypertext.xml b/gtk/a11y/atspi/Hypertext.xml
new file mode 100644
index 0000000000..18a3b342a8
--- /dev/null
+++ b/gtk/a11y/atspi/Hypertext.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Hypertext">
+
+  <method name="GetNLinks">
+    <arg direction="out" type="i"/>
+  </method>
+
+  <method name="GetLink">
+    <arg direction="in" name="linkIndex" type="i"/>
+    <arg direction="out" type="(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
+  </method>
+
+  <method name="GetLinkIndex">
+    <arg direction="in" name="characterIndex" type="i"/>
+    <arg direction="out" type="i"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Image.xml b/gtk/a11y/atspi/Image.xml
new file mode 100644
index 0000000000..43536ee956
--- /dev/null
+++ b/gtk/a11y/atspi/Image.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Image">
+
+  <property name="ImageDescription" type="s" access="read"/>
+
+  <property name="ImageLocale" type="s" access="read"/>
+
+  <method name="GetImageExtents">
+    <arg direction="in" name="coordType" type="u"/>
+    <arg direction="out" type="(iiii)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiRect"/>
+  </method>
+
+  <method name="GetImagePosition">
+    <arg direction="out" name="x" type="i"/>
+    <arg direction="out" name="y" type="i"/>
+    <arg direction="in" name="coordType" type="u"/>
+  </method>
+
+  <method name="GetImageSize">
+    <arg direction="out" name="width" type="i"/>
+    <arg direction="out" name="height" type="i"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Registry.xml b/gtk/a11y/atspi/Registry.xml
new file mode 100644
index 0000000000..a3ab93c3c2
--- /dev/null
+++ b/gtk/a11y/atspi/Registry.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Registry">
+
+  <method name="RegisterEvent">
+    <arg direction="in" name="event" type="s">
+    </arg>
+  </method>
+
+  <method name="DeregisterEvent">
+    <arg direction="in" name="event" type="s">
+    </arg>
+  </method>
+
+  <method name="GetRegisteredEvents">
+    <arg direction="out" name="events" type="a(ss)">
+    </arg>
+  </method>
+
+  <signal name="EventListenerRegistered">
+    <arg direction="out" name="bus" type="s"/>
+    <arg direction="out" name="path" type="s"/>
+  </signal>
+
+  <signal name="EventListenerDeregistered">
+    <arg direction="out" name="bus" type="s"/>
+    <arg direction="out" name="path" type="s"/>
+  </signal>
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Selection.xml b/gtk/a11y/atspi/Selection.xml
new file mode 100644
index 0000000000..2e1918757a
--- /dev/null
+++ b/gtk/a11y/atspi/Selection.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Selection">
+
+  <property name="NSelectedChildren" type="i" access="read"/>
+
+  <method name="GetSelectedChild">
+    <arg direction="in" name="selectedChildIndex" type="i"/>
+    <arg direction="out" type="(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
+  </method>
+
+  <method name="SelectChild">
+    <arg direction="in" name="childIndex" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="DeselectSelectedChild">
+    <arg direction="in" name="selectedChildIndex" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="IsChildSelected">
+    <arg direction="in" name="childIndex" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="SelectAll">
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="ClearSelection">
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="DeselectChild">
+    <arg direction="in" name="childIndex" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Socket.xml b/gtk/a11y/atspi/Socket.xml
new file mode 100644
index 0000000000..8da9948833
--- /dev/null
+++ b/gtk/a11y/atspi/Socket.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Socket">
+
+  <method name="Embed">
+    <arg direction="in" name="plug" type="(so)">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiObjectReference"/>
+    </arg>
+    <arg direction="out" name="socket" type="(so)">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
+    </arg>
+  </method>
+
+  <method name="Unembed">
+    <arg direction="in" name="plug" type="(so)">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiObjectReference"/>
+    </arg>
+  </method>
+
+  <signal name="Available">
+    <arg direction="in" name="socket" type="(so)">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QSpiObjectReference"/>
+    </arg>
+  </signal>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Table.xml b/gtk/a11y/atspi/Table.xml
new file mode 100644
index 0000000000..181acaa6af
--- /dev/null
+++ b/gtk/a11y/atspi/Table.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Table">
+
+  <property name="NRows" type="i" access="read"/>
+
+  <property name="NColumns" type="i" access="read"/>
+
+  <property name="Caption" type="(so)" access="read">
+    <annotation name="com.trolltech.QtDBus.QtTypeName" value="QSpiObjectReference"/>
+  </property>
+
+  <property name="Summary" type="(so)" access="read">
+    <annotation name="com.trolltech.QtDBus.QtTypeName" value="QSpiObjectReference"/>
+  </property>
+
+  <property name="NSelectedRows" type="i" access="read"/>
+
+  <property name="NSelectedColumns" type="i" access="read"/>
+
+  <method name="GetAccessibleAt">
+    <arg direction="in" name="row" type="i"/>
+    <arg direction="in" name="column" type="i"/>
+    <arg direction="out" type="(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
+  </method>
+
+  <method name="GetIndexAt">
+    <arg direction="in" name="row" type="i"/>
+    <arg direction="in" name="column" type="i"/>
+    <arg direction="out" type="i"/>
+  </method>
+
+  <method name="GetRowAtIndex">
+    <arg direction="in" name="index" type="i"/>
+    <arg direction="out" type="i"/>
+  </method>
+
+  <method name="GetColumnAtIndex">
+    <arg direction="in" name="index" type="i"/>
+    <arg direction="out" type="i"/>
+  </method>
+
+  <method name="GetRowDescription">
+    <arg direction="in" name="row" type="i"/>
+    <arg direction="out" type="s"/>
+  </method>
+
+  <method name="GetColumnDescription">
+    <arg direction="in" name="column" type="i"/>
+    <arg direction="out" type="s"/>
+  </method>
+
+  <method name="GetRowExtentAt">
+    <arg direction="in" name="row" type="i"/>
+    <arg direction="in" name="column" type="i"/>
+    <arg direction="out" type="i"/>
+  </method>
+
+  <method name="GetColumnExtentAt">
+    <arg direction="in" name="row" type="i"/>
+    <arg direction="in" name="column" type="i"/>
+    <arg direction="out" type="i"/>
+  </method>
+
+  <method name="GetRowHeader">
+    <arg direction="in" name="row" type="i"/>
+    <arg direction="out" type="(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
+  </method>
+
+  <method name="GetColumnHeader">
+    <arg direction="in" name="column" type="i"/>
+    <arg direction="out" type="(so)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
+  </method>
+
+  <method name="GetSelectedRows">
+    <arg direction="out" type="ai"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiIntList"/>
+  </method>
+
+  <method name="GetSelectedColumns">
+    <arg direction="out" type="ai"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiIntList"/>
+  </method>
+
+  <method name="IsRowSelected">
+    <arg direction="in" name="row" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="IsColumnSelected">
+    <arg direction="in" name="column" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="IsSelected">
+    <arg direction="in" name="row" type="i"/>
+    <arg direction="in" name="column" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="AddRowSelection">
+    <arg direction="in" name="row" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="AddColumnSelection">
+    <arg direction="in" name="column" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="RemoveRowSelection">
+    <arg direction="in" name="row" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="RemoveColumnSelection">
+    <arg direction="in" name="column" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="GetRowColumnExtentsAtIndex">
+    <arg direction="in" name="index" type="i"/>
+    <arg direction="out" type="b"/>
+    <arg direction="out" name="row" type="i"/>
+    <arg direction="out" name="col" type="i"/>
+    <arg direction="out" name="row_extents" type="i"/>
+    <arg direction="out" name="col_extents" type="i"/>
+    <arg direction="out" name="is_selected" type="b"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/TableCell.xml b/gtk/a11y/atspi/TableCell.xml
new file mode 100644
index 0000000000..c60a074fd4
--- /dev/null
+++ b/gtk/a11y/atspi/TableCell.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.TableCell">
+
+  <property access="read" name="ColumnSpan" type="i" />
+
+  <property access="read" name="Position" type="(ii)" />
+
+  <property access="read" name="RowSpan" type="i" />
+
+  <property access="read" name="Table" type="(so)" />
+
+  <method name="GetRowColumnSpan">
+    <arg direction="out" type="b" />
+    <arg direction="out" name="row" type="i" />
+    <arg direction="out" name="col" type="i" />
+    <arg direction="out" name="row_extents" type="i" />
+    <arg direction="out" name="col_extents" type="i" />
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Text.xml b/gtk/a11y/atspi/Text.xml
new file mode 100644
index 0000000000..313131e6f8
--- /dev/null
+++ b/gtk/a11y/atspi/Text.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Text">
+
+  <property name="CharacterCount" type="i" access="read"/>
+
+  <property name="CaretOffset" type="i" access="read"/>
+
+  <method name="GetStringAtOffset">
+    <arg direction="in" name="offset" type="i"/>
+    <arg direction="in" name="granularity" type="u"/>
+    <arg direction="out" type="s"/>
+    <arg direction="out" name="startOffset" type="i"/>
+    <arg direction="out" name="endOffset" type="i"/>
+  </method>
+
+  <method name="GetText">
+    <arg direction="in" name="startOffset" type="i"/>
+    <arg direction="in" name="endOffset" type="i"/>
+    <arg direction="out" type="s"/>
+  </method>
+
+  <method name="SetCaretOffset">
+    <arg direction="in" name="offset" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="GetTextBeforeOffset">
+    <arg direction="in" name="offset" type="i"/>
+    <arg direction="in" name="type" type="u"/>
+    <arg direction="out" type="s"/>
+    <arg direction="out" name="startOffset" type="i"/>
+    <arg direction="out" name="endOffset" type="i"/>
+  </method>
+
+  <method name="GetTextAtOffset">
+    <arg direction="in" name="offset" type="i"/>
+    <arg direction="in" name="type" type="u"/>
+    <arg direction="out" type="s"/>
+    <arg direction="out" name="startOffset" type="i"/>
+    <arg direction="out" name="endOffset" type="i"/>
+  </method>
+
+  <method name="GetTextAfterOffset">
+    <arg direction="in" name="offset" type="i"/>
+    <arg direction="in" name="type" type="u"/>
+    <arg direction="out" type="s"/>
+    <arg direction="out" name="startOffset" type="i"/>
+    <arg direction="out" name="endOffset" type="i"/>
+  </method>
+
+  <method name="GetCharacterAtOffset">
+    <arg name="offset" type="i" direction="in"/>
+    <arg type="i" direction="out"/>
+  </method>
+
+  <method name="GetAttributeValue">
+    <arg direction="in" name="offset" type="i"/>
+    <arg direction="in" name="attributeName" type="s"/>
+    <arg direction="out" type="s"/>
+  </method>
+
+  <method name="GetAttributes">
+    <arg direction="in" name="offset" type="i"/>
+    <arg direction="out" type="a{ss}"/>
+    <arg direction="out" name="startOffset" type="i"/>
+    <arg direction="out" name="endOffset" type="i"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiAttributeSet"/>
+  </method>
+
+  <method name="GetDefaultAttributes">
+    <arg direction="out" type="a{ss}"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiAttributeSet"/>
+  </method>
+
+  <method name="GetCharacterExtents">
+    <arg direction="in" name="offset" type="i"/>
+    <arg direction="out" name="x" type="i"/>
+    <arg direction="out" name="y" type="i"/>
+    <arg direction="out" name="width" type="i"/>
+    <arg direction="out" name="height" type="i"/>
+    <arg direction="in" name="coordType" type="u"/>
+  </method>
+
+  <method name="GetOffsetAtPoint">
+    <arg direction="in" name="x" type="i"/>
+    <arg direction="in" name="y" type="i"/>
+    <arg direction="in" name="coordType" type="u"/>
+    <arg direction="out" type="i"/>
+  </method>
+
+  <method name="GetNSelections">
+    <arg direction="out" type="i"/>
+  </method>
+
+  <method name="GetSelection">
+    <arg direction="in" name="selectionNum" type="i"/>
+    <arg direction="out" name="startOffset" type="i"/>
+    <arg direction="out" name="endOffset" type="i"/>
+  </method>
+
+  <method name="AddSelection">
+    <arg direction="in" name="startOffset" type="i"/>
+    <arg direction="in" name="endOffset" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="RemoveSelection">
+    <arg direction="in" name="selectionNum" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="SetSelection">
+    <arg direction="in" name="selectionNum" type="i"/>
+    <arg direction="in" name="startOffset" type="i"/>
+    <arg direction="in" name="endOffset" type="i"/>
+    <arg direction="out" type="b"/>
+  </method>
+
+  <method name="GetRangeExtents">
+    <arg direction="in" name="startOffset" type="i"/>
+    <arg direction="in" name="endOffset" type="i"/>
+    <arg direction="out" name="x" type="i"/>
+    <arg direction="out" name="y" type="i"/>
+    <arg direction="out" name="width" type="i"/>
+    <arg direction="out" name="height" type="i"/>
+    <arg direction="in" name="coordType" type="u"/>
+  </method>
+
+  <method name="GetBoundedRanges">
+    <arg direction="in" name="x" type="i"/>
+    <arg direction="in" name="y" type="i"/>
+    <arg direction="in" name="width" type="i"/>
+    <arg direction="in" name="height" type="i"/>
+    <arg direction="in" name="coordType" type="u"/>
+    <arg direction="in" name="xClipType" type="u"/>
+    <arg direction="in" name="yClipType" type="u"/>
+    <arg direction="out" type="a(iisv)"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiRangeList"/>
+  </method>
+
+  <method name="GetAttributeRun">
+    <arg direction="in" name="offset" type="i"/>
+    <arg direction="in" name="includeDefaults" type="b"/>
+    <arg direction="out" type="a{ss}"/>
+    <arg direction="out" name="startOffset" type="i"/>
+    <arg direction="out" name="endOffset" type="i"/>
+    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QSpiAttributeSet"/>
+  </method>
+
+  <method name="GetDefaultAttributeSet">
+    <arg direction="out" type="a{ss}"/>
+  </method>
+
+  <method name="ScrollSubstringTo">
+    <arg direction="in" name="startOffset" type="i"/>
+    <arg direction="in" name="endOffset" type="i"/>
+    <arg direction="in" name="type" type="u"/>
+  </method>
+
+  <method name="ScrollSubstringToPoint">
+    <arg direction="in" name="startOffset" type="i"/>
+    <arg direction="in" name="endOffset" type="i"/>
+    <arg direction="in" name="type" type="u"/>
+    <arg direction="in" name="x" type="i"/>
+    <arg direction="in" name="y" type="i"/>
+  </method>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/Value.xml b/gtk/a11y/atspi/Value.xml
new file mode 100644
index 0000000000..ccd6c7aa59
--- /dev/null
+++ b/gtk/a11y/atspi/Value.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/node">
+<interface name="org.a11y.atspi.Value">
+
+        <property name="MinimumValue" type="d" access="read"/>
+
+        <property name="MaximumValue" type="d" access="read"/>
+
+        <property name="MinimumIncrement" type="d" access="read"/>
+
+        <property name="CurrentValue" type="d" access="readwrite"/>
+
+</interface>
+</node>
diff --git a/gtk/a11y/atspi/meson.build b/gtk/a11y/atspi/meson.build
new file mode 100644
index 0000000000..05be90c2e7
--- /dev/null
+++ b/gtk/a11y/atspi/meson.build
@@ -0,0 +1,65 @@
+atspi_xml = [
+  'Accessible.xml',
+  'Action.xml',
+  'Application.xml',
+  'Cache.xml',
+  'Collection.xml',
+  'Component.xml',
+  'DeviceEventController.xml',
+  'DeviceEventListener.xml',
+  'Document.xml',
+  'EditableText.xml',
+  'Event.xml',
+  'Hyperlink.xml',
+  'Hypertext.xml',
+  'Image.xml',
+  'Registry.xml',
+  'Selection.xml',
+  'Socket.xml',
+  'Table.xml',
+  'TableCell.xml',
+  'Text.xml',
+  'Value.xml',
+]
+
+gdbus_codegen = find_program('gdbus-codegen')
+atspi_src = []
+foreach xml: atspi_xml
+  obj_name = xml.split('.').get(0)
+
+  # We cannot use gnome.gdbus_codegen() directly because we only care about
+  # the interface definitions, not the whole GTypeInterface/GObject proxy
+  # classes
+  gen_hdr = custom_target('atspi-' + obj_name.to_lower() + '-hdr',
+    input: xml,
+    output: 'atspi-' + obj_name.to_lower() + '.h',
+    command: [
+      gdbus_codegen,
+      '--interface-prefix=org.a11y.atspi',
+      '--c-namespace=Atspi',
+      '--pragma-once',
+      '--interface-info-header',
+      '--output=@OUTPUT@',
+      '@INPUT@',
+    ],
+    build_by_default: true,
+  )
+
+  gen_src = custom_target('atspi-' + obj_name.to_lower() + '-src',
+    input: xml,
+    output: 'atspi-' + obj_name.to_lower() + '.c',
+    command: [
+      gdbus_codegen,
+      '--interface-prefix=org.a11y.atspi',
+      '--c-namespace=Atspi',
+      '--interface-info-body',
+      '--output=@OUTPUT@',
+      '@INPUT@',
+    ],
+    build_by_default: true,
+  )
+
+  atspi_src += [gen_src, gen_hdr]
+endforeach
+
+gtk_a11y_src += atspi_src
diff --git a/gtk/a11y/meson.build b/gtk/a11y/meson.build
new file mode 100644
index 0000000000..b3555eff27
--- /dev/null
+++ b/gtk/a11y/meson.build
@@ -0,0 +1,10 @@
+gtk_a11y_src = []
+gtk_a11y_backends = []
+
+if os_unix
+  gtk_a11y_backends += 'atspi'
+endif
+
+if gtk_a11y_backends.contains('atspi')
+  subdir('atspi')
+endif
diff --git a/gtk/meson.build b/gtk/meson.build
index 006ac8f31e..614b4079f8 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -1,3 +1,4 @@
+subdir('a11y')
 subdir('deprecated')
 subdir('inspector')
 
@@ -961,6 +962,7 @@ gtk_gen_headers = [
 ]
 
 gtk_sources += [
+  gtk_a11y_src,
   gtk_dbus_src,
   gtk_deprecated_sources,
   inspector_sources,


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