xinput tweaks
[free-sw/xcb/proto] / src / xproto.xml
index 519912d..cf36875 100644 (file)
@@ -108,7 +108,7 @@ authorization from the authors.
 
   <struct name="VISUALTYPE">
     <field type="VISUALID" name="visual_id" />
-    <field type="CARD8" name="class" />
+    <field type="CARD8" name="class" enum="VisualClass" />
     <field type="CARD8" name="bits_per_rgb_value" />
     <field type="CARD16" name="colormap_entries" />
     <field type="CARD32" name="red_mask" />
@@ -132,7 +132,7 @@ authorization from the authors.
     <field type="COLORMAP" name="default_colormap" />
     <field type="CARD32" name="white_pixel" />
     <field type="CARD32" name="black_pixel" />
-    <field type="CARD32" name="current_input_masks" />
+    <field type="CARD32" name="current_input_masks" mask="EventMask" />
     <field type="CARD16" name="width_in_pixels" />
     <field type="CARD16" name="height_in_pixels" />
     <field type="CARD16" name="width_in_millimeters" />
@@ -140,7 +140,7 @@ authorization from the authors.
     <field type="CARD16" name="min_installed_maps" />
     <field type="CARD16" name="max_installed_maps" />
     <field type="VISUALID" name="root_visual" />
-    <field type="BYTE" name="backing_stores" />
+    <field type="BYTE" name="backing_stores" enum="BackingStore" />
     <field type="BOOL" name="save_unders" />
     <field type="CARD8" name="root_depth" />
     <field type="CARD8" name="allowed_depths_len" />
@@ -207,8 +207,8 @@ authorization from the authors.
     <field type="CARD16" name="maximum_request_length" />
     <field type="CARD8" name="roots_len" />
     <field type="CARD8" name="pixmap_formats_len" />
-    <field type="CARD8" name="image_byte_order" />
-    <field type="CARD8" name="bitmap_format_bit_order" />
+    <field type="CARD8" name="image_byte_order" enum="ImageOrder" />
+    <field type="CARD8" name="bitmap_format_bit_order" enum="ImageOrder" />
     <field type="CARD8" name="bitmap_format_scanline_unit" />
     <field type="CARD8" name="bitmap_format_scanline_pad" />
     <field type="KEYCODE" name="min_keycode" />
@@ -236,6 +236,27 @@ authorization from the authors.
     <item name="3">      <bit>5</bit></item>
     <item name="4">      <bit>6</bit></item>
     <item name="5">      <bit>7</bit></item>
+    <item name="Any">    <bit>15</bit></item>
+  </enum>
+
+  <enum name="KeyButMask">
+    <item name="Shift">  <bit>0</bit></item>
+    <item name="Lock">   <bit>1</bit></item>
+    <item name="Control"><bit>2</bit></item>
+    <item name="Mod1">   <bit>3</bit></item>
+    <item name="Mod2">   <bit>4</bit></item>
+    <item name="Mod3">   <bit>5</bit></item>
+    <item name="Mod4">   <bit>6</bit></item>
+    <item name="Mod5">   <bit>7</bit></item>
+    <item name="Button1"><bit>8</bit></item>
+    <item name="Button2"><bit>9</bit></item>
+    <item name="Button3"><bit>10</bit></item>
+    <item name="Button4"><bit>11</bit></item>
+    <item name="Button5"><bit>12</bit></item>
+  </enum>
+
+  <enum name="Window">
+    <item name="None"> <value>0</value></item>
   </enum>
 
   <event name="KeyPress" number="2">
@@ -243,12 +264,12 @@ authorization from the authors.
     <field type="TIMESTAMP" name="time" />
     <field type="WINDOW" name="root" />
     <field type="WINDOW" name="event" />
-    <field type="WINDOW" name="child" />
+    <field type="WINDOW" name="child" altenum="Window" />
     <field type="INT16" name="root_x" />
     <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" />
     <pad bytes="1" />
   </event>
@@ -269,12 +290,12 @@ authorization from the authors.
     <field type="TIMESTAMP" name="time" />
     <field type="WINDOW" name="root" />
     <field type="WINDOW" name="event" />
-    <field type="WINDOW" name="child" />
+    <field type="WINDOW" name="child" altenum="Window" />
     <field type="INT16" name="root_x" />
     <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" />
     <pad bytes="1" />
   </event>
@@ -288,16 +309,16 @@ authorization from the authors.
   </enum>
 
   <event name="MotionNotify" number="6">
-    <field type="BYTE" name="detail" />
+    <field type="BYTE" name="detail" enum="Motion" />
     <field type="TIMESTAMP" name="time" />
     <field type="WINDOW" name="root" />
     <field type="WINDOW" name="event" />
