<pad bytes="3" />
<reply>
<pad bytes="1" />
- <field type="CARD8" name="status" altenum="GrabStatus" />
+ <!-- only the following GrabStatus-values are valid here:
+ "Success", "AlreadyGrabbed", and "Frozen"
+ -->
+ <field type="CARD8" name="status" enum="GrabStatus" />
<pad bytes="23" />
</reply>
</request>
<pad bytes="1" />
<reply>
<pad bytes="1" />
- <field type="CARD8" name="status" altenum="GrabStatus" />
+ <!-- only the following GrabStatus-values are valid here:
+ "Success", "AlreadyGrabbed", and "Frozen"
+ -->
+ <field type="CARD8" name="status" enum="GrabStatus" />
<pad bytes="23" />
</reply>
</request>
<!-- GrabDeviceKey -->
+ <enum name="ModifierDevice">
+ <item name="UseXKeyboard"><value>255</value></item> <!-- 0xff -->
+ </enum>
+
<request name="GrabDeviceKey" opcode="15">
<field type="WINDOW" name="grab_window" />
<field type="CARD16" name="num_classes" />
<field type="CARD16" name="modifiers" mask="ModMask" />
- <field type="CARD8" name="modifier_device" />
+ <field type="CARD8" name="modifier_device" altenum="ModifierDevice" />
<field type="CARD8" name="grabbed_device" />
<field type="CARD8" name="key" altenum="Grab" />
<field type="CARD8" name="this_device_mode" enum="GrabMode" />
<request name="UngrabDeviceKey" opcode="16">
<field type="WINDOW" name="grabWindow" />
<field type="CARD16" name="modifiers" mask="ModMask" />
- <field type="CARD8" name="modifier_device" />
+ <field type="CARD8" name="modifier_device" altenum="ModifierDevice" />
<field type="CARD8" name="key" altenum="Grab" />
<field type="CARD8" name="grabbed_device" />
</request>
<request name="GrabDeviceButton" opcode="17">
<field type="WINDOW" name="grab_window" />
<field type="CARD8" name="grabbed_device" />
- <field type="CARD8" name="modifier_device" />
+ <field type="CARD8" name="modifier_device" altenum="ModifierDevice" />
<field type="CARD16" name="num_classes" />
<field type="CARD16" name="modifiers" mask="ModMask" />
<field type="CARD8" name="this_device_mode" enum="GrabMode" />
<request name="UngrabDeviceButton" opcode="18">
<field type="WINDOW" name="grab_window" />
<field type="CARD16" name="modifiers" mask="ModMask" />
- <field type="CARD8" name="modifier_device" />
+ <field type="CARD8" name="modifier_device" altenum="ModifierDevice" />
<field type="CARD8" name="button" altenum="Grab" />
<field type="CARD8" name="grabbed_device" />
<pad bytes="3" />
</list>
</struct>
+ <enum name="ChangeFeedbackControlMask">
+ <item name="KeyClickPercent"> <bit>0</bit> </item> <!-- 0x01 -->
+ <item name="Percent"> <bit>1</bit> </item> <!-- 0x02 -->
+ <item name="Pitch"> <bit>2</bit> </item> <!-- 0x04 -->
+ <item name="Duration"> <bit>3</bit> </item> <!-- 0x08 -->
+ <item name="Led"> <bit>4</bit> </item> <!-- 0x10 -->
+ <item name="LedMode"> <bit>5</bit> </item> <!-- 0x20 -->
+ <item name="Key"> <bit>6</bit> </item> <!-- 0x40 -->
+ <item name="AutoRepeatMode"> <bit>7</bit> </item> <!-- 0x80 -->
+ <item name="String"> <bit>0</bit> </item> <!-- 0x01 -->
+ <item name="Integer"> <bit>0</bit> </item> <!-- 0x01 -->
+ <item name="AccelNum"> <bit>0</bit> </item> <!-- 0x01 -->
+ <item name="AccelDenom"> <bit>1</bit> </item> <!-- 0x02 -->
+ <item name="Threshold"> <bit>2</bit> </item> <!-- 0x04 -->
+ </enum>
+
<request name="ChangeFeedbackControl" opcode="23">
- <field type="CARD32" name="mask" />
+ <field type="CARD32" name="mask" mask="ChangeFeedbackControlMask" />
<field type="CARD8" name="device_id" />
<field type="CARD8" name="feedback_id" />
<pad bytes="2" />
</list>
</struct>
+ <enum name="ValuatorStateModeMask">
+ <item name="DeviceModeAbsolute"> <bit>0</bit> </item>
+ <item name="OutOfProximity"> <bit>1</bit> </item>
+ </enum>
+
<struct name="ValuatorState">
<field type="CARD8" name="class_id" enum="InputClass" />
<field type="CARD8" name="len" />
<field type="CARD8" name="num_valuators" />
- <field type="CARD8" name="mode" />
+ <field type="CARD8" name="mode" mask="ValuatorStateModeMask" />
<list type="CARD32" name="valuators">
<fieldref>num_valuators</fieldref>
</list>
<field type="CARD16" name="number" />
<field type="CARD16" name="scroll_type" enum="ScrollType" />
<pad bytes="2" />
- <field type="CARD32" name="flags" enum="ScrollFlags" />
+ <field type="CARD32" name="flags" mask="ScrollFlags" />
<field type="FP3232" name="increment" />
</struct>
<struct name="XIDeviceInfo">
<field type="DeviceId" name="deviceid" altenum="Device" />
- <field type="CARD16" name="type" altenum="DeviceType" />
+ <field type="CARD16" name="type" enum="DeviceType" />
<field type="DeviceId" name="attachment" altenum="Device" />
<field type="CARD16" name="num_classes" />
<field type="CARD16" name="name_len" />
<field type="INT16" name="root_y" />
<field type="INT16" name="event_x" />
<field type="INT16" name="event_y" />
- <field type="CARD16" name="state" />
+ <field type="CARD16" name="state" mask="KeyButMask" />
<field type="BOOL" name="same_screen" />
<field type="CARD8" name="device_id" />
</event>
<event name="DeviceMappingNotify" number="11">
<field type="BYTE" name="device_id" />
- <field type="CARD8" name="request" />
+ <field type="CARD8" name="request" enum="Mapping" />
<field type="KeyCode" name="first_keycode" />
<field type="CARD8" name="count" />
<pad bytes="1" />