1 /************************************************************ 2 Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. 3 4 Permission to use, copy, modify, and distribute this 5 software and its documentation for any purpose and without 6 fee is hereby granted, provided that the above copyright 7 notice appear in all copies and that both that copyright 8 notice and this permission notice appear in supporting 9 documentation, and that the name of Silicon Graphics not be 10 used in advertising or publicity pertaining to distribution 11 of the software without specific prior written permission. 12 Silicon Graphics makes no representation about the suitability 13 of this software for any purpose. It is provided "as is" 14 without any express or implied warranty. 15 16 SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 17 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 18 AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON 19 GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 20 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 21 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 22 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH 23 THE USE OR PERFORMANCE OF THIS SOFTWARE. 24 25 ********************************************************/ 26 27 #ifndef _XKBPROTO_H_ 28 #define _XKBPROTO_H_ 29 30 #include <X11/Xmd.h> 31 #include <X11/Xfuncproto.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; 46 CARD16 wantedMajor; 47 CARD16 wantedMinor; 48 } xkbUseExtensionReq; 49 #define sz_xkbUseExtensionReq 8 50 51 typedef struct _xkbUseExtensionReply { 52 BYTE type; /* X_Reply */ 53 BOOL supported; 54 CARD16 sequenceNumber; 55 CARD32 length; 56 CARD16 serverMajor; 57 CARD16 serverMinor; 58 CARD32 pad1; 59 CARD32 pad2; 60 CARD32 pad3; 61 CARD32 pad4; 62 CARD32 pad5; 63 } xkbUseExtensionReply; 64 #define sz_xkbUseExtensionReply 32 65 66 typedef struct _xkbSelectEvents { 67 CARD8 reqType; 68 CARD8 xkbReqType; /* X_KBSelectEvents */ 69 CARD16 length; 70 CARD16 deviceSpec; 71 CARD16 affectWhich; 72 CARD16 clear; 73 CARD16 selectAll; 74 CARD16 affectMap; 75 CARD16 map; 76 } xkbSelectEventsReq; 77 #define sz_xkbSelectEventsReq 16 78 79 typedef struct _xkbBell { 80 CARD8 reqType; 81 CARD8 xkbReqType; /* X_KBBell */ 82 CARD16 length; 83 CARD16 deviceSpec; 84 CARD16 bellClass; 85 CARD16 bellID; 86 INT8 percent; 87 BOOL forceSound; 88 BOOL eventOnly; 89 CARD8 pad1; 90 INT16 pitch; 91 INT16 duration; 92 CARD16 pad2; 93 Atom name; 94 Window window; 95 } xkbBellReq; 96 #define sz_xkbBellReq 28 97 98 typedef struct _xkbGetState { 99 CARD8 reqType; 100 CARD8 xkbReqType; /* always X_KBGetState */ 101 CARD16 length; 102 CARD16 deviceSpec; 103 CARD16 pad; 104 } xkbGetStateReq; 105 #define sz_xkbGetStateReq 8 106 107 typedef struct _xkbGetStateReply { 108 BYTE type; 109 BYTE deviceID; 110 CARD16 sequenceNumber; 111 CARD32 length; 112 CARD8 mods; 113 CARD8 baseMods; 114 CARD8 latchedMods; 115 CARD8 lockedMods; 116 CARD8 group; 117 CARD8 lockedGroup; 118 INT16 baseGroup; 119 INT16 latchedGroup; 120 CARD8 compatState; 121 CARD8 grabMods; 122 CARD8 compatGrabMods; 123 CARD8 lookupMods; 124 CARD8 compatLookupMods; 125 CARD8 pad1; 126 CARD16 ptrBtnState; 127 CARD16 pad2; 128 CARD32 pad3; 129 } xkbGetStateReply; 130 #define sz_xkbGetStateReply 32 131 132 typedef struct _xkbLatchLockState { 133 CARD8 reqType; 134 CARD8 xkbReqType; /* always X_KBLatchLockState */ 135 CARD16 length; 136 CARD16 deviceSpec; 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; 146 } xkbLatchLockStateReq; 147 #define sz_xkbLatchLockStateReq 16 148 149 typedef struct _xkbGetControls { 150 CARD8 reqType; 151 CARD8 xkbReqType; /* always X_KBGetControls */ 152 CARD16 length; 153 CARD16 deviceSpec; 154 CARD16 pad; 155 } xkbGetControlsReq; 156 #define sz_xkbGetControlsReq 8 157 158 typedef struct _xkbGetControlsReply { 159 BYTE type; /* X_Reply */ 160 CARD8 deviceID; 161 CARD16 sequenceNumber; 162 CARD32 length; 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; 172 CARD16 ignoreLockVMods; 173 CARD16 repeatDelay; 174 CARD16 repeatInterval; 175 CARD16 slowKeysDelay; 176 CARD16 debounceDelay; 177 CARD16 mkDelay; 178 CARD16 mkInterval; 179 CARD16 mkTimeToMax; 180 CARD16 mkMaxSpeed; 181 INT16 mkCurve; 182 CARD16 axOptions; 183 CARD16 axTimeout; 184 CARD16 axtOptsMask; 185 CARD16 axtOptsValues; 186 CARD16 pad2; 187 CARD32 axtCtrlsMask; 188 CARD32 axtCtrlsValues; 189 CARD32 enabledCtrls; 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; 198 CARD16 deviceSpec; 199 CARD8 affectInternalMods; 200 CARD8 internalMods; 201 CARD8 affectIgnoreLockMods; 202 CARD8 ignoreLockMods; 203 CARD16 affectInternalVMods; 204 CARD16 internalVMods; 205 CARD16 affectIgnoreLockVMods; 206 CARD16 ignoreLockVMods; 207 CARD8 mkDfltBtn; 208 CARD8 groupsWrap; 209 CARD16 axOptions; 210 CARD16 pad1; 211 CARD32 affectEnabledCtrls; 212 CARD32 enabledCtrls; 213 CARD32 changeCtrls; 214 CARD16 repeatDelay; 215 CARD16 repeatInterval; 216 CARD16 slowKeysDelay; 217 CARD16 debounceDelay; 218 CARD16 mkDelay; 219 CARD16 mkInterval; 220 CARD16 mkTimeToMax; 221 CARD16 mkMaxSpeed; 222 INT16 mkCurve; 223 CARD16 axTimeout; 224 CARD32 axtCtrlsMask; 225 CARD32 axtCtrlsValues; 226 CARD16 axtOptsMask; 227 CARD16 axtOptsValues; 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; 238 CARD16 pad; 239 } xkbKTMapEntryWireDesc; 240 #define sz_xkbKTMapEntryWireDesc 8 241 242 typedef struct _xkbKTSetMapEntryWireDesc { 243 CARD8 level; 244 CARD8 realMods; 245 CARD16 virtualMods; 246 } xkbKTSetMapEntryWireDesc; 247 #define sz_xkbKTSetMapEntryWireDesc 4 248 249 typedef struct _xkbModsWireDesc { 250 CARD8 mask; /* GetMap only */ 251 CARD8 realMods; 252 CARD16 virtualMods; 253 } xkbModsWireDesc; 254 #define sz_xkbModsWireDesc 4 255 256 typedef struct _xkbKeyTypeWireDesc { 257 CARD8 mask; 258 CARD8 realMods; 259 CARD16 virtualMods; 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; 272 } xkbSymMapWireDesc; 273 #define sz_xkbSymMapWireDesc 8 274 275 typedef struct _xkbVModMapWireDesc { 276 KeyCode key; 277 CARD8 pad; 278 CARD16 vmods; 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; 300 CARD16 deviceSpec; 301 CARD16 full; 302 CARD16 partial; 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; 312 KeyCode firstKeyExplicit; 313 CARD8 nKeyExplicit; 314 KeyCode firstModMapKey; 315 CARD8 nModMapKeys; 316 KeyCode firstVModMapKey; 317 CARD8 nVModMapKeys; 318 CARD16 pad1; 319 } xkbGetMapReq; 320 #define sz_xkbGetMapReq 28 321 322 typedef struct _xkbGetMapReply { 323 CARD8 type; /* always X_Reply */ 324 CARD8 deviceID; 325 CARD16 sequenceNumber; 326 CARD32 length; 327 CARD16 pad1; 328 KeyCode minKeyCode; 329 KeyCode maxKeyCode; 330 CARD16 present; 331 CARD8 firstType; 332 CARD8 nTypes; 333 CARD8 totalTypes; 334 KeyCode firstKeySym; 335 CARD16 totalSyms; 336 CARD8 nKeySyms; 337 KeyCode firstKeyAct; 338 CARD16 totalActs; 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; 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; 365 CARD16 deviceSpec; 366 CARD16 present; 367 CARD16 flags; 368 KeyCode minKeyCode; 369 KeyCode maxKeyCode; 370 CARD8 firstType; 371 CARD8 nTypes; 372 KeyCode firstKeySym; 373 CARD8 nKeySyms; 374 CARD16 totalSyms; 375 KeyCode firstKeyAct; 376 CARD8 nKeyActs; 377 CARD16 totalActs; 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; 391 } xkbSetMapReq; 392 #define sz_xkbSetMapReq 36 393 394 typedef struct _xkbSymInterpretWireDesc { 395 CARD32 sym; 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; 408 CARD16 deviceSpec; 409 CARD8 groups; 410 BOOL getAllSI; 411 CARD16 firstSI; 412 CARD16 nSI; 413 } xkbGetCompatMapReq; 414 #define sz_xkbGetCompatMapReq 12 415 416 typedef struct _xkbGetCompatMapReply { 417 CARD8 type; /* always X_Reply */ 418 CARD8 deviceID; 419 CARD16 sequenceNumber; 420 CARD32 length; 421 CARD8 groups; 422 CARD8 pad1; 423 CARD16 firstSI; 424 CARD16 nSI; 425 CARD16 nTotalSI; 426 CARD32 pad2; 427 CARD32 pad3; 428 CARD32 pad4; 429 CARD32 pad5; 430 } xkbGetCompatMapReply; 431 #define sz_xkbGetCompatMapReply 32 432 433 typedef struct _xkbSetCompatMap { 434 CARD8 reqType; 435 CARD8 xkbReqType; /* always X_KBSetCompatMap */ 436 CARD16 length; 437 CARD16 deviceSpec; 438 CARD8 pad1; 439 BOOL recomputeActions; 440 BOOL truncateSI; 441 CARD8 groups; 442 CARD16 firstSI; 443 CARD16 nSI; 444 CARD16 pad2; 445 } xkbSetCompatMapReq; 446 #define sz_xkbSetCompatMapReq 16 447 448 typedef struct _xkbGetIndicatorState { 449 CARD8 reqType; 450 CARD8 xkbReqType; /* always X_KBGetIndicatorState */ 451 CARD16 length; 452 CARD16 deviceSpec; 453 CARD16 pad1; 454 } xkbGetIndicatorStateReq; 455 #define sz_xkbGetIndicatorStateReq 8 456 457 typedef struct _xkbGetIndicatorStateReply { 458 CARD8 type; /* always X_Reply */ 459 CARD8 deviceID; 460 CARD16 sequenceNumber; 461 CARD32 length; 462 CARD32 state; 463 CARD32 pad1; 464 CARD32 pad2; 465 CARD32 pad3; 466 CARD32 pad4; 467 CARD32 pad5; 468 } xkbGetIndicatorStateReply; 469 #define sz_xkbGetIndicatorStateReply 32 470 471 typedef struct _xkbGetIndicatorMap { 472 CARD8 reqType; 473 CARD8 xkbReqType; /* always X_KBGetIndicatorMap */ 474 CARD16 length; 475 CARD16 deviceSpec; 476 CARD16 pad; 477 CARD32 which; 478 } xkbGetIndicatorMapReq; 479 #define sz_xkbGetIndicatorMapReq 12 480 481 typedef struct _xkbGetIndicatorMapReply { 482 CARD8 type; /* always X_Reply */ 483 CARD8 deviceID; 484 CARD16 sequenceNumber; 485 CARD32 length; 486 CARD32 which; 487 CARD32 realIndicators; 488 CARD8 nIndicators; 489 CARD8 pad1; 490 CARD16 pad2; 491 CARD32 pad3; 492 CARD32 pad4; 493 CARD32 pad5; 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; 505 CARD32 ctrls; 506 } xkbIndicatorMapWireDesc; 507 #define sz_xkbIndicatorMapWireDesc 12 508 509 typedef struct _xkbSetIndicatorMap { 510 CARD8 reqType; 511 CARD8 xkbReqType; /* always X_KBSetIndicatorMap */ 512 CARD16 length; 513 CARD16 deviceSpec; 514 CARD16 pad1; 515 CARD32 which; 516 } xkbSetIndicatorMapReq; 517 #define sz_xkbSetIndicatorMapReq 12 518 519 typedef struct _xkbGetNamedIndicator { 520 CARD8 reqType; 521 CARD8 xkbReqType; /* X_KBGetNamedIndicator */ 522 CARD16 length; 523 CARD16 deviceSpec; 524 CARD16 ledClass; 525 CARD16 ledID; 526 CARD16 pad1; 527 Atom indicator; 528 } xkbGetNamedIndicatorReq; 529 #define sz_xkbGetNamedIndicatorReq 16 530 531 typedef struct _xkbGetNamedIndicatorReply { 532 BYTE type; 533 BYTE deviceID; 534 CARD16 sequenceNumber; 535 CARD32 length; 536 Atom indicator; 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; 548 CARD32 ctrls; 549 BOOL supported; 550 CARD8 pad1; 551 CARD16 pad2; 552 } xkbGetNamedIndicatorReply; 553 #define sz_xkbGetNamedIndicatorReply 32 554 555 typedef struct _xkbSetNamedIndicator { 556 CARD8 reqType; 557 CARD8 xkbReqType; /* X_KBSetNamedIndicator */ 558 CARD16 length; 559 CARD16 deviceSpec; 560 CARD16 ledClass; 561 CARD16 ledID; 562 CARD16 pad1; 563 Atom indicator; 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; 575 CARD32 ctrls; 576 } xkbSetNamedIndicatorReq; 577 #define sz_xkbSetNamedIndicatorReq 32 578 579 typedef struct _xkbGetNames { 580 CARD8 reqType; 581 CARD8 xkbReqType; /* always X_KBGetNames */ 582 CARD16 length; 583 CARD16 deviceSpec; 584 CARD16 pad; 585 CARD32 which; 586 } xkbGetNamesReq; 587 #define sz_xkbGetNamesReq 12 588 589 typedef struct _xkbGetNamesReply { 590 BYTE type; 591 BYTE deviceID; 592 CARD16 sequenceNumber; 593 CARD32 length; 594 CARD32 which; 595 KeyCode minKeyCode; 596 KeyCode maxKeyCode; 597 CARD8 nTypes; 598 CARD8 groupNames; 599 CARD16 virtualMods; 600 KeyCode firstKey; 601 CARD8 nKeys; 602 CARD32 indicators; 603 CARD8 nRadioGroups; 604 CARD8 nKeyAliases; 605 CARD16 nKTLevels; 606 CARD32 pad3; 607 } xkbGetNamesReply; 608 #define sz_xkbGetNamesReply 32 609 610 typedef struct _xkbSetNames { 611 CARD8 reqType; 612 CARD8 xkbReqType; /* always X_KBSetNames */ 613 CARD16 length; 614 CARD16 deviceSpec; 615 CARD16 virtualMods; 616 CARD32 which; 617 CARD8 firstType; 618 CARD8 nTypes; 619 CARD8 firstKTLevel; 620 CARD8 nKTLevels; 621 CARD32 indicators; 622 CARD8 groupNames; 623 CARD8 nRadioGroups; 624 KeyCode firstKey; 625 CARD8 nKeys; 626 CARD8 nKeyAliases; 627 CARD8 pad1; 628 CARD16 totalKTLevelNames; 629 } xkbSetNamesReq; 630 #define sz_xkbSetNamesReq 28 631 632 typedef struct _xkbPointWireDesc { 633 INT16 x; 634 INT16 y; 635 } xkbPointWireDesc; 636 #define sz_xkbPointWireDesc 4 637 638 typedef struct _xkbOutlineWireDesc { 639 CARD8 nPoints; 640 CARD8 cornerRadius; 641 CARD16 pad; 642 } xkbOutlineWireDesc; 643 #define sz_xkbOutlineWireDesc 4 644 645 typedef struct _xkbShapeWireDesc { 646 Atom name; 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; 656 INT16 top; 657 INT16 left; 658 CARD16 width; 659 CARD16 height; 660 INT16 angle; 661 CARD8 priority; 662 CARD8 nRows; 663 CARD8 nDoodads; 664 CARD8 nOverlays; 665 CARD16 pad; 666 } xkbSectionWireDesc; 667 #define sz_xkbSectionWireDesc 20 668 669 typedef struct _xkbRowWireDesc { 670 INT16 top; 671 INT16 left; 672 CARD8 nKeys; 673 BOOL vertical; 674 CARD16 pad; 675 } xkbRowWireDesc; 676 #define sz_xkbRowWireDesc 8 677 678 typedef struct _xkbKeyWireDesc { 679 CARD8 name[XkbKeyNameLength] _X_NONSTRING; 680 INT16 gap; 681 CARD8 shapeNdx; 682 CARD8 colorNdx; 683 } xkbKeyWireDesc; 684 #define sz_xkbKeyWireDesc 8 685 686 typedef struct _xkbOverlayWireDesc { 687 Atom name; 688 CARD8 nRows; 689 CARD8 pad1; 690 CARD16 pad2; 691 } xkbOverlayWireDesc; 692 #define sz_xkbOverlayWireDesc 8 693 694 typedef struct _xkbOverlayRowWireDesc { 695 CARD8 rowUnder; 696 CARD8 nKeys; 697 CARD16 pad1; 698 } xkbOverlayRowWireDesc; 699 #define sz_xkbOverlayRowWireDesc 4 700 701 typedef struct _xkbOverlayKeyWireDesc { 702 CARD8 over[XkbKeyNameLength] _X_NONSTRING; 703 CARD8 under[XkbKeyNameLength] _X_NONSTRING; 704 } xkbOverlayKeyWireDesc; 705 #define sz_xkbOverlayKeyWireDesc 8 706 707 typedef struct _xkbShapeDoodadWireDesc { 708 Atom name; 709 CARD8 type; 710 CARD8 priority; 711 INT16 top; 712 INT16 left; 713 INT16 angle; 714 CARD8 colorNdx; 715 CARD8 shapeNdx; 716 CARD16 pad1; 717 CARD32 pad2; 718 } xkbShapeDoodadWireDesc; 719 #define sz_xkbShapeDoodadWireDesc 20 720 721 typedef struct _xkbTextDoodadWireDesc { 722 Atom name; 723 CARD8 type; 724 CARD8 priority; 725 INT16 top; 726 INT16 left; 727 INT16 angle; 728 CARD16 width; 729 CARD16 height; 730 CARD8 colorNdx; 731 CARD8 pad1; 732 CARD16 pad2; 733 } xkbTextDoodadWireDesc; 734 #define sz_xkbTextDoodadWireDesc 20 735 736 typedef struct _xkbIndicatorDoodadWireDesc { 737 Atom name; 738 CARD8 type; 739 CARD8 priority; 740 INT16 top; 741 INT16 left; 742 INT16 angle; 743 CARD8 shapeNdx; 744 CARD8 onColorNdx; 745 CARD8 offColorNdx; 746 CARD8 pad1; 747 CARD32 pad2; 748 } xkbIndicatorDoodadWireDesc; 749 #define sz_xkbIndicatorDoodadWireDesc 20 750 751 typedef struct _xkbLogoDoodadWireDesc { 752 Atom name; 753 CARD8 type; 754 CARD8 priority; 755 INT16 top; 756 INT16 left; 757 INT16 angle; 758 CARD8 colorNdx; 759 CARD8 shapeNdx; 760 CARD16 pad1; 761 CARD32 pad2; 762 } xkbLogoDoodadWireDesc; 763 #define sz_xkbLogoDoodadWireDesc 20 764 765 typedef struct _xkbAnyDoodadWireDesc { 766 Atom name; 767 CARD8 type; 768 CARD8 priority; 769 INT16 top; 770 INT16 left; 771 INT16 angle; 772 CARD32 pad2; 773 CARD32 pad3; 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; 790 CARD16 deviceSpec; 791 CARD16 pad; 792 Atom name; 793 } xkbGetGeometryReq; 794 #define sz_xkbGetGeometryReq 12 795 796 typedef struct _xkbGetGeometryReply { 797 CARD8 type; /* always X_Reply */ 798 CARD8 deviceID; 799 CARD16 sequenceNumber; 800 CARD32 length; 801 Atom name; 802 BOOL found; 803 CARD8 pad; 804 CARD16 widthMM; 805 CARD16 heightMM; 806 CARD16 nProperties; 807 CARD16 nColors; 808 CARD16 nShapes; 809 CARD16 nSections; 810 CARD16 nDoodads; 811 CARD16 nKeyAliases; 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; 821 CARD16 deviceSpec; 822 CARD8 nShapes; 823 CARD8 nSections; 824 Atom name; 825 CARD16 widthMM; 826 CARD16 heightMM; 827 CARD16 nProperties; 828 CARD16 nColors; 829 CARD16 nDoodads; 830 CARD16 nKeyAliases; 831 CARD8 baseColorNdx; 832 CARD8 labelColorNdx; 833 CARD16 pad; 834 } xkbSetGeometryReq; 835 #define sz_xkbSetGeometryReq 28 836 837 typedef struct _xkbPerClientFlags { 838 CARD8 reqType; 839 CARD8 xkbReqType;/* always X_KBPerClientFlags */ 840 CARD16 length; 841 CARD16 deviceSpec; 842 CARD16 pad1; 843 CARD32 change; 844 CARD32 value; 845 CARD32 ctrlsToChange; 846 CARD32 autoCtrls; 847 CARD32 autoCtrlValues; 848 } xkbPerClientFlagsReq; 849 #define sz_xkbPerClientFlagsReq 28 850 851 typedef struct _xkbPerClientFlagsReply { 852 CARD8 type; /* always X_Reply */ 853 CARD8 deviceID; 854 CARD16 sequenceNumber; 855 CARD32 length; 856 CARD32 supported; 857 CARD32 value; 858 CARD32 autoCtrls; 859 CARD32 autoCtrlValues; 860 CARD32 pad1; 861 CARD32 pad2; 862 } xkbPerClientFlagsReply; 863 #define sz_xkbPerClientFlagsReply 32 864 865 typedef struct _xkbListComponents { 866 CARD8 reqType; 867 CARD8 xkbReqType; /* always X_KBListComponents */ 868 CARD16 length; 869 CARD16 deviceSpec; 870 CARD16 maxNames; 871 } xkbListComponentsReq; 872 #define sz_xkbListComponentsReq 8 873 874 typedef struct _xkbListComponentsReply { 875 CARD8 type; /* always X_Reply */ 876 CARD8 deviceID; 877 CARD16 sequenceNumber; 878 CARD32 length; 879 CARD16 nKeymaps; 880 CARD16 nKeycodes; 881 CARD16 nTypes; 882 CARD16 nCompatMaps; 883 CARD16 nSymbols; 884 CARD16 nGeometries; 885 CARD16 extra; 886 CARD16 pad1; 887 CARD32 pad2; 888 CARD32 pad3; 889 } xkbListComponentsReply; 890 #define sz_xkbListComponentsReply 32 891 892 typedef struct _xkbGetKbdByName { 893 CARD8 reqType; 894 CARD8 xkbReqType; /* always X_KBGetKbdByName */ 895 CARD16 length; 896 CARD16 deviceSpec; 897 CARD16 need; /* combination of XkbGBN_* */ 898 CARD16 want; /* 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; 908 CARD32 length; 909 KeyCode minKeyCode; 910 KeyCode maxKeyCode; 911 BOOL loaded; 912 BOOL newKeyboard; 913 CARD16 found; /* combination of XkbGBN_* */ 914 CARD16 reported; /* combination of XkbAllComponents */ 915 CARD32 pad1; 916 CARD32 pad2; 917 CARD32 pad3; 918 CARD32 pad4; 919 } xkbGetKbdByNameReply; 920 #define sz_xkbGetKbdByNameReply 32 921 922 typedef struct _xkbDeviceLedsWireDesc { 923 CARD16 ledClass; 924 CARD16 ledID; 925 CARD32 namesPresent; 926 CARD32 mapsPresent; 927 CARD32 physIndicators; 928 CARD32 state; 929 } xkbDeviceLedsWireDesc; 930 #define sz_xkbDeviceLedsWireDesc 20 931 932 typedef struct _xkbGetDeviceInfo { 933 CARD8 reqType; 934 CARD8 xkbReqType; /* always X_KBGetDeviceInfo */ 935 CARD16 length; 936 CARD16 deviceSpec; 937 CARD16 wanted; 938 BOOL allBtns; 939 CARD8 firstBtn; 940 CARD8 nBtns; 941 CARD8 pad; 942 CARD16 ledClass; 943 CARD16 ledID; 944 } xkbGetDeviceInfoReq; 945 #define sz_xkbGetDeviceInfoReq 16 946 947 typedef struct _xkbGetDeviceInfoReply { 948 CARD8 type; /* always X_Reply */ 949 CARD8 deviceID; 950 CARD16 sequenceNumber; 951 CARD32 length; 952 CARD16 present; 953 CARD16 supported; 954 CARD16 unsupported; 955 CARD16 nDeviceLedFBs; 956 CARD8 firstBtnWanted; 957 CARD8 nBtnsWanted; 958 CARD8 firstBtnRtrn; 959 CARD8 nBtnsRtrn; 960 CARD8 totalBtns; 961 BOOL hasOwnState; 962 CARD16 dfltKbdFB; 963 CARD16 dfltLedFB; 964 CARD16 pad; 965 Atom devType; 966 } xkbGetDeviceInfoReply; 967 #define sz_xkbGetDeviceInfoReply 32 968 969 typedef struct _xkbSetDeviceInfo { 970 CARD8 reqType; 971 CARD8 xkbReqType; /* always X_KBSetDeviceInfo */ 972 CARD16 length; 973 CARD16 deviceSpec; 974 CARD8 firstBtn; 975 CARD8 nBtns; 976 CARD16 change; 977 CARD16 nDeviceLedFBs; 978 } xkbSetDeviceInfoReq; 979 #define sz_xkbSetDeviceInfoReq 12 980 981 typedef struct _xkbSetDebuggingFlags { 982 CARD8 reqType; 983 CARD8 xkbReqType; /* always X_KBSetDebuggingFlags */ 984 CARD16 length; 985 CARD16 msgLength; 986 CARD16 pad; 987 CARD32 affectFlags; 988 CARD32 flags; 989 CARD32 affectCtrls; 990 CARD32 ctrls; 991 } xkbSetDebuggingFlagsReq; 992 #define sz_xkbSetDebuggingFlagsReq 24 993 994 typedef struct _xkbSetDebuggingFlagsReply { 995 BYTE type; /* X_Reply */ 996 CARD8 pad0; 997 CARD16 sequenceNumber; 998 CARD32 length; 999 CARD32 currentFlags; 1000 CARD32 currentCtrls; 1001 CARD32 supportedFlags; 1002 CARD32 supportedCtrls; 1003 CARD32 pad1; 1004 CARD32 pad2; 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; 1016 Time time; 1017 CARD8 deviceID; 1018 CARD8 pad1; 1019 CARD16 pad2; 1020 CARD32 pad3; 1021 CARD32 pad4; 1022 CARD32 pad5; 1023 CARD32 pad6; 1024 CARD32 pad7; 1025 } xkbAnyEvent; 1026 #define sz_xkbAnyEvent 32 1027 1028 typedef struct _xkbNewKeyboardNotify { 1029 BYTE type; 1030 BYTE xkbType; 1031 CARD16 sequenceNumber; 1032 Time time; 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; 1042 CARD8 detail; 1043 CARD8 pad1; 1044 CARD32 pad2; 1045 CARD32 pad3; 1046 CARD32 pad4; 1047 } xkbNewKeyboardNotify; 1048 #define sz_xkbNewKeyboardNotify 32 1049 1050 typedef struct _xkbMapNotify { 1051 BYTE type; 1052 BYTE xkbType; 1053 CARD16 sequenceNumber; 1054 Time time; 1055 CARD8 deviceID; 1056 CARD8 ptrBtnActions; 1057 CARD16 changed; 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; 1075 CARD16 pad1; 1076 } xkbMapNotify; 1077 #define sz_xkbMapNotify 32 1078 1079 typedef struct _xkbStateNotify { 1080 BYTE type; 1081 BYTE xkbType; 1082 CARD16 sequenceNumber; 1083 Time time; 1084 CARD8 deviceID; 1085 CARD8 mods; 1086 CARD8 baseMods; 1087 CARD8 latchedMods; 1088 CARD8 lockedMods; 1089 CARD8 group; 1090 INT16 baseGroup; 1091 INT16 latchedGroup; 1092 CARD8 lockedGroup; 1093 CARD8 compatState; 1094 CARD8 grabMods; 1095 CARD8 compatGrabMods; 1096 CARD8 lookupMods; 1097 CARD8 compatLookupMods; 1098 CARD16 ptrBtnState; 1099 CARD16 changed; 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; 1111 Time time; 1112 CARD8 deviceID; 1113 CARD8 numGroups; 1114 CARD16 pad1; 1115 CARD32 changedControls; 1116 CARD32 enabledControls; 1117 CARD32 enabledControlChanges; 1118 KeyCode keycode; 1119 CARD8 eventType; 1120 CARD8 requestMajor; 1121 CARD8 requestMinor; 1122 CARD32 pad2; 1123 } xkbControlsNotify; 1124 #define sz_xkbControlsNotify 32 1125 1126 typedef struct _xkbIndicatorNotify { 1127 BYTE type; 1128 BYTE xkbType; 1129 CARD16 sequenceNumber; 1130 Time time; 1131 CARD8 deviceID; 1132 CARD8 pad1; 1133 CARD16 pad2; 1134 CARD32 state; 1135 CARD32 changed; 1136 CARD32 pad3; 1137 CARD32 pad4; 1138 CARD32 pad5; 1139 } xkbIndicatorNotify; 1140 #define sz_xkbIndicatorNotify 32 1141 1142 typedef struct _xkbNamesNotify { 1143 BYTE type; 1144 BYTE xkbType; 1145 CARD16 sequenceNumber; 1146 Time time; 1147 CARD8 deviceID; 1148 CARD8 pad1; 1149 CARD16 changed; 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; 1159 CARD8 firstKey; 1160 CARD8 nKeys; 1161 CARD32 changedIndicators; 1162 CARD32 pad3; 1163 } xkbNamesNotify; 1164 #define sz_xkbNamesNotify 32 1165 1166 typedef struct _xkbCompatMapNotify { 1167 BYTE type; 1168 BYTE xkbType; 1169 CARD16 sequenceNumber; 1170 Time time; 1171 CARD8 deviceID; 1172 CARD8 changedGroups; 1173 CARD16 firstSI; 1174 CARD16 nSI; 1175 CARD16 nTotalSI; 1176 CARD32 pad1; 1177 CARD32 pad2; 1178 CARD32 pad3; 1179 CARD32 pad4; 1180 } xkbCompatMapNotify; 1181 #define sz_xkbCompatMapNotify 32 1182 1183 typedef struct _xkbBellNotify { 1184 BYTE type; 1185 BYTE xkbType; 1186 CARD16 sequenceNumber; 1187 Time time; 1188 CARD8 deviceID; 1189 CARD8 bellClass; 1190 CARD8 bellID; 1191 CARD8 percent; 1192 CARD16 pitch; 1193 CARD16 duration; 1194 Atom name; 1195 Window window; 1196 BOOL eventOnly; 1197 CARD8 pad1; 1198 CARD16 pad2; 1199 CARD32 pad3; 1200 } xkbBellNotify; 1201 #define sz_xkbBellNotify 32 1202 1203 typedef struct _xkbActionMessage { 1204 BYTE type; 1205 BYTE xkbType; 1206 CARD16 sequenceNumber; 1207 Time time; 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; 1216 CARD32 pad2; 1217 CARD32 pad3; 1218 } xkbActionMessage; 1219 #define sz_xkbActionMessage 32 1220 1221 typedef struct _xkbAccessXNotify { 1222 BYTE type; 1223 BYTE xkbType; 1224 CARD16 sequenceNumber; 1225 Time time; 1226 CARD8 deviceID; 1227 KeyCode keycode; 1228 CARD16 detail; 1229 CARD16 slowKeysDelay; 1230 CARD16 debounceDelay; 1231 CARD32 pad1; 1232 CARD32 pad2; 1233 CARD32 pad3; 1234 CARD32 pad4; 1235 } xkbAccessXNotify; 1236 #define sz_xkbAccessXNotify 32 1237 1238 typedef struct _xkbExtensionDeviceNotify { 1239 BYTE type; 1240 BYTE xkbType; 1241 CARD16 sequenceNumber; 1242 Time time; 1243 CARD8 deviceID; 1244 CARD8 pad1; 1245 CARD16 reason; 1246 CARD16 ledClass; 1247 CARD16 ledID; 1248 CARD32 ledsDefined; 1249 CARD32 ledState; 1250 CARD8 firstBtn; 1251 CARD8 nBtns; 1252 CARD16 supported; 1253 CARD16 unsupported; 1254 CARD16 pad3; 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