summaryrefslogtreecommitdiff
path: root/xml/org.freedesktop.atspi.Event.xml
blob: 01d8416fc443d3a5b981492007d6265e022f73bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
<node name="/node" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">

<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>
<interface name="org.freedesktop.atspi.DeviceEventListener">
  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
    <p>This interface should be implemented by AT-SPI clients who wish to 
      make use of the DeviceEventController to receive device event notifications.
      DeviceEvents include keyboard events and mouse button/motion events.</p>
  </tp:docstring>
  <method name="notifyEvent">
    <tp:docstring>
      Notify an interested DeviceEventListener that a DeviceEvent has occurred.
    </tp:docstring>
    <arg direction="in" name="event" type="(uinnisb)" tp:type="DeviceEvent"/>
    <arg direction="out" type="b" tp:type="boolean">
    <tp:docstring>
      \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.
    </tp:docstring>
    </arg>
  </method>
</interface>
<interface name="org.freedesktop.atspi.DeviceEventController">
  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
    <p>The interface via which clients request notification of device events, and
      through which device events may be simulated.</p>
  </tp:docstring>
  <method name="registerKeystrokeListener">
    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
      <p>Register to intercept keyboard events, and either pass them on or
        consume them.     </p>
    </tp:docstring>
    <arg direction="in" name="listener" type="o" tp:type="DeviceEventListener">
    <tp:docstring>
      a DeviceEventListener which will intercept key events.
    </tp:docstring>
    </arg>
    <arg direction="in" name="keys" type="a(iisi)" tp:type="KeySet">
    <tp:docstring>
      a KeySet indicating which keys to intercept, or KEYSET_ALL_KEYS.
    </tp:docstring>
    </arg>
    <arg direction="in" name="mask" type="u" tp:type="ControllerEventMask">
    <tp:docstring>
      a ControllerEventMask filtering the intercepted key events.
    </tp:docstring>
    </arg>
    <arg direction="in" name="type" type="au" tp:type="KeyEventTypeSeq">
    <tp:docstring>
      a KeyEventTypeSeq that may created by ORing event types together.
    </tp:docstring>
    </arg>
    <arg direction="in" name="mode" type="(bbb)" tp:type="EventListenerMode">
    <tp:docstring>
      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.
    </tp:docstring>
    </arg>
    <arg direction="out" type="b" tp:type="boolean">
    <tp:docstring>
      \c True if the DeviceEventListener was successfully registeredfor the requested KeySet, ControllerEventMask, event types, and EventListenerMode; otherwise returns \c False.
    </tp:docstring>
    </arg>
  </method>
  <method name="deregisterKeystrokeListener">
    <tp:docstring>
      De-register a previously registered keyboard eventlistener.
    </tp:docstring>
    <arg direction="in" name="listener" type="o" tp:type="DeviceEventListener">
    <tp:docstring>
      a DeviceEventListener which will intercept key events.
    </tp:docstring>
    </arg>
    <arg direction="in" name="keys" type="a(iisi)" tp:type="KeySet">
    <tp:docstring>
      a KeySet indicating which keys to intercept, or KEYSET_ALL_KEYS.
    </tp:docstring>
    </arg>
    <arg direction="in" name="mask" type="u" tp:type="ControllerEventMask">
    <tp:docstring>
      a ControllerEventMask filtering the intercepted key events.
    </tp:docstring>
    </arg>
    <arg direction="in" name="type" type="au" tp:type="KeyEventTypeSeq">
    <tp:docstring>
      an EventType mask that may created by ORing event types together.
    </tp:docstring>
    </arg>
  </method>
  <method name="registerDeviceEventListener">
    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
      <p>Register to intercept events, and either pass them on or
        consume them. To listen to keyboard events use registerKeystrokeListener
        instead.</p>
    </tp:docstring>
    <arg direction="in" name="listener" type="o" tp:type="DeviceEventListener">
    <tp:docstring>
      a DeviceEventListener which will intercept events.
    </tp:docstring>
    </arg>
    <arg direction="in" name="types" type="u" tp:type="EventTypeSeq">
    <tp:docstring>
      an EventTypeSeq indicating which event types to listen for.
    </tp:docstring>
    </arg>
    <arg direction="out" type="b" tp:type="boolean">
    <tp:docstring>
      \c True if successful, \c False if not
    </tp:docstring>
    </arg>
  </method>
  <method name="deregisterDeviceEventListener">
    <tp:docstring>
      De-register a previously registered keyboard eventlistener.
    </tp:docstring>
    <arg direction="in" name="listener" type="o" tp:type="DeviceEventListener">
    <tp:docstring>
      a DeviceEventListener which will intercept events.
    </tp:docstring>
    </arg>
    <arg direction="in" name="types" type="u" tp:type="EventTypeSeq">
    <tp:docstring>
      an EventTypeSeq indicating which event types to stoplistening for.
    </tp:docstring>
    </arg>
  </method>
  <method name="notifyListenersSync">
    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
      <p>Notify the Registry instance that a device event has taken place, and
        allow pre-emptive listeners the opportunity to 'consume' the event
        and thus prevent its further issuance/forwarding.  This is the 
        method used by accessibility bridges to forward &quot;toolkit dependent&quot;
        device events to the Registry from the application's process space.    </p>

      <p>@note AT clients do not normally need to use this method, it is intended for use
        by toolkit bridges and special-purpose applications.    </p>
    </tp:docstring>
    <arg direction="in" name="event" type="(uinnisb)" tp:type="DeviceEvent"/>
    <arg direction="out" type="b" tp:type="boolean">
    <tp:docstring>
      \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).
    </tp:docstring>
    </arg>
  </method>
  <method name="notifyListenersAsync">
    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
      <p>Notify the Registry instance that a device event has taken place in
        an asynchronous manner.  This is the 
        method used by accessibility bridges to forward &quot;toolkit dependent&quot;
        device events to the Registry from the application's process space.
        If the event in question is potentially pre-emptible.
        ::notifyListenersSync should be used instead.    </p>

      <p>@note AT clients do not normally need to use this method, it is intended for use
        by toolkit bridges and special-purpose applications.</p>
    </tp:docstring>
    <arg direction="in" name="event" type="(uinnisb)" tp:type="DeviceEvent"/>
  </method>
  <method name="generateKeyboardEvent">
    <tp:docstring>
      Synthesize a keyboard event.
    </tp:docstring>
    <arg direction="in" name="keycode" type="i">
    <tp:docstring>
      a long integer indicating the keycode ofthe keypress to be synthesized.
    </tp:docstring>
    </arg>
    <arg direction="in" name="keystring" type="s">
    <tp:docstring>
      an optional UTF-8 string indicating a complexkeyboard input event.
    </tp:docstring>
    </arg>
    <arg direction="in" name="type" type="u" tp:type="KeySynthType">
    <tp:docstring>
      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.
    </tp:docstring>
    </arg>
  </method>
  <method name="generateMouseEvent">
    <tp:docstring>
      Synthesize a mouse event.
    </tp:docstring>
    <arg direction="in" name="x" type="i">
    <tp:docstring>
      a long integer indicating the screen x coord for the mouse event.
    </tp:docstring>
    </arg>
    <arg direction="in" name="y" type="i">
    <tp:docstring>
      a long integer indicating the screen y coord for the mouse event.
    </tp:docstring>
    </arg>
    <arg direction="in" name="eventName" type="s">
    <tp:docstring>
      a string indicating the type of mouse event, e.g. &quot;button1up&quot;
    </tp:docstring>
    </arg>
  </method>
</interface>
</node>