2008-08-15 Mark Doffman <mark.doffman@codethink.co.uk>
[platform/core/uifw/at-spi2-atk.git] / xml / Accessibility_Registry_Common.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 <tp:enum name="KeyEventType" type="u">
23   <tp:docstring>
24     Deprecated, DO NOT USE! 
25   </tp:docstring>
26   <tp:enumvalue suffix="KEY_PRESSED"/>
27   <tp:enumvalue suffix="KEY_RELEASED" value="1"/>
28 </tp:enum>
29 <tp:enum name="EventType" type="u">
30   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
31     <p>Used to specify the event types of interest to an EventListener, or
32       to identify the type of an event for which notification has been sent. 
33       @see EventTypeSeq, DeviceEvent::type</p>
34   </tp:docstring>
35   <tp:enumvalue suffix="KEY_PRESSED_EVENT">
36   <tp:docstring>
37     &lt; key on a keyboard device was pressed. 
38   </tp:docstring>
39   </tp:enumvalue>
40   <tp:enumvalue suffix="KEY_RELEASED_EVENT" value="1">
41   <tp:docstring>
42     &lt; key on a keyboard device was released. 
43   </tp:docstring>
44   </tp:enumvalue>
45   <tp:enumvalue suffix="BUTTON_PRESSED_EVENT" value="2">
46   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
47     <p>&lt; button on a non-keyboard human interface device 
48       (HID) was pressed </p>
49   </tp:docstring>
50   </tp:enumvalue>
51   <tp:enumvalue suffix="BUTTON_RELEASED_EVENT" value="3">
52   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
53     <p>&lt; button on a non-keyboard human interface device 
54       (HID) was pressed </p>
55   </tp:docstring>
56   </tp:enumvalue>
57 </tp:enum>
58 <tp:enum name="KeySynthType" type="u">
59   <tp:docstring>
60     Used when synthesizing keyboard input via DeviceEventController:generateKeyboardEvent.
61   </tp:docstring>
62   <tp:enumvalue suffix="KEY_PRESS">
63   <tp:docstring>
64     emulate the pressing of a hardware keyboard key. 
65   </tp:docstring>
66   </tp:enumvalue>
67   <tp:enumvalue suffix="KEY_RELEASE" value="1">
68   <tp:docstring>
69     emulate the release of a hardware keyboard key. 
70   </tp:docstring>
71   </tp:enumvalue>
72   <tp:enumvalue suffix="KEY_PRESSRELEASE" value="2">
73   <tp:docstring>
74     a hardware keyboard key is pressed and immediately released. 
75   </tp:docstring>
76   </tp:enumvalue>
77   <tp:enumvalue suffix="KEY_SYM" value="3">
78   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
79     <p>a symbolic key event is generated, without specifying a hardware key. 
80       @note if the keysym is not present in the current keyboard map,
81       the DeviceEventController instance has a limited ability to generate
82       such keysyms on-the-fly.  Reliability of generateKeyboardEvent calls
83       using out-of-keymap keysyms will vary from system to system, and on the
84       number of different out-of-keymap being generated in quick succession.
85       In practice this is rarely significant, since the keysyms of interest to
86       AT clients and keyboard emulators are usually part of the current keymap, i.e.
87       present on the system keyboard for the current locale (even if a physical
88       hardware keyboard is not connected.</p>
89   </tp:docstring>
90   </tp:enumvalue>
91   <tp:enumvalue suffix="KEY_STRING" value="4">
92   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
93     <p>a string is converted to its equivalent keyboard events and emitted. 
94       If the string consists of complex character or composed characters
95       which are not in the current keymap, string emission is subject to the
96       out-of-keymap limitations described for KeySynthType::KEY_SYM.
97       In practice this limitation primarily effects Chinese and Japanese locales.</p>
98   </tp:docstring>
99   </tp:enumvalue>
100 </tp:enum>
101 <tp:enum name="ModifierType" type="u">
102   <tp:enumvalue suffix="MODIFIER_SHIFT">
103   <tp:docstring>
104     The left or right 'Shift' key 
105   </tp:docstring>
106   </tp:enumvalue>
107   <tp:enumvalue suffix="MODIFIER_SHIFTLOCK" value="1">
108   <tp:docstring>
109     The ShiftLock or CapsLock key 
110   </tp:docstring>
111   </tp:enumvalue>
112   <tp:enumvalue suffix="MODIFIER_CONTROL" value="2">
113   <tp:docstring>
114     'Control'/'Ctrl' 
115   </tp:docstring>
116   </tp:enumvalue>
117   <tp:enumvalue suffix="MODIFIER_ALT" value="3">
118   <tp:docstring>
119     The Alt key (as opposed to AltGr) 
120   </tp:docstring>
121   </tp:enumvalue>
122   <tp:enumvalue suffix="MODIFIER_META" value="4">
123   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
124     <p>depending on the platform this may map to 'Window', 'Function', 'Meta',
125       'Menu', or 'NumLock'.  
126       Such 'Meta keys' will map to one of META, META2, META3.
127       On X Windows platforms these META values map to 
128       the modifier masks Mod1Mask, Mod2Mask, Mod3Mask, e.g. an event having
129       ModifierType::MODIFIER_META2 means that the 'Mod2Mask' bit is
130       set in the corresponding XEvent.</p>
131   </tp:docstring>
132   </tp:enumvalue>
133   <tp:enumvalue suffix="MODIFIER_META2" value="5"/>
134   <tp:enumvalue suffix="MODIFIER_META3" value="6"/>
135   <tp:enumvalue suffix="MODIFIER_NUMLOCK" value="7">
136   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
137     <p>A symbolic meta key name that is mapped by AT-SPI to the 
138       appropriate META value, for the convenience of the client.</p>
139   </tp:docstring>
140   </tp:enumvalue>
141 </tp:enum>
142 <tp:struct name="EventListenerMode">
143   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
144     <p>A structure that encapsulates the characteristics of the event notifications
145       that should be sent to an EventListener in response to a call to
146       DeviceEventController::registerKeystrokeListener or 
147       DeviceEventController::registerDeviceEventListener. </p>
148   </tp:docstring>
149   <tp:member type="b" tp:name="synchronous">
150   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
151     <p>&lt; If \c True, specifies that
152       DeviceEventController should block while waiting 
153       for client to process the requested event notifications; 
154       ordinarily should be used only when client needs to perform
155       operations synchronously with event delivery. Note that because
156       of the architecture of device event systems in general,
157       use of this flag may not block delivery of the event to 
158       the currently focussed application unless it is used in 
159       conjunction with the preemptive flag. </p>
160   </tp:docstring>
161   </tp:member>
162   <tp:member type="b" tp:name="preemptive">
163   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
164     <p>&lt; If \c True, specifies that 
165       Listener is allowed to pre-empt the delivery of the event,
166       effectively &quot;consuming&quot; it such that it is not delivered 
167       to the currently focussed desktop application. 
168       Key events consumed via this API will not be 
169       available for use by other applications or services, so this
170       option should be used sparingly. </p>
171   </tp:docstring>
172   </tp:member>
173   <tp:member type="b" tp:name="global">
174   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
175     <p>&lt; If \c True, specifies that
176       Event notifications should be sent regardless of whether the
177       currently focussed application participates in the AT-SPI 
178       infrastructure.  On systems with the XEvIE X extension, this flag
179       also allows access to events which are already subject to 
180       interception via a &quot;system keygrab&quot; (as described in the X Window System
181       documentation for XGrabKey).  The 'global' and 'preemptive' flags
182       should only be used together for the purposes of registering
183       &quot;system global key shortcuts&quot; i.e. command keys for use by the
184       assistive technology. </p>
185   </tp:docstring>
186   </tp:member>
187 </tp:struct>
188 <tp:struct name="DeviceEvent">
189   <tp:docstring>
190     A structure which encapsulates information about a device event. 
191   </tp:docstring>
192   <tp:member type="u" tp:name="type">
193   <tp:docstring>
194     &lt; Identifies the type of the containing DeviceEvent. 
195   </tp:docstring>
196   </tp:member>
197   <tp:member type="i" tp:name="id">
198   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
199     <p>&lt; an identifier which identifies this event in the event stream. 
200       On X Window systems this corresponds to the XEvent serial number.</p>
201   </tp:docstring>
202   </tp:member>
203   <tp:member type="n" tp:name="hw_code">
204   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
205     <p>&lt; a numeric code which is hardware and system-dependent, identifying the
206       specific hardware button or key on the device for which the event has
207       occurred. On X Window systems, for global key notifications and for most
208       non-global key notifications as well, this code corresponds to the
209       XKeycode.  For switch and button events it indicates the switch
210       or button number.
211       @note
212       For technical reasons, this code may differ from the XKeycode
213       when generated by Java applications for consumption by non-global
214       key listeners.  This is subject to change in future versions of the
215       DeviceEventController implementation.</p>
216   </tp:docstring>
217   </tp:member>
218   <tp:member type="n" tp:name="modifiers">
219   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
220     <p>&lt; an unsigned short int consisting of zero or more of the following
221       values OR'ed together:
222       \li \c 1&lt;&lt;::MODIFIER_SHIFT   (=1, corresponds to Xlib's ShiftMask)
223       \li \c 1&lt;&lt;::MODIFIER_SHIFTLOCK    (=2, corresponds to Xlib's LockMask)
224       \li \c 1&lt;&lt;::MODIFIER_CONTROL (=4, corresponds to Xlib's ControlMask)
225       \li \c 1&lt;&lt;::MODIFIER_ALT    (=8, corresponds to Xlib's Mod1Mask)
226       \li \c 1&lt;&lt;::MODIFIER_META    (=16, corresponds to Xlib's Mod2Mask)
227       \li \c 1&lt;&lt;::MODIFIER_META2    (=32, corresponds to Xlib's Mod3Mask)
228       \li \c 1&lt;&lt;::MODIFIER_META3    (=64, corresponds to Xlib's Mod4Mask)</p>
229   </tp:docstring>
230   </tp:member>
231   <tp:member type="i" tp:name="timestamp">
232   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
233     <p>&lt; an unsigned integer representing the time that the 
234       event occurred.  On X Window systems this event is 
235       a time in milliseconds from some arbitrary starting
236       point; it therefore has a cycle time of approximately
237       50 days.</p>
238   </tp:docstring>
239   </tp:member>
240   <tp:member type="s" tp:name="event_string">
241   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
242     <p>&lt; A string representation of the event.  If is_text is
243       \c True, then this string represents the character or typographic
244       sequence that would be received by a focussed text input field.
245       event_string is in general suitable for exposure to the
246       end-user for purposes of keyboard echo.</p>
247   </tp:docstring>
248   </tp:member>
249   <tp:member type="b" tp:name="is_text">
250   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
251     <p>&lt; \c True if the event results in the insertion of characters 
252       into an input text buffer, or would do so if delivered to a focussed
253       text input field. ¨Typographical¨ key events have this field set to
254       \c True, whereas ¨control¨ key events generally do not.</p>
255   </tp:docstring>
256   </tp:member>
257 </tp:struct>
258 <tp:struct name="KeyDefinition">
259   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
260     <p>A structure which defines the identity of a key for which notifications
261       are to be requested.  The data in the members of a ::KeyDefinition are used to
262       determine which keyboard events 'match' the notification request filed by a client.  </p>
263
264     <p>@note Ordinarily a KeyDefinition specifies one and only one of the criteria below; 
265       the result of using a KeyDefinition with multiple members defined as nonzero is
266       undefined.  </p>
267
268     <p>@param keycode if nonzero, the numeric, system-dependent value corresponding to a 
269       physical key on the keyboard.  Keycode values have no semantic meaning to the end-user,
270       and may depend on the user's hardware and operating environment.  They therefore are
271       rarely useful &quot;as-is&quot; to AT clients, unless the client has used operating system
272       services to identify the hardward keycode associated with a particular key symbol.
273       Notifications for key events requested by keycode are less dependent on modifier state
274       than \c keysym based notifications, but some hardware (notably many laptops) may generate
275       more than one keycode for the same physical key, depending on the state of physical 
276       shift/modifier keys.
277       @param keysym if nonzero, the numeric value corresponding to the X Keysym of the key for which 
278       notification is requested.  Note that the presence of active modifiers will affect
279       whether notification for key events requested via &quot;keysym&quot; specification takes place, 
280       since the keysym depends on the modifier state for most keys.
281       @param keystring if non-NULL, the string value of the inserted characters if the corresponding
282       key event has ::KeyEvent:is_text set to \c True, or the string representing the
283       'name' of the key.  On X11 systems, the string 'name' of non-printing keysyms corresponds
284       to the values in &quot;keysymdef.h&quot; as provided by Xlib, with the leading &quot;XK_&quot; stripped off.</p>
285   </tp:docstring>
286   <tp:member type="i" tp:name="keycode"/>
287   <tp:member type="i" tp:name="keysym"/>
288   <tp:member type="s" tp:name="keystring"/>
289   <tp:member type="i" tp:name="unused"/>
290 </tp:struct>
291 </node>