-    <field type="WINDOW" name="child" />
+    <field type="WINDOW" name="child" altenum="Window" />
     <field type="INT16" name="root_x" />
     <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" />
     <pad bytes="1" />
   </event>
@@ -321,26 +342,26 @@ authorization from the authors.
   </enum>
 
   <event name="EnterNotify" number="7">
-    <field type="BYTE" name="detail" />
+    <field type="BYTE" name="detail" enum="NotifyDetail" />
     <field type="TIMESTAMP" name="time" />
     <field type="WINDOW" name="root" />
     <field type="WINDOW" name="event" />
-    <field type="WINDOW" name="child" />
+    <field type="WINDOW" name="child" altenum="Window" />
     <field type="INT16" name="root_x" />
     <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="BYTE" name="mode" />
+    <field type="CARD16" name="state" mask="KeyButMask" />
+    <field type="BYTE" name="mode" enum="NotifyMode" />
     <field type="BYTE" name="same_screen_focus" />
   </event>
 
   <eventcopy name="LeaveNotify" number="8" ref="EnterNotify" />
 
   <event name="FocusIn" number="9">
-    <field type="BYTE" name="detail" />
+    <field type="BYTE" name="detail" enum="NotifyDetail" />
     <field type="WINDOW" name="event" />
-    <field type="BYTE" name="mode" />
+    <field type="BYTE" name="mode" enum="NotifyMode" />
     <pad bytes="3" />
   </event>
 
@@ -391,7 +412,7 @@ authorization from the authors.
   <event name="VisibilityNotify" number="15">
     <pad bytes="1" />
     <field type="WINDOW" name="window" />
-    <field type="BYTE" name="state" />
+    <field type="BYTE" name="state" enum="Visibility" />
     <pad bytes="3" />
   </event>
 
@@ -451,7 +472,7 @@ authorization from the authors.
     <pad bytes="1" />
     <field type="WINDOW" name="event" />
     <field type="WINDOW" name="window" />
-    <field type="WINDOW" name="above_sibling" />
+    <field type="WINDOW" name="above_sibling" altenum="Window" />
     <field type="INT16" name="x" />
     <field type="INT16" name="y" />
     <field type="CARD16" name="width" />
@@ -462,16 +483,16 @@ authorization from the authors.
   </event>
 
   <event name="ConfigureRequest" number="23">
-    <field type="BYTE" name="stack_mode" />
+    <field type="BYTE" name="stack_mode" enum="StackMode" />
     <field type="WINDOW" name="parent" />
     <field type="WINDOW" name="window" />
-    <field type="WINDOW" name="sibling" />
+    <field type="WINDOW" name="sibling" altenum="Window" />
     <field type="INT16" name="x" />
     <field type="INT16" name="y" />
     <field type="CARD16" name="width" />
     <field type="CARD16" name="height" />
     <field type="CARD16" name="border_width" />
-    <field type="CARD16" name="value_mask" />
+    <field type="CARD16" name="value_mask" mask="ConfigWindow" />
   </event>
 
   <event name="GravityNotify" number="24">
@@ -499,7 +520,7 @@ authorization from the authors.
     <field type="WINDOW" name="event" />
     <field type="WINDOW" name="window" />
     <pad bytes="4" />
-    <field type="BYTE" name="place" />
+    <field type="BYTE" name="place" enum="Place" />
     <pad bytes="3" />
   </event>
 
@@ -515,7 +536,7 @@ authorization from the authors.
     <field type="WINDOW" name="window" />
     <field type="ATOM" name="atom" />
     <field type="TIMESTAMP" name="time" />
-    <field type="BYTE" name="state" />
+    <field type="BYTE" name="state" enum="Property" />
     <pad bytes="3" />
   </event>
 
@@ -526,23 +547,31 @@ authorization from the authors.
     <field type="ATOM" name="selection" />
   </event>
 
+  <enum name="Time">
+    <item name="CurrentTime"> <value>0</value> </item>
+  </enum>
+
+  <enum name="Atom">
+    <item name="None"> <value>0</value></item>
+  </enum>
+
   <event name="SelectionRequest" number="30">
     <pad bytes="1" />
-    <field type="TIMESTAMP" name="time" />
+    <field type="TIMESTAMP" name="time" altenum="Time" />
     <field type="WINDOW" name="owner" />
     <field type="WINDOW" name="requestor" />
     <field type="ATOM" name="selection" />
     <field type="ATOM" name="target" />
-    <field type="ATOM" name="property" />
+    <field type="ATOM" name="property" altenum="Atom" />
   </event>
 
   <event name="SelectionNotify" number="31">
     <pad bytes="1" />
