1 /* $Xorg: XKBproto.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */ 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_ */ 1283