1 /* $Xorg: XKBsrv.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
3 /************************************************************
4 Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
6 Permission to use, copy, modify, and distribute this
7 software and its documentation for any purpose and without
8 fee is hereby granted, provided that the above copyright
9 notice appear in all copies and that both that copyright
10 notice and this permission notice appear in supporting
11 documentation, and that the name of Silicon Graphics not be
12 used in advertising or publicity pertaining to distribution
13 of the software without specific prior written permission.
14 Silicon Graphics makes no representation about the suitability
15 of this software for any purpose. It is provided "as is"
16 without any express or implied warranty.
18 SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
19 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
20 AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
21 GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
22 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
23 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
24 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
25 THE USE OR PERFORMANCE OF THIS SOFTWARE.
27 ********************************************************/
28 /* $XFree86: xc/include/extensions/XKBsrv.h,v 3.22 2002/11/20 04:49:01 dawes Exp $ */
34 #define XkbAllocClientMap SrvXkbAllocClientMap
35 #define XkbAllocServerMap SrvXkbAllocServerMap
36 #define XkbChangeTypesOfKey SrvXkbChangeTypesOfKey
37 #define XkbAddKeyType SrvXkbAddKeyType
38 #define XkbCopyKeyType SrvXkbCopyKeyType
39 #define XkbCopyKeyTypes SrvXkbCopyKeyTypes
40 #define XkbFreeClientMap SrvXkbFreeClientMap
41 #define XkbFreeServerMap SrvXkbFreeServerMap
42 #define XkbInitCanonicalKeyTypes SrvXkbInitCanonicalKeyTypes
43 #define XkbKeyTypesForCoreSymbols SrvXkbKeyTypesForCoreSymbols
44 #define XkbApplyCompatMapToKey SrvXkbApplyCompatMapToKey
45 #define XkbUpdateMapFromCore SrvXkbUpdateMapFromCore
46 #define XkbResizeKeyActions SrvXkbResizeKeyActions
47 #define XkbResizeKeySyms SrvXkbResizeKeySyms
48 #define XkbResizeKeyType SrvXkbResizeKeyType
49 #define XkbAllocCompatMap SrvXkbAllocCompatMap
50 #define XkbAllocControls SrvXkbAllocControls
51 #define XkbAllocIndicatorMaps SrvXkbAllocIndicatorMaps
52 #define XkbAllocKeyboard SrvXkbAllocKeyboard
53 #define XkbAllocNames SrvXkbAllocNames
54 #define XkbFreeCompatMap SrvXkbFreeCompatMap
55 #define XkbFreeControls SrvXkbFreeControls
56 #define XkbFreeIndicatorMaps SrvXkbFreeIndicatorMaps
57 #define XkbFreeKeyboard SrvXkbFreeKeyboard
58 #define XkbFreeNames SrvXkbFreeNames
59 #define XkbAddDeviceLedInfo SrvXkbAddDeviceLedInfo
60 #define XkbAllocDeviceInfo SrvXkbAllocDeviceInfo
61 #define XkbFreeDeviceInfo SrvXkbFreeDeviceInfo
62 #define XkbResizeDeviceButtonActions SrvXkbResizeDeviceButtonActions
63 #define XkbLatchModifiers SrvXkbLatchModifiers
64 #define XkbLatchGroup SrvXkbLatchGroup
65 #define XkbVirtualModsToReal SrvXkbVirtualModsToReal
66 #define XkbChangeKeycodeRange SrvXkbChangeKeycodeRange
67 #define XkbApplyVirtualModChanges SrvXkbApplyVirtualModChanges
68 #define XkbUpdateActionVirtualMods SrvXkbUpdateActionVirtualMods
69 #define XkbUpdateKeyTypeVirtualMods SrvXkbUpdateKeyTypeVirtualMods
72 #include <X11/extensions/XKBstr.h>
73 #include <X11/extensions/XKBproto.h>
76 typedef struct _XkbInterest {
80 struct _XkbInterest * next;
81 CARD16 extDevNotifyMask;
82 CARD16 stateNotifyMask;
83 CARD16 namesNotifyMask;
84 CARD32 ctrlsNotifyMask;
85 CARD8 compatNotifyMask;
87 BOOL actionMessageMask;
88 CARD16 accessXNotifyMask;
89 CARD32 iStateNotifyMask;
90 CARD32 iMapNotifyMask;
91 CARD16 altSymsNotifyMask;
93 CARD32 autoCtrlValues;
94 } XkbInterestRec,*XkbInterestPtr;
96 typedef struct _XkbRadioGroup {
101 CARD8 members[XkbRGMaxMembers];
102 } XkbRadioGroupRec, *XkbRadioGroupPtr;
104 typedef struct _XkbEventCause {
110 } XkbEventCauseRec,*XkbEventCausePtr;
111 #define XkbSetCauseKey(c,k,e) { (c)->kc= (k),(c)->event= (e),\
112 (c)->mjr= (c)->mnr= 0; \
114 #define XkbSetCauseReq(c,j,n,cl) { (c)->kc= (c)->event= 0,\
115 (c)->mjr= (j),(c)->mnr= (n);\
117 #define XkbSetCauseCoreReq(c,e,cl) XkbSetCauseReq(c,e,0,cl)
118 #define XkbSetCauseXkbReq(c,e,cl) XkbSetCauseReq(c,XkbReqCode,e,cl)
119 #define XkbSetCauseUnknown(c) XkbSetCauseKey(c,0,0)
122 #define _KRG_WARN_TIMER 1
124 #define _SK_TIMEOUT_TIMER 3
125 #define _ALL_TIMEOUT_TIMER 4
128 #define _BEEP_FEATURE_ON 1
129 #define _BEEP_FEATURE_OFF 2
130 #define _BEEP_FEATURE_CHANGE 3
131 #define _BEEP_SLOW_WARN 4
132 #define _BEEP_SLOW_PRESS 5
133 #define _BEEP_SLOW_ACCEPT 6
134 #define _BEEP_SLOW_REJECT 7
135 #define _BEEP_SLOW_RELEASE 8
136 #define _BEEP_STICKY_LATCH 9
137 #define _BEEP_STICKY_LOCK 10
138 #define _BEEP_STICKY_UNLOCK 11
139 #define _BEEP_LED_ON 12
140 #define _BEEP_LED_OFF 13
141 #define _BEEP_LED_CHANGE 14
142 #define _BEEP_BOUNCE_REJECT 15
144 typedef struct _XkbSrvInfo {
145 XkbStateRec prev_state;
150 KbdCtrlProcPtr kbdProc;
152 XkbRadioGroupPtr radioGroups;
160 double mouseKeysCurve;
161 double mouseKeysCurveFactor;
164 CARD8 mouseKeysFlags;
166 CARD8 mouseKeysCounter;
168 CARD8 lockedPtrButtons;
174 CARD8 krgTimerActive;
179 CARD32 lastPtrEventTime;
180 CARD32 lastShiftEventTime;
181 OsTimerPtr beepTimer;
182 OsTimerPtr mouseKeyTimer;
183 OsTimerPtr slowKeysTimer;
184 OsTimerPtr bounceKeysTimer;
185 OsTimerPtr repeatKeyTimer;
187 } XkbSrvInfoRec, *XkbSrvInfoPtr;
189 #define XkbSLI_IsDefault (1L<<0)
190 #define XkbSLI_HasOwnState (1L<<1)
192 typedef struct _XkbSrvLedInfo {
201 CARD32 physIndicators;
203 CARD32 explicitState;
204 CARD32 effectiveState;
208 XkbIndicatorMapPtr maps;
214 CARD32 usesEffective;
218 CARD32 usedComponents;
219 } XkbSrvLedInfoRec, *XkbSrvLedInfoPtr;
222 * Settings for xkbClientFlags field (used by DIX)
223 * These flags _must_ not overlap with XkbPCF_*
225 #define _XkbClientInitialized (1<<15)
227 #define _XkbWantsDetectableAutoRepeat(c)\
228 ((c)->xkbClientFlags&XkbPCF_DetectableAutoRepeatMask)
231 * Settings for flags field
233 #define _XkbStateNotifyInProgress (1<<0)
237 ProcessInputProc processInputProc;
238 ProcessInputProc realInputProc;
239 DeviceUnwrapProc unwrapProc;
240 } xkbDeviceInfoRec, *xkbDeviceInfoPtr;
242 #define WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
243 device->public.processInputProc = proc; \
244 oldprocs->processInputProc = \
245 oldprocs->realInputProc = device->public.realInputProc; \
246 device->public.realInputProc = proc; \
247 oldprocs->unwrapProc = device->unwrapProc; \
248 device->unwrapProc = unwrapproc;
250 #define COND_WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
251 if (device->public.processInputProc == device->public.realInputProc)\
252 device->public.processInputProc = proc; \
253 oldprocs->processInputProc = \
254 oldprocs->realInputProc = device->public.realInputProc; \
255 device->public.realInputProc = proc; \
256 oldprocs->unwrapProc = device->unwrapProc; \
257 device->unwrapProc = unwrapproc;
259 #define UNWRAP_PROCESS_INPUT_PROC(device, oldprocs) \
260 device->public.processInputProc = oldprocs->processInputProc; \
261 device->public.realInputProc = oldprocs->realInputProc; \
262 device->unwrapProc = oldprocs->unwrapProc;
264 #define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr) (dev)->devPrivates[xkbDevicePrivateIndex].ptr)
266 /***====================================================================***/
269 /***====================================================================***/
271 #define XkbAX_KRGMask (XkbSlowKeysMask|XkbBounceKeysMask)
272 #define XkbAllFilteredEventsMask \
273 (XkbAccessXKeysMask|XkbRepeatKeysMask|XkbMouseKeysAccelMask|XkbAX_KRGMask)
275 /***====================================================================***/
277 extern int XkbReqCode;
278 extern int XkbEventBase;
279 extern int XkbKeyboardErrorCode;
280 extern int XkbDisableLockActions;
281 extern char * XkbBaseDirectory;
282 extern char * XkbBinDirectory;
283 extern char * XkbInitialMap;
284 extern int _XkbClientMajor;
285 extern int _XkbClientMinor;
286 extern unsigned int XkbXIUnsupported;
288 extern char * XkbModelUsed,*XkbLayoutUsed,*XkbVariantUsed,*XkbOptionsUsed;
289 extern Bool noXkbExtension;
290 extern Bool XkbWantRulesProp;
292 extern pointer XkbLastRepeatEvent;
294 extern CARD32 xkbDebugFlags;
295 extern CARD32 xkbDebugCtrls;
297 #define _XkbAlloc(s) xalloc((s))
298 #define _XkbCalloc(n,s) Xcalloc((n)*(s))
299 #define _XkbRealloc(o,s) Xrealloc((o),(s))
300 #define _XkbTypedAlloc(t) ((t *)xalloc(sizeof(t)))
301 #define _XkbTypedCalloc(n,t) ((t *)Xcalloc((n)*sizeof(t)))
302 #define _XkbTypedRealloc(o,n,t) \
303 ((o)?(t *)Xrealloc((o),(n)*sizeof(t)):_XkbTypedCalloc(n,t))
304 #define _XkbClearElems(a,f,l,t) bzero(&(a)[f],((l)-(f)+1)*sizeof(t))
305 #define _XkbFree(p) Xfree(p)
307 #define _XkbLibError(c,l,d) \
308 { _XkbErrCode= (c); _XkbErrLocation= (l); _XkbErrData= (d); }
309 #define _XkbErrCode2(a,b) ((XID)((((unsigned int)(a))<<24)|((b)&0xffffff)))
310 #define _XkbErrCode3(a,b,c) _XkbErrCode2(a,(((unsigned int)(b))<<16)|(c))
311 #define _XkbErrCode4(a,b,c,d) _XkbErrCode3(a,b,((((unsigned int)(c))<<8)|(d)))
313 extern int DeviceKeyPress,DeviceKeyRelease;
314 extern int DeviceButtonPress,DeviceButtonRelease;
317 #define _XkbIsPressEvent(t) (((t)==KeyPress)||((t)==DeviceKeyPress))
318 #define _XkbIsReleaseEvent(t) (((t)==KeyRelease)||((t)==DeviceKeyRelease))
320 #define _XkbIsPressEvent(t) ((t)==KeyPress)
321 #define _XkbIsReleaseEvent(t) ((t)==KeyRelease)
324 #define _XkbCoreKeycodeInRange(c,k) (((k)>=(c)->curKeySyms.minKeyCode)&&\
325 ((k)<=(c)->curKeySyms.maxKeyCode))
326 #define _XkbCoreNumKeys(c) ((c)->curKeySyms.maxKeyCode-\
327 (c)->curKeySyms.minKeyCode+1)
329 #define XConvertCase(s,l,u) XkbConvertCase(s,l,u)
331 #define IsKeypadKey(s) XkbKSIsKeypad(s)
334 typedef pointer XPointer;
335 typedef struct _XDisplay Display;
344 #define PATH_MAX MAXPATHLEN
346 #define PATH_MAX 1024
352 extern void XkbUseMsg(
356 extern int XkbProcessArguments(
362 extern void XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc);
364 extern void XkbFreeCompatMap(
365 XkbDescPtr /* xkb */,
366 unsigned int /* which */,
370 extern void XkbFreeNames(
371 XkbDescPtr /* xkb */,
372 unsigned int /* which */,
376 extern DeviceIntPtr _XkbLookupAnyDevice(
381 extern DeviceIntPtr _XkbLookupKeyboard(
386 extern DeviceIntPtr _XkbLookupBellDevice(
391 extern DeviceIntPtr _XkbLookupLedDevice(
396 extern DeviceIntPtr _XkbLookupButtonDevice(
401 extern XkbDescPtr XkbAllocKeyboard(
405 extern Status XkbAllocClientMap(
406 XkbDescPtr /* xkb */,
407 unsigned int /* which */,
408 unsigned int /* nTypes */
411 extern Status XkbAllocServerMap(
412 XkbDescPtr /* xkb */,
413 unsigned int /* which */,
414 unsigned int /* nNewActions */
417 extern void XkbFreeClientMap(
418 XkbDescPtr /* xkb */,
419 unsigned int /* what */,
423 extern void XkbFreeServerMap(
424 XkbDescPtr /* xkb */,
425 unsigned int /* what */,
429 extern Status XkbAllocIndicatorMaps(
433 extern Status XkbAllocCompatMap(
434 XkbDescPtr /* xkb */,
435 unsigned int /* which */,
436 unsigned int /* nInterpret */
439 extern Status XkbAllocNames(
440 XkbDescPtr /* xkb */,
441 unsigned int /* which */,
443 int /* nTotalAliases */
446 extern Status XkbAllocControls(
447 XkbDescPtr /* xkb */,
448 unsigned int /* which*/
451 extern Status XkbCopyKeyType(
452 XkbKeyTypePtr /* from */,
453 XkbKeyTypePtr /* into */
456 extern Status XkbCopyKeyTypes(
457 XkbKeyTypePtr /* from */,
458 XkbKeyTypePtr /* into */,
462 extern Status XkbResizeKeyType(
463 XkbDescPtr /* xkb */,
466 Bool /* want_preserve */,
467 int /* new_num_lvls */
470 extern void XkbFreeKeyboard(
471 XkbDescPtr /* xkb */,
472 unsigned int /* which */,
476 extern void XkbSetActionKeyMods(
477 XkbDescPtr /* xkb */,
478 XkbAction * /* act */,
479 unsigned int /* mods */
482 extern Bool XkbCheckActionVMods(
483 XkbDescPtr /* xkb */,
484 XkbAction * /* act */,
485 unsigned int /* changed */
488 extern Bool XkbApplyVModChanges(
489 XkbSrvInfoPtr /* xkbi */,
490 unsigned int /* changed */,
491 XkbChangesPtr /* pChanges */,
492 unsigned int * /* needChecksRtrn */,
493 XkbEventCausePtr /* cause */
496 extern void XkbApplyVModChangesToAllDevices(
497 DeviceIntPtr /* dev */,
498 XkbDescPtr /* xkb */,
499 unsigned int /* changed */,
500 XkbEventCausePtr /* cause */
503 extern unsigned int XkbMaskForVMask(
504 XkbDescPtr /* xkb */,
505 unsigned int /* vmask */
508 extern Bool XkbVirtualModsToReal(
509 XkbDescPtr /* xkb */,
510 unsigned int /* virtua_mask */,
511 unsigned int * /* mask_rtrn */
514 extern unsigned int XkbAdjustGroup(
516 XkbControlsPtr /* ctrls */
519 extern KeySym *XkbResizeKeySyms(
520 XkbDescPtr /* xkb */,
525 extern XkbAction *XkbResizeKeyActions(
526 XkbDescPtr /* xkb */,
531 extern void XkbUpdateKeyTypesFromCore(
532 DeviceIntPtr /* pXDev */,
535 XkbChangesPtr /* pChanges */
538 extern void XkbUpdateDescActions(
539 XkbDescPtr /* xkb */,
542 XkbChangesPtr /* changes */
545 extern void XkbUpdateActions(
546 DeviceIntPtr /* pXDev */,
549 XkbChangesPtr /* pChanges */,
550 unsigned int * /* needChecksRtrn */,
551 XkbEventCausePtr /* cause */
554 extern void XkbUpdateCoreDescription(
555 DeviceIntPtr /* keybd */,
559 extern void XkbApplyMappingChange(
560 DeviceIntPtr /* pXDev */,
562 KeyCode /* firstKey */,
564 ClientPtr /* client */
567 extern void XkbSetIndicators(
568 DeviceIntPtr /* pXDev */,
571 XkbEventCausePtr /* cause */
574 extern void XkbUpdateIndicators(
575 DeviceIntPtr /* keybd */,
576 CARD32 /* changed */,
577 Bool /* check_edevs */,
578 XkbChangesPtr /* pChanges */,
579 XkbEventCausePtr /* cause */
582 extern XkbSrvLedInfoPtr XkbAllocSrvLedInfo(
583 DeviceIntPtr /* dev */,
584 KbdFeedbackPtr /* kf */,
585 LedFeedbackPtr /* lf */,
586 unsigned int /* needed_parts */
589 extern XkbSrvLedInfoPtr XkbFindSrvLedInfo(
590 DeviceIntPtr /* dev */,
591 unsigned int /* class */,
592 unsigned int /* id */,
593 unsigned int /* needed_parts */
596 extern void XkbApplyLedNameChanges(
597 DeviceIntPtr /* dev */,
598 XkbSrvLedInfoPtr /* sli */,
599 unsigned int /* changed_names */,
600 xkbExtensionDeviceNotify * /* ed */,
601 XkbChangesPtr /* changes */,
602 XkbEventCausePtr /* cause */
605 extern void XkbApplyLedMapChanges(
606 DeviceIntPtr /* dev */,
607 XkbSrvLedInfoPtr /* sli */,
608 unsigned int /* changed_maps */,
609 xkbExtensionDeviceNotify * /* ed */,
610 XkbChangesPtr /* changes */,
611 XkbEventCausePtr /* cause */
614 extern void XkbApplyLedStateChanges(
615 DeviceIntPtr /* dev */,
616 XkbSrvLedInfoPtr /* sli */,
617 unsigned int /* changed_leds */,
618 xkbExtensionDeviceNotify * /* ed */,
619 XkbChangesPtr /* changes */,
620 XkbEventCausePtr /* cause */
623 extern void XkbUpdateLedAutoState(
624 DeviceIntPtr /* dev */,
625 XkbSrvLedInfoPtr /* sli */,
626 unsigned int /* maps_to_check */,
627 xkbExtensionDeviceNotify * /* ed */,
628 XkbChangesPtr /* changes */,
629 XkbEventCausePtr /* cause */
632 extern void XkbFlushLedEvents(
633 DeviceIntPtr /* dev */,
634 DeviceIntPtr /* kbd */,
635 XkbSrvLedInfoPtr /* sli */,
636 xkbExtensionDeviceNotify * /* ed */,
637 XkbChangesPtr /* changes */,
638 XkbEventCausePtr /* cause */
641 extern void XkbUpdateAllDeviceIndicators(
642 XkbChangesPtr /* changes */,
643 XkbEventCausePtr /* cause */
646 extern unsigned int XkbIndicatorsToUpdate(
647 DeviceIntPtr /* dev */,
648 unsigned long /* state_changes */,
649 Bool /* enabled_ctrl_changes */
652 extern void XkbComputeDerivedState(
653 XkbSrvInfoPtr /* xkbi */
656 extern void XkbCheckSecondaryEffects(
657 XkbSrvInfoPtr /* xkbi */,
658 unsigned int /* which */,
659 XkbChangesPtr /* changes */,
660 XkbEventCausePtr /* cause */
663 extern void XkbCheckIndicatorMaps(
664 DeviceIntPtr /* dev */,
665 XkbSrvLedInfoPtr /* sli */,
666 unsigned int /* which */
669 extern unsigned int XkbStateChangedFlags(
670 XkbStatePtr /* old */,
671 XkbStatePtr /* new */
674 extern void XkbSendStateNotify(
675 DeviceIntPtr /* kbd */,
676 xkbStateNotify * /* pSN */
679 extern void XkbSendMapNotify(
680 DeviceIntPtr /* kbd */,
681 xkbMapNotify * /* ev */
684 extern int XkbComputeControlsNotify(
685 DeviceIntPtr /* kbd */,
686 XkbControlsPtr /* old */,
687 XkbControlsPtr /* new */,
688 xkbControlsNotify * /* pCN */,
689 Bool /* forceCtrlProc */
692 extern void XkbSendControlsNotify(
693 DeviceIntPtr /* kbd */,
694 xkbControlsNotify * /* ev */
697 extern void XkbSendCompatMapNotify(
698 DeviceIntPtr /* kbd */,
699 xkbCompatMapNotify * /* ev */
702 extern void XkbSendIndicatorNotify(
703 DeviceIntPtr /* kbd */,
705 xkbIndicatorNotify * /* ev */
708 extern void XkbHandleBell(
710 BOOL /* eventOnly */,
711 DeviceIntPtr /* kbd */,
716 WindowPtr /* pWin */,
717 ClientPtr /* pClient */
720 extern void XkbSendAccessXNotify(
721 DeviceIntPtr /* kbd */,
722 xkbAccessXNotify * /* pEv */
725 extern void XkbSendNamesNotify(
726 DeviceIntPtr /* kbd */,
727 xkbNamesNotify * /* ev */
730 extern void XkbSendCompatNotify(
731 DeviceIntPtr /* kbd */,
732 xkbCompatMapNotify * /* ev */
735 extern void XkbSendActionMessage(
736 DeviceIntPtr /* kbd */,
737 xkbActionMessage * /* ev */
740 extern void XkbSendExtensionDeviceNotify(
741 DeviceIntPtr /* kbd */,
742 ClientPtr /* client */,
743 xkbExtensionDeviceNotify * /* ev */
746 extern void XkbSendNotification(
747 DeviceIntPtr /* kbd */,
748 XkbChangesPtr /* pChanges */,
749 XkbEventCausePtr /* cause */
752 extern void XkbProcessKeyboardEvent(
753 struct _xEvent * /* xE */,
754 DeviceIntPtr /* keybd */,
758 extern void XkbProcessOtherEvent(
759 struct _xEvent * /* xE */,
760 DeviceIntPtr /* keybd */,
764 extern void XkbHandleActions(
765 DeviceIntPtr /* dev */,
766 DeviceIntPtr /* kbd */,
767 struct _xEvent * /* xE */,
771 extern Bool XkbEnableDisableControls(
772 XkbSrvInfoPtr /* xkbi */,
773 unsigned long /* change */,
774 unsigned long /* newValues */,
775 XkbChangesPtr /* changes */,
776 XkbEventCausePtr /* cause */
779 extern void AccessXInit(
780 DeviceIntPtr /* dev */
783 extern Bool AccessXFilterPressEvent(
784 register struct _xEvent * /* xE */,
785 register DeviceIntPtr /* keybd */,
789 extern Bool AccessXFilterReleaseEvent(
790 register struct _xEvent * /* xE */,
791 register DeviceIntPtr /* keybd */,
795 extern void AccessXCancelRepeatKey(
796 XkbSrvInfoPtr /* xkbi */,
800 extern void AccessXComputeCurveFactor(
801 XkbSrvInfoPtr /* xkbi */,
802 XkbControlsPtr /* ctrls */
805 extern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo(
806 XkbDeviceInfoPtr /* devi */,
807 unsigned int /* ledClass */,
808 unsigned int /* ledId */
811 extern XkbDeviceInfoPtr XkbAllocDeviceInfo(
812 unsigned int /* deviceSpec */,
813 unsigned int /* nButtons */,
814 unsigned int /* szLeds */
817 extern void XkbFreeDeviceInfo(
818 XkbDeviceInfoPtr /* devi */,
819 unsigned int /* which */,
823 extern Status XkbResizeDeviceButtonActions(
824 XkbDeviceInfoPtr /* devi */,
825 unsigned int /* newTotal */
828 extern XkbInterestPtr XkbFindClientResource(
829 DevicePtr /* inDev */,
830 ClientPtr /* client */
833 extern XkbInterestPtr XkbAddClientResource(
834 DevicePtr /* inDev */,
835 ClientPtr /* client */,
839 extern int XkbRemoveClient(
840 DevicePtr /* inDev */,
841 ClientPtr /* client */
844 extern int XkbRemoveResourceClient(
845 DevicePtr /* inDev */,
849 extern int XkbDDXInitDevice(
850 DeviceIntPtr /* dev */
853 extern int XkbDDXAccessXBeep(
854 DeviceIntPtr /* dev */,
855 unsigned int /* what */,
856 unsigned int /* which */
859 extern void XkbDDXKeyClick(
860 DeviceIntPtr /* dev */,
865 extern int XkbDDXUsesSoftRepeat(
866 DeviceIntPtr /* dev */
869 extern void XkbDDXKeybdCtrlProc(
870 DeviceIntPtr /* dev */,
871 KeybdCtrl * /* ctrl */
874 extern void XkbDDXChangeControls(
875 DeviceIntPtr /* dev */,
876 XkbControlsPtr /* old */,
877 XkbControlsPtr /* new */
880 extern void XkbDDXUpdateIndicators(
881 DeviceIntPtr /* keybd */,
882 CARD32 /* newState */
885 extern void XkbDDXUpdateDeviceIndicators(
886 DeviceIntPtr /* dev */,
887 XkbSrvLedInfoPtr /* sli */,
888 CARD32 /* newState */
891 extern void XkbDDXFakePointerButton(
896 extern void XkbDDXFakePointerMotion(
897 unsigned int /* flags */,
902 extern void XkbDDXFakeDeviceButton(
903 DeviceIntPtr /* dev */,
908 extern int XkbDDXTerminateServer(
909 DeviceIntPtr /* dev */,
911 XkbAction * /* act */
914 extern int XkbDDXSwitchScreen(
915 DeviceIntPtr /* dev */,
917 XkbAction * /* act */
920 extern int XkbDDXPrivate(
921 DeviceIntPtr /* dev */,
923 XkbAction * /* act */
926 extern void XkbDisableComputedAutoRepeats(
927 DeviceIntPtr /* pXDev */,
928 unsigned int /* key */
931 extern void XkbSetRepeatKeys(
932 DeviceIntPtr /* pXDev */,
937 extern int XkbLatchModifiers(
938 DeviceIntPtr /* pXDev */,
943 extern int XkbLatchGroup(
944 DeviceIntPtr /* pXDev */,
948 extern void XkbClearAllLatchesAndLocks(
949 DeviceIntPtr /* dev */,
950 XkbSrvInfoPtr /* xkbi */,
952 XkbEventCausePtr /* cause */
955 extern void XkbSetRulesDflts(
956 char * /* rulesFile */,
959 char * /* variant */,
963 extern void XkbInitDevice(
964 DeviceIntPtr /* pXDev */
967 extern Bool XkbInitKeyboardDeviceStruct(
968 DeviceIntPtr /* pXDev */,
969 XkbComponentNamesPtr /* pNames */,
970 KeySymsPtr /* pSyms */,
972 BellProcPtr /* bellProc */,
973 KbdCtrlProcPtr /* ctrlProc */
976 extern int SProcXkbDispatch(
977 ClientPtr /* client */
980 extern XkbGeometryPtr XkbLookupNamedGeometry(
981 DeviceIntPtr /* dev */,
983 Bool * /* shouldFree */
986 extern char * _XkbDupString(
990 extern void XkbConvertCase(
992 KeySym * /* lower */,
996 extern Status XkbChangeKeycodeRange(
997 XkbDescPtr /* xkb */,
1000 XkbChangesPtr /* changes */
1003 extern int XkbFinishDeviceInit(
1004 DeviceIntPtr /* pXDev */
1007 extern void XkbFreeSrvLedInfo(
1008 XkbSrvLedInfoPtr /* sli */
1011 extern void XkbFreeInfo(
1012 XkbSrvInfoPtr /* xkbi */
1015 extern Status XkbChangeTypesOfKey(
1016 XkbDescPtr /* xkb */,
1019 unsigned int /* groups */,
1020 int * /* newTypesIn */,
1021 XkbMapChangesPtr /* changes */
1024 extern XkbKeyTypePtr XkbAddKeyType(
1025 XkbDescPtr /* xkb */,
1027 int /* map_count */,
1028 Bool /* want_preserve */,
1032 extern Status XkbInitCanonicalKeyTypes(
1033 XkbDescPtr /* xkb */,
1034 unsigned int /* which */,
1035 int /* keypadVMod */
1038 extern int XkbKeyTypesForCoreSymbols(
1039 XkbDescPtr /* xkb */,
1040 int /* map_width */,
1041 KeySym * /* core_syms */,
1042 unsigned int /* protected */,
1043 int * /* types_inout */,
1044 KeySym * /* xkb_syms_rtrn */
1047 extern Bool XkbApplyCompatMapToKey(
1048 XkbDescPtr /* xkb */,
1050 XkbChangesPtr /* changes */
1053 extern Bool XkbUpdateMapFromCore(
1054 XkbDescPtr /* xkb */,
1055 KeyCode /* first_key */,
1057 int /* map_width */,
1058 KeySym * /* core_keysyms */,
1059 XkbChangesPtr /* changes */
1062 extern void XkbFreeControls(
1063 XkbDescPtr /* xkb */,
1064 unsigned int /* which */,
1068 extern void XkbFreeIndicatorMaps(
1069 XkbDescPtr /* xkb */
1072 extern Bool XkbApplyVirtualModChanges(
1073 XkbDescPtr /* xkb */,
1074 unsigned int /* changed */,
1075 XkbChangesPtr /* changes */
1078 extern Bool XkbUpdateActionVirtualMods(
1079 XkbDescPtr /* xkb */,
1080 XkbAction * /* act */,
1081 unsigned int /* changed */
1084 extern void XkbUpdateKeyTypeVirtualMods(
1085 XkbDescPtr /* xkb */,
1086 XkbKeyTypePtr /* type */,
1087 unsigned int /* changed */,
1088 XkbChangesPtr /* changes */
1091 extern void XkbSendNewKeyboardNotify(
1092 DeviceIntPtr /* kbd */,
1093 xkbNewKeyboardNotify * /* pNKN */
1096 #ifdef XKBSRV_NEED_FILE_FUNCS
1098 #include <X11/extensions/XKMformat.h>
1099 #include <X11/extensions/XKBfile.h>
1100 #include <X11/extensions/XKBrules.h>
1102 #define _XkbListKeymaps 0
1103 #define _XkbListKeycodes 1
1104 #define _XkbListTypes 2
1105 #define _XkbListCompat 3
1106 #define _XkbListSymbols 4
1107 #define _XkbListGeometry 5
1108 #define _XkbListNumComponents 6
1110 typedef struct _XkbSrvListInfo {
1118 char * pattern[_XkbListNumComponents];
1119 int nFound[_XkbListNumComponents];
1120 } XkbSrvListInfoRec,*XkbSrvListInfoPtr;
1124 XkbRF_VarDefsPtr /* defs */
1127 extern void XkbSetRulesUsed(
1128 XkbRF_VarDefsPtr /* defs */
1132 extern Status XkbDDXList(
1133 DeviceIntPtr /* dev */,
1134 XkbSrvListInfoPtr /* listing */,
1135 ClientPtr /* client */
1138 extern unsigned int XkbDDXLoadKeymapByNames(
1139 DeviceIntPtr /* keybd */,
1140 XkbComponentNamesPtr /* names */,
1141 unsigned int /* want */,
1142 unsigned int /* need */,
1143 XkbFileInfoPtr /* finfoRtrn */,
1144 char * /* keymapNameRtrn */,
1145 int /* keymapNameRtrnLen */
1148 extern Bool XkbDDXNamesFromRules(
1149 DeviceIntPtr /* keybd */,
1151 XkbRF_VarDefsPtr /* defs */,
1152 XkbComponentNamesPtr /* names */
1155 extern FILE *XkbDDXOpenConfigFile(
1156 char * /* mapName */,
1157 char * /* fileNameRtrn */,
1158 int /* fileNameRtrnLen */
1161 extern Bool XkbDDXApplyConfig(
1162 XPointer /* cfg_in */,
1163 XkbSrvInfoPtr /* xkbi */
1166 extern XPointer XkbDDXPreloadConfig(
1167 char ** /* rulesFileRtrn */,
1168 XkbRF_VarDefsPtr /* defs */,
1169 XkbComponentNamesPtr /* names */,
1170 DeviceIntPtr /* dev */
1173 extern int _XkbStrCaseCmp(
1178 #endif /* XKBSRV_NEED_FILE_FUNCS */
1183 #define XkbAtomGetString(d,s) NameForAtom(s)
1185 #endif /* _XKBSRV_H_ */