Initial commit.
[platform/core/uifw/at-spi2-atk.git] / xml / Accessibility_Registry.xml
1 <node name="/node" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
2
3 <tp:title>AT-SPI - Assistive Technology Service Provider Interface </tp:title>
4 <tp:copyright>Copyright 2008 Novell, Inc.</tp:copyright>
5 <tp:copyright>Copyright 2001 Sun Microsystems Inc.</tp:copyright>
6 <tp:license xmlns="http://www.w3.org/1999/xhtml">
7   <p>This library is free software; you can redistribute it and/or
8     modify it under the terms of the GNU Library General Public
9     License as published by the Free Software Foundation; either
10     version 2 of the License, or (at your option) any later version.</p>
11
12   <p>This library is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15     Library General Public License for more details.</p>
16
17   <p>You should have received a copy of the GNU Library General Public
18     License along with this library; if not, write to the
19     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20     Boston, MA 02111-1307, USA.</p>
21 </tp:license>
22 <interface name="org.freedesktop.accessibility.Registry">
23   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
24     <p>The Registry is a service through which applications providing 
25       accessibility services (servers) can rendezvous with consumers of those
26       services (Assistive Technologies).  The Registry is the first &quot;port of call&quot; for 
27       accessible applications and for assistive technologies wishing to query and
28       interact with those applications.  </p>
29
30     <p>The Registry service provides four basic functions to Assistive Technology (AT) clients:
31       \li it provides a list of the applications who have registered with the AT-SPI
32       framework, thereby announcing their participation in the AT-SPI framework;
33       \li it allows AT clients to register for notification of changes in application
34       state (at-spi Events);
35       \li it dispatches/relays said events from participating applications to
36       the registered listeners;
37       \li it gives access to system device events via the associated DeviceEventController
38       interface.  </p>
39
40     <p>From the point of view of accessible applications (i.e. AT-SPI service producers), 
41       the Registry is primarily a registration and event delivery service.  Applications 
42       normally only call the registerApplication and deregisterApplication Registry methods,
43       and its inherited EventListener::notifyEvent method.  </p>
44
45     <p>@note Although all application events are dispatched via the Registry, other AT client 
46       calls are serviced directly by the applications, rather than being relayed via the
47       Registry.  The AT client obtains references to these application objects
48       via the enumeration of Desktop instances whose children are Application instances
49       (Registry::getDesktopList) and via examination of the 'source' member of the Event 
50       structure.   </p>
51
52     <p>The Registry normally lives in its own process space; communication via Registry and
53       both application services and AT clients takes place via IPC.  A process space diagram
54       illustrating the relationship between applications, Registry, and AT is shown below.
55       @image html &quot;http://developer.gnome.org/projects/gap/tech-docs/SPIBlockDiagram.png&quot;  </p>
56
57     <p>@see Desktop, Application, Event, EventListener</p>
58   </tp:docstring>
59   <method name="registerApplication">
60     <tp:docstring>
61       Register a new application with the accessibility broker.
62     </tp:docstring>
63     <arg direction="in" name="app" type="o" tp:type="Application">
64     <tp:docstring>
65       a reference to the requesting Application
66     </tp:docstring>
67     </arg>
68   </method>
69   <method name="deregisterApplication">
70     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
71       <p>De-register an application previously registered with the broker.
72         deregisterApplication:</p>
73     </tp:docstring>
74     <arg direction="in" name="app" type="o" tp:type="Application">
75     <tp:docstring>
76       a reference to the Application to be deregistered.
77     </tp:docstring>
78     </arg>
79   </method>
80   <method name="registerGlobalEventListener">
81     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
82       <p>Register a client's interest in (all) application events of 
83         a certain type.</p>
84     </tp:docstring>
85     <arg direction="in" name="listener" type="o" tp:type="EventListener">
86     <tp:docstring>
87       a reference to the requesting ::EventListener.
88     </tp:docstring>
89     </arg>
90     <arg direction="in" name="eventName" type="s">
91     <tp:docstring>
92       a string which indicates the type of events about which the client desires notification.
93     </tp:docstring>
94     </arg>
95   </method>
96   <method name="deregisterGlobalEventListenerAll">
97     <tp:docstring>
98       deregisterGlobalEventListenerAll:
99     </tp:docstring>
100     <arg direction="in" name="listener" type="o" tp:type="EventListener">
101     <tp:docstring>
102       the requesting EventListenerRequest that a previously registered client stop receivingglobal notifications for all events for which it was registered.
103     </tp:docstring>
104     </arg>
105   </method>
106   <method name="deregisterGlobalEventListener">
107     <tp:docstring>
108       deregisterGlobalEventListener:
109     </tp:docstring>
110     <arg direction="in" name="listener" type="o" tp:type="EventListener">
111     <tp:docstring>
112       the requesting EventListener
113     </tp:docstring>
114     </arg>
115     <arg direction="in" name="eventName" type="s">
116     <tp:docstring>
117       a string indicating the type of eventsRequest that a previously registered client stop receivingglobal notifications for events of a certain type.
118     </tp:docstring>
119     </arg>
120   </method>
121   <method name="getDesktopCount">
122     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
123       <p>event types: &quot;Window&quot; &quot;Desktop&quot;
124         &quot;Window:Create&quot; &quot;Window:Destroy&quot;
125         &quot;Window:Iconify&quot; &quot;Window:Restore&quot;
126         &quot;Window:Fullscreen&quot; &quot;Window:Resize&quot;
127         &quot;Desktop:Create&quot; &quot;Desktop:Destroy&quot;  
128         &quot;Desktop:Focus&quot; &quot;Desktop:Defocus&quot;
129         &quot;Desktop:Reorder&quot; 
130         &quot;Focus&quot;
131         &quot;GtkWidget:show&quot;
132         &quot;GObject:notify:&lt;propertyname&gt;&quot;     </p>
133
134       <p>( not sure we should allow these last 2 forms, 
135         since they are toolkit-specific, but they're powerful )    </p>
136
137       <p>getDesktopCount:    </p>
138
139       <p>Get the current number of desktops.</p>
140     </tp:docstring>
141     <arg direction="out" type="n" tp:type="short">
142     <tp:docstring>
143       a short integer indicating the current number of Desktops.
144     </tp:docstring>
145     </arg>
146   </method>
147   <method name="getDesktop">
148     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
149       <p>getDesktop:
150         @n: the index of the requested Desktop.    </p>
151
152       <p>Get the nth accessible desktop.     </p>
153     </tp:docstring>
154     <arg direction="in" name="n" type="n" tp:type="short"/>
155     <arg direction="out" type="o" tp:type="Desktop">
156     <tp:docstring>
157       a reference to the requested Desktop.
158     </tp:docstring>
159     </arg>
160   </method>
161   <method name="getDesktopList">
162     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
163       <p>Get a list of accessible desktops.     </p>
164     </tp:docstring>
165     <arg direction="out" type="ao" tp:type="DesktopSeq">
166     <tp:docstring>
167       a sequence containing references tothe Desktops.
168     </tp:docstring>
169     </arg>
170   </method>
171   <method name="getDeviceEventController">
172     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
173       <p>Obtain an object which can be used to request device event notifications.    </p>
174     </tp:docstring>
175     <arg direction="out" type="o" tp:type="DeviceEventController">
176     <tp:docstring>
177       an object implementing DeviceEventController
178     </tp:docstring>
179     </arg>
180   </method>
181   <method name="unImplemented">
182     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
183       <p>\cond
184         unImplemented:    </p>
185
186       <p>placeholders for future expansion.</p>
187     </tp:docstring>
188   </method>
189   <method name="unImplemented2">
190   </method>
191   <method name="unImplemented3">
192   </method>
193   <method name="unImplemented4">
194   </method>
195   <method name="unImplemented5">
196   </method>
197   <method name="unImplemented6">
198   </method>
199 </interface>
200 <tp:enum name="KeyEventType" type="u">
201   <tp:docstring>
202     Deprecated, DO NOT USE! 
203   </tp:docstring>
204   <tp:enumvalue suffix="KEY_PRESSED"/>
205   <tp:enumvalue suffix="KEY_RELEASED" value="1"/>
206 </tp:enum>
207 <tp:enum name="EventType" type="u">
208   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
209     <p>Used to specify the event types of interest to an EventListener, or
210       to identify the type of an event for which notification has been sent. 
211       @see EventTypeSeq, DeviceEvent::type</p>
212   </tp:docstring>
213   <tp:enumvalue suffix="KEY_PRESSED_EVENT">
214   <tp:docstring>
215     &lt; key on a keyboard device was pressed. 
216   </tp:docstring>
217   </tp:enumvalue>
218   <tp:enumvalue suffix="KEY_RELEASED_EVENT" value="1">
219   <tp:docstring>
220     &lt; key on a keyboard device was released. 
221   </tp:docstring>
222   </tp:enumvalue>
223   <tp:enumvalue suffix="BUTTON_PRESSED_EVENT" value="2">
224   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
225     <p>&lt; button on a non-keyboard human interface device 
226       (HID) was pressed </p>
227   </tp:docstring>
228   </tp:enumvalue>
229   <tp:enumvalue suffix="BUTTON_RELEASED_EVENT" value="3">
230   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
231     <p>&lt; button on a non-keyboard human interface device 
232       (HID) was pressed </p>
233   </tp:docstring>
234   </tp:enumvalue>
235 </tp:enum>
236 <tp:enum name="KeySynthType" type="u">
237   <tp:docstring>
238     Used when synthesizing keyboard input via DeviceEventController:generateKeyboardEvent.
239   </tp:docstring>
240   <tp:enumvalue suffix="KEY_PRESS">
241   <tp:docstring>
242     emulate the pressing of a hardware keyboard key. 
243   </tp:docstring>
244   </tp:enumvalue>
245   <tp:enumvalue suffix="KEY_RELEASE" value="1">
246   <tp:docstring>
247     emulate the release of a hardware keyboard key. 
248   </tp:docstring>
249   </tp:enumvalue>
250   <tp:enumvalue suffix="KEY_PRESSRELEASE" value="2">
251   <tp:docstring>
252     a hardware keyboard key is pressed and immediately released. 
253   </tp:docstring>
254   </tp:enumvalue>
255   <tp:enumvalue suffix="KEY_SYM" value="3">
256   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
257     <p>a symbolic key event is generated, without specifying a hardware key. 
258       @note if the keysym is not present in the current keyboard map,
259       the DeviceEventController instance has a limited ability to generate
260       such keysyms on-the-fly.  Reliability of generateKeyboardEvent calls
261       using out-of-keymap keysyms will vary from system to system, and on the
262       number of different out-of-keymap being generated in quick succession.
263       In practice this is rarely significant, since the keysyms of interest to
264       AT clients and keyboard emulators are usually part of the current keymap, i.e.
265       present on the system keyboard for the current locale (even if a physical
266       hardware keyboard is not connected.</p>
267   </tp:docstring>
268   </tp:enumvalue>
269   <tp:enumvalue suffix="KEY_STRING" value="4">
270   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
271     <p>a string is converted to its equivalent keyboard events and emitted. 
272       If the string consists of complex character or composed characters
273       which are not in the current keymap, string emission is subject to the
274       out-of-keymap limitations described for KeySynthType::KEY_SYM.
275       In practice this limitation primarily effects Chinese and Japanese locales.</p>
276   </tp:docstring>
277   </tp:enumvalue>
278 </tp:enum>
279 <tp:enum name="ModifierType" type="u">
280   <tp:enumvalue suffix="MODIFIER_SHIFT">
281   <tp:docstring>
282     The left or right 'Shift' key 
283   </tp:docstring>
284   </tp:enumvalue>
285   <tp:enumvalue suffix="MODIFIER_SHIFTLOCK" value="1">
286   <tp:docstring>
287     The ShiftLock or CapsLock key 
288   </tp:docstring>
289   </tp:enumvalue>
290   <tp:enumvalue suffix="MODIFIER_CONTROL" value="2">
291   <tp:docstring>
292     'Control'/'Ctrl' 
293   </tp:docstring>
294   </tp:enumvalue>
295   <tp:enumvalue suffix="MODIFIER_ALT" value="3">
296   <tp:docstring>
297     The Alt key (as opposed to AltGr) 
298   </tp:docstring>
299   </tp:enumvalue>
300   <tp:enumvalue suffix="MODIFIER_META" value="4">
301   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
302     <p>depending on the platform this may map to 'Window', 'Function', 'Meta',
303       'Menu', or 'NumLock'.  
304       Such 'Meta keys' will map to one of META, META2, META3.
305       On X Windows platforms these META values map to 
306       the modifier masks Mod1Mask, Mod2Mask, Mod3Mask, e.g. an event having
307       ModifierType::MODIFIER_META2 means that the 'Mod2Mask' bit is
308       set in the corresponding XEvent.</p>
309   </tp:docstring>
310   </tp:enumvalue>
311   <tp:enumvalue suffix="MODIFIER_META2" value="5"/>
312   <tp:enumvalue suffix="MODIFIER_META3" value="6"/>
313   <tp:enumvalue suffix="MODIFIER_NUMLOCK" value="7">
314   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
315     <p>A symbolic meta key name that is mapped by AT-SPI to the 
316       appropriate META value, for the convenience of the client.</p>
317   </tp:docstring>
318   </tp:enumvalue>
319 </tp:enum>
320 <tp:struct name="EventListenerMode">
321   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
322     <p>A structure that encapsulates the characteristics of the event notifications
323       that should be sent to an EventListener in response to a call to
324       DeviceEventController::registerKeystrokeListener or 
325       DeviceEventController::registerDeviceEventListener. </p>
326   </tp:docstring>
327   <tp:member type="b" tp:name="synchronous">
328   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
329     <p>&lt; If \c True, specifies that
330       DeviceEventController should block while waiting 
331       for client to process the requested event notifications; 
332       ordinarily should be used only when client needs to perform
333       operations synchronously with event delivery. Note that because
334       of the architecture of device event systems in general,
335       use of this flag may not block delivery of the event to 
336       the currently focussed application unless it is used in 
337       conjunction with the preemptive flag. </p>
338   </tp:docstring>
339   </tp:member>
340   <tp:member type="b" tp:name="preemptive">
341   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
342     <p>&lt; If \c True, specifies that 
343       Listener is allowed to pre-empt the delivery of the event,
344       effectively &quot;consuming&quot; it such that it is not delivered 
345       to the currently focussed desktop application. 
346       Key events consumed via this API will not be 
347       available for use by other applications or services, so this
348       option should be used sparingly. </p>
349   </tp:docstring>
350   </tp:member>
351   <tp:member type="b" tp:name="global">
352   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
353     <p>&lt; If \c True, specifies that
354       Event notifications should be sent regardless of whether the
355       currently focussed application participates in the AT-SPI 
356       infrastructure.  On systems with the XEvIE X extension, this flag
357       also allows access to events which are already subject to 
358       interception via a &quot;system keygrab&quot; (as described in the X Window System
359       documentation for XGrabKey).  The 'global' and 'preemptive' flags
360       should only be used together for the purposes of registering
361       &quot;system global key shortcuts&quot; i.e. command keys for use by the
362       assistive technology. </p>
363   </tp:docstring>
364   </tp:member>
365 </tp:struct>
366 <tp:struct name="DeviceEvent">
367   <tp:docstring>
368     A structure which encapsulates information about a device event. 
369   </tp:docstring>
370   <tp:member type="u" tp:name="type">
371   <tp:docstring>
372     &lt; Identifies the type of the containing DeviceEvent. 
373   </tp:docstring>
374   </tp:member>
375   <tp:member type="i" tp:name="id">
376   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
377     <p>&lt; an identifier which identifies this event in the event stream. 
378       On X Window systems this corresponds to the XEvent serial number.</p>
379   </tp:docstring>
380   </tp:member>
381   <tp:member type="n" tp:name="hw_code">
382   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
383     <p>&lt; a numeric code which is hardware and system-dependent, identifying the
384       specific hardware button or key on the device for which the event has
385       occurred. On X Window systems, for global key notifications and for most
386       non-global key notifications as well, this code corresponds to the
387       XKeycode.  For switch and button events it indicates the switch
388       or button number.
389       @note
390       For technical reasons, this code may differ from the XKeycode
391       when generated by Java applications for consumption by non-global
392       key listeners.  This is subject to change in future versions of the
393       DeviceEventController implementation.</p>
394   </tp:docstring>
395   </tp:member>
396   <tp:member type="n" tp:name="modifiers">
397   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
398     <p>&lt; an unsigned short int consisting of zero or more of the following
399       values OR'ed together:
400       \li \c 1&lt;&lt;::MODIFIER_SHIFT   (=1, corresponds to Xlib's ShiftMask)
401       \li \c 1&lt;&lt;::MODIFIER_SHIFTLOCK    (=2, corresponds to Xlib's LockMask)
402       \li \c 1&lt;&lt;::MODIFIER_CONTROL (=4, corresponds to Xlib's ControlMask)
403       \li \c 1&lt;&lt;::MODIFIER_ALT    (=8, corresponds to Xlib's Mod1Mask)
404       \li \c 1&lt;&lt;::MODIFIER_META    (=16, corresponds to Xlib's Mod2Mask)
405       \li \c 1&lt;&lt;::MODIFIER_META2    (=32, corresponds to Xlib's Mod3Mask)
406       \li \c 1&lt;&lt;::MODIFIER_META3    (=64, corresponds to Xlib's Mod4Mask)</p>
407   </tp:docstring>
408   </tp:member>
409   <tp:member type="i" tp:name="timestamp">
410   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
411     <p>&lt; an unsigned integer representing the time that the 
412       event occurred.  On X Window systems this event is 
413       a time in milliseconds from some arbitrary starting
414       point; it therefore has a cycle time of approximately
415       50 days.</p>
416   </tp:docstring>
417   </tp:member>
418   <tp:member type="s" tp:name="event_string">
419   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
420     <p>&lt; A string representation of the event.  If is_text is
421       \c True, then this string represents the character or typographic
422       sequence that would be received by a focussed text input field.
423       event_string is in general suitable for exposure to the
424       end-user for purposes of keyboard echo.</p>
425   </tp:docstring>
426   </tp:member>
427   <tp:member type="b" tp:name="is_text">
428   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
429     <p>&lt; \c True if the event results in the insertion of characters 
430       into an input text buffer, or would do so if delivered to a focussed
431       text input field. Â¨Typographical¨ key events have this field set to
432       \c True, whereas Â¨control¨ key events generally do not.</p>
433   </tp:docstring>
434   </tp:member>
435 </tp:struct>
436 <tp:struct name="KeyDefinition">
437   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
438     <p>A structure which defines the identity of a key for which notifications
439       are to be requested.  The data in the members of a ::KeyDefinition are used to
440       determine which keyboard events 'match' the notification request filed by a client.  </p>
441
442     <p>@note Ordinarily a KeyDefinition specifies one and only one of the criteria below; 
443       the result of using a KeyDefinition with multiple members defined as nonzero is
444       undefined.  </p>
445
446     <p>@param keycode if nonzero, the numeric, system-dependent value corresponding to a 
447       physical key on the keyboard.  Keycode values have no semantic meaning to the end-user,
448       and may depend on the user's hardware and operating environment.  They therefore are
449       rarely useful &quot;as-is&quot; to AT clients, unless the client has used operating system
450       services to identify the hardward keycode associated with a particular key symbol.
451       Notifications for key events requested by keycode are less dependent on modifier state
452       than \c keysym based notifications, but some hardware (notably many laptops) may generate
453       more than one keycode for the same physical key, depending on the state of physical 
454       shift/modifier keys.
455       @param keysym if nonzero, the numeric value corresponding to the X Keysym of the key for which 
456       notification is requested.  Note that the presence of active modifiers will affect
457       whether notification for key events requested via &quot;keysym&quot; specification takes place, 
458       since the keysym depends on the modifier state for most keys.
459       @param keystring if non-NULL, the string value of the inserted characters if the corresponding
460       key event has ::KeyEvent:is_text set to \c True, or the string representing the
461       'name' of the key.  On X11 systems, the string 'name' of non-printing keysyms corresponds
462       to the values in &quot;keysymdef.h&quot; as provided by Xlib, with the leading &quot;XK_&quot; stripped off.</p>
463   </tp:docstring>
464   <tp:member type="i" tp:name="keycode"/>
465   <tp:member type="i" tp:name="keysym"/>
466   <tp:member type="s" tp:name="keystring"/>
467   <tp:member type="i" tp:name="unused"/>
468 </tp:struct>
469 <interface name="org.freedesktop.accessibility.DeviceEventListener">
470   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
471     <p>This interface should be implemented by AT-SPI clients who wish to 
472       make use of the DeviceEventController to receive device event notifications.
473       DeviceEvents include keyboard events and mouse button/motion events.</p>
474   </tp:docstring>
475   <method name="notifyEvent">
476     <tp:docstring>
477       Notify an interested DeviceEventListener that a DeviceEvent has occurred.
478     </tp:docstring>
479     <arg direction="in" name="event" type="(uinnisb)" tp:type="DeviceEvent"/>
480     <arg direction="out" type="b" tp:type="boolean">
481     <tp:docstring>
482       \c True if the recipient/consumer wishes to consume the event, i.e.prevent it from being delivered to the desktop, \c False if the event should continue to be delivered as normal.
483     </tp:docstring>
484     </arg>
485   </method>
486   <method name="unImplemented__">
487     <tp:docstring>
488       \cond 
489     </tp:docstring>
490   </method>
491   <method name="unImplemented_2_">
492   </method>
493   <method name="unImplemented_3_">
494   </method>
495   <method name="unImplemented_4_">
496   </method>
497   <method name="unImplemented_5_">
498   </method>
499   <method name="unImplemented_6_">
500   </method>
501 </interface>
502 <interface name="org.freedesktop.accessibility.DeviceEventController">
503   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
504     <p>The interface via which clients request notification of device events, and
505       through which device events may be simulated.</p>
506   </tp:docstring>
507   <method name="registerKeystrokeListener">
508     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
509       <p>Register to intercept keyboard events, and either pass them on or
510         consume them.     </p>
511     </tp:docstring>
512     <arg direction="in" name="listener" type="o" tp:type="DeviceEventListener">
513     <tp:docstring>
514       a DeviceEventListener which will intercept key events.
515     </tp:docstring>
516     </arg>
517     <arg direction="in" name="keys" type="a(iisi)" tp:type="KeySet">
518     <tp:docstring>
519       a KeySet indicating which keys to intercept, or KEYSET_ALL_KEYS.
520     </tp:docstring>
521     </arg>
522     <arg direction="in" name="mask" type="u" tp:type="ControllerEventMask">
523     <tp:docstring>
524       a ControllerEventMask filtering the intercepted key events.
525     </tp:docstring>
526     </arg>
527     <arg direction="in" name="type" type="au" tp:type="KeyEventTypeSeq">
528     <tp:docstring>
529       a KeyEventTypeSeq that may created by ORing event types together.
530     </tp:docstring>
531     </arg>
532     <arg direction="in" name="mode" type="(bbb)" tp:type="EventListenerMode">
533     <tp:docstring>
534       an EventListenerMode indicating whether the listener should receive the events synchronously, potentially consuming them,or just be notified asynchronously of those events that havebeen generated.@note Some platforms have limited support for global, preemptive EventListenerMode.Such a registration may fail if another client already has priority for preemptiveaccess to one or more of the members of the KeySet.  AT consumers have the optionof re-trying the request without the global flag, or without the preemptive flag,or of re-trying with a different KeySet.  The best support for pre-emptiveglobal keyboard listeners is provided on platforms whose Xserver implementationprovides the XEvIE extension.
535     </tp:docstring>
536     </arg>
537     <arg direction="out" type="b" tp:type="boolean">
538     <tp:docstring>
539       \c True if the DeviceEventListener was successfully registeredfor the requested KeySet, ControllerEventMask, event types, and EventListenerMode; otherwise returns \c False.
540     </tp:docstring>
541     </arg>
542   </method>
543   <method name="deregisterKeystrokeListener">
544     <tp:docstring>
545       De-register a previously registered keyboard eventlistener.
546     </tp:docstring>
547     <arg direction="in" name="listener" type="o" tp:type="DeviceEventListener">
548     <tp:docstring>
549       a DeviceEventListener which will intercept key events.
550     </tp:docstring>
551     </arg>
552     <arg direction="in" name="keys" type="a(iisi)" tp:type="KeySet">
553     <tp:docstring>
554       a KeySet indicating which keys to intercept, or KEYSET_ALL_KEYS.
555     </tp:docstring>
556     </arg>
557     <arg direction="in" name="mask" type="u" tp:type="ControllerEventMask">
558     <tp:docstring>
559       a ControllerEventMask filtering the intercepted key events.
560     </tp:docstring>
561     </arg>
562     <arg direction="in" name="type" type="au" tp:type="KeyEventTypeSeq">
563     <tp:docstring>
564       an EventType mask that may created by ORing event types together.
565     </tp:docstring>
566     </arg>
567   </method>
568   <method name="registerDeviceEventListener">
569     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
570       <p>Register to intercept events, and either pass them on or
571         consume them. To listen to keyboard events use registerKeystrokeListener
572         instead.</p>
573     </tp:docstring>
574     <arg direction="in" name="listener" type="o" tp:type="DeviceEventListener">
575     <tp:docstring>
576       a DeviceEventListener which will intercept events.
577     </tp:docstring>
578     </arg>
579     <arg direction="in" name="typeseq" type="au" tp:type="EventTypeSeq">
580     <tp:docstring>
581       an EventTypeSeq indicating which event types to listen for.
582     </tp:docstring>
583     </arg>
584     <arg direction="out" type="b" tp:type="boolean">
585     <tp:docstring>
586       \c True if successful, \c False if not
587     </tp:docstring>
588     </arg>
589   </method>
590   <method name="deregisterDeviceEventListener">
591     <tp:docstring>
592       De-register a previously registered keyboard eventlistener.
593     </tp:docstring>
594     <arg direction="in" name="listener" type="o" tp:type="DeviceEventListener">
595     <tp:docstring>
596       a DeviceEventListener which will intercept events.
597     </tp:docstring>
598     </arg>
599     <arg direction="in" name="typeseq" type="au" tp:type="EventTypeSeq">
600     <tp:docstring>
601       an EventTypeSeq indicating which event types to stoplistening for.
602     </tp:docstring>
603     </arg>
604   </method>
605   <method name="notifyListenersSync">
606     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
607       <p>Notify the Registry instance that a device event has taken place, and
608         allow pre-emptive listeners the opportunity to 'consume' the event
609         and thus prevent its further issuance/forwarding.  This is the 
610         method used by accessibility bridges to forward &quot;toolkit dependent&quot;
611         device events to the Registry from the application's process space.    </p>
612
613       <p>@note AT clients do not normally need to use this method, it is intended for use
614         by toolkit bridges and special-purpose applications.    </p>
615     </tp:docstring>
616     <arg direction="in" name="event" type="(uinnisb)" tp:type="DeviceEvent"/>
617     <arg direction="out" type="b" tp:type="boolean">
618     <tp:docstring>
619       \c True if the event was consumed by a (pre-emptive) listener,\c False if not (in which case the device event will be forwardedas normal to any application which would normally receive it, e.g.the currently active application in the case of mouse or keyboard events).
620     </tp:docstring>
621     </arg>
622   </method>
623   <method name="notifyListenersAsync">
624     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
625       <p>Notify the Registry instance that a device event has taken place in
626         an asynchronous manner.  This is the 
627         method used by accessibility bridges to forward &quot;toolkit dependent&quot;
628         device events to the Registry from the application's process space.
629         If the event in question is potentially pre-emptible.
630         ::notifyListenersSync should be used instead.    </p>
631
632       <p>@note AT clients do not normally need to use this method, it is intended for use
633         by toolkit bridges and special-purpose applications.</p>
634     </tp:docstring>
635     <arg direction="in" name="event" type="(uinnisb)" tp:type="DeviceEvent"/>
636   </method>
637   <method name="generateKeyboardEvent">
638     <tp:docstring>
639       Synthesize a keyboard event.
640     </tp:docstring>
641     <arg direction="in" name="keycode" type="i">
642     <tp:docstring>
643       a long integer indicating the keycode ofthe keypress to be synthesized.
644     </tp:docstring>
645     </arg>
646     <arg direction="in" name="keystring" type="s">
647     <tp:docstring>
648       an optional UTF-8 string indicating a complexkeyboard input event.
649     </tp:docstring>
650     </arg>
651     <arg direction="in" name="type" type="u" tp:type="KeySynthType">
652     <tp:docstring>
653       a KeySynthType indicating the type of event(s) to be synthesized: a key press, release, press-release pair,or a complex input string (for instance from aninternationalized or complex text input method, ora composed character).@note keycode may be truncated before beingprocessed, as keycode length may be platform-dependentand keycode ranges are generally much smaller thanCORBA_long. One or the other of keycode or keystring are generally NULL, (but not both), depending on the value of \c type.
654     </tp:docstring>
655     </arg>
656   </method>
657   <method name="generateMouseEvent">
658     <tp:docstring>
659       Synthesize a mouse event.
660     </tp:docstring>
661     <arg direction="in" name="x" type="i">
662     <tp:docstring>
663       a long integer indicating the screen x coord for the mouse event.
664     </tp:docstring>
665     </arg>
666     <arg direction="in" name="y" type="i">
667     <tp:docstring>
668       a long integer indicating the screen y coord for the mouse event.
669     </tp:docstring>
670     </arg>
671     <arg direction="in" name="eventName" type="s">
672     <tp:docstring>
673       a string indicating the type of mouse event, e.g. &quot;button1up&quot;
674     </tp:docstring>
675     </arg>
676   </method>
677   <method name="unImplemented">
678     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
679       <p>\cond
680         unImplemented:    </p>
681
682       <p>placeholders for future expansion.</p>
683     </tp:docstring>
684   </method>
685   <method name="unImplemented2">
686   </method>
687   <method name="unImplemented3">
688   </method>
689   <method name="unImplemented4">
690   </method>
691 </interface>
692 </node>