]> git.sesse.net Git - rdpsrv/blob - Xserver/include/extensions/XKBproto.h
Support RDP5 logon packets.
[rdpsrv] / Xserver / include / extensions / XKBproto.h
1 /* $XConsortium: XKBproto.h /main/22 1996/09/28 16:18:24 rws $ */
2 /************************************************************
3 Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
4
5 Permission to use, copy, modify, and distribute this
6 software and its documentation for any purpose and without
7 fee is hereby granted, provided that the above copyright
8 notice appear in all copies and that both that copyright
9 notice and this permission notice appear in supporting
10 documentation, and that the name of Silicon Graphics not be 
11 used in advertising or publicity pertaining to distribution 
12 of the software without specific prior written permission.
13 Silicon Graphics makes no representation about the suitability 
14 of this software for any purpose. It is provided "as is"
15 without any express or implied warranty.
16
17 SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 
18 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
19 AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
20 GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 
21 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 
22 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 
23 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
24 THE USE OR PERFORMANCE OF THIS SOFTWARE.
25
26 ********************************************************/
27
28 #ifndef _XKBPROTO_H_
29 #define _XKBPROTO_H_
30
31 #include <X11/Xmd.h>
32 #include <X11/extensions/XKB.h>
33
34 #define Window CARD32
35 #define Atom CARD32
36 #define Time CARD32
37 #define KeyCode CARD8
38 #define KeySym CARD32
39
40 #define XkbPaddedSize(n)        ((((unsigned int)(n)+3) >> 2) << 2)
41
42 typedef struct _xkbUseExtension {
43     CARD8       reqType;
44     CARD8       xkbReqType;     /* always X_KBUseExtension */
45     CARD16      length B16;
46     CARD16      wantedMajor B16;
47     CARD16      wantedMinor B16;
48 } xkbUseExtensionReq;
49 #define sz_xkbUseExtensionReq   8
50
51 typedef struct _xkbUseExtensionReply {
52     BYTE        type;           /* X_Reply */
53     BOOL        supported;
54     CARD16      sequenceNumber B16;
55     CARD32      length B32;
56     CARD16      serverMajor B16;
57     CARD16      serverMinor B16;
58     CARD32      pad1 B32;
59     CARD32      pad2 B32;
60     CARD32      pad3 B32;
61     CARD32      pad4 B32;
62     CARD32      pad5 B32;
63 } xkbUseExtensionReply;
64 #define sz_xkbUseExtensionReply 32
65
66 typedef struct _xkbSelectEvents {
67     CARD8       reqType;
68     CARD8       xkbReqType;     /* X_KBSelectEvents */
69     CARD16      length B16;
70     CARD16      deviceSpec B16;
71     CARD16      affectWhich B16;
72     CARD16      clear B16;
73     CARD16      selectAll B16;
74     CARD16      affectMap B16;
75     CARD16      map B16;
76 } xkbSelectEventsReq;
77 #define sz_xkbSelectEventsReq   16
78
79 typedef struct _xkbBell {
80     CARD8       reqType;
81     CARD8       xkbReqType;     /* X_KBBell */
82     CARD16      length B16;
83     CARD16      deviceSpec B16;
84     CARD16      bellClass B16;
85     CARD16      bellID B16;
86     INT8        percent;
87     BOOL        forceSound;
88     BOOL        eventOnly;
89     CARD8       pad1;
90     INT16       pitch B16;
91     INT16       duration B16;
92     CARD16      pad2 B16;
93     Atom        name B32;
94     Window      window B32;
95 } xkbBellReq;
96 #define sz_xkbBellReq           28
97
98 typedef struct _xkbGetState {
99         CARD8           reqType;
100         CARD8           xkbReqType;     /* always X_KBGetState */
101         CARD16          length B16;
102         CARD16          deviceSpec B16;
103         CARD16          pad B16;
104 } xkbGetStateReq;
105 #define sz_xkbGetStateReq       8
106
107 typedef struct _xkbGetStateReply {
108     BYTE        type;
109     BYTE        deviceID;
110     CARD16      sequenceNumber B16;
111     CARD32      length B32;
112     CARD8       mods;
113     CARD8       baseMods;
114     CARD8       latchedMods;
115     CARD8       lockedMods;
116     CARD8       group;
117     CARD8       lockedGroup;
118     INT16       baseGroup B16;
119     INT16       latchedGroup B16;
120     CARD8       compatState;
121     CARD8       grabMods;
122     CARD8       compatGrabMods;
123     CARD8       lookupMods;
124     CARD8       compatLookupMods;
125     CARD8       pad1;
126     CARD16      ptrBtnState B16;
127     CARD16      pad2 B16;
128     CARD32      pad3 B32;
129 } xkbGetStateReply;
130 #define sz_xkbGetStateReply     32
131
132 typedef struct _xkbLatchLockState {
133     CARD8       reqType;
134     CARD8       xkbReqType;     /* always X_KBLatchLockState */
135     CARD16      length B16;
136     CARD16      deviceSpec B16;
137     CARD8       affectModLocks;
138     CARD8       modLocks;
139     BOOL        lockGroup;
140     CARD8       groupLock;
141     CARD8       affectModLatches;
142     CARD8       modLatches;
143     CARD8       pad;
144     BOOL        latchGroup;
145     INT16       groupLatch B16;
146 } xkbLatchLockStateReq;
147 #define sz_xkbLatchLockStateReq         16
148
149 typedef struct _xkbGetControls {
150     CARD8       reqType;
151     CARD8       xkbReqType;     /* always X_KBGetControls */
152     CARD16      length B16;
153     CARD16      deviceSpec B16;
154     CARD16      pad B16;
155 } xkbGetControlsReq;
156 #define sz_xkbGetControlsReq    8
157
158 typedef struct _xkbGetControlsReply {
159     BYTE        type;           /* X_Reply */
160     CARD8       deviceID;
161     CARD16      sequenceNumber B16;
162     CARD32      length B32;
163     CARD8       mkDfltBtn;
164     CARD8       numGroups;
165     CARD8       groupsWrap;
166     CARD8       internalMods;
167     CARD8       ignoreLockMods;
168     CARD8       internalRealMods;
169     CARD8       ignoreLockRealMods;
170     CARD8       pad1;
171     CARD16      internalVMods B16;
172     CARD16      ignoreLockVMods B16;
173     CARD16      repeatDelay B16;
174     CARD16      repeatInterval B16;
175     CARD16      slowKeysDelay B16;
176     CARD16      debounceDelay B16;
177     CARD16      mkDelay B16;
178     CARD16      mkInterval B16;
179     CARD16      mkTimeToMax B16;
180     CARD16      mkMaxSpeed B16;
181     INT16       mkCurve B16;
182     CARD16      axOptions B16;
183     CARD16      axTimeout B16;
184     CARD16      axtOptsMask B16;
185     CARD16      axtOptsValues B16;
186     CARD16      pad2 B16;
187     CARD32      axtCtrlsMask B32;
188     CARD32      axtCtrlsValues B32;
189     CARD32      enabledCtrls B32;
190     BYTE        perKeyRepeat[XkbPerKeyBitArraySize];
191 } xkbGetControlsReply;
192 #define sz_xkbGetControlsReply  92
193
194 typedef struct _xkbSetControls {
195     CARD8       reqType;
196     CARD8       xkbReqType;     /* always X_KBSetControls */
197     CARD16      length B16;
198     CARD16      deviceSpec B16;
199     CARD8       affectInternalMods;
200     CARD8       internalMods;
201     CARD8       affectIgnoreLockMods;
202     CARD8       ignoreLockMods;
203     CARD16      affectInternalVMods B16;
204     CARD16      internalVMods B16;
205     CARD16      affectIgnoreLockVMods B16;
206     CARD16      ignoreLockVMods B16;
207     CARD8       mkDfltBtn;
208     CARD8       groupsWrap;
209     CARD16      axOptions B16;
210     CARD16      pad1 B16;
211     CARD32      affectEnabledCtrls B32;
212     CARD32      enabledCtrls B32;
213     CARD32      changeCtrls B32;
214     CARD16      repeatDelay B16;
215     CARD16      repeatInterval B16;
216     CARD16      slowKeysDelay B16;
217     CARD16      debounceDelay B16;
218     CARD16      mkDelay B16;
219     CARD16      mkInterval B16;
220     CARD16      mkTimeToMax B16;
221     CARD16      mkMaxSpeed B16;
222     INT16       mkCurve B16;
223     CARD16      axTimeout B16;
224     CARD32      axtCtrlsMask B32;
225     CARD32      axtCtrlsValues B32;
226     CARD16      axtOptsMask B16;
227     CARD16      axtOptsValues B16;
228     BYTE        perKeyRepeat[XkbPerKeyBitArraySize];
229 } xkbSetControlsReq;
230 #define sz_xkbSetControlsReq    100
231
232 typedef struct _xkbKTMapEntryWireDesc {
233     BOOL        active;
234     CARD8       mask;
235     CARD8       level;
236     CARD8       realMods;
237     CARD16      virtualMods B16;
238     CARD16      pad B16;
239 } xkbKTMapEntryWireDesc;
240 #define sz_xkbKTMapEntryWireDesc        8
241
242 typedef struct _xkbKTSetMapEntryWireDesc {
243     CARD8       level;
244     CARD8       realMods;
245     CARD16      virtualMods B16;
246 } xkbKTSetMapEntryWireDesc;
247 #define sz_xkbKTSetMapEntryWireDesc     4
248
249 typedef struct _xkbModsWireDesc {
250     CARD8       mask;           /* GetMap only */
251     CARD8       realMods;
252     CARD16      virtualMods B16;
253 } xkbModsWireDesc;
254 #define sz_xkbModsWireDesc      4
255
256 typedef struct _xkbKeyTypeWireDesc {
257     CARD8       mask;
258     CARD8       realMods;
259     CARD16      virtualMods B16;
260     CARD8       numLevels;
261     CARD8       nMapEntries;
262     BOOL        preserve;
263     CARD8       pad;
264 } xkbKeyTypeWireDesc;
265 #define sz_xkbKeyTypeWireDesc   8
266
267 typedef struct _xkbSymMapWireDesc {
268     CARD8       ktIndex[XkbNumKbdGroups];
269     CARD8       groupInfo;
270     CARD8       width;
271     CARD16      nSyms B16;
272 } xkbSymMapWireDesc;
273 #define sz_xkbSymMapWireDesc    8
274
275 typedef struct _xkbVModMapWireDesc {
276     KeyCode     key;
277     CARD8       pad;
278     CARD16      vmods B16;
279 } xkbVModMapWireDesc;
280 #define sz_xkbVModMapWireDesc   4
281
282 typedef struct _xkbBehaviorWireDesc {
283         CARD8   key;
284         CARD8   type;
285         CARD8   data;
286         CARD8   pad;
287 } xkbBehaviorWireDesc;
288 #define sz_xkbBehaviorWireDesc  4
289
290 typedef struct _xkbActionWireDesc {
291     CARD8       type;
292     CARD8       data[7];
293 } xkbActionWireDesc;
294 #define sz_xkbActionWireDesc    8
295
296 typedef struct _xkbGetMap {
297     CARD8       reqType;
298     CARD8       xkbReqType;     /* always X_KBGetMap */
299     CARD16      length B16;
300     CARD16      deviceSpec B16;
301     CARD16      full B16;
302     CARD16      partial B16;
303     CARD8       firstType;
304     CARD8       nTypes;
305     KeyCode     firstKeySym;
306     CARD8       nKeySyms;
307     KeyCode     firstKeyAct;
308     CARD8       nKeyActs;
309     KeyCode     firstKeyBehavior;
310     CARD8       nKeyBehaviors;
311     CARD16      virtualMods B16;
312     KeyCode     firstKeyExplicit;
313     CARD8       nKeyExplicit;
314     KeyCode     firstModMapKey;
315     CARD8       nModMapKeys;
316     KeyCode     firstVModMapKey;
317     CARD8       nVModMapKeys;
318     CARD16      pad1 B16;
319 } xkbGetMapReq;
320 #define sz_xkbGetMapReq 28
321
322 typedef struct _xkbGetMapReply {
323     CARD8       type;           /* always X_Reply */
324     CARD8       deviceID;
325     CARD16      sequenceNumber B16;
326     CARD32      length B32;
327     CARD16      pad1 B16;
328     KeyCode     minKeyCode;
329     KeyCode     maxKeyCode;
330     CARD16      present B16;
331     CARD8       firstType;
332     CARD8       nTypes;
333     CARD8       totalTypes;
334     KeyCode     firstKeySym;
335     CARD16      totalSyms B16;
336     CARD8       nKeySyms;
337     KeyCode     firstKeyAct;
338     CARD16      totalActs B16;
339     CARD8       nKeyActs;
340     KeyCode     firstKeyBehavior;
341     CARD8       nKeyBehaviors;
342     CARD8       totalKeyBehaviors;
343     KeyCode     firstKeyExplicit;
344     CARD8       nKeyExplicit;
345     CARD8       totalKeyExplicit;
346     KeyCode     firstModMapKey;
347     CARD8       nModMapKeys;
348     CARD8       totalModMapKeys;
349     KeyCode     firstVModMapKey;
350     CARD8       nVModMapKeys;
351     CARD8       totalVModMapKeys;
352     CARD8       pad2;
353     CARD16      virtualMods B16;
354 } xkbGetMapReply;
355 #define sz_xkbGetMapReply               40
356
357 #define XkbSetMapResizeTypes            (1L<<0)
358 #define XkbSetMapRecomputeActions       (1L<<1)
359 #define XkbSetMapAllFlags               (0x3)
360
361 typedef struct _xkbSetMap {
362     CARD8       reqType;
363     CARD8       xkbReqType;     /* always X_KBSetMap */
364     CARD16      length B16;
365     CARD16      deviceSpec B16;
366     CARD16      present B16;
367     CARD16      flags B16;
368     KeyCode     minKeyCode;
369     KeyCode     maxKeyCode;
370     CARD8       firstType;
371     CARD8       nTypes;
372     KeyCode     firstKeySym;
373     CARD8       nKeySyms;
374     CARD16      totalSyms B16;
375     KeyCode     firstKeyAct;
376     CARD8       nKeyActs;
377     CARD16      totalActs B16;
378     KeyCode     firstKeyBehavior;
379     CARD8       nKeyBehaviors;
380     CARD8       totalKeyBehaviors;
381     KeyCode     firstKeyExplicit;
382     CARD8       nKeyExplicit;
383     CARD8       totalKeyExplicit;
384     KeyCode     firstModMapKey;
385     CARD8       nModMapKeys;
386     CARD8       totalModMapKeys;
387     KeyCode     firstVModMapKey;
388     CARD8       nVModMapKeys;
389     CARD8       totalVModMapKeys;
390     CARD16      virtualMods B16;
391 } xkbSetMapReq;
392 #define sz_xkbSetMapReq 36
393
394 typedef struct _xkbSymInterpretWireDesc {
395     CARD32              sym B32;
396     CARD8               mods;
397     CARD8               match;
398     CARD8               virtualMod;
399     CARD8               flags;
400     xkbActionWireDesc   act;
401 } xkbSymInterpretWireDesc;
402 #define sz_xkbSymInterpretWireDesc      16
403
404 typedef struct _xkbGetCompatMap {
405     CARD8       reqType;
406     CARD8       xkbReqType;     /* always X_KBGetCompatMap */
407     CARD16      length B16;
408     CARD16      deviceSpec B16;
409     CARD8       groups;
410     BOOL        getAllSI;
411     CARD16      firstSI B16;
412     CARD16      nSI B16;
413 } xkbGetCompatMapReq;
414 #define sz_xkbGetCompatMapReq   12
415
416 typedef struct _xkbGetCompatMapReply {
417     CARD8       type;           /* always X_Reply */
418     CARD8       deviceID;
419     CARD16      sequenceNumber B16;
420     CARD32      length B32;
421     CARD8       groups;
422     CARD8       pad1;
423     CARD16      firstSI B16;
424     CARD16      nSI B16;
425     CARD16      nTotalSI B16;
426     CARD32      pad2 B32;
427     CARD32      pad3 B32;
428     CARD32      pad4 B32;
429     CARD32      pad5 B32;
430 } xkbGetCompatMapReply;
431 #define sz_xkbGetCompatMapReply         32
432
433 typedef struct _xkbSetCompatMap {
434     CARD8       reqType;
435     CARD8       xkbReqType;     /* always X_KBSetCompatMap */
436     CARD16      length B16;
437     CARD16      deviceSpec B16;
438     CARD8       pad1;
439     BOOL        recomputeActions;
440     BOOL        truncateSI;
441     CARD8       groups;
442     CARD16      firstSI B16;
443     CARD16      nSI B16;
444     CARD16      pad2 B16;
445 } xkbSetCompatMapReq;
446 #define sz_xkbSetCompatMapReq   16
447
448 typedef struct _xkbGetIndicatorState {
449     CARD8       reqType;
450     CARD8       xkbReqType;     /* always X_KBGetIndicatorState */
451     CARD16      length B16;
452     CARD16      deviceSpec B16;
453     CARD16      pad1 B16;
454 } xkbGetIndicatorStateReq;
455 #define sz_xkbGetIndicatorStateReq      8
456
457 typedef struct _xkbGetIndicatorStateReply {
458     CARD8       type;           /* always X_Reply */
459     CARD8       deviceID;
460     CARD16      sequenceNumber B16;
461     CARD32      length B32;
462     CARD32      state B32;
463     CARD32      pad1 B32;
464     CARD32      pad2 B32;
465     CARD32      pad3 B32;
466     CARD32      pad4 B32;
467     CARD32      pad5 B32;
468 } xkbGetIndicatorStateReply;
469 #define sz_xkbGetIndicatorStateReply    32
470
471 typedef struct _xkbGetIndicatorMap {
472     CARD8       reqType;
473     CARD8       xkbReqType;     /* always X_KBGetIndicatorMap */
474     CARD16      length B16;
475     CARD16      deviceSpec B16;
476     CARD16      pad B16;
477     CARD32      which B32;
478 } xkbGetIndicatorMapReq;
479 #define sz_xkbGetIndicatorMapReq        12
480
481 typedef struct _xkbGetIndicatorMapReply {
482     CARD8       type;           /* always X_Reply */
483     CARD8       deviceID;
484     CARD16      sequenceNumber B16;
485     CARD32      length B32;
486     CARD32      which B32;
487     CARD32      realIndicators B32;
488     CARD8       nIndicators;
489     CARD8       pad1;
490     CARD16      pad2 B16;
491     CARD32      pad3 B32;
492     CARD32      pad4 B32;
493     CARD32      pad5 B32;
494 } xkbGetIndicatorMapReply;
495 #define sz_xkbGetIndicatorMapReply      32
496
497 typedef struct _xkbIndicatorMapWireDesc {
498     CARD8       flags;
499     CARD8       whichGroups;
500     CARD8       groups;
501     CARD8       whichMods;
502     CARD8       mods;
503     CARD8       realMods;
504     CARD16      virtualMods B16;
505     CARD32      ctrls B32;
506 } xkbIndicatorMapWireDesc;
507 #define sz_xkbIndicatorMapWireDesc      12
508
509 typedef struct _xkbSetIndicatorMap {
510     CARD8       reqType;
511     CARD8       xkbReqType;     /* always X_KBSetIndicatorMap */
512     CARD16      length B16;
513     CARD16      deviceSpec B16;
514     CARD16      pad1 B16;
515     CARD32      which B32;
516 } xkbSetIndicatorMapReq;
517 #define sz_xkbSetIndicatorMapReq        12
518
519 typedef struct _xkbGetNamedIndicator {
520     CARD8       reqType;
521     CARD8       xkbReqType;     /* X_KBGetNamedIndicator */
522     CARD16      length B16;
523     CARD16      deviceSpec B16;
524     CARD16      ledClass B16;
525     CARD16      ledID B16;
526     CARD16      pad1 B16;
527     Atom        indicator B32;
528 } xkbGetNamedIndicatorReq;
529 #define sz_xkbGetNamedIndicatorReq              16
530
531 typedef struct _xkbGetNamedIndicatorReply {
532     BYTE        type;
533     BYTE        deviceID;
534     CARD16      sequenceNumber B16;
535     CARD32      length B32;
536     Atom        indicator B32;
537     BOOL        found;
538     BOOL        on;
539     BOOL        realIndicator;
540     CARD8       ndx;
541     CARD8       flags;
542     CARD8       whichGroups;
543     CARD8       groups;
544     CARD8       whichMods;
545     CARD8       mods;
546     CARD8       realMods;
547     CARD16      virtualMods B16;
548     CARD32      ctrls B32;
549     BOOL        supported;
550     CARD8       pad1;
551     CARD16      pad2 B16;
552 } xkbGetNamedIndicatorReply;
553 #define sz_xkbGetNamedIndicatorReply    32
554
555 typedef struct _xkbSetNamedIndicator {
556     CARD8       reqType;
557     CARD8       xkbReqType;     /* X_KBSetNamedIndicator */
558     CARD16      length B16;
559     CARD16      deviceSpec B16;
560     CARD16      ledClass B16;
561     CARD16      ledID B16;
562     CARD16      pad1 B16;
563     Atom        indicator B32;
564     BOOL        setState;
565     BOOL        on;
566     BOOL        setMap;
567     BOOL        createMap;
568     CARD8       pad2;
569     CARD8       flags;
570     CARD8       whichGroups;
571     CARD8       groups;
572     CARD8       whichMods;
573     CARD8       realMods;
574     CARD16      virtualMods B16;
575     CARD32      ctrls B32;
576 } xkbSetNamedIndicatorReq;
577 #define sz_xkbSetNamedIndicatorReq      32
578
579 typedef struct _xkbGetNames {
580     CARD8       reqType;
581     CARD8       xkbReqType;     /* always X_KBGetNames */
582     CARD16      length B16;
583     CARD16      deviceSpec B16;
584     CARD16      pad B16;
585     CARD32      which B32;
586 } xkbGetNamesReq;
587 #define sz_xkbGetNamesReq               12
588
589 typedef struct _xkbGetNamesReply {
590     BYTE        type;
591     BYTE        deviceID;
592     CARD16      sequenceNumber B16;
593     CARD32      length B32;
594     CARD32      which B32;
595     KeyCode     minKeyCode;
596     KeyCode     maxKeyCode;
597     CARD8       nTypes;
598     CARD8       groupNames;
599     CARD16      virtualMods B16;
600     KeyCode     firstKey;
601     CARD8       nKeys;
602     CARD32      indicators B32;
603     CARD8       nRadioGroups;
604     CARD8       nKeyAliases;
605     CARD16      nKTLevels B16;
606     CARD32      pad3 B32;
607 } xkbGetNamesReply;
608 #define sz_xkbGetNamesReply     32
609
610 typedef struct _xkbSetNames {
611     CARD8       reqType;
612     CARD8       xkbReqType;     /* always X_KBSetNames */
613     CARD16      length B16;
614     CARD16      deviceSpec B16;
615     CARD16      virtualMods B16;
616     CARD32      which B32;
617     CARD8       firstType;
618     CARD8       nTypes;
619     CARD8       firstKTLevel;
620     CARD8       nKTLevels;
621     CARD32      indicators B32;
622     CARD8       groupNames;
623     CARD8       nRadioGroups;
624     KeyCode     firstKey;
625     CARD8       nKeys;
626     CARD8       nKeyAliases;
627     CARD8       pad1;
628     CARD16      totalKTLevelNames B16;
629 } xkbSetNamesReq;
630 #define sz_xkbSetNamesReq       28
631
632 typedef struct _xkbPointWireDesc {
633     INT16       x B16;
634     INT16       y B16;
635 } xkbPointWireDesc;
636 #define sz_xkbPointWireDesc     4
637
638 typedef struct _xkbOutlineWireDesc {
639     CARD8       nPoints;
640     CARD8       cornerRadius;
641     CARD16      pad B16;
642 } xkbOutlineWireDesc;
643 #define sz_xkbOutlineWireDesc   4
644
645 typedef struct _xkbShapeWireDesc {
646     Atom        name B32;
647     CARD8       nOutlines;
648     CARD8       primaryNdx;
649     CARD8       approxNdx;
650     CARD8       pad;
651 } xkbShapeWireDesc;
652 #define sz_xkbShapeWireDesc     8
653
654 typedef struct _xkbSectionWireDesc {
655     Atom        name B32;
656     INT16       top B16;
657     INT16       left B16;
658     CARD16      width B16;
659     CARD16      height B16;
660     INT16       angle B16;
661     CARD8       priority;
662     CARD8       nRows;
663     CARD8       nDoodads;
664     CARD8       nOverlays;
665     CARD16      pad B16;
666 } xkbSectionWireDesc;
667 #define sz_xkbSectionWireDesc   20
668
669 typedef struct _xkbRowWireDesc {
670     INT16       top B16;
671     INT16       left B16;
672     CARD8       nKeys;
673     BOOL        vertical;
674     CARD16      pad B16;
675 } xkbRowWireDesc;
676 #define sz_xkbRowWireDesc       8
677
678 typedef struct _xkbKeyWireDesc {
679     CARD8       name[XkbKeyNameLength];
680     INT16       gap B16;
681     CARD8       shapeNdx;
682     CARD8       colorNdx;
683 } xkbKeyWireDesc;
684 #define sz_xkbKeyWireDesc       8
685
686 typedef struct _xkbOverlayWireDesc {
687     Atom        name B32;
688     CARD8       nRows;
689     CARD8       pad1;
690     CARD16      pad2 B16;
691 } xkbOverlayWireDesc;
692 #define sz_xkbOverlayWireDesc   8
693
694 typedef struct _xkbOverlayRowWireDesc {
695    CARD8        rowUnder;
696    CARD8        nKeys;
697    CARD16       pad1 B16;
698 } xkbOverlayRowWireDesc;
699 #define sz_xkbOverlayRowWireDesc        4
700
701 typedef struct _xkbOverlayKeyWireDesc {
702    CARD8        over[XkbKeyNameLength];
703    CARD8        under[XkbKeyNameLength];
704 } xkbOverlayKeyWireDesc;
705 #define sz_xkbOverlayKeyWireDesc        8
706
707 typedef struct _xkbShapeDoodadWireDesc {
708     Atom        name B32;
709     CARD8       type;
710     CARD8       priority;
711     INT16       top B16;
712     INT16       left B16;
713     INT16       angle B16;
714     CARD8       colorNdx;
715     CARD8       shapeNdx;
716     CARD16      pad1 B16;
717     CARD32      pad2 B32;
718 } xkbShapeDoodadWireDesc;
719 #define sz_xkbShapeDoodadWireDesc       20
720
721 typedef struct _xkbTextDoodadWireDesc {
722     Atom        name B32;
723     CARD8       type;
724     CARD8       priority;
725     INT16       top B16;
726     INT16       left B16;
727     INT16       angle B16;
728     CARD16      width B16;
729     CARD16      height B16;
730     CARD8       colorNdx;
731     CARD8       pad1;
732     CARD16      pad2 B16;
733 } xkbTextDoodadWireDesc;
734 #define sz_xkbTextDoodadWireDesc        20
735
736 typedef struct _xkbIndicatorDoodadWireDesc {
737     Atom        name B32;
738     CARD8       type;
739     CARD8       priority;
740     INT16       top B16;
741     INT16       left B16;
742     INT16       angle B16;
743     CARD8       shapeNdx;
744     CARD8       onColorNdx;
745     CARD8       offColorNdx;
746     CARD8       pad1;
747     CARD32      pad2 B32;
748 } xkbIndicatorDoodadWireDesc;
749 #define sz_xkbIndicatorDoodadWireDesc   20
750
751 typedef struct _xkbLogoDoodadWireDesc {
752     Atom        name B32;
753     CARD8       type;
754     CARD8       priority;
755     INT16       top B16;
756     INT16       left B16;
757     INT16       angle B16;
758     CARD8       colorNdx;
759     CARD8       shapeNdx;
760     CARD16      pad1 B16;
761     CARD32      pad2 B32;
762 } xkbLogoDoodadWireDesc;
763 #define sz_xkbLogoDoodadWireDesc        20
764
765 typedef struct _xkbAnyDoodadWireDesc {
766     Atom        name B32;
767     CARD8       type;
768     CARD8       priority;
769     INT16       top B16;
770     INT16       left B16;
771     INT16       angle B16;
772     CARD32      pad2 B32;
773     CARD32      pad3 B32;
774 } xkbAnyDoodadWireDesc;
775 #define sz_xkbAnyDoodadWireDesc 20
776
777 typedef union _xkbDoodadWireDesc {
778     xkbAnyDoodadWireDesc        any;
779     xkbShapeDoodadWireDesc      shape;
780     xkbTextDoodadWireDesc       text;
781     xkbIndicatorDoodadWireDesc  indicator;
782     xkbLogoDoodadWireDesc       logo;
783 } xkbDoodadWireDesc;
784 #define sz_xkbDoodadWireDesc    20
785
786 typedef struct _xkbGetGeometry {
787     CARD8       reqType;
788     CARD8       xkbReqType;     /* always X_KBGetGeometry */
789     CARD16      length B16;
790     CARD16      deviceSpec B16;
791     CARD16      pad B16;
792     Atom        name B32;
793 } xkbGetGeometryReq;
794 #define sz_xkbGetGeometryReq    12
795
796 typedef struct _xkbGetGeometryReply {
797     CARD8       type;           /* always X_Reply */
798     CARD8       deviceID;
799     CARD16      sequenceNumber B16;
800     CARD32      length B32;
801     Atom        name B32;
802     BOOL        found;
803     CARD8       pad;
804     CARD16      widthMM B16;
805     CARD16      heightMM B16;
806     CARD16      nProperties B16;
807     CARD16      nColors B16;
808     CARD16      nShapes B16;
809     CARD16      nSections B16;
810     CARD16      nDoodads B16;
811     CARD16      nKeyAliases B16;
812     CARD8       baseColorNdx;
813     CARD8       labelColorNdx;
814 } xkbGetGeometryReply;
815 #define sz_xkbGetGeometryReply  32
816
817 typedef struct _xkbSetGeometry {
818     CARD8       reqType;
819     CARD8       xkbReqType;     /* always X_KBSetGeometry */
820     CARD16      length B16;
821     CARD16      deviceSpec B16;
822     CARD8       nShapes;
823     CARD8       nSections;
824     Atom        name B32;
825     CARD16      widthMM B16;
826     CARD16      heightMM B16;
827     CARD16      nProperties B16;
828     CARD16      nColors B16;
829     CARD16      nDoodads B16;
830     CARD16      nKeyAliases B16;
831     CARD8       baseColorNdx;
832     CARD8       labelColorNdx;
833     CARD16      pad B16;
834 } xkbSetGeometryReq;
835 #define sz_xkbSetGeometryReq    28
836
837 typedef struct _xkbPerClientFlags {
838     CARD8       reqType;
839     CARD8       xkbReqType;/* always X_KBPerClientFlags */
840     CARD16      length B16;
841     CARD16      deviceSpec B16;
842     CARD16      pad1 B16;
843     CARD32      change B32;
844     CARD32      value B32;
845     CARD32      ctrlsToChange B32;
846     CARD32      autoCtrls B32;
847     CARD32      autoCtrlValues B32;
848 } xkbPerClientFlagsReq;
849 #define sz_xkbPerClientFlagsReq 28
850
851 typedef struct _xkbPerClientFlagsReply {
852     CARD8       type;           /* always X_Reply */
853     CARD8       deviceID;
854     CARD16      sequenceNumber B16;
855     CARD32      length B32;
856     CARD32      supported B32;
857     CARD32      value B32;
858     CARD32      autoCtrls B32;
859     CARD32      autoCtrlValues B32;
860     CARD32      pad1 B32;
861     CARD32      pad2 B32;
862 } xkbPerClientFlagsReply;
863 #define sz_xkbPerClientFlagsReply       32
864
865 typedef struct _xkbListComponents {
866     CARD8       reqType;
867     CARD8       xkbReqType;     /* always X_KBListComponents */
868     CARD16      length B16;
869     CARD16      deviceSpec B16;
870     CARD16      maxNames B16;
871 } xkbListComponentsReq;
872 #define sz_xkbListComponentsReq 8
873
874 typedef struct _xkbListComponentsReply {
875     CARD8       type;           /* always X_Reply */
876     CARD8       deviceID;
877     CARD16      sequenceNumber B16;
878     CARD32      length B32;
879     CARD16      nKeymaps B16;
880     CARD16      nKeycodes B16;
881     CARD16      nTypes B16;
882     CARD16      nCompatMaps B16;
883     CARD16      nSymbols B16;
884     CARD16      nGeometries B16;
885     CARD16      extra B16;
886     CARD16      pad1 B16;
887     CARD32      pad2 B32;
888     CARD32      pad3 B32;
889 } xkbListComponentsReply;
890 #define sz_xkbListComponentsReply       32
891
892 typedef struct _xkbGetKbdByName {
893     CARD8       reqType;
894     CARD8       xkbReqType;     /* always X_KBGetKbdByName */
895     CARD16      length B16;
896     CARD16      deviceSpec B16;
897     CARD16      need B16;       /* combination of XkbGBN_* */
898     CARD16      want B16;       /* combination of XkbGBN_* */
899     BOOL        load;
900     CARD8       pad;
901 } xkbGetKbdByNameReq;
902 #define sz_xkbGetKbdByNameReq   12
903
904 typedef struct _xkbGetKbdByNameReply {
905     CARD8       type;           /* always X_Reply */
906     CARD8       deviceID;
907     CARD16      sequenceNumber B16;
908     CARD32      length B32;
909     KeyCode     minKeyCode;
910     KeyCode     maxKeyCode;
911     BOOL        loaded;
912     BOOL        newKeyboard;
913     CARD16      found B16;      /* combination of XkbGBN_* */
914     CARD16      reported B16;   /* combination of XkbAllComponents */
915     CARD32      pad1 B32;
916     CARD32      pad2 B32;
917     CARD32      pad3 B32;
918     CARD32      pad4 B32;
919 } xkbGetKbdByNameReply;
920 #define sz_xkbGetKbdByNameReply 32
921
922 typedef struct _xkbDeviceLedsWireDesc {
923     CARD16      ledClass B16;
924     CARD16      ledID B16;
925     CARD32      namesPresent B32;
926     CARD32      mapsPresent B32;
927     CARD32      physIndicators B32;
928     CARD32      state B32;
929 } xkbDeviceLedsWireDesc;
930 #define sz_xkbDeviceLedsWireDesc        20
931
932 typedef struct _xkbGetDeviceInfo {
933     CARD8       reqType;
934     CARD8       xkbReqType;     /* always X_KBGetDeviceInfo */
935     CARD16      length B16;
936     CARD16      deviceSpec B16;
937     CARD16      wanted B16;
938     BOOL        allBtns;
939     CARD8       firstBtn;
940     CARD8       nBtns;
941     CARD8       pad;
942     CARD16      ledClass B16;
943     CARD16      ledID B16;
944 } xkbGetDeviceInfoReq;
945 #define sz_xkbGetDeviceInfoReq  16
946
947 typedef struct _xkbGetDeviceInfoReply {
948     CARD8       type;           /* always X_Reply */
949     CARD8       deviceID;
950     CARD16      sequenceNumber B16;
951     CARD32      length B32;
952     CARD16      present B16;
953     CARD16      supported B16;
954     CARD16      unsupported B16;
955     CARD16      nDeviceLedFBs B16;
956     CARD8       firstBtnWanted;
957     CARD8       nBtnsWanted;
958     CARD8       firstBtnRtrn;
959     CARD8       nBtnsRtrn;
960     CARD8       totalBtns;
961     BOOL        hasOwnState;
962     CARD16      dfltKbdFB B16;
963     CARD16      dfltLedFB B16;
964     CARD16      pad B16;
965     Atom        devType B32;
966 } xkbGetDeviceInfoReply;
967 #define sz_xkbGetDeviceInfoReply        32
968
969 typedef struct _xkbSetDeviceInfo {
970     CARD8       reqType;
971     CARD8       xkbReqType;     /* always X_KBSetDeviceInfo */
972     CARD16      length B16;
973     CARD16      deviceSpec B16;
974     CARD8       firstBtn;
975     CARD8       nBtns;
976     CARD16      change B16;
977     CARD16      nDeviceLedFBs B16;
978 } xkbSetDeviceInfoReq;
979 #define sz_xkbSetDeviceInfoReq  12
980
981 typedef struct _xkbSetDebuggingFlags {
982     CARD8       reqType;
983     CARD8       xkbReqType;     /* always X_KBSetDebuggingFlags */
984     CARD16      length B16;
985     CARD16      msgLength B16;
986     CARD16      pad B16;
987     CARD32      affectFlags B32;
988     CARD32      flags B32;
989     CARD32      affectCtrls B32;
990     CARD32      ctrls B32;
991 } xkbSetDebuggingFlagsReq;
992 #define sz_xkbSetDebuggingFlagsReq      24
993
994 typedef struct _xkbSetDebuggingFlagsReply {
995     BYTE        type;           /* X_Reply */
996     CARD8       pad0;
997     CARD16      sequenceNumber B16;
998     CARD32      length B32;
999     CARD32      currentFlags B32;
1000     CARD32      currentCtrls B32;
1001     CARD32      supportedFlags B32;
1002     CARD32      supportedCtrls B32;
1003     CARD32      pad1 B32;
1004     CARD32      pad2 B32;
1005 } xkbSetDebuggingFlagsReply;
1006 #define sz_xkbSetDebuggingFlagsReply    32
1007
1008         /*
1009          * X KEYBOARD EXTENSION EVENT STRUCTURES
1010          */
1011
1012 typedef struct _xkbAnyEvent {
1013     BYTE        type;
1014     BYTE        xkbType;
1015     CARD16      sequenceNumber B16;
1016     Time        time B32;
1017     CARD8       deviceID;
1018     CARD8       pad1;
1019     CARD16      pad2 B16;
1020     CARD32      pad3 B32;
1021     CARD32      pad4 B32;
1022     CARD32      pad5 B32;
1023     CARD32      pad6 B32;
1024     CARD32      pad7 B32;
1025 } xkbAnyEvent;
1026 #define sz_xkbAnyEvent 32
1027
1028 typedef struct _xkbNewKeyboardNotify {
1029     BYTE        type;
1030     BYTE        xkbType;
1031     CARD16      sequenceNumber B16;
1032     Time        time B32;
1033     CARD8       deviceID;
1034     CARD8       oldDeviceID;
1035     KeyCode     minKeyCode;
1036     KeyCode     maxKeyCode;
1037     KeyCode     oldMinKeyCode;
1038     KeyCode     oldMaxKeyCode;
1039     CARD8       requestMajor;
1040     CARD8       requestMinor;
1041     CARD16      changed B16;
1042     CARD8       detail;
1043     CARD8       pad1;
1044     CARD32      pad2 B32;
1045     CARD32      pad3 B32;
1046     CARD32      pad4 B32;
1047 } xkbNewKeyboardNotify;
1048 #define sz_xkbNewKeyboardNotify 32
1049
1050 typedef struct _xkbMapNotify {
1051     BYTE        type;
1052     BYTE        xkbType;
1053     CARD16      sequenceNumber B16;
1054     Time        time B32;
1055     CARD8       deviceID;
1056     CARD8       ptrBtnActions;
1057     CARD16      changed B16;
1058     KeyCode     minKeyCode;
1059     KeyCode     maxKeyCode;
1060     CARD8       firstType;
1061     CARD8       nTypes;
1062     KeyCode     firstKeySym;
1063     CARD8       nKeySyms;
1064     KeyCode     firstKeyAct;
1065     CARD8       nKeyActs;
1066     KeyCode     firstKeyBehavior;
1067     CARD8       nKeyBehaviors;
1068     KeyCode     firstKeyExplicit;
1069     CARD8       nKeyExplicit;
1070     KeyCode     firstModMapKey;
1071     CARD8       nModMapKeys;
1072     KeyCode     firstVModMapKey;
1073     CARD8       nVModMapKeys;
1074     CARD16      virtualMods B16;
1075     CARD16      pad1 B16;
1076 } xkbMapNotify;
1077 #define sz_xkbMapNotify 32
1078
1079 typedef struct _xkbStateNotify {
1080     BYTE        type;
1081     BYTE        xkbType;
1082     CARD16      sequenceNumber B16;
1083     Time        time B32;
1084     CARD8       deviceID;
1085     CARD8       mods;
1086     CARD8       baseMods;
1087     CARD8       latchedMods;
1088     CARD8       lockedMods;
1089     CARD8       group;
1090     INT16       baseGroup B16;
1091     INT16       latchedGroup B16;
1092     CARD8       lockedGroup;
1093     CARD8       compatState;
1094     CARD8       grabMods;
1095     CARD8       compatGrabMods;
1096     CARD8       lookupMods;
1097     CARD8       compatLookupMods;
1098     CARD16      ptrBtnState B16;
1099     CARD16      changed B16;
1100     KeyCode     keycode;
1101     CARD8       eventType;
1102     CARD8       requestMajor;
1103     CARD8       requestMinor;
1104 } xkbStateNotify;
1105 #define sz_xkbStateNotify       32
1106
1107 typedef struct _xkbControlsNotify {
1108     BYTE        type;
1109     BYTE        xkbType;
1110     CARD16      sequenceNumber B16;
1111     Time        time B32;
1112     CARD8       deviceID;
1113     CARD8       numGroups;
1114     CARD16      pad1 B16;
1115     CARD32      changedControls B32;
1116     CARD32      enabledControls B32;
1117     CARD32      enabledControlChanges B32;
1118     KeyCode     keycode;
1119     CARD8       eventType;
1120     CARD8       requestMajor;
1121     CARD8       requestMinor;
1122     CARD32      pad2 B32;
1123 } xkbControlsNotify;
1124 #define sz_xkbControlsNotify    32
1125
1126 typedef struct _xkbIndicatorNotify {
1127     BYTE        type;
1128     BYTE        xkbType;
1129     CARD16      sequenceNumber B16;
1130     Time        time B32;
1131     CARD8       deviceID;
1132     CARD8       pad1;
1133     CARD16      pad2 B16;
1134     CARD32      state B32;
1135     CARD32      changed B32;
1136     CARD32      pad3 B32;
1137     CARD32      pad4 B32;
1138     CARD32      pad5 B32;
1139 } xkbIndicatorNotify;
1140 #define sz_xkbIndicatorNotify   32
1141
1142 typedef struct _xkbNamesNotify {
1143     BYTE        type;
1144     BYTE        xkbType;
1145     CARD16      sequenceNumber B16;
1146     Time        time B32;
1147     CARD8       deviceID;
1148     CARD8       pad1;
1149     CARD16      changed B16;
1150     CARD8       firstType;
1151     CARD8       nTypes;
1152     CARD8       firstLevelName;
1153     CARD8       nLevelNames;
1154     CARD8       pad2;
1155     CARD8       nRadioGroups;
1156     CARD8       nAliases;
1157     CARD8       changedGroupNames;
1158     CARD16      changedVirtualMods B16;
1159     CARD8       firstKey;
1160     CARD8       nKeys;
1161     CARD32      changedIndicators B32;
1162     CARD32      pad3 B32;
1163 } xkbNamesNotify;
1164 #define sz_xkbNamesNotify       32
1165
1166 typedef struct _xkbCompatMapNotify {
1167     BYTE        type;
1168     BYTE        xkbType;
1169     CARD16      sequenceNumber B16;
1170     Time        time B32;
1171     CARD8       deviceID;
1172     CARD8       changedGroups;
1173     CARD16      firstSI B16;
1174     CARD16      nSI B16;
1175     CARD16      nTotalSI B16;
1176     CARD32      pad1 B32;
1177     CARD32      pad2 B32;
1178     CARD32      pad3 B32;
1179     CARD32      pad4 B32;
1180 } xkbCompatMapNotify;
1181 #define sz_xkbCompatMapNotify   32
1182
1183 typedef struct _xkbBellNotify {
1184     BYTE        type;
1185     BYTE        xkbType;
1186     CARD16      sequenceNumber B16;
1187     Time        time B32;
1188     CARD8       deviceID;
1189     CARD8       bellClass;
1190     CARD8       bellID;
1191     CARD8       percent;
1192     CARD16      pitch B16;
1193     CARD16      duration B16;
1194     Atom        name B32;
1195     Window      window B32;
1196     BOOL        eventOnly;
1197     CARD8       pad1;
1198     CARD16      pad2 B16;
1199     CARD32      pad3 B32;
1200 } xkbBellNotify;
1201 #define sz_xkbBellNotify        32
1202
1203 typedef struct _xkbActionMessage {
1204     BYTE        type;
1205     BYTE        xkbType;
1206     CARD16      sequenceNumber B16;
1207     Time        time B32;
1208     CARD8       deviceID;
1209     KeyCode     keycode;
1210     BOOL        press;
1211     BOOL        keyEventFollows;
1212     CARD8       mods;
1213     CARD8       group;
1214     CARD8       message[8];
1215     CARD16      pad1 B16;
1216     CARD32      pad2 B32;
1217     CARD32      pad3 B32;
1218 } xkbActionMessage;
1219 #define sz_xkbActionMessage             32
1220
1221 typedef struct _xkbAccessXNotify {
1222     BYTE        type;
1223     BYTE        xkbType;
1224     CARD16      sequenceNumber B16;
1225     Time        time B32;
1226     CARD8       deviceID;
1227     KeyCode     keycode;
1228     CARD16      detail B16;
1229     CARD16      slowKeysDelay B16;
1230     CARD16      debounceDelay B16;
1231     CARD32      pad1 B32;
1232     CARD32      pad2 B32;
1233     CARD32      pad3 B32;
1234     CARD32      pad4 B32;
1235 } xkbAccessXNotify;
1236 #define sz_xkbAccessXNotify     32
1237
1238 typedef struct _xkbExtensionDeviceNotify {
1239     BYTE        type;
1240     BYTE        xkbType;
1241     CARD16      sequenceNumber B16;
1242     Time        time B32;
1243     CARD8       deviceID;
1244     CARD8       pad1;
1245     CARD16      reason B16;
1246     CARD16      ledClass B16;
1247     CARD16      ledID B16;
1248     CARD32      ledsDefined B32;
1249     CARD32      ledState B32;
1250     CARD8       firstBtn;
1251     CARD8       nBtns;
1252     CARD16      supported B16;
1253     CARD16      unsupported B16;
1254     CARD16      pad3 B16;
1255 } xkbExtensionDeviceNotify;
1256 #define sz_xkbExtensionDeviceNotify             32
1257
1258 typedef struct _xkbEvent {
1259     union {
1260         xkbAnyEvent             any;
1261         xkbNewKeyboardNotify    new_kbd;
1262         xkbMapNotify            map;
1263         xkbStateNotify          state;
1264         xkbControlsNotify       ctrls;
1265         xkbIndicatorNotify      indicators;
1266         xkbNamesNotify          names;
1267         xkbCompatMapNotify      compat;
1268         xkbBellNotify           bell;
1269         xkbActionMessage        message;
1270         xkbAccessXNotify        accessx;
1271         xkbExtensionDeviceNotify device;
1272     } u;
1273 } xkbEvent;
1274 #define sz_xkbEvent     32
1275
1276 #undef Window
1277 #undef Atom
1278 #undef Time
1279 #undef KeyCode
1280 #undef KeySym
1281
1282 #endif /* _XKBPROTO_H_ */