-    <field type="TIMESTAMP" name="time" />
+    <field type="TIMESTAMP" name="time" altenum="Time" />
     <field type="WINDOW" name="requestor" />
     <field type="ATOM" name="selection" />
     <field type="ATOM" name="target" />
-    <field type="ATOM" name="property" />
+    <field type="ATOM" name="property" altenum="Atom" />
   </event>
 
   <enum name="ColormapState">
@@ -550,12 +579,16 @@ authorization from the authors.
     <item name="Installed">  <value>1</value></item>
   </enum>
 
+  <enum name="Colormap">
+    <item name="None"> <value>0</value></item>
+  </enum>
+
   <event name="ColormapNotify" number="32">
     <pad bytes="1" />
     <field type="WINDOW" name="window" />
-    <field type="COLORMAP" name="colormap" />
+    <field type="COLORMAP" name="colormap" altenum="Colormap" />
     <field type="BOOL" name="new" />
-    <field type="BYTE" name="state" />
+    <field type="BYTE" name="state" enum="ColormapState" />
     <pad bytes="2" />
   </event>
 
@@ -582,7 +615,7 @@ authorization from the authors.
 
   <event name="MappingNotify" number="34">
     <pad bytes="1" />
-    <field type="BYTE" name="request" />
+    <field type="BYTE" name="request" enum="Mapping" />
     <field type="KEYCODE" name="first_keycode" />
     <field type="CARD8" name="count" />
     <pad bytes="1" />
@@ -721,7 +754,7 @@ authorization from the authors.
     <field type="CARD16" name="width" />
     <field type="CARD16" name="height" />
     <field type="CARD16" name="border_width" />
-    <field type="CARD16" name="class" />
+    <field type="CARD16" name="class" enum="WindowClass" />
     <field type="VISUALID" name="visual" />
     <valueparam value-mask-type="CARD32"
                 value-mask-name="value_mask"
@@ -746,21 +779,21 @@ authorization from the authors.
     <pad bytes="1" />
     <field type="WINDOW" name="window" />
     <reply>
-      <field type="CARD8" name="backing_store" />
+      <field type="CARD8" name="backing_store" enum="BackingStore" />
       <field type="VISUALID" name="visual" />
-      <field type="CARD16" name="class" />
-      <field type="CARD8" name="bit_gravity" />
-      <field type="CARD8" name="win_gravity" />
+      <field type="CARD16" name="class" enum="WindowClass" />
+      <field type="CARD8" name="bit_gravity" enum="Gravity" />
+      <field type="CARD8" name="win_gravity" enum="Gravity" />
       <field type="CARD32" name="backing_planes" />
       <field type="CARD32" name="backing_pixel" />
       <field type="BOOL" name="save_under" />
       <field type="BOOL" name="map_is_installed" />
-      <field type="CARD8" name="map_state" />
+      <field type="CARD8" name="map_state" enum="MapState" />
       <field type="BOOL" name="override_redirect" />
-      <field type="COLORMAP" name="colormap" />
-      <field type="CARD32" name="all_event_masks" />
-      <field type="CARD32" name="your_event_mask" />
-      <field type="CARD16" name="do_not_propagate_mask" />
+      <field type="COLORMAP" name="colormap" altenum="Colormap" />
+      <field type="CARD32" name="all_event_masks" mask="EventMask" />
+      <field type="CARD32" name="your_event_mask" mask="EventMask" />
+      <field type="CARD16" name="do_not_propagate_mask" mask="EventMask" />
       <pad bytes="2" />
     </reply>
   </request>
@@ -781,7 +814,7 @@ authorization from the authors.
   </enum>
 
   <request name="ChangeSaveSet" opcode="6">
-    <field type="BYTE" name="mode" />
+    <field type="BYTE" name="mode" enum="SetMode" />
     <field type="WINDOW" name="window" />
   </request>
 
@@ -846,7 +879,7 @@ authorization from the authors.
   </enum>
 
   <request name="CirculateWindow" opcode="13">
-    <field type="CARD8" name="direction" />
+    <field type="CARD8" name="direction" enum="Circulate" />
     <field type="WINDOW" name="window" />
   </request>
 
@@ -871,7 +904,7 @@ authorization from the authors.
     <reply>
       <pad bytes="1" />
       <field type="WINDOW" name="root" />
-      <field type="WINDOW" name="parent" />
+      <field type="WINDOW" name="parent" altenum="Window" />
       <field type="CARD16" name="children_len" />
       <pad bytes="14" />
       <list type="WINDOW" name="children">
@@ -889,7 +922,7 @@ authorization from the authors.
     </list>
     <reply>
       <pad bytes="1" />
-      <field type="ATOM" name="atom" />
+      <field type="ATOM" name="atom" altenum="Atom" />
     </reply>
   </request>
 
