1 /************************************************************
2 Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
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.
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.
25 ********************************************************/
31 #define XkbAllocClientMap SrvXkbAllocClientMap
32 #define XkbAllocServerMap SrvXkbAllocServerMap
33 #define XkbChangeTypesOfKey SrvXkbChangeTypesOfKey
34 #define XkbAddKeyType SrvXkbAddKeyType
35 #define XkbCopyKeyType SrvXkbCopyKeyType
36 #define XkbCopyKeyTypes SrvXkbCopyKeyTypes
37 #define XkbFreeClientMap SrvXkbFreeClientMap
38 #define XkbFreeServerMap SrvXkbFreeServerMap
39 #define XkbInitCanonicalKeyTypes SrvXkbInitCanonicalKeyTypes
40 #define XkbKeyTypesForCoreSymbols SrvXkbKeyTypesForCoreSymbols
41 #define XkbApplyCompatMapToKey SrvXkbApplyCompatMapToKey
42 #define XkbUpdateMapFromCore SrvXkbUpdateMapFromCore
43 #define XkbResizeKeyActions SrvXkbResizeKeyActions
44 #define XkbResizeKeySyms SrvXkbResizeKeySyms
45 #define XkbResizeKeyType SrvXkbResizeKeyType
46 #define XkbAllocCompatMap SrvXkbAllocCompatMap
47 #define XkbAllocControls SrvXkbAllocControls
48 #define XkbAllocIndicatorMaps SrvXkbAllocIndicatorMaps
49 #define XkbAllocKeyboard SrvXkbAllocKeyboard
50 #define XkbAllocNames SrvXkbAllocNames
51 #define XkbFreeCompatMap SrvXkbFreeCompatMap
52 #define XkbFreeControls SrvXkbFreeControls
53 #define XkbFreeIndicatorMaps SrvXkbFreeIndicatorMaps
54 #define XkbFreeKeyboard SrvXkbFreeKeyboard
55 #define XkbFreeNames SrvXkbFreeNames
56 #define XkbAddDeviceLedInfo SrvXkbAddDeviceLedInfo
57 #define XkbAllocDeviceInfo SrvXkbAllocDeviceInfo
58 #define XkbFreeDeviceInfo SrvXkbFreeDeviceInfo
59 #define XkbResizeDeviceButtonActions SrvXkbResizeDeviceButtonActions
60 #define XkbLatchModifiers SrvXkbLatchModifiers
61 #define XkbLatchGroup SrvXkbLatchGroup
62 #define XkbVirtualModsToReal SrvXkbVirtualModsToReal
63 #define XkbChangeKeycodeRange SrvXkbChangeKeycodeRange
64 #define XkbApplyVirtualModChanges SrvXkbApplyVirtualModChanges
65 #define XkbUpdateActionVirtualMods SrvXkbUpdateActionVirtualMods
66 #define XkbUpdateKeyTypeVirtualMods SrvXkbUpdateKeyTypeVirtualMods
69 #include <X11/extensions/XKBstr.h>
70 #include <X11/extensions/XKBproto.h>
73 typedef struct _XkbInterest {
77 struct _XkbInterest * next;
78 CARD16 extDevNotifyMask;
79 CARD16 stateNotifyMask;
80 CARD16 namesNotifyMask;
81 CARD32 ctrlsNotifyMask;
82 CARD8 compatNotifyMask;
84 BOOL actionMessageMask;
85 CARD16 accessXNotifyMask;
86 CARD32 iStateNotifyMask;
87 CARD32 iMapNotifyMask;
88 CARD16 altSymsNotifyMask;
90 CARD32 autoCtrlValues;
91 } XkbInterestRec,*XkbInterestPtr;
93 typedef struct _XkbRadioGroup {
98 CARD8 members[XkbRGMaxMembers];
99 } XkbRadioGroupRec, *XkbRadioGroupPtr;
101 typedef struct _XkbEventCause {
107 } XkbEventCauseRec,*XkbEventCausePtr;
108 #define XkbSetCauseKey(c,k,e) { (c)->kc= (k),(c)->event= (e),\
109 (c)->mjr= (c)->mnr= 0; \
111 #define XkbSetCauseReq(c,j,n,cl) { (c)->kc= (c)->event= 0,\
112 (c)->mjr= (j),(c)->mnr= (n);\
114 #define XkbSetCauseCoreReq(c,e,cl) XkbSetCauseReq(c,e,0,cl)
115 #define XkbSetCauseXkbReq(c,e,cl) XkbSetCauseReq(c,XkbReqCode,e,cl)
116 #define XkbSetCauseUnknown(c) XkbSetCauseKey(c,0,0)
119 #define _KRG_WARN_TIMER 1
121 #define _SK_TIMEOUT_TIMER 3
122 #define _ALL_TIMEOUT_TIMER 4
125 #define _BEEP_FEATURE_ON 1
126 #define _BEEP_FEATURE_OFF 2
127 #define _BEEP_FEATURE_CHANGE 3
128 #define _BEEP_SLOW_WARN 4
129 #define _BEEP_SLOW_PRESS 5
130 #define _BEEP_SLOW_ACCEPT 6
131 #define _BEEP_SLOW_REJECT 7
132 #define _BEEP_SLOW_RELEASE 8
133 #define _BEEP_STICKY_LATCH 9
134 #define _BEEP_STICKY_LOCK 10
135 #define _BEEP_STICKY_UNLOCK 11
136 #define _BEEP_LED_ON 12
137 #define _BEEP_LED_OFF 13
138 #define _BEEP_LED_CHANGE 14
139 #define _BEEP_BOUNCE_REJECT 15
141 typedef struct _XkbSrvInfo {
142 XkbStateRec prev_state;
147 KbdCtrlProcPtr kbdProc;
149 XkbRadioGroupPtr radioGroups;
157 double mouseKeysCurve;
158 double mouseKeysCurveFactor;
161 CARD8 mouseKeysFlags;
163 CARD8 mouseKeysCounter;
165 CARD8 lockedPtrButtons;
171 CARD8 krgTimerActive;
176 CARD32 lastPtrEventTime;
177 CARD32 lastShiftEventTime;
178 OsTimerPtr beepTimer;
179 OsTimerPtr mouseKeyTimer;
180 OsTimerPtr slowKeysTimer;
181 OsTimerPtr bounceKeysTimer;
182 OsTimerPtr repeatKeyTimer;
184 } XkbSrvInfoRec, *XkbSrvInfoPtr;
186 #define XkbSLI_IsDefault (1L<<0)
187 #define XkbSLI_HasOwnState (1L<<1)
189 typedef struct _XkbSrvLedInfo {
198 CARD32 physIndicators;
200 CARD32 explicitState;
201 CARD32 effectiveState;
205 XkbIndicatorMapPtr maps;
211 CARD32 usesEffective;
215 CARD32 usedComponents;
216 } XkbSrvLedInfoRec, *XkbSrvLedInfoPtr;
219 * Settings for xkbClientFlags field (used by DIX)
220 * These flags _must_ not overlap with XkbPCF_*
222 #define _XkbClientInitialized (1<<15)
224 #define _XkbWantsDetectableAutoRepeat(c)\
225 ((c)->xkbClientFlags&XkbPCF_DetectableAutoRepeatMask)
228 * Settings for flags field
230 #define _XkbStateNotifyInProgress (1<<0)
234 ProcessInputProc processInputProc;
235 ProcessInputProc realInputProc;
236 DeviceUnwrapProc unwrapProc;
237 } xkbDeviceInfoRec, *xkbDeviceInfoPtr;
239 #define WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
240 device->public.processInputProc = proc; \
241 oldprocs->processInputProc = \
242 oldprocs->realInputProc = device->public.realInputProc; \
243 device->public.realInputProc = proc; \
244 oldprocs->unwrapProc = device->unwrapProc; \
245 device->unwrapProc = unwrapproc;
247 #define COND_WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
248 if (device->public.processInputProc == device->public.realInputProc)\
249 device->public.processInputProc = proc; \
250 oldprocs->processInputProc = \
251 oldprocs->realInputProc = device->public.realInputProc; \
252 device->public.realInputProc = proc; \
253 oldprocs->unwrapProc = device->unwrapProc; \
254 device->unwrapProc = unwrapproc;
256 #define UNWRAP_PROCESS_INPUT_PROC(device, oldprocs) \
257 device->public.processInputProc = oldprocs->processInputProc; \
258 device->public.realInputProc = oldprocs->realInputProc; \
259 device->unwrapProc = oldprocs->unwrapProc;
261 #define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr) (dev)->devPrivates[xkbDevicePrivateIndex].ptr)
263 /***====================================================================***/
266 /***====================================================================***/
268 #define XkbAX_KRGMask (XkbSlowKeysMask|XkbBounceKeysMask)
269 #define XkbAllFilteredEventsMask \
270 (XkbAccessXKeysMask|XkbRepeatKeysMask|XkbMouseKeysAccelMask|XkbAX_KRGMask)
272 /***====================================================================***/
274 extern int XkbReqCode;
275 extern int XkbEventBase;
276 extern int XkbKeyboardErrorCode;
277 extern int XkbDisableLockActions;
278 extern char * XkbBaseDirectory;
279 extern char * XkbBinDirectory;
280 extern char * XkbInitialMap;
281 extern int _XkbClientMajor;
282 extern int _XkbClientMinor;
283 extern unsigned int XkbXIUnsupported;
285 extern char * XkbModelUsed,*XkbLayoutUsed,*XkbVariantUsed,*XkbOptionsUsed;
286 extern Bool noXkbExtension;
287 extern Bool XkbWantRulesProp;
289 extern pointer XkbLastRepeatEvent;
291 extern CARD32 xkbDebugFlags;
292 extern CARD32 xkbDebugCtrls;
294 #define _XkbAlloc(s) xalloc((s))
295 #define _XkbCalloc(n,s) Xcalloc((n)*(s))
296 #define _XkbRealloc(o,s) Xrealloc((o),(s))
297 #define _XkbTypedAlloc(t) ((t *)xalloc(sizeof(t)))
298 #define _XkbTypedCalloc(n,t) ((t *)Xcalloc((n)*sizeof(t)))
299 #define _XkbTypedRealloc(o,n,t) \
300 ((o)?(t *)Xrealloc((o),(n)*sizeof(t)):_XkbTypedCalloc(n,t))
301 #define _XkbClearElems(a,f,l,t) bzero(&(a)[f],((l)-(f)+1)*sizeof(t))
302 #define _XkbFree(p) Xfree(p)
304 #define _XkbLibError(c,l,d) \
305 { _XkbErrCode= (c); _XkbErrLocation= (l); _XkbErrData= (d); }
306 #define _XkbErrCode2(a,b) ((XID)((((unsigned int)(a))<<24)|((b)&0xffffff)))
307 #define _XkbErrCode3(a,b,c) _XkbErrCode2(a,(((unsigned int)(b))<<16)|(c))
308 #define _XkbErrCode4(a,b,c,d) _XkbErrCode3(a,b,((((unsigned int)(c))<<8)|(d)))
310 extern int DeviceKeyPress,DeviceKeyRelease;
311 extern int DeviceButtonPress,DeviceButtonRelease;
314 #define _XkbIsPressEvent(t) (((t)==KeyPress)||((t)==DeviceKeyPress))
315 #define _XkbIsReleaseEvent(t) (((t)==KeyRelease)||((t)==DeviceKeyRelease))
317 #define _XkbIsPressEvent(t) ((t)==KeyPress)
318 #define _XkbIsReleaseEvent(t) ((t)==KeyRelease)
321 #define _XkbCoreKeycodeInRange(c,k) (((k)>=(c)->curKeySyms.minKeyCode)&&\
322 ((k)<=(c)->curKeySyms.maxKeyCode))
323 #define _XkbCoreNumKeys(c) ((c)->curKeySyms.maxKeyCode-\
324 (c)->curKeySyms.minKeyCode+1)
326 #define XConvertCase(s,l,u) XkbConvertCase(s,l,u)
328 #define IsKeypadKey(s) XkbKSIsKeypad(s)
331 typedef pointer XPointer;
332 typedef struct _XDisplay Display;
341 #define PATH_MAX MAXPATHLEN
343 #define PATH_MAX 1024
349 extern void XkbUseMsg(
353 extern int XkbProcessArguments(
359 extern void XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc);
361 extern void XkbFreeCompatMap(
362 XkbDescPtr /* xkb */,
363 unsigned int /* which */,
367 extern void XkbFreeNames(
368 XkbDescPtr /* xkb */,
369 unsigned int /* which */,
373 extern DeviceIntPtr _XkbLookupAnyDevice(
378 extern DeviceIntPtr _XkbLookupKeyboard(
383 extern DeviceIntPtr _XkbLookupBellDevice(
388 extern DeviceIntPtr _XkbLookupLedDevice(
393 extern DeviceIntPtr _XkbLookupButtonDevice(
398 extern XkbDescPtr XkbAllocKeyboard(
402 extern Status XkbAllocClientMap(
403 XkbDescPtr /* xkb */,
404 unsigned int /* which */,
405 unsigned int /* nTypes */
408 extern Status XkbAllocServerMap(
409 XkbDescPtr /* xkb */,
410 unsigned int /* which */,
411 unsigned int /* nNewActions */
414 extern void XkbFreeClientMap(
415 XkbDescPtr /* xkb */,
416 unsigned int /* what */,
420 extern void XkbFreeServerMap(
421 XkbDescPtr /* xkb */,
422 unsigned int /* what */,
426 extern Status XkbAllocIndicatorMaps(
430 extern Status XkbAllocCompatMap(
431 XkbDescPtr /* xkb */,
432 unsigned int /* which */,
433 unsigned int /* nInterpret */
436 extern Status XkbAllocNames(
437 XkbDescPtr /* xkb */,
438 unsigned int /* which */,
440 int /* nTotalAliases */
443 extern Status XkbAllocControls(
444 XkbDescPtr /* xkb */,
445 unsigned int /* which*/
448 extern Status XkbCopyKeyType(
449 XkbKeyTypePtr /* from */,
450 XkbKeyTypePtr /* into */
453 extern Status XkbCopyKeyTypes(
454 XkbKeyTypePtr /* from */,
455 XkbKeyTypePtr /* into */,
459 extern Status XkbResizeKeyType(
460 XkbDescPtr /* xkb */,
463 Bool /* want_preserve */,
464 int /* new_num_lvls */
467 extern void XkbFreeKeyboard(
468 XkbDescPtr /* xkb */,
469 unsigned int /* which */,
473 extern void XkbSetActionKeyMods(
474 XkbDescPtr /* xkb */,
475 XkbAction * /* act */,
476 unsigned int /* mods */
479 extern Bool XkbCheckActionVMods(
480 XkbDescPtr /* xkb */,
481 XkbAction * /* act */,
482 unsigned int /* changed */
485 extern Bool XkbApplyVModChanges(
486 XkbSrvInfoPtr /* xkbi */,
487 unsigned int /* changed */,
488 XkbChangesPtr /* pChanges */,
489 unsigned int * /* needChecksRtrn */,
490 XkbEventCausePtr /* cause */
493 extern void XkbApplyVModChangesToAllDevices(
494 DeviceIntPtr /* dev */,
495 XkbDescPtr /* xkb */,
496 unsigned int /* changed */,
497 XkbEventCausePtr /* cause */
500 extern unsigned int XkbMaskForVMask(
501 XkbDescPtr /* xkb */,
502 unsigned int /* vmask */
505 extern Bool XkbVirtualModsToReal(
506 XkbDescPtr /* xkb */,
507 unsigned int /* virtua_mask */,
508 unsigned int * /* mask_rtrn */
511 extern unsigned int XkbAdjustGroup(
513 XkbControlsPtr /* ctrls */
516 extern KeySym *XkbResizeKeySyms(
517 XkbDescPtr /* xkb */,
522 extern XkbAction *XkbResizeKeyActions(
523 XkbDescPtr /* xkb */,
528 extern void XkbUpdateKeyTypesFromCore(
529 DeviceIntPtr /* pXDev */,
532 XkbChangesPtr /* pChanges */
535 extern void XkbUpdateDescActions(
536 XkbDescPtr /* xkb */,
539 XkbChangesPtr /* changes */
542 extern void XkbUpdateActions(
543 DeviceIntPtr /* pXDev */,
546 XkbChangesPtr /* pChanges */,
547 unsigned int * /* needChecksRtrn */,
548 XkbEventCausePtr /* cause */
551 extern void XkbUpdateCoreDescription(
552 DeviceIntPtr /* keybd */,
556 extern void XkbApplyMappingChange(
557 DeviceIntPtr /* pXDev */,
559 KeyCode /* firstKey */,
561 ClientPtr /* client */
564 extern void XkbSetIndicators(
565 DeviceIntPtr /* pXDev */,
568 XkbEventCausePtr /* cause */
571 extern void XkbUpdateIndicators(
572 DeviceIntPtr /* keybd */,
573 CARD32 /* changed */,
574 Bool /* check_edevs */,
575 XkbChangesPtr /* pChanges */,
576 XkbEventCausePtr /* cause */
579 extern XkbSrvLedInfoPtr XkbAllocSrvLedInfo(
580 DeviceIntPtr /* dev */,
581 KbdFeedbackPtr /* kf */,
582 LedFeedbackPtr /* lf */,
583 unsigned int /* needed_parts */
586 extern XkbSrvLedInfoPtr XkbFindSrvLedInfo(
587 DeviceIntPtr /* dev */,
588 unsigned int /* class */,
589 unsigned int /* id */,
590 unsigned int /* needed_parts */
593 extern void XkbApplyLedNameChanges(
594 DeviceIntPtr /* dev */,
595 XkbSrvLedInfoPtr /* sli */,
596 unsigned int /* changed_names */,
597 xkbExtensionDeviceNotify * /* ed */,
598 XkbChangesPtr /* changes */,
599 XkbEventCausePtr /* cause */
602 extern void XkbApplyLedMapChanges(
603 DeviceIntPtr /* dev */,
604 XkbSrvLedInfoPtr /* sli */,
605 unsigned int /* changed_maps */,
606 xkbExtensionDeviceNotify * /* ed */,
607 XkbChangesPtr /* changes */,
608 XkbEventCausePtr /* cause */
611 extern void XkbApplyLedStateChanges(
612 DeviceIntPtr /* dev */,
613 XkbSrvLedInfoPtr /* sli */,
614 unsigned int /* changed_leds */,
615 xkbExtensionDeviceNotify * /* ed */,
616 XkbChangesPtr /* changes */,
617 XkbEventCausePtr /* cause */
620 extern void XkbUpdateLedAutoState(
621 DeviceIntPtr /* dev */,
622 XkbSrvLedInfoPtr /* sli */,
623 unsigned int /* maps_to_check */,
624 xkbExtensionDeviceNotify * /* ed */,
625 XkbChangesPtr /* changes */,
626 XkbEventCausePtr /* cause */
629 extern void XkbFlushLedEvents(
630 DeviceIntPtr /* dev */,
631 DeviceIntPtr /* kbd */,
632 XkbSrvLedInfoPtr /* sli */,
633 xkbExtensionDeviceNotify * /* ed */,
634 XkbChangesPtr /* changes */,
635 XkbEventCausePtr /* cause */
638 extern void XkbUpdateAllDeviceIndicators(
639 XkbChangesPtr /* changes */,
640 XkbEventCausePtr /* cause */
643 extern unsigned int XkbIndicatorsToUpdate(
644 DeviceIntPtr /* dev */,
645 unsigned long /* state_changes */,
646 Bool /* enabled_ctrl_changes */
649 extern void XkbComputeDerivedState(
650 XkbSrvInfoPtr /* xkbi */
653 extern void XkbCheckSecondaryEffects(
654 XkbSrvInfoPtr /* xkbi */,
655 unsigned int /* which */,
656 XkbChangesPtr /* changes */,
657 XkbEventCausePtr /* cause */
660 extern void XkbCheckIndicatorMaps(
661 DeviceIntPtr /* dev */,
662 XkbSrvLedInfoPtr /* sli */,
663 unsigned int /* which */
666 extern unsigned int XkbStateChangedFlags(
667 XkbStatePtr /* old */,
668 XkbStatePtr /* new */
671 extern void XkbSendStateNotify(
672 DeviceIntPtr /* kbd */,
673 xkbStateNotify * /* pSN */
676 extern void XkbSendMapNotify(
677 DeviceIntPtr /* kbd */,
678 xkbMapNotify * /* ev */
681 extern int XkbComputeControlsNotify(
682 DeviceIntPtr /* kbd */,
683 XkbControlsPtr /* old */,
684 XkbControlsPtr /* new */,
685 xkbControlsNotify * /* pCN */,
686 Bool /* forceCtrlProc */
689 extern void XkbSendControlsNotify(
690 DeviceIntPtr /* kbd */,
691 xkbControlsNotify * /* ev */
694 extern void XkbSendCompatMapNotify(
695 DeviceIntPtr /* kbd */,
696 xkbCompatMapNotify * /* ev */
699 extern void XkbSendIndicatorNotify(
700 DeviceIntPtr /* kbd */,
702 xkbIndicatorNotify * /* ev */
705 extern void XkbHandleBell(
707 BOOL /* eventOnly */,
708 DeviceIntPtr /* kbd */,
713 WindowPtr /* pWin */,
714 ClientPtr /* pClient */
717 extern void XkbSendAccessXNotify(
718 DeviceIntPtr /* kbd */,
719 xkbAccessXNotify * /* pEv */
722 extern void XkbSendNamesNotify(
723 DeviceIntPtr /* kbd */,
724 xkbNamesNotify * /* ev */
727 extern void XkbSendCompatNotify(
728 DeviceIntPtr /* kbd */,
729 xkbCompatMapNotify * /* ev */
732 extern void XkbSendActionMessage(
733 DeviceIntPtr /* kbd */,
734 xkbActionMessage * /* ev */
737 extern void XkbSendExtensionDeviceNotify(
738 DeviceIntPtr /* kbd */,
739 ClientPtr /* client */,
740 xkbExtensionDeviceNotify * /* ev */
743 extern void XkbSendNotification(
744 DeviceIntPtr /* kbd */,
745 XkbChangesPtr /* pChanges */,
746 XkbEventCausePtr /* cause */
749 extern void XkbProcessKeyboardEvent(
750 struct _xEvent * /* xE */,
751 DeviceIntPtr /* keybd */,
755 extern void XkbProcessOtherEvent(
756 struct _xEvent * /* xE */,
757 DeviceIntPtr /* keybd */,
761 extern void XkbHandleActions(
762 DeviceIntPtr /* dev */,
763 DeviceIntPtr /* kbd */,
764 struct _xEvent * /* xE */,
768 extern Bool XkbEnableDisableControls(
769 XkbSrvInfoPtr /* xkbi */,
770 unsigned long /* change */,
771 unsigned long /* newValues */,
772 XkbChangesPtr /* changes */,
773 XkbEventCausePtr /* cause */
776 extern void AccessXInit(
777 DeviceIntPtr /* dev */
780 extern Bool AccessXFilterPressEvent(
781 register struct _xEvent * /* xE */,
782 register DeviceIntPtr /* keybd */,
786 extern Bool AccessXFilterReleaseEvent(
787 register struct _xEvent * /* xE */,
788 register DeviceIntPtr /* keybd */,
792 extern void AccessXCancelRepeatKey(
793 XkbSrvInfoPtr /* xkbi */,
797 extern void AccessXComputeCurveFactor(
798 XkbSrvInfoPtr /* xkbi */,
799 XkbControlsPtr /* ctrls */
802 extern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo(
803 XkbDeviceInfoPtr /* devi */,
804 unsigned int /* ledClass */,
805 unsigned int /* ledId */
808 extern XkbDeviceInfoPtr XkbAllocDeviceInfo(
809 unsigned int /* deviceSpec */,
810 unsigned int /* nButtons */,
811 unsigned int /* szLeds */
814 extern void XkbFreeDeviceInfo(
815 XkbDeviceInfoPtr /* devi */,
816 unsigned int /* which */,
820 extern Status XkbResizeDeviceButtonActions(
821 XkbDeviceInfoPtr /* devi */,
822 unsigned int /* newTotal */
825 extern XkbInterestPtr XkbFindClientResource(
826 DevicePtr /* inDev */,
827 ClientPtr /* client */
830 extern XkbInterestPtr XkbAddClientResource(
831 DevicePtr /* inDev */,
832 ClientPtr /* client */,
836 extern int XkbRemoveClient(
837 DevicePtr /* inDev */,
838 ClientPtr /* client */
841 extern int XkbRemoveResourceClient(
842 DevicePtr /* inDev */,
846 extern int XkbDDXInitDevice(
847 DeviceIntPtr /* dev */
850 extern int XkbDDXAccessXBeep(
851 DeviceIntPtr /* dev */,
852 unsigned int /* what */,
853 unsigned int /* which */
856 extern void XkbDDXKeyClick(
857 DeviceIntPtr /* dev */,
862 extern int XkbDDXUsesSoftRepeat(
863 DeviceIntPtr /* dev */
866 extern void XkbDDXKeybdCtrlProc(
867 DeviceIntPtr /* dev */,
868 KeybdCtrl * /* ctrl */
871 extern void XkbDDXChangeControls(
872 DeviceIntPtr /* dev */,
873 XkbControlsPtr /* old */,
874 XkbControlsPtr /* new */
877 extern void XkbDDXUpdateIndicators(
878 DeviceIntPtr /* keybd */,
879 CARD32 /* newState */
882 extern void XkbDDXUpdateDeviceIndicators(
883 DeviceIntPtr /* dev */,
884 XkbSrvLedInfoPtr /* sli */,
885 CARD32 /* newState */
888 extern void XkbDDXFakePointerButton(
893 extern void XkbDDXFakePointerMotion(
894 unsigned int /* flags */,
899 extern void XkbDDXFakeDeviceButton(
900 DeviceIntPtr /* dev */,
905 extern int XkbDDXTerminateServer(
906 DeviceIntPtr /* dev */,
908 XkbAction * /* act */
911 extern int XkbDDXSwitchScreen(
912 DeviceIntPtr /* dev */,
914 XkbAction * /* act */
917 extern int XkbDDXPrivate(
918 DeviceIntPtr /* dev */,
920 XkbAction * /* act */
923 extern void XkbDisableComputedAutoRepeats(
924 DeviceIntPtr /* pXDev */,
925 unsigned int /* key */
928 extern void XkbSetRepeatKeys(
929 DeviceIntPtr /* pXDev */,
934 extern int XkbLatchModifiers(
935 DeviceIntPtr /* pXDev */,
940 extern int XkbLatchGroup(
941 DeviceIntPtr /* pXDev */,
945 extern void XkbClearAllLatchesAndLocks(
946 DeviceIntPtr /* dev */,
947 XkbSrvInfoPtr /* xkbi */,
949 XkbEventCausePtr /* cause */
952 extern void XkbSetRulesDflts(
953 char * /* rulesFile */,
956 char * /* variant */,
960 extern void XkbInitDevice(
961 DeviceIntPtr /* pXDev */
964 extern Bool XkbInitKeyboardDeviceStruct(
965 DeviceIntPtr /* pXDev */,
966 XkbComponentNamesPtr /* pNames */,
967 KeySymsPtr /* pSyms */,
969 BellProcPtr /* bellProc */,
970 KbdCtrlProcPtr /* ctrlProc */
973 extern int SProcXkbDispatch(
974 ClientPtr /* client */
977 extern XkbGeometryPtr XkbLookupNamedGeometry(
978 DeviceIntPtr /* dev */,
980 Bool * /* shouldFree */
983 extern char * _XkbDupString(
987 extern void XkbConvertCase(
989 KeySym * /* lower */,
993 extern Status XkbChangeKeycodeRange(
994 XkbDescPtr /* xkb */,
997 XkbChangesPtr /* changes */
1000 extern int XkbFinishDeviceInit(
1001 DeviceIntPtr /* pXDev */
1004 extern void XkbFreeSrvLedInfo(
1005 XkbSrvLedInfoPtr /* sli */
1008 extern void XkbFreeInfo(
1009 XkbSrvInfoPtr /* xkbi */
1012 extern Status XkbChangeTypesOfKey(
1013 XkbDescPtr /* xkb */,
1016 unsigned int /* groups */,
1017 int * /* newTypesIn */,
1018 XkbMapChangesPtr /* changes */
1021 extern XkbKeyTypePtr XkbAddKeyType(
1022 XkbDescPtr /* xkb */,
1024 int /* map_count */,
1025 Bool /* want_preserve */,
1029 extern Status XkbInitCanonicalKeyTypes(
1030 XkbDescPtr /* xkb */,
1031 unsigned int /* which */,
1032 int /* keypadVMod */
1035 extern int XkbKeyTypesForCoreSymbols(
1036 XkbDescPtr /* xkb */,
1037 int /* map_width */,
1038 KeySym * /* core_syms */,
1039 unsigned int /* protected */,
1040 int * /* types_inout */,
1041 KeySym * /* xkb_syms_rtrn */
1044 extern Bool XkbApplyCompatMapToKey(
1045 XkbDescPtr /* xkb */,
1047 XkbChangesPtr /* changes */
1050 extern Bool XkbUpdateMapFromCore(
1051 XkbDescPtr /* xkb */,
1052 KeyCode /* first_key */,
1054 int /* map_width */,
1055 KeySym * /* core_keysyms */,
1056 XkbChangesPtr /* changes */
1059 extern void XkbFreeControls(
1060 XkbDescPtr /* xkb */,
1061 unsigned int /* which */,
1065 extern void XkbFreeIndicatorMaps(
1066 XkbDescPtr /* xkb */
1069 extern Bool XkbApplyVirtualModChanges(
1070 XkbDescPtr /* xkb */,
1071 unsigned int /* changed */,
1072 XkbChangesPtr /* changes */
1075 extern Bool XkbUpdateActionVirtualMods(
1076 XkbDescPtr /* xkb */,
1077 XkbAction * /* act */,
1078 unsigned int /* changed */
1081 extern void XkbUpdateKeyTypeVirtualMods(
1082 XkbDescPtr /* xkb */,
1083 XkbKeyTypePtr /* type */,
1084 unsigned int /* changed */,
1085 XkbChangesPtr /* changes */
1088 extern void XkbSendNewKeyboardNotify(
1089 DeviceIntPtr /* kbd */,
1090 xkbNewKeyboardNotify * /* pNKN */
1093 #ifdef XKBSRV_NEED_FILE_FUNCS
1095 #include <X11/extensions/XKMformat.h>
1096 #include <X11/extensions/XKBfile.h>
1097 #include <X11/extensions/XKBrules.h>
1099 #define _XkbListKeymaps 0
1100 #define _XkbListKeycodes 1
1101 #define _XkbListTypes 2
1102 #define _XkbListCompat 3
1103 #define _XkbListSymbols 4
1104 #define _XkbListGeometry 5
1105 #define _XkbListNumComponents 6
1107 typedef struct _XkbSrvListInfo {
1115 char * pattern[_XkbListNumComponents];
1116 int nFound[_XkbListNumComponents];
1117 } XkbSrvListInfoRec,*XkbSrvListInfoPtr;
1121 XkbRF_VarDefsPtr /* defs */
1124 extern void XkbSetRulesUsed(
1125 XkbRF_VarDefsPtr /* defs */
1129 extern Status XkbDDXList(
1130 DeviceIntPtr /* dev */,
1131 XkbSrvListInfoPtr /* listing */,
1132 ClientPtr /* client */
1135 extern unsigned int XkbDDXLoadKeymapByNames(
1136 DeviceIntPtr /* keybd */,
1137 XkbComponentNamesPtr /* names */,
1138 unsigned int /* want */,
1139 unsigned int /* need */,
1140 XkbFileInfoPtr /* finfoRtrn */,
1141 char * /* keymapNameRtrn */,
1142 int /* keymapNameRtrnLen */
1145 extern Bool XkbDDXNamesFromRules(
1146 DeviceIntPtr /* keybd */,
1148 XkbRF_VarDefsPtr /* defs */,
1149 XkbComponentNamesPtr /* names */
1152 extern FILE *XkbDDXOpenConfigFile(
1153 char * /* mapName */,
1154 char * /* fileNameRtrn */,
1155 int /* fileNameRtrnLen */
1158 extern Bool XkbDDXApplyConfig(
1159 XPointer /* cfg_in */,
1160 XkbSrvInfoPtr /* xkbi */
1163 extern XPointer XkbDDXPreloadConfig(
1164 char ** /* rulesFileRtrn */,
1165 XkbRF_VarDefsPtr /* defs */,
1166 XkbComponentNamesPtr /* names */,
1167 DeviceIntPtr /* dev */
1170 extern int _XkbStrCaseCmp(
1175 #endif /* XKBSRV_NEED_FILE_FUNCS */
1180 #define XkbAtomGetString(d,s) NameForAtom(s)
1182 #endif /* _XKBSRV_H_ */