diff options
Diffstat (limited to 'src/xtest.xml')
-rw-r--r-- | src/xtest.xml | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/src/xtest.xml b/src/xtest.xml new file mode 100644 index 0000000..7f0b262 --- /dev/null +++ b/src/xtest.xml @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2006 Ian Osgood +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person ob/Sintaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors or their +institutions shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the authors. +--> + +<xcb header="xtest" extension-xname="XTEST" extension-name="Test" + major-version="2" minor-version="1"> + <!-- Conforms to XTEST 2.1 --> + + <import>xproto</import> + + <!-- Requests --> + <request name="GetVersion" opcode="0"> + <field type="CARD8" name="major_version" /> + <pad bytes="1" /> + <field type="CARD16" name="minor_version" /> + <reply> + <field type="CARD8" name="major_version" /> + <field type="CARD16" name="minor_version" /> + </reply> + </request> + + <enum name="Cursor"> + <item name="None"> <value>0</value></item> + <item name="Current"><value>1</value></item> + </enum> + + <request name="CompareCursor" opcode="1"> + <field type="WINDOW" name="window" /> + <field type="CURSOR" name="cursor" /> + <reply> + <field type="BOOL" name="same" /> + </reply> + </request> + + <!-- There are several ways to use the FakeInput request: + 1. Simulate a keypress: + type = XCBKeyPress or XCBKeyRelease + detail = keycode + 2. Simulate a button: + type = XCBButtonPress or XCBButtonRelease + detail = enum XCBButton (1..5) + 3. Simulate mouse motion: + type = XCBMotionNotify + detail = 0 or 1 + root = XCBNone or a root window id + rootX, + rootY = position (relative if detail==1) + + Version 2.2 adds support for the XInput extension: + 4. Simulate a device keypress + 5. Simulate a device button + 6. Simulate a proximity event + 7. Simulate a device motion event + [These are not yet supported, since we would also need to + send the variable-length state of the axes.] + + In each case, time is set to a delay in milliseconds. + --> + + <request name="FakeInput" opcode="2"> + <field type="BYTE" name="type" /> + <field type="BYTE" name="detail" /> + <pad bytes="2" /> + <field type="CARD32" name="time" /> + <field type="WINDOW" name="root" /> + <pad bytes="8" /> + <field type="INT16" name="rootX" /> + <field type="INT16" name="rootY" /> + <pad bytes="7" /> + <!-- Version 2.2: XInput device --> + <field type="CARD8" name="deviceid" /> + <!-- Version 2.2: optional axes state here --> + </request> + + <request name="GrabControl" opcode="3"> + <field type="BOOL" name="impervious" /> + <pad bytes="3" /> + </request> + + <!-- No events or errors --> + +</xcb> |