@@ -913,7 +946,7 @@ authorization from the authors.
   </enum>
 
   <request name="ChangeProperty" opcode="18">
-    <field type="CARD8" name="mode" />
+    <field type="CARD8" name="mode" enum="PropMode" />
     <field type="WINDOW" name="window" />
     <field type="ATOM" name="property" />
     <field type="ATOM" name="type" />
@@ -945,7 +978,7 @@ authorization from the authors.
     <field type="BOOL" name="delete" />
     <field type="WINDOW" name="window" />
     <field type="ATOM" name="property" />
-    <field type="ATOM" name="type" />
+    <field type="ATOM" name="type" altenum="GetPropertyType" />
     <field type="CARD32" name="long_offset" />
     <field type="CARD32" name="long_length" />
     <reply>
@@ -975,9 +1008,9 @@ authorization from the authors.
 
   <request name="SetSelectionOwner" opcode="22">
     <pad bytes="1" />
-    <field type="WINDOW" name="owner" />
+    <field type="WINDOW" name="owner" altenum="Window" />
     <field type="ATOM" name="selection" />
-    <field type="TIMESTAMP" name="time" />
+    <field type="TIMESTAMP" name="time" altenum="Time" />
   </request>
 
   <request name="GetSelectionOwner" opcode="23">
@@ -985,7 +1018,7 @@ authorization from the authors.
     <field type="ATOM" name="selection" />
     <reply>
       <pad bytes="1" />
-      <field type="WINDOW" name="owner" />
+      <field type="WINDOW" name="owner" altenum="Window" />
     </reply>
   </request>
 
@@ -994,8 +1027,8 @@ authorization from the authors.
     <field type="WINDOW" name="requestor" />
     <field type="ATOM" name="selection" />
     <field type="ATOM" name="target" />
-    <field type="ATOM" name="property" />
-    <field type="TIMESTAMP" name="time" />
+    <field type="ATOM" name="property" altenum="Atom" />
+    <field type="TIMESTAMP" name="time" altenum="Time" />
   </request>
 
   <enum name="SendEventDest">
@@ -1005,8 +1038,8 @@ authorization from the authors.
 
   <request name="SendEvent" opcode="25">
     <field type="BOOL" name="propagate" />
-    <field type="WINDOW" name="destination" />
-    <field type="CARD32" name="event_mask" />
+    <field type="WINDOW" name="destination" altenum="SendEventDest" />
+    <field type="CARD32" name="event_mask" mask="EventMask" />
     <list type="char" name="event"><value>32</value></list>
   </request>
 
@@ -1023,23 +1056,27 @@ authorization from the authors.
     <item name="Frozen">        <value>4</value></item>
   </enum>
 
+  <enum name="Cursor">
+    <item name="None"> <value>0</value></item>
+  </enum>
+
   <request name="GrabPointer" opcode="26">
     <field type="BOOL" name="owner_events" />
     <field type="WINDOW" name="grab_window" />
-    <field type="CARD16" name="event_mask" />
-    <field type="BYTE" name="pointer_mode" />
-    <field type="BYTE" name="keyboard_mode" />
-    <field type="WINDOW" name="confine_to" />
-    <field type="CURSOR" name="cursor" />
-    <field type="TIMESTAMP" name="time" />
+    <field type="CARD16" name="event_mask" mask="EventMask" />
+    <field type="BYTE" name="pointer_mode" enum="GrabMode" />
+    <field type="BYTE" name="keyboard_mode" enum="GrabMode" />
+    <field type="WINDOW" name="confine_to" altenum="Window" />
+    <field type="CURSOR" name="cursor" altenum="Cursor" />
+    <field type="TIMESTAMP" name="time" altenum="Time" />
     <reply>
-      <field type="BYTE" name="status" />
+      <field type="BYTE" name="status" enum="GrabStatus" />
     </reply>
   </request>
 
   <request name="UngrabPointer" opcode="27">
     <pad bytes="1" />
-    <field type="TIMESTAMP" name="time" />
+    <field type="TIMESTAMP" name="time" altenum="Time" />
   </request>
 
   <enum name="ButtonIndex">
@@ -1054,46 +1091,46 @@ authorization from the authors.
   <request name="GrabButton" opcode="28">
     <field type="BOOL" name="owner_events" />
     <field type="WINDOW" name="grab_window" />
-    <field type="CARD16" name="event_mask" />
-    <field type="CARD8" name="pointer_mode" />
-    <field type="CARD8" name="keyboard_mode" />
-    <field type="WINDOW" name="confine_to" />
-    <field type="CURSOR" name="cursor" />
-    <field type="CARD8" name="button" />
+    <field type="CARD16" name="event_mask" mask="EventMask" />
+    <field type="CARD8" name="pointer_mode" enum="GrabMode" />
+    <field type="CARD8" name="keyboard_mode" enum="GrabMode" />
+    <field type="WINDOW" name="confine_to" altenum="Window" />
+    <field type="CURSOR" name="cursor" altenum="Cursor" />
+    <field type="CARD8" name="button" enum="ButtonIndex" />
     <pad bytes="1" />
-    <field type="CARD16" name="modifiers" />
+    <field type="CARD16" name="modifiers" mask="ModMask" />
   </request>
 
   <request name="UngrabButton" opcode="29">
-    <field type="CARD8" name="button" />
+    <field type="CARD8" name="button" enum="ButtonIndex" />
     <field type="WINDOW" name="grab_window" />
-    <field type="CARD16" name="modifiers" />
+    <field type="CARD16" name="modifiers" mask="ModMask" />
     <pad bytes="2" />
   </request>
 
   <request name="ChangeActivePointerGrab" opcode="30">
     <pad bytes="1" />
-    <field type="CURSOR" name="cursor" />
-    <field type="TIMESTAMP" name="time" />
-    <field type="CARD16" name="event_mask" />
+    <field type="CURSOR" name="cursor" altenum="Cursor" />
+    <field type="TIMESTAMP" name="time" altenum="Time" />
+    <field type="CARD16" name="event_mask" mask="EventMask" />
     <pad bytes="2" />
   </request>
 
   <request name="GrabKeyboard" opcode="31">
     <field type="BOOL" name="owner_events" />
     <field type="WINDOW" name="grab_window" />
-    <field type="TIMESTAMP" name="time" />
-    <field type="BYTE" name="pointer_mode" />
-    <field type="BYTE" name="keyboard_mode" />
+    <field type="TIMESTAMP" name="time" altenum="Time" />
+    <field type="BYTE" name="pointer_mode" enum="GrabMode" />
+    <field type="BYTE" name="keyboard_mode" enum="GrabMode" />
     <pad bytes="2" />
     <reply>
-      <field type="BYTE" name="status" />
+      <field type="BYTE" name="status" enum="GrabStatus" />
     </reply>
   </request>
 
   <request name="UngrabKeyboard" opcode="32">
     <pad bytes="1" />
-    <field type="TIMESTAMP" name="time" />
+    <field type="TIMESTAMP" name="time" altenum="Time" />
   </request>
 
   <!-- Use KEYCODE any = { XCBGrabAny }; to grab any key -->
@@ -1104,17 +1141,17 @@ authorization from the authors.
   <request name="GrabKey" opcode="33">
     <field type="BOOL" name="owner_events" />
     <field type="WINDOW" name="grab_window" />
-    <field type="CARD16" name="modifiers" />
-    <field type="KEYCODE" name="key" />
-    <field type="CARD8" name="pointer_mode" />
-    <field type="CARD8" name="keyboard_mode" />
+    <field type="CARD16" name="modifiers" mask="ModMask" />
+    <field type="KEYCODE" name="key" altenum="Grab" />
+    <field type="CARD8" name="pointer_mode" enum="GrabMode" />
+    <field type="CARD8" name="keyboard_mode" enum="GrabMode" />
     <pad bytes="3" />
   </request>
 
   <request name="UngrabKey" opcode="34">
-    <field type="KEYCODE" name="key" />
+    <field type="KEYCODE" name="key" altenum="Grab" />
     <field type="WINDOW" name="grab_window" />
-    <field type="CARD16" name="modifiers" />
+    <field type="CARD16" name="modifiers" mask="ModMask" />
     <pad bytes="2" />
   </request>
 
@@ -1130,8 +1167,8 @@ authorization from the authors.
   </enum>
 
   <request name="AllowEvents" opcode="35">
-    <field type="CARD8" name="mode" />
-    <field type="TIMESTAMP" name="time" />
+    <field type="CARD8" name="mode" enum="Allow" />
+    <field type="TIMESTAMP" name="time" altenum="Time" />
   </request>
 
   <request name="GrabServer" opcode="36" />
@@ -1144,12 +1181,12 @@ authorization from the authors.
     <reply>
       <field type="BOOL" name="same_screen" />
       <field type="WINDOW" name="root" />
-      <field type="WINDOW" name="child" />
+      <field type="WINDOW" name="child" altenum="Window" />
       <field type="INT16" name="root_x" />
       <field type="INT16" name="root_y" />
       <field type="INT16" name="win_x" />
       <field type="INT16" name="win_y" />
-      <field type="CARD16" name="mask" />
+      <field type="CARD16" name="mask" mask="KeyButMask" />
       <pad bytes="2" />
     </reply>
   </request>
@@ -1163,8 +1200,8 @@ authorization from the authors.
   <request name="GetMotionEvents" opcode="39">
     <pad bytes="1" />
     <field type="WINDOW" name="window" />
-    <field type="TIMESTAMP" name="start" />
-    <field type="TIMESTAMP" name="stop" />
+    <field type="TIMESTAMP" name="start" altenum="Time" />
+    <field type="TIMESTAMP" name="stop" altenum="Time" />
     <reply>
       <pad bytes="1" />
       <field type="CARD32" name="events_len" />
@@ -1183,7 +1220,7 @@ authorization from the authors.
     <field type="INT16" name="src_y" />
     <reply>
       <field type="BOOL" name="same_screen" />
-      <field type="WINDOW" name="child" />
+      <field type="WINDOW" name="child" altenum="Window" />
       <field type="CARD16" name="dst_x" />
       <field type="CARD16" name="dst_y" />
     </reply>
@@ -1191,8 +1228,8 @@ authorization from the authors.
 
   <request name="WarpPointer" opcode="41">
     <pad bytes="1" />
-    <field type="WINDOW" name="src_window" />
-    <field type="WINDOW" name="dst_window" />
+    <field type="WINDOW" name="src_window" altenum="Window" />
+    <field type="WINDOW" name="dst_window" altenum="Window" />
     <field type="INT16" name="src_x" />
     <field type="INT16" name="src_y" />
     <field type="CARD16" name="src_width" />
@@ -1209,15 +1246,15 @@ authorization from the authors.
   </enum>
 
   <request name="SetInputFocus" opcode="42">
-    <field type="CARD8" name="revert_to" />
-    <field type="WINDOW" name="focus" />
-    <field type="TIMESTAMP" name="time" />
+    <field type="CARD8" name="revert_to" enum="InputFocus" />
+    <field type="WINDOW" name="focus" altenum="InputFocus" />
+    <field type="TIMESTAMP" name="time" altenum="Time" />
   </request>
 
   <request name="GetInputFocus" opcode="43">
     <reply>
-      <field type="CARD8" name="revert_to" />
-      <field type="WINDOW" name="focus" />
+      <field type="CARD8" name="revert_to" enum="InputFocus" />
+      <field type="WINDOW" name="focus" altenum="InputFocus" />
     </reply>
   </request>
 
@@ -1275,7 +1312,7 @@ authorization from the authors.
       <field type="CARD16" name="max_char_or_byte2" />
       <field type="CARD16" name="default_char" />
       <field type="CARD16" name="properties_len" />
-      <field type="BYTE" name="draw_direction" />
+      <field type="BYTE" name="draw_direction" enum="FontDraw" />
       <field type="CARD8" name="min_byte1" />
       <field type="CARD8" name="max_byte1" />
       <field type="BOOL" name="all_chars_exist" />
@@ -1298,7 +1335,7 @@ authorization from the authors.
     <field type="FONTABLE" name="font" />
     <list type="CHAR2B" name="string" />
     <reply>
-      <field type="BYTE" name="draw_direction" />
+      <field type="BYTE" name="draw_direction" enum="FontDraw" />
       <field type="INT16" name="font_ascent" />
       <field type="INT16" name="font_descent" />
       <field type="INT16" name="overall_ascent" />
@@ -1350,7 +1387,7 @@ authorization from the authors.
       <field type="CARD16" name="max_char_or_byte2" />
       <field type="CARD16" name="default_char" />
       <field type="CARD16" name="properties_len" />
-      <field type="BYTE" name="draw_direction" />
+      <field type="BYTE" name="draw_direction" enum="FontDraw" />
       <field type="CARD8" name="min_byte1" />
       <field type="CARD8" name="max_byte1" />
       <field type="BOOL" name="all_chars_exist" />
@@ -1504,7 +1541,7 @@ authorization from the authors.
     <pad bytes="1" />
     <field type="GCONTEXT" name="src_gc" />
     <field type="GCONTEXT" name="dst_gc" />
-    <field type="CARD32" name="value_mask" />
+    <field type="CARD32" name="value_mask" mask="GC" />
   </request>
 
   <request name="SetDashes" opcode="58">
@@ -1525,7 +1562,7 @@ authorization from the authors.
   </enum>
 
   <request name="SetClipRectangles" opcode="59">
-    <field type="BYTE" name="ordering" />
+    <field type="BYTE" name="ordering" enum="ClipOrdering" />
     <field type="GCONTEXT" name="gc" />
     <field type="INT16" name="clip_x_origin" />
     <field type="INT16" name="clip_y_origin" />
@@ -1580,14 +1617,14 @@ authorization from the authors.
 
   <!-- combine-adjacent doesn't work for mode==Relative -->
   <request name="PolyPoint" opcode="64">
-    <field type="BYTE" name="coordinate_mode" />
+    <field type="BYTE" name="coordinate_mode" enum="CoordMode" />
     <field type="DRAWABLE" name="drawable" />
     <field type="GCONTEXT" name="gc" />
     <list type="POINT" name="points" />
   </request>
 
   <request name="PolyLine" opcode="65" combine-adjacent="true">
-    <field type="BYTE" name="coordinate_mode" />
+    <field type="BYTE" name="coordinate_mode" enum="CoordMode" />
     <field type="DRAWABLE" name="drawable" />
     <field type="GCONTEXT" name="gc" />
     <list type="POINT" name="points" />
@@ -1636,8 +1673,8 @@ authorization from the authors.
     <pad bytes="1" />
     <field type="DRAWABLE" name="drawable" />
     <field type="GCONTEXT" name="gc" />
-    <field type="CARD8" name="shape" />
-    <field type="CARD8" name="coordinate_mode" />
+    <field type="CARD8" name="shape" enum="PolyShape" />
+    <field type="CARD8" name="coordinate_mode" enum="CoordMode" />
     <pad bytes="2" />
     <list type="POINT" name="points" />
   </request>
@@ -1663,7 +1700,7 @@ authorization from the authors.
   </enum>
 
   <request name="PutImage" opcode="72">
-    <field type="CARD8" name="format" />
+    <field type="CARD8" name="format" enum="ImageFormat" />
     <field type="DRAWABLE" name="drawable" />
     <field type="GCONTEXT" name="gc" />
     <field type="CARD16" name="width" />
@@ -1678,7 +1715,7 @@ authorization from the authors.
 
   <!-- FIXME: data array in reply will include padding, but ought not to. -->
   <request name="GetImage" opcode="73">
-    <field type="CARD8" name="format" />
+    <field type="CARD8" name="format" enum="ImageFormat" />
     <field type="DRAWABLE" name="drawable" />
     <field type="INT16" name="x" />
     <field type="INT16" name="y" />
@@ -1744,7 +1781,7 @@ authorization from the authors.
   </enum>
 
   <request name="CreateColormap" opcode="78">
-    <field type="BYTE" name="alloc" />
+    <field type="BYTE" name="alloc" enum="ColormapAlloc" />
     <field type="COLORMAP" name="mid" />
     <field type="WINDOW" name="window" />
     <field type="VISUALID" name="visual" />
@@ -1879,7 +1916,7 @@ authorization from the authors.
     <field type="CARD16" name="red" />
     <field type="CARD16" name="green" />
     <field type="CARD16" name="blue" />
-    <field type="BYTE" name="flags" />
+    <field type="BYTE" name="flags" mask="ColorFlag" />
     <pad bytes="1" />
   </struct>
   
@@ -1890,7 +1927,7 @@ authorization from the authors.
   </request>
 
   <request name="StoreNamedColor" opcode="90">
-    <field type="CARD8" name="flags" />
+    <field type="CARD8" name="flags" mask="ColorFlag" />
     <field type="COLORMAP" name="cmap" />
     <field type="CARD32" name="pixel" />
     <field type="CARD16" name="name_len" />
@@ -1940,11 +1977,15 @@ authorization from the authors.
     </reply>
   </request>
 
+  <enum name="Pixmap">
+    <item name="None"> <value>0</value></item>
+  </enum>
+
   <request name="CreateCursor" opcode="93">
     <pad bytes="1" />
     <field type="CURSOR" name="cid" />
     <field type="PIXMAP" name="source" />
-    <field type="PIXMAP" name="mask" />
+    <field type="PIXMAP" name="mask" altenum="Pixmap" />
     <field type="CARD16" name="fore_red" />
     <field type="CARD16" name="fore_green" />
     <field type="CARD16" name="fore_blue" />
@@ -1955,11 +1996,15 @@ authorization from the authors.
     <field type="CARD16" name="y" />
   </request>
 
+  <enum name="Font">
+    <item name="None"> <value>0</value></item>
+  </enum>
+
   <request name="CreateGlyphCursor" opcode="94">
     <pad bytes="1" />
     <field type="CURSOR" name="cid" />
     <field type="FONT" name="source_font" />
-    <field type="FONT" name="mask_font" />
+    <field type="FONT" name="mask_font" altenum="Font" />
     <field type="CARD16" name="source_char" />
     <field type="CARD16" name="mask_char" />
     <field type="CARD16" name="fore_red" />
@@ -1993,7 +2038,7 @@ authorization from the authors.
   </enum>
 
   <request name="QueryBestSize" opcode="97">
-    <field type="CARD8" name="class" />
+    <field type="CARD8" name="class" enum="QueryShapeOf" />
     <field type="DRAWABLE" name="drawable" />
     <field type="CARD16" name="width" />
     <field type="CARD16" name="height" />
@@ -2086,7 +2131,7 @@ authorization from the authors.
 
   <request name="GetKeyboardControl" opcode="103">
     <reply>
-      <field type="BYTE" name="global_auto_repeat" />
+      <field type="BYTE" name="global_auto_repeat" enum="AutoRepeatMode" />
       <field type="CARD32" name="led_mask" />
       <field type="CARD8" name="key_click_percent" />
       <field type="CARD8" name="bell_percent" />
@@ -2139,8 +2184,8 @@ authorization from the authors.
     <pad bytes="1" />
     <field type="INT16" name="timeout" />
     <field type="INT16" name="interval" />
-    <field type="CARD8" name="prefer_blanking" />
-    <field type="CARD8" name="allow_exposures" />
+    <field type="CARD8" name="prefer_blanking" enum="Blanking" />
+    <field type="CARD8" name="allow_exposures" enum="Exposures" />
   </request>
 
   <request name="GetScreenSaver" opcode="108">
@@ -2148,8 +2193,8 @@ authorization from the authors.
       <pad bytes="1" />
       <field type="CARD16" name="timeout" />
       <field type="CARD16" name="interval" />
-      <field type="BYTE" name="prefer_blanking" />
-      <field type="BYTE" name="allow_exposures" />
+      <field type="BYTE" name="prefer_blanking" enum="Blanking" />
+      <field type="BYTE" name="allow_exposures" enum="Exposures" />
       <pad bytes="18" />
     </reply>
   </request>
@@ -2169,8 +2214,8 @@ authorization from the authors.
   </enum>
 
   <request name="ChangeHosts" opcode="109">
-    <field type="CARD8" name="mode" />
-    <field type="CARD8" name="family" />
+    <field type="CARD8" name="mode" enum="HostMode" />
+    <field type="CARD8" name="family" enum="Family" />
     <pad bytes="1" />
     <field type="CARD16" name="address_len" />
     <list type="char" name="address">
@@ -2179,7 +2224,7 @@ authorization from the authors.
   </request>
 
   <struct name="HOST">
-    <field type="CARD8" name="family" />
+    <field type="CARD8" name="family" enum="Family" />
     <pad bytes="1" />
     <field type="CARD16" name="address_len" />
     <list type="BYTE" name="address">
@@ -2189,7 +2234,7 @@ authorization from the authors.
 
   <request name="ListHosts" opcode="110">
     <reply>
-      <field type="BYTE" name="mode" />
+      <field type="BYTE" name="mode" enum="AccessControl" />
       <field type="CARD16" name="hosts_len" />
       <pad bytes="22" />
       <list type="HOST" name="hosts">
@@ -2204,7 +2249,7 @@ authorization from the authors.
   </enum>
 
   <request name="SetAccessControl" opcode="111">
-    <field type="CARD8" name="mode" />
+    <field type="CARD8" name="mode" enum="AccessControl" />
   </request>
 
   <enum name="CloseDown">
@@ -2214,7 +2259,7 @@ authorization from the authors.
   </enum>
 
   <request name="SetCloseDownMode" opcode="112">
-    <field type="CARD8" name="mode" />
+    <field type="CARD8" name="mode" enum="CloseDown" />
   </request>
 
   <enum name="Kill">
@@ -2223,7 +2268,7 @@ authorization from the authors.
 
   <request name="KillClient" opcode="113">
     <pad bytes="1" />
-    <field type="CARD32" name="resource" />
+    <field type="CARD32" name="resource" altenum="Kill" />
   </request>
 
   <request name="RotateProperties" opcode="114">
@@ -2242,7 +2287,7 @@ authorization from the authors.
   </enum>
 
   <request name="ForceScreenSaver" opcode="115">
-    <field type="CARD8" name="mode" />
+    <field type="CARD8" name="mode" enum="ScreenSaver" />
   </request>
 
   <!-- Reply from SetPointerMapping or SetModifierMapping -->
@@ -2258,7 +2303,7 @@ authorization from the authors.
       <fieldref>map_len</fieldref>
     </list>
     <reply>
-      <field type="BYTE" name="status" />
+      <field type="BYTE" name="status" enum="MappingStatus" />
     </reply>
   </request>
 
@@ -2292,7 +2337,7 @@ authorization from the authors.
       </op>
     </list>
     <reply>
-      <field type="BYTE" name="status" />
+      <field type="BYTE" name="status" enum="MappingStatus" />
     </reply>
   </request>