Merge branch 'mgorse' of git+ssh://git.codethink.co.uk/git/atspi-dbus into rework
authorMark Doffman <mdoff@silver-wind.(none)>
Fri, 16 May 2008 16:36:23 +0000 (17:36 +0100)
committerMark Doffman <mdoff@silver-wind.(none)>
Fri, 16 May 2008 16:36:23 +0000 (17:36 +0100)
Conflicts:

Makefile.am
atk-adaptor/tree.c
configure.in
libspi/Makefile.am
libspi/accessible.h
libspi/introspectable.c
libspi/util.c
registryd/Makefile.am
registryd/desktop.c
registryd/deviceeventcontroller.c
registryd/deviceeventcontroller.h
registryd/registry.c
registryd/registry.h
spi-common/spi-dbus.c
xml/Accessibility_Registry.xml
xml/Makefile.am

25 files changed:
atk-adaptor/introspectable.c
atk-adaptor/tree.c
registryd/deviceeventcontroller.c
registryd/registry.c
xml/Accessibility.xml
xml/Accessibility_Event.xml [deleted file]
xml/Accessibility_Registry_Common.xml [new file with mode: 0644]
xml/Makefile.am
xml/org.freedesktop.atspi.Accessible.xml [moved from xml/Accessibility_Accessible.xml with 100% similarity]
xml/org.freedesktop.atspi.Action.xml [moved from xml/Accessibility_Action.xml with 100% similarity]
xml/org.freedesktop.atspi.Application.xml [moved from xml/Accessibility_Application.xml with 100% similarity]
xml/org.freedesktop.atspi.Component.xml [moved from xml/Accessibility_Component.xml with 100% similarity]
xml/org.freedesktop.atspi.Document.xml [moved from xml/Accessibility_Document.xml with 100% similarity]
xml/org.freedesktop.atspi.EditableText.xml [moved from xml/Accessibility_EditableText.xml with 100% similarity]
xml/org.freedesktop.atspi.Hyperlink.xml [moved from xml/Accessibility_Hyperlink.xml with 100% similarity]
xml/org.freedesktop.atspi.Hypertext.xml [moved from xml/Accessibility_Hypertext.xml with 100% similarity]
xml/org.freedesktop.atspi.Image.xml [moved from xml/Accessibility_Image.xml with 100% similarity]
xml/org.freedesktop.atspi.LoginHelper.xml [moved from xml/Accessibility_LoginHelper.xml with 100% similarity]
xml/org.freedesktop.atspi.Selection.xml [moved from xml/Accessibility_Selection.xml with 100% similarity]
xml/org.freedesktop.atspi.Selector.xml [moved from xml/Accessibility_Selector.xml with 100% similarity]
xml/org.freedesktop.atspi.StreamableContent.xml [moved from xml/Accessibility_StreamableContent.xml with 100% similarity]
xml/org.freedesktop.atspi.Table.xml [moved from xml/Accessibility_Table.xml with 100% similarity]
xml/org.freedesktop.atspi.Text.xml [moved from xml/Accessibility_Text.xml with 100% similarity]
xml/org.freedesktop.atspi.Tree.xml [moved from xml/Accessibility_Tree.xml with 100% similarity]
xml/org.freedesktop.atspi.Value.xml [moved from xml/Accessibility_Value.xml with 100% similarity]

index 4909e30..44d5eef 100644 (file)
@@ -23,8 +23,8 @@
 #include <glib.h>
 #include <accessible.h>
 
-#include "droute/droute.h"
-#include "droute/introspect-loader.h"
+#include <droute/droute.h>
+#include <droute/introspect-loader.h>
 
 /*
  * This file contains an implementation of the D-Bus introspectable interface.
@@ -112,9 +112,9 @@ static DRouteMethod methods[] = {
  * Adds the introspectable interface to the DRoute object provided
  */
 void
