From 9d03507afa4354ce402333f94d01f6bcb2cf41e6 Mon Sep 17 00:00:00 2001 From: Peter Harris Date: Wed, 11 Nov 2009 14:41:16 -0500 Subject: [PATCH] Add description of new protocol elements These new elements will be used to support XKEYBOARD (and potentially other troublesome extensions in the future). Thanks to Mariusz Ceier for starting this work, and to Google's Summer of Code for sponsoring the initial work. Signed-off-by: Peter Harris --- doc/xml-xcb.txt | 30 ++++++++++++++++- src/xcb.xsd | 86 ++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 110 insertions(+), 6 deletions(-) diff --git a/doc/xml-xcb.txt b/doc/xml-xcb.txt index feb9984..3c6a155 100644 --- a/doc/xml-xcb.txt +++ b/doc/xml-xcb.txt @@ -225,8 +225,17 @@ enum; the value is restricted to one of the constants named in the enum. defining the set of values included, and a list containing these values. value-mask-type gives the type of the bitmask; this must be CARD16 or CARD32. value-mask-name gives the field name of the bitmask, and - value-list-name gives the field name of the list of values. + value-list-name gives the field name of the list of values. Please use + instead for new protocol definitions. + switch expression + bitcase expression, fields + + This element represents conditional inclusion of fields. It can be viewed + as sequence of multiple ifs: if ( switch expression & bitcase expression ) + is equal to bitcase expression, bitcase fields are included in structure. + It can be used only as the last field of structure. New protocol definitions + should prefer to use this instead of . Expressions ----------- @@ -256,3 +265,22 @@ Expressions The bit element represents a literal bitmask value in an expression. The integer must be in the range 0..31, expanding to (1<enum item identifier + + This element represents a reference to item of enum. + +expression + + This element represents a unary operator, with the op attribute specifying + which operator. The only supported operation so far is ~, and its semantic + is identical to the corresponding operator in C. + + + + This element represents a sumation of the elements of the referenced list. + +expression + + This element represents the number of bits set in the expression. + diff --git a/src/xcb.xsd b/src/xcb.xsd index f3fcb6f..5169b48 100644 --- a/src/xcb.xsd +++ b/src/xcb.xsd @@ -55,6 +55,36 @@ authorization from the authors. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -89,7 +119,40 @@ authorization from the authors. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -126,7 +189,12 @@ authorization from the authors. - + + + + + + @@ -166,12 +234,20 @@ authorization from the authors. + + + - - - - + + + + + + + + + -- 2.34.1