[Xcb] [PATCH proto 1/1] Replace valueparam with switch-bitcase in Xproto

Christian Linhart chris at DemoRecorder.com
Sat Feb 21 23:39:47 PST 2015


Hi Jaya,

Thank your fixing the padding issue.

Your patch looks good, therefore:
Reviewed-by: Christian Linhart <chris at demorecorder.com>

Regards,

Chris

P.S.: Your patch didn't apply out of the box due to whitespace and line-wrapping issues.
I guess this is because you have sent your patch in an HTML-email.
Please make sure to send patches in text-only emails to avoid these problems in the future.


On 01/27/15 16:29, Jaya Tiwari wrote:
> Hi Chris, Vincent,
>
> Thankyou for the comments.
> I have rearranged the pad position in the patch below.
>
>
> CreateWindow
> ChangeWindowAttributes
> ConfigureWindow
> CreateGC
> ChangeGC
> ChangeKeyboardControl
>
> The changes of valueparam to switch has been made as per the specs for
> the extension for the possible values of value-mask and value-list
>
> CreateWindow:
> http://cgit.freedesktop.org/xorg/proto/xproto/tree/specs/encoding.xml#n979
>
> ChangeWindowAttributes:
> http://cgit.freedesktop.org/xorg/proto/xproto/tree/specs/encoding.xml#n1006
>
> ConfigureWindow:
> http://cgit.freedesktop.org/xorg/proto/xproto/tree/specs/encoding.xml#n1105
>
> CreateGC:
> http://cgit.freedesktop.org/xorg/proto/xproto/tree/specs/encoding.xml#n1815
>
> ChangeGC:
> http://cgit.freedesktop.org/xorg/proto/xproto/tree/specs/encoding.xml#n1909
>
> ChangeKeyboardControl:
> http://cgit.freedesktop.org/xorg/proto/xproto/tree/specs/encoding.xml#n2547
>
> Casted KEYCODE32 as a CARD32 and added BOOL32 here instead of glx due
> common to usage in other extensions.
>
> Signed-off-by: Jaya Tiwari <tiwari.jaya18 at gmail.com <mailto:tiwari.jaya18 at gmail.com>>
>
> ---
>  src/xproto.xml | 414 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
>  1 file changed, 395 insertions(+), 19 deletions(-)
>
> diff --git a/src/xproto.xml b/src/xproto.xml
> index bfb8a4c..db2e5a9 100644
> --- a/src/xproto.xml
> +++ b/src/xproto.xml
> @@ -57,6 +57,7 @@ authorization from the authors.
>      <type>GCONTEXT</type>
>    </xidunion>
>   
> +  <typedef oldname="CARD32" newname="BOOL32" />
>    <typedef oldname="CARD32" newname="VISUALID" />
>  
>    <typedef oldname="CARD32" newname="TIMESTAMP" />
> @@ -64,6 +65,8 @@ authorization from the authors.
>    <typedef oldname="CARD32" newname="KEYSYM" />
>  
>    <typedef oldname="CARD8" newname="KEYCODE" />
> + 
> +  <typedef oldname="CARD32" newname="KEYCODE32" />
>  
>    <typedef oldname="CARD8" newname="BUTTON" />
>  
> @@ -1293,9 +1296,71 @@ parent's cursor will cause an immediate change in the displayed cursor.
>      <field type="CARD16" name="border_width" />
>      <field type="CARD16" name="class" enum="WindowClass" />
>      <field type="VISUALID" name="visual" />
> -    <valueparam value-mask-type="CARD32"
> -                value-mask-name="value_mask"
> -                value-list-name="value_list" />
> +    <field type="CARD32" name="value_mask" mask="CW" />
> +    <switch name="value_list">
> +        <fieldref>value_mask</fieldref>
> +        <bitcase>
> +          <enumref ref="CW">BackPixmap</enumref>
> +          <field type="PIXMAP" name="background_pixmap" altenum="BackPixmap"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BackPixel</enumref>
> +          <field type="CARD32" name="background_pixel" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BorderPixmap</enumref>
> +          <field type="PIXMAP" name="border_pixmap" altenum="Pixmap"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BorderPixel</enumref>
> +          <field type="CARD32" name="border_pixel" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BitGravity</enumref>
> +          <field type="CARD32" name="bit_gravity" enum="Gravity"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">WinGravity</enumref>
> +          <field type="CARD32" name="win_gravity" enum="Gravity"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BackingStore</enumref>
> +          <field type="CARD32" name="backing_store" enum="BackingStore"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BackingPlanes</enumref>
> +          <field type="CARD32" name="backing_planes" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BackingPixel</enumref>
> +          <field type="CARD32" name="backing_pixel" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">OverrideRedirect</enumref>
> +          <field type="BOOL32" name="override_redirect" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">SaveUnder</enumref>
> +          <field type="BOOL32" name="save_under" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">EventMask</enumref>
> +          <field type="CARD32" name="event_mask" mask="EventMask"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">DontPropagate</enumref>
> +          <field type="CARD32" name="do_not_propogate_mask" mask="EventMask"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">Colormap</enumref>
> +          <field type="COLORMAP" name="colormap" altenum="Colormap"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">Cursor</enumref>
> +          <field type="CURSOR" name="cursor" altenum="Cursor"/>
> +        </bitcase>
> +    </switch>
> +
>      <doc>
>        <brief>Creates a window</brief>
>        <description><![CDATA[
> @@ -1374,9 +1439,71 @@ The X server could not allocate the requested resources (no memory?).
>    <request name="ChangeWindowAttributes" opcode="2">
>      <pad bytes="1" />
>      <field type="WINDOW" name="window" />
> -    <valueparam value-mask-type="CARD32"
> -                value-mask-name="value_mask"
> -                value-list-name="value_list" />
> +    <field type="CARD32" name="value_mask" mask="CW" />
> +    <switch name="value_list">
> +        <fieldref>value_mask</fieldref>
> +        <bitcase>
> +          <enumref ref="CW">BackPixmap</enumref>
> +          <field type="PIXMAP" name="background_pixmap" altenum="BackPixmap"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BackPixel</enumref>
> +          <field type="CARD32" name="background_pixel" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BorderPixmap</enumref>
> +          <field type="PIXMAP" name="border_pixmap" altenum="Pixmap"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BorderPixel</enumref>
> +          <field type="CARD32" name="border_pixel" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BitGravity</enumref>
> +          <field type="CARD32" name="bit_gravity" enum="Gravity"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">WinGravity</enumref>
> +          <field type="CARD32" name="win_gravity" enum="Gravity"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BackingStore</enumref>
> +          <field type="CARD32" name="backing_store" enum="BackingStore"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BackingPlanes</enumref>
> +          <field type="CARD32" name="backing_planes" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">BackingPixel</enumref>
> +          <field type="CARD32" name="backing_pixel" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">OverrideRedirect</enumref>
> +          <field type="BOOL32" name="override_redirect" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">SaveUnder</enumref>
> +          <field type="BOOL32" name="save_under" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">EventMask</enumref>
> +          <field type="CARD32" name="event_mask" mask="EventMask"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">DontPropagate</enumref>
> +          <field type="CARD32" name="do_not_propogate_mask" mask="EventMask"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">Colormap</enumref>
> +          <field type="COLORMAP" name="colormap" altenum="Colormap"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="CW">Cursor</enumref>
> +          <field type="CURSOR" name="cursor" altenum="Cursor"/>
> +        </bitcase>
> +    </switch>
> +
>      <doc>
>        <brief>change window attributes</brief>
>        <description><![CDATA[
> @@ -1689,11 +1816,40 @@ The specified window does not exist.
>    <request name="ConfigureWindow" opcode="12">
>      <pad bytes="1" />
>      <field type="WINDOW" name="window" />
> -    <field type="CARD16" name="value_mask" />
> +    <field type="CARD16" name="value_mask" mask="ConfigWindow" />
>      <pad bytes="2" />
> -    <valueparam value-mask-type="CARD16"
> -                value-mask-name="value_mask"
> -                value-list-name="value_list" />
> +    <switch name="value_list">
> +        <fieldref>value_mask</fieldref>
> +        <bitcase>
> +          <enumref ref="ConfigWindow">X</enumref>
> +          <field type="INT32" name="x" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="ConfigWindow">Y</enumref>
> +          <field type="INT32" name="y" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="ConfigWindow">Width</enumref>
> +          <field type="CARD32" name="width" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="ConfigWindow">Height</enumref>
> +          <field type="CARD32" name="height" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="ConfigWindow">BorderWidth</enumref>
> +          <field type="CARD32" name="border_width" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="ConfigWindow">Sibling</enumref>
> +          <field type="WINDOW" name="sibling" altenum="Window"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="ConfigWindow">StackMode</enumref>
> +          <field type="CARD32" name="stack_mode" enum="StackMode"/>
> +        </bitcase>
> +    </switch>
> +   
>      <doc>
>        <brief>Configures window attributes</brief>
>        <description><![CDATA[
> @@ -3883,9 +4039,102 @@ TODO
>      <pad bytes="1" />
>      <field type="GCONTEXT" name="cid" />
>      <field type="DRAWABLE" name="drawable" />
> -    <valueparam value-mask-type="CARD32"
> -                value-mask-name="value_mask"
> -                value-list-name="value_list" />
> +    <field type="CARD32" name="value_mask" mask="GC" />
> +    <switch name="value_list">
> +        <fieldref>value_mask</fieldref>
> +        <bitcase>
> +          <enumref ref="GC">Function</enumref>
> +          <field type="CARD32" name="function" enum="GX"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">PlaneMask</enumref>
> +          <field type="CARD32" name="plane_mask" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">Foreground</enumref>
> +          <field type="CARD32" name="foreground" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">Background</enumref>
> +          <field type="CARD32" name="background" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">LineWidth</enumref>
> +          <field type="CARD32" name="line_width" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">LineStyle</enumref>
> +          <field type="CARD32" name="line_style" enum="LineStyle"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">CapStyle</enumref>
> +          <field type="CARD32" name="cap_style" enum="CapStyle"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">JoinStyle</enumref>
> +          <field type="CARD32" name="join_style" enum="JoinStyle"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">FillStyle</enumref>
> +          <field type="CARD32" name="fill_style" enum="FillStyle"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">FillRule</enumref>
> +          <field type="CARD32" name="fill_rule" enum="FillRule"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">Tile</enumref>
> +          <field type="PIXMAP" name="tile" altenum="Pixmap"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">Stipple</enumref>
> +          <field type="PIXMAP" name="stipple" altenum="Pixmap"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">TileStippleOriginX</enumref>
> +          <field type="INT32" name="tile_stipple_x_origin" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">TileStippleOriginY</enumref>
> +          <field type="INT32" name="tile_stipple_y_origin" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">Font</enumref>
> +          <field type="FONT" name="font" altenum="Font"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">SubwindowMode</enumref>
> +          <field type="CARD32" name="subwindow_mode" enum="SubwindowMode"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">GraphicsExposures</enumref>
> +          <field type="BOOL32" name="graphics_exposures" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">ClipOriginX</enumref>
> +          <field type="INT32" name="clip_x_origin" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">ClipOriginY</enumref>
> +          <field type="INT32" name="clip_y_origin" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">ClipMask</enumref>
> +          <field type="PIXMAP" name="clip_mask" altenum="Pixmap"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">DashOffset</enumref>
> +          <field type="CARD32" name="dash_offset" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">DashList</enumref>
> +          <field type="CARD32" name="dashes" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">ArcMode</enumref>
> +          <field type="CARD32" name="arc_mode" enum="ArcMode"/>
> +        </bitcase>
> +    </switch>
>      <doc>
>        <brief>Creates a graphics context</brief>
>        <description><![CDATA[
> @@ -3924,9 +4173,102 @@ The X server could not allocate the requested resources (no memory?).
>    <request name="ChangeGC" opcode="56">
>      <pad bytes="1" />
>      <field type="GCONTEXT" name="gc" />
> -    <valueparam value-mask-type="CARD32"
> -                value-mask-name="value_mask"
> -                value-list-name="value_list" />
> +    <field type="CARD32" name="value_mask" mask="GC" />
> +    <switch name="value_list">
> +        <fieldref>value_mask</fieldref>
> +        <bitcase>
> +          <enumref ref="GC">Function</enumref>
> +          <field type="CARD32" name="function" enum="GX"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">PlaneMask</enumref>
> +          <field type="CARD32" name="plane_mask" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">Foreground</enumref>
> +          <field type="CARD32" name="foreground" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">Background</enumref>
> +          <field type="CARD32" name="background" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">LineWidth</enumref>
> +          <field type="CARD32" name="line_width" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">LineStyle</enumref>
> +          <field type="CARD32" name="line_style" enum="LineStyle"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">CapStyle</enumref>
> +          <field type="CARD32" name="cap_style" enum="CapStyle"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">JoinStyle</enumref>
> +          <field type="CARD32" name="join_style" enum="JoinStyle"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">FillStyle</enumref>
> +          <field type="CARD32" name="fill_style" enum="FillStyle"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">FillRule</enumref>
> +          <field type="CARD32" name="fill_rule" enum="FillRule"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">Tile</enumref>
> +          <field type="PIXMAP" name="tile" altenum="Pixmap"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">Stipple</enumref>
> +          <field type="PIXMAP" name="stipple" altenum="Pixmap"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">TileStippleOriginX</enumref>
> +          <field type="INT32" name="tile_stipple_x_origin" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">TileStippleOriginY</enumref>
> +          <field type="INT32" name="tile_stipple_y_origin" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">Font</enumref>
> +          <field type="FONT" name="font" altenum="Font"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">SubwindowMode</enumref>
> +          <field type="CARD32" name="subwindow_mode" enum="SubwindowMode"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">GraphicsExposures</enumref>
> +          <field type="BOOL32" name="graphics_exposures" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">ClipOriginX</enumref>
> +          <field type="INT32" name="clip_x_origin" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">ClipOriginY</enumref>
> +          <field type="INT32" name="clip_y_origin" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">ClipMask</enumref>
> +          <field type="PIXMAP" name="clip_mask" altenum="Pixmap"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">DashOffset</enumref>
> +          <field type="CARD32" name="dash_offset" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">DashList</enumref>
> +          <field type="CARD32" name="dashes" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="GC">ArcMode</enumref>
> +          <field type="CARD32" name="arc_mode" enum="ArcMode"/>
> +        </bitcase>
> +    </switch>
>      <doc>
>        <brief>change graphics context components</brief>
>        <description><![CDATA[
> @@ -4982,9 +5324,43 @@ sensitive!
>  
>    <request name="ChangeKeyboardControl" opcode="102">
>      <pad bytes="1" />
> -    <valueparam value-mask-type="CARD32"
> -                value-mask-name="value_mask"
> -                value-list-name="value_list" />
> +    <field type="CARD32" name="value_mask" mask="KB" />
> +    <switch name="value_list">
> +        <fieldref>value_mask</fieldref>
> +        <bitcase>
> +          <enumref ref="KB">KeyClickPercent</enumref>
> +          <field type="INT32" name="key_click_percent" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="KB">BellPercent</enumref>
> +          <field type="INT32" name="bell_percent" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="KB">BellPitch</enumref>
> +          <field type="INT32" name="bell_pitch" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="KB">BellDuration</enumref>
> +          <field type="INT32" name="bell_duration" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="KB">Led</enumref>
> +          <field type="CARD32" name="led" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="KB">LedMode</enumref>
> +          <field type="CARD32" name="led_mode" enum="LedMode"/>
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="KB">Key</enumref>
> +          <field type="KEYCODE32" name="key" />
> +        </bitcase>
> +        <bitcase>
> +          <enumref ref="KB">AutoRepeatMode</enumref>
> +          <field type="CARD32" name="auto_repeat_mode" enum="AutoRepeatMode"/>
> +        </bitcase>
> +    </switch>
> +
>    </request>
>  
>    <request name="GetKeyboardControl" opcode="103">
> -- 
> 2.1.3
>
> Regards,
> Jaya
>
> On Fri, Jan 16, 2015 at 6:41 AM, Christian Linhart <chris at demorecorder.com <mailto:chris at demorecorder.com>> wrote:
>
>     Hi Vincent,
>
>     Thank you very much for spotting this.
>
>     In fact, the 2 byte pad is still there but at the wrong position.
>     Therefore it needs to be removed from the wrong position.
>     I have added my comment below.
>
>     @Jaya: Can you please make a corrected patch?
>
>     Thanks,
>
>     Chris
>
>     P.S.: there is a protocol spec that is clearer than the one you have cited:
>     http://cgit.freedesktop.org/xorg/proto/xproto/tree/specs/encoding.xml#n1105
>
>
>     On 01/16/15 11:31, Vincent Chen wrote:
>     > Hi,
>     >
>     > I think there might be an error with the specification of
>     > ConfigureWindow. According to:
>     >
>     > http://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#requests:ConfigureWindow
>     >
>     > there should be a two-byte padding between the mask and the values.
>     > The old valueparam with mask type of CARD16 (as opposed to the usual
>     > CARD32) did not make this need for extra padding explicit. With the
>     > new switch bitcase, however, the extra padding should be manually
>     > inserted.
>     >
>     > On Mon, Dec 22, 2014 at 10:35 AM, Jaya Tiwari <tiwari.jaya18 at gmail.com <mailto:tiwari.jaya18 at gmail.com>> wrote:
>     >> @@ -1689,11 +1816,40 @@ <enum name="StackMode">
>     >>    <request name="ConfigureWindow" opcode="12">
>     >>      <pad bytes="1" />
>     >>      <field type="WINDOW" name="window" />
>     >> -    <field type="CARD16" name="value_mask" />
>     >>      <pad bytes="2" />
>     This pad needs to be removed.
>     >> -    <valueparam value-mask-type="CARD16"
>     >> -                value-mask-name="value_mask"
>     >> -                value-list-name="value_list" />
>     >> +    <field type="CARD16" name="value_mask" mask="ConfigWindow" />
>     > Should add padding here:
>     >
>     > <pad bytes="2" />
>     Yes.
>     >
>     >> +    <switch name="value_list">
>     >> +        <fieldref>value_mask</fieldref>
>     >> +        <bitcase>
>     >> +          <enumref ref="ConfigWindow">X</enumref>
>     >> +          <field type="INT32" name="x" />
>     >> +        </bitcase>
>     >> +        <bitcase>
>     >> +          <enumref ref="ConfigWindow">Y</enumref>
>     >> +          <field type="INT32" name="y" />
>     >> +        </bitcase>
>     >> +        <bitcase>
>     >> +          <enumref ref="ConfigWindow">Width</enumref>
>     >> +          <field type="CARD32" name="width" />
>     >> +        </bitcase>
>     >> +        <bitcase>
>     >> +          <enumref ref="ConfigWindow">Height</enumref>
>     >> +          <field type="CARD32" name="height" />
>     >> +        </bitcase>
>     >> +        <bitcase>
>     >> +          <enumref ref="ConfigWindow">BorderWidth</enumref>
>     >> +          <field type="CARD32" name="border_width" />
>     >> +        </bitcase>
>     >> +        <bitcase>
>     >> +          <enumref ref="ConfigWindow">Sibling</enumref>
>     >> +          <field type="WINDOW" name="sibling" altenum="Window"/>
>     >> +        </bitcase>
>     >> +        <bitcase>
>     >> +          <enumref ref="ConfigWindow">StackMode</enumref>
>     >> +          <field type="CARD32" name="stack_mode" enum="StackMode"/>
>     >> +        </bitcase>
>     >> +    </switch>
>     >> +
>     >>      <doc>
>     >>        <brief>Configures window attributes</brief>
>     >>        <description><![CDATA[
>     > By the way, ConfigureWindow is the only place (that I know of) where
>     > the mask type is CARD16. Every other uses of valueparam uses mask type
>     > of CARD32. Not sure why the protocol designer didn't just make this
>     > CARD32 as well, since the mask plus the two padding uses up 4 bytes
>     > anyway...
>     >
>     > Regards,
>     >
>     > Vincent Chen
>     > _______________________________________________
>     > Xcb mailing list
>     > Xcb at lists.freedesktop.org <mailto:Xcb at lists.freedesktop.org>
>     > http://lists.freedesktop.org/mailman/listinfo/xcb
>
>
>
>
> -- 
> Regards,
> Jaya
>
>
> _______________________________________________
> Xcb mailing list
> Xcb at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xcb



More information about the Xcb mailing list