-spi_initialize_introspectable (DRouteData *data)
+spi_initialize_introspectable (DRouteData *data, DRouteGetDatumFunction verify_object)
 {
   droute_add_interface (data, "org.freedesktop.atspi.Introspectable",
                        methods, NULL,
-                       (DRouteGetDatumFunction) spi_dbus_get_path, NULL);
+                       verify_object, NULL);
 };
index d84cd54..ec5428c 100644 (file)
@@ -71,7 +71,7 @@ append_update (DBusMessageIter * iter_array, AtkObject * obj,
     goto oom;
   dbus_message_iter_open_container (&iter_struct, DBUS_TYPE_ARRAY, "s",
                                    &iter_sub_array);
-  for (l = data->interfaces; l; l = g_slist_next (l))
+  if (data) for (l = data->interfaces; l; l = g_slist_next (l))
     {
       DRouteInterface *iface_def = (DRouteInterface *) l->data;
       void *datum = NULL;
index 24969f5..f5d6fb6 100644 (file)
@@ -61,6 +61,7 @@
 
 #include "deviceeventcontroller.h"
 #include "reentrant-list.h"
+#include "libspi/keymasks.h"
 
 KeySym ucs2keysym (long ucs);
 long keysym2ucs(KeySym keysym); 
index 3dc13d6..92b481f 100644 (file)
 
 /* Our parent GObject type  */
 #define PARENT_TYPE G_OBJECT_TYPE
+<<<<<<< HEAD:registryd/registry.c
+=======
+
+>>>>>>> 6d509d490749c6bac3149a5ec45862352ffcf290:registryd/registry.c
 
 int _dbg = 0;
 
index 99bd824..ab697c6 100644 (file)
@@ -83,29 +83,32 @@ Boston, MA 02111-1307, USA.</p>
 
 <!-- Accessibility interfaces and subinterfaces -->
 
-<xi:include href="Accessibility_Accessible.xml"/>
-<xi:include href="Accessibility_Action.xml"/>
-<xi:include href="Accessibility_Component.xml"/>
-<xi:include href="Accessibility_Document.xml"/>
-<xi:include href="Accessibility_Hyperlink.xml"/>
-<xi:include href="Accessibility_Image.xml"/>
-<xi:include href="Accessibility_Selection.xml"/>
-<xi:include href="Accessibility_StreamableContent.xml"/>
-<xi:include href="Accessibility_Table.xml"/>
-<xi:include href="Accessibility_Text.xml"/>
-<xi:include href="Accessibility_Value.xml"/>
+<xi:include href="org.freedesktop.atspi.Accessible.xml"/>
+<xi:include href="org.freedesktop.atspi.Action.xml"/>
+<xi:include href="org.freedesktop.atspi.Component.xml"/>
+<xi:include href="org.freedesktop.atspi.Document.xml"/>
+<xi:include href="org.freedesktop.atspi.Hyperlink.xml"/>
+<xi:include href="org.freedesktop.atspi.Image.xml"/>
+<xi:include href="org.freedesktop.atspi.Selection.xml"/>
+<xi:include href="org.freedesktop.atspi.StreamableContent.xml"/>
+<xi:include href="org.freedesktop.atspi.Table.xml"/>
+<xi:include href="org.freedesktop.atspi.Text.xml"/>
+<xi:include href="org.freedesktop.atspi.Tree.xml"/>
+<xi:include href="org.freedesktop.atspi.Value.xml"/>
 
 <!-- Interfaces derived from Accessibility::Text -->
-<xi:include href="Accessibility_EditableText.xml"/>
-<xi:include href="Accessibility_Hypertext.xml"/>
+<xi:include href="org.freedesktop.atspi.EditableText.xml"/>
+<xi:include href="org.freedesktop.atspi.Hypertext.xml"/>
 <xi:include href="Accessibility_State.xml"/>
 
 <!-- Utility interfaces and interfaces derived from Accessibility::Accessible -->
 
-<xi:include href="Accessibility_Application.xml"/>
-<xi:include href="Accessibility_Event.xml"/>
-<xi:include href="Accessibility_Registry.xml"/>
+<xi:include href="org.freedesktop.atspi.Application.xml"/>
+<xi:include href="Accessibility_Registry_Common.xml"/>
+<xi:include href="org.freedesktop.atspi.Registry.xml"/>
+<xi:include href="org.freedesktop.atspi.DeviceEventController.xml"/>
+<xi:include href="org.freedesktop.atspi.DeviceEventListener.xml"/>
 <xi:include href="Accessibility_Role.xml"/>
-<xi:include href="Accessibility_LoginHelper.xml"/>
-<xi:include href="Accessibility_Selector.xml"/>
+<xi:include href="org.freedesktop.atspi.LoginHelper.xml"/>
+<xi:include href="org.freedesktop.atspi.Selector.xml"/>
 </tp:spec>
diff --git a/xml/Accessibility_Event.xml b/xml/Accessibility_Event.xml
deleted file mode 100644 (file)
index 833e427..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-<node name="/node" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
-
-<tp:title>AT-SPI - Assistive Technology Service Provider Interface </tp:title>
-<tp:copyright>Copyright 2008 Novell, Inc.</tp:copyright>
-<tp:copyright>Copyright 2001, 2002 Sun Microsystems Inc.</tp:copyright>
-<tp:license xmlns="http://www.w3.org/1999/xhtml">
-  <p>This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-    License as published by the Free Software Foundation; either
-    version 2 of the License, or (at your option) any later version.</p>
-
-  <p>This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Library General Public License for more details.</p>
-
-  <p>You should have received a copy of the GNU Library General Public
-    License along with this library; if not, write to the
-    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-    Boston, MA 02111-1307, USA.</p>
-</tp:license>
-<tp:struct name="EventDetails">
-  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
-    <p>A struct encapsulating detailed information about an Event.
-      This struct supercedes the previous use of the 'any' field 
-      in EventDetails; the content previously stored in Event::any_data
-      is now stored in EventDetails::any_data, and Event::any_data
-      points to an instance of the EventDetails structure, if
-      the object's implementation supports event detail reporting,
-      otherwise Event::any_data contains CORBA_OBJECT_NIL.  </p>
-
-    <p>@since AT-SPI 1.7.0</p>
-  </tp:docstring>
-  <tp:member type="o" tp:name="host_application"/>
-  <tp:member type="u" tp:name="source_role"/>
-  <tp:member type="s" tp:name="source_name"/>
-  <tp:member type="v" tp:name="any_data"/>
-</tp:struct>
-<tp:struct name="Event">
-  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
-    <p>A structure encapsulating information about an event
-      for which notification was requested.  Usually such notification
-      is requested via a call to Registry::registerGlobalEventListener.
-      The structure contains a colon-delimited string indicating the event
-      type, a reference to the generating Accessible, two detail fields whose
-      interpretation is event-type-specific, and a final field containing 
-      event-type-specific data.  </p>
-
-    <p>@note Since AT-SPI 1.7.0 the 'any' field contains an EventDetails
-      struct, which encapsulates additional information about the event
-      and its generating object.</p>
-  </tp:docstring>
-  <tp:member type="s" tp:name="type">
-  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
-    <p>A colon-delimited string indicating the type of the event.
-      The string can be interpreted as 
-      \c class:type:subtype
-      For instance ¨object:text-changed:insert¨ is an event 
-      from the 'Object' class, which corresponds to Accessible objects
-      general, the type of the event is a ¨text-changed¨ event (i.e. a change in the
-      content of an implementor of the Text interface), and the
-      specific subtype of the change is an insertion event.  </p>
-
-    <p>Event classes include the following:
-      \li focus:   an object has received keyboard focus.  This event has no type or subtype.
-      \li window:  a toplevel window has changed state.
-      \li object:  an object (i.e. Accessible) has undergone some change in state, content, 
-      or hierarchy
-      \li document:a change to a document's content has occurred, or its
-      content loading status has changed.
-      \li mouse:   an event originating from the pointing device.  Rarely used;
-      in most cases clients will wish to register for pointer events via
-      the DeviceEventController::registerDeviceEvent method instead.
-      \li keyboard: an event indicating that the keyboard state (for example, the
-      modifier state) has changed significantly.
-      &quot;keyboard:&quot; events are not sent for individual keystrokes except as
-      a side-effect of certain keys, for instance modifier keys.
-      Clients interested in key events should listen for DeviceEvents
-      via DeviceEventController::registerKeystrokeListener instead.  </p>
-
-    <p>@note For more information on specific event types, see the documentation for
-      each of the individual interfaces supported by some Accessible objects.  </p>
-
-    <p>@see Accessible, Component, Image, Selection, Table, Text, Value.</p>
-  </tp:docstring>
-  </tp:member>
-  <tp:member type="o" tp:name="source">
-  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
-    <p>The Accessible object which is the source of the event.  The source object is the object
-      to which the change inferred by the event emission occurs; for instance,
-      the object emitting a ¨object:parent-changed¨ event is the child, not the parent.
-      Likewise, the event source of an ¨object:children-changed:insert¨ event is the parent,
-      not the inserted child.</p>
-  </tp:docstring>
-  </tp:member>
-  <tp:member type="i" tp:name="detail1">
-  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
-    <p>An integer whose meaning is event type dependent.  It may indicate the offset of
-      text being inserted, in the case of ¨object:text-changed:insert¨, or the index of a
-      newly added child in the case of ¨object:children-changed:add¨.  
-      @note since most AT-SPI clients react to events via an asynchronous queue, for 
-      performance reasons, this field may be of limited utility unless the client maintains
-      a large client-side cache of the hierarchy and contained data.  This is because by the time
-      such an event is asynchronously processed, the state of the originating object may have 
-      changed.  In other words, the data in the detail1 member is not state-coherent outside
-      of the event handler.  More useful results are gotten by examination of the 'any_data' field.</p>
-  </tp:docstring>
-  </tp:member>
-  <tp:member type="i" tp:name="detail2">
-  <tp:docstring>
-    see description of detail2 
-  </tp:docstring>
-  </tp:member>
-  <tp:member type="v" tp:name="any_data">
-  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
-    <p>A generic storage location for event-type-specific data which provides more specific
-      information about the event; for instance, in AT-SPI versions prior to 1.7.0,
-      in the case of ¨object:text-changed:insert¨ events, this field contains a string 
-      indicating the inserted text.  </p>
-
-    <p>@note Since AT-SPI 1.7.0, the data contained in this field is an EventDetails struct.</p>
-  </tp:docstring>
-  </tp:member>
-</tp:struct>
-<interface name="org.freedesktop.atspi.EventListener">
-  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
-    <p>A generic interface implemented by objects for the 
-      receipt of event notifications.  EventListener is the interface from which 
-      Accessibility::Registry is derived, and via which clients of the Registry
-      receive notification of changes to an application's user interface and content.</p>
-  </tp:docstring>
-  <method name="notifyEvent">
-    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
-      <p>Synchronously notify an EventListener that an event has occurred, by passing it an 
-        Event struct. 
-        @param e The Event about which the listener is being notified.</p>
-    </tp:docstring>
-    <arg direction="in" name="e" type="(soiiv)" tp:type="Event"/>
-  </method>
-  <method name="unImplemented_">
-    <tp:docstring>
-      \cond 
-    </tp:docstring>
-  </method>
-  <method name="unImplemented2_">
-  </method>
-  <method name="unImplemented3_">
-  </method>
-  <method name="unImplemented4_">
-  </method>
-</interface>
-</node>
diff --git a/xml/Accessibility_Registry_Common.xml b/xml/Accessibility_Registry_Common.xml
new file mode 100644 (file)
index 0000000..e633e98
--- /dev/null
@@ -0,0 +1,291 @@
+<node name="/node" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+
+<tp:title>AT-SPI - Assistive Technology Service Provider Interface </tp:title>
+<tp:copyright>Copyright 2008 Novell, Inc.</tp:copyright>
+<tp:copyright>Copyright 2001 Sun Microsystems Inc.</tp:copyright>
+<tp:license xmlns="http://www.w3.org/1999/xhtml">
+  <p>This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.</p>
+
+  <p>This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.</p>
+
+  <p>You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the
+    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.</p>
+</tp:license>
+<tp:enum name="KeyEventType" type="u">
+  <tp:docstring>
+    Deprecated, DO NOT USE! 
+  </tp:docstring>
+  <tp:enumvalue suffix="KEY_PRESSED"/>
+  <tp:enumvalue suffix="KEY_RELEASED" value="1"/>
+</tp:enum>
+<tp:enum name="EventType" type="u">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>Used to specify the event types of interest to an EventListener, or
+      to identify the type of an event for which notification has been sent. 
+      @see EventTypeSeq, DeviceEvent::type</p>
+  </tp:docstring>
+  <tp:enumvalue suffix="KEY_PRESSED_EVENT">
+  <tp:docstring>
+    &lt; key on a keyboard device was pressed. 
+  </tp:docstring>
+  </tp:enumvalue>
+  <tp:enumvalue suffix="KEY_RELEASED_EVENT" value="1">
+  <tp:docstring>
+    &lt; key on a keyboard device was released. 
+  </tp:docstring>
+  </tp:enumvalue>
+  <tp:enumvalue suffix="BUTTON_PRESSED_EVENT" value="2">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>&lt; button on a non-keyboard human interface device 
+      (HID) was pressed </p>
+  </tp:docstring>
+  </tp:enumvalue>
+  <tp:enumvalue suffix="BUTTON_RELEASED_EVENT" value="3">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>&lt; button on a non-keyboard human interface device 
+      (HID) was pressed </p>
+  </tp:docstring>
+  </tp:enumvalue>
+</tp:enum>
+<tp:enum name="KeySynthType" type="u">
+  <tp:docstring>
+    Used when synthesizing keyboard input via DeviceEventController:generateKeyboardEvent.
+  </tp:docstring>
+  <tp:enumvalue suffix="KEY_PRESS">
+  <tp:docstring>
+    emulate the pressing of a hardware keyboard key. 
+  </tp:docstring>
+  </tp:enumvalue>
+  <tp:enumvalue suffix="KEY_RELEASE" value="1">
+  <tp:docstring>
+    emulate the release of a hardware keyboard key. 
+  </tp:docstring>
+  </tp:enumvalue>
+  <tp:enumvalue suffix="KEY_PRESSRELEASE" value="2">
+  <tp:docstring>
+    a hardware keyboard key is pressed and immediately released. 
+  </tp:docstring>
+  </tp:enumvalue>
+  <tp:enumvalue suffix="KEY_SYM" value="3">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>a symbolic key event is generated, without specifying a hardware key. 
+      @note if the keysym is not present in the current keyboard map,
+      the DeviceEventController instance has a limited ability to generate
+      such keysyms on-the-fly.  Reliability of generateKeyboardEvent calls
+      using out-of-keymap keysyms will vary from system to system, and on the
+      number of different out-of-keymap being generated in quick succession.
+      In practice this is rarely significant, since the keysyms of interest to
+      AT clients and keyboard emulators are usually part of the current keymap, i.e.
+      present on the system keyboard for the current locale (even if a physical
+      hardware keyboard is not connected.</p>
+  </tp:docstring>
+  </tp:enumvalue>
+  <tp:enumvalue suffix="KEY_STRING" value="4">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>a string is converted to its equivalent keyboard events and emitted. 
+      If the string consists of complex character or composed characters
+      which are not in the current keymap, string emission is subject to the
+      out-of-keymap limitations described for KeySynthType::KEY_SYM.
+      In practice this limitation primarily effects Chinese and Japanese locales.</p>
+  </tp:docstring>
+  </tp:enumvalue>
+</tp:enum>
+<tp:enum name="ModifierType" type="u">
+  <tp:enumvalue suffix="MODIFIER_SHIFT">
+  <tp:docstring>
+    The left or right 'Shift' key 
+  </tp:docstring>
+  </tp:enumvalue>
+  <tp:enumvalue suffix="MODIFIER_SHIFTLOCK" value="1">
+  <tp:docstring>
+    The ShiftLock or CapsLock key 
+  </tp:docstring>
+  </tp:enumvalue>
+  <tp:enumvalue suffix="MODIFIER_CONTROL" value="2">
+  <tp:docstring>
+    'Control'/'Ctrl' 
+  </tp:docstring>
+  </tp:enumvalue>
+  <tp:enumvalue suffix="MODIFIER_ALT" value="3">
+  <tp:docstring>
+    The Alt key (as opposed to AltGr) 
+  </tp:docstring>
+  </tp:enumvalue>
+  <tp:enumvalue suffix="MODIFIER_META" value="4">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>depending on the platform this may map to 'Window', 'Function', 'Meta',
+      'Menu', or 'NumLock'.  
+      Such 'Meta keys' will map to one of META, META2, META3.
+      On X Windows platforms these META values map to 
+      the modifier masks Mod1Mask, Mod2Mask, Mod3Mask, e.g. an event having
+      ModifierType::MODIFIER_META2 means that the 'Mod2Mask' bit is
+      set in the corresponding XEvent.</p>
+  </tp:docstring>
+  </tp:enumvalue>
+  <tp:enumvalue suffix="MODIFIER_META2" value="5"/>
+  <tp:enumvalue suffix="MODIFIER_META3" value="6"/>
+  <tp:enumvalue suffix="MODIFIER_NUMLOCK" value="7">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>A symbolic meta key name that is mapped by AT-SPI to the 
+      appropriate META value, for the convenience of the client.</p>
+  </tp:docstring>
+  </tp:enumvalue>
+</tp:enum>
+<tp:struct name="EventListenerMode">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>A structure that encapsulates the characteristics of the event notifications
+      that should be sent to an EventListener in response to a call to
+      DeviceEventController::registerKeystrokeListener or 
+      DeviceEventController::registerDeviceEventListener. </p>
+  </tp:docstring>
+  <tp:member type="b" tp:name="synchronous">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>&lt; If \c True, specifies that
+      DeviceEventController should block while waiting 
+      for client to process the requested event notifications; 
+      ordinarily should be used only when client needs to perform
+      operations synchronously with event delivery. Note that because
+      of the architecture of device event systems in general,
+      use of this flag may not block delivery of the event to 
+      the currently focussed application unless it is used in 
+      conjunction with the preemptive flag. </p>
+  </tp:docstring>
+  </tp:member>
+  <tp:member type="b" tp:name="preemptive">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>&lt; If \c True, specifies that 
+      Listener is allowed to pre-empt the delivery of the event,
+      effectively &quot;consuming&quot; it such that it is not delivered 
+      to the currently focussed desktop application. 
+      Key events consumed via this API will not be 
+      available for use by other applications or services, so this
+      option should be used sparingly. </p>
+  </tp:docstring>
+  </tp:member>
+  <tp:member type="b" tp:name="global">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>&lt; If \c True, specifies that
+      Event notifications should be sent regardless of whether the
+      currently focussed application participates in the AT-SPI 
+      infrastructure.  On systems with the XEvIE X extension, this flag
+      also allows access to events which are already subject to 
+      interception via a &quot;system keygrab&quot; (as described in the X Window System
+      documentation for XGrabKey).  The 'global' and 'preemptive' flags
+      should only be used together for the purposes of registering
+      &quot;system global key shortcuts&quot; i.e. command keys for use by the
+      assistive technology. </p>
+  </tp:docstring>
+  </tp:member>
+</tp:struct>
+<tp:struct name="DeviceEvent">
+  <tp:docstring>
+    A structure which encapsulates information about a device event. 
+  </tp:docstring>
+  <tp:member type="u" tp:name="type">
+  <tp:docstring>
+    &lt; Identifies the type of the containing DeviceEvent. 
+  </tp:docstring>
+  </tp:member>
+  <tp:member type="i" tp:name="id">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>&lt; an identifier which identifies this event in the event stream. 
+      On X Window systems this corresponds to the XEvent serial number.</p>
+  </tp:docstring>
+  </tp:member>
+  <tp:member type="n" tp:name="hw_code">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>&lt; a numeric code which is hardware and system-dependent, identifying the
+      specific hardware button or key on the device for which the event has
+      occurred. On X Window systems, for global key notifications and for most
+      non-global key notifications as well, this code corresponds to the
+      XKeycode.  For switch and button events it indicates the switch
+      or button number.
+      @note
+      For technical reasons, this code may differ from the XKeycode
+      when generated by Java applications for consumption by non-global
+      key listeners.  This is subject to change in future versions of the
+      DeviceEventController implementation.</p>
+  </tp:docstring>
+  </tp:member>
+  <tp:member type="n" tp:name="modifiers">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>&lt; an unsigned short int consisting of zero or more of the following
+      values OR'ed together:
+      \li \c 1&lt;&lt;::MODIFIER_SHIFT   (=1, corresponds to Xlib's ShiftMask)
+      \li \c 1&lt;&lt;::MODIFIER_SHIFTLOCK    (=2, corresponds to Xlib's LockMask)
+      \li \c 1&lt;&lt;::MODIFIER_CONTROL (=4, corresponds to Xlib's ControlMask)
+      \li \c 1&lt;&lt;::MODIFIER_ALT    (=8, corresponds to Xlib's Mod1Mask)
+      \li \c 1&lt;&lt;::MODIFIER_META    (=16, corresponds to Xlib's Mod2Mask)
+      \li \c 1&lt;&lt;::MODIFIER_META2    (=32, corresponds to Xlib's Mod3Mask)
+      \li \c 1&lt;&lt;::MODIFIER_META3    (=64, corresponds to Xlib's Mod4Mask)</p>
+  </tp:docstring>
+  </tp:member>
+  <tp:member type="i" tp:name="timestamp">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>&lt; an unsigned integer representing the time that the 
+      event occurred.  On X Window systems this event is 
+      a time in milliseconds from some arbitrary starting
+      point; it therefore has a cycle time of approximately
+      50 days.</p>
+  </tp:docstring>
+  </tp:member>
+  <tp:member type="s" tp:name="event_string">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>&lt; A string representation of the event.  If is_text is
+      \c True, then this string represents the character or typographic
+      sequence that would be received by a focussed text input field.
+      event_string is in general suitable for exposure to the
+      end-user for purposes of keyboard echo.</p>
+  </tp:docstring>
+  </tp:member>
+  <tp:member type="b" tp:name="is_text">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>&lt; \c True if the event results in the insertion of characters 
+      into an input text buffer, or would do so if delivered to a focussed
+      text input field. ¨Typographical¨ key events have this field set to
+      \c True, whereas ¨control¨ key events generally do not.</p>
+  </tp:docstring>
+  </tp:member>
+</tp:struct>
+<tp:struct name="KeyDefinition">
+  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+    <p>A structure which defines the identity of a key for which notifications
+      are to be requested.  The data in the members of a ::KeyDefinition are used to
+      determine which keyboard events 'match' the notification request filed by a client.  </p>
+
+    <p>@note Ordinarily a KeyDefinition specifies one and only one of the criteria below; 
+      the result of using a KeyDefinition with multiple members defined as nonzero is
+      undefined.  </p>
+
+    <p>@param keycode if nonzero, the numeric, system-dependent value corresponding to a 
+      physical key on the keyboard.  Keycode values have no semantic meaning to the end-user,
+      and may depend on the user's hardware and operating environment.  They therefore are
+      rarely useful &quot;as-is&quot; to AT clients, unless the client has used operating system
+      services to identify the hardward keycode associated with a particular key symbol.
+      Notifications for key events requested by keycode are less dependent on modifier state
+      than \c keysym based notifications, but some hardware (notably many laptops) may generate
+      more than one keycode for the same physical key, depending on the state of physical 
+      shift/modifier keys.
+      @param keysym if nonzero, the numeric value corresponding to the X Keysym of the key for which 
+      notification is requested.  Note that the presence of active modifiers will affect
+      whether notification for key events requested via &quot;keysym&quot; specification takes place, 
+      since the keysym depends on the modifier state for most keys.
+      @param keystring if non-NULL, the string value of the inserted characters if the corresponding
+      key event has ::KeyEvent:is_text set to \c True, or the string representing the
+      'name' of the key.  On X11 systems, the string 'name' of non-printing keysyms corresponds
+      to the values in &quot;keysymdef.h&quot; as provided by Xlib, with the leading &quot;XK_&quot; stripped off.</p>
+  </tp:docstring>
+  <tp:member type="i" tp:name="keycode"/>
+  <tp:member type="i" tp:name="keysym"/>
+  <tp:member type="s" tp:name="keystring"/>
+  <tp:member type="i" tp:name="unused"/>
+</tp:struct>
+</node>
index 22eb2b5..64b9207 100644 (file)
@@ -1,30 +1,41 @@
-XML= \
+XML_SPEC= \
        Accessibility.xml \
-       Accessibility_Accessible.xml \
-       Accessibility_Action.xml \
-       Accessibility_Application.xml \
-       Accessibility_Component.xml \
-       Accessibility_Document.xml \
-       Accessibility_EditableText.xml \
-       Accessibility_Event.xml \
-       Accessibility_Hyperlink.xml \
-       Accessibility_Hypertext.xml \
-       Accessibility_Image.xml \
-       Accessibility_LoginHelper.xml \
-       Accessibility_Registry.xml \
+       org.freedesktop.atspi.Accessible.xml \
+       org.freedesktop.atspi.Action.xml \
+       org.freedesktop.atspi.Application.xml \
+       org.freedesktop.atspi.Component.xml \
+       org.freedesktop.atspi.Document.xml \
+       org.freedesktop.atspi.EditableText.xml \
+       org.freedesktop.atspi.Hyperlink.xml \
+       org.freedesktop.atspi.Hypertext.xml \
+       org.freedesktop.atspi.Image.xml \
+       org.freedesktop.atspi.LoginHelper.xml \
+       Accessibility_Registry_Common.xml \
+       org.freedesktop.atspi.Registry.xml \
+       org.freedesktop.atspi.DeviceEventController.xml \
+       org.freedesktop.atspi.DeviceEventListener.xml \
        Accessibility_Role.xml \
-       Accessibility_Selection.xml \
-       Accessibility_Selector.xml \
+       org.freedesktop.atspi.Selection.xml \
+       org.freedesktop.atspi.Selector.xml \
        Accessibility_State.xml \
-       Accessibility_StreamableContent.xml \
-       Accessibility_Table.xml \
-       Accessibility_Text.xml \
-       Accessibility_Value.xml
+       org.freedesktop.atspi.StreamableContent.xml \
+       org.freedesktop.atspi.Table.xml \
+       org.freedesktop.atspi.Text.xml \
+       org.freedesktop.atspi.Tree.xml \
+       org.freedesktop.atspi.Value.xml
 
-spec.xml: $(XML)
+spec.xml: $(XML_SPEC)
        xsltproc --xinclude $(top_srcdir)/tools/identity.xsl $< >$@
 
-EXTRA_DIST = $(XML)
+EXTRA_DIST = $(XML_SPEC)
 
 BUILT_SOURCES = spec.xml
 CLEANFILES = spec.xml
+
+INTROSPECT_FILES = $(addprefix introspection/,$(patsubst %.xml,%,$(filter org.freedesktop.atspi%,$(XML_SPEC))))
+
+$(INTROSPECT_FILES): introspection/%: %.xml ../tools/spec-to-introspect.xsl
+       xsltproc ../tools/spec-to-introspect.xsl $< |sed -e 's@xmlns:tp="http://telepathy\.freedesktop\.org/wiki/DbusSpec.extensions-v0"@@g' >$@
+
+introspectdir = $(pkgdatadir)/dbus
+dist_introspect_DATA = $(INTROSPECT_FILES)