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 ********************************************************/
30 #define XkbAllocClientMap SrvXkbAllocClientMap
31 #define XkbAllocServerMap SrvXkbAllocServerMap
32 #define XkbChangeTypesOfKey SrvXkbChangeTypesOfKey
33 #define XkbCopyKeyTypes SrvXkbCopyKeyTypes
34 #define XkbFreeClientMap SrvXkbFreeClientMap
35 #define XkbFreeServerMap SrvXkbFreeServerMap
36 #define XkbKeyTypesForCoreSymbols SrvXkbKeyTypesForCoreSymbols
37 #define XkbApplyCompatMapToKey SrvXkbApplyCompatMapToKey
38 #define XkbResizeKeyActions SrvXkbResizeKeyActions
39 #define XkbResizeKeySyms SrvXkbResizeKeySyms
40 #define XkbResizeKeyType SrvXkbResizeKeyType
41 #define XkbAllocCompatMap SrvXkbAllocCompatMap
42 #define XkbAllocControls SrvXkbAllocControls
43 #define XkbAllocIndicatorMaps SrvXkbAllocIndicatorMaps
44 #define XkbAllocKeyboard SrvXkbAllocKeyboard
45 #define XkbAllocNames SrvXkbAllocNames
46 #define XkbFreeCompatMap SrvXkbFreeCompatMap
47 #define XkbFreeKeyboard SrvXkbFreeKeyboard
48 #define XkbFreeNames SrvXkbFreeNames
49 #define XkbLatchModifiers SrvXkbLatchModifiers
50 #define XkbLatchGroup SrvXkbLatchGroup
51 #define XkbVirtualModsToReal SrvXkbVirtualModsToReal
52 #define XkbChangeKeycodeRange SrvXkbChangeKeycodeRange
53 #define XkbApplyVirtualModChanges SrvXkbApplyVirtualModChanges
55 #include <X11/extensions/XKBproto.h>
61 typedef struct _XkbInterest {
65 struct _XkbInterest *next;
66 CARD16 extDevNotifyMask;
67 CARD16 stateNotifyMask;
68 CARD16 namesNotifyMask;
69 CARD32 ctrlsNotifyMask;
70 CARD8 compatNotifyMask;
72 BOOL actionMessageMask;
73 CARD16 accessXNotifyMask;
74 CARD32 iStateNotifyMask;
75 CARD32 iMapNotifyMask;
76 CARD16 altSymsNotifyMask;
78 CARD32 autoCtrlValues;
79 } XkbInterestRec, *XkbInterestPtr;
81 typedef struct _XkbRadioGroup {
86 CARD8 members[XkbRGMaxMembers];
87 } XkbRadioGroupRec, *XkbRadioGroupPtr;
89 typedef struct _XkbEventCause {
95 } XkbEventCauseRec, *XkbEventCausePtr;
97 #define XkbSetCauseKey(c,k,e) { (c)->kc= (k),(c)->event= (e),\
98 (c)->mjr= (c)->mnr= 0; \
100 #define XkbSetCauseReq(c,j,n,cl) { (c)->kc= (c)->event= 0,\
101 (c)->mjr= (j),(c)->mnr= (n);\
103 #define XkbSetCauseCoreReq(c,e,cl) XkbSetCauseReq(c,e,0,cl)
104 #define XkbSetCauseXkbReq(c,e,cl) XkbSetCauseReq(c,XkbReqCode,e,cl)
105 #define XkbSetCauseUnknown(c) XkbSetCauseKey(c,0,0)
108 #define _KRG_WARN_TIMER 1
110 #define _SK_TIMEOUT_TIMER 3
111 #define _ALL_TIMEOUT_TIMER 4
114 #define _BEEP_FEATURE_ON 1
115 #define _BEEP_FEATURE_OFF 2
116 #define _BEEP_FEATURE_CHANGE 3
117 #define _BEEP_SLOW_WARN 4
118 #define _BEEP_SLOW_PRESS 5
119 #define _BEEP_SLOW_ACCEPT 6
120 #define _BEEP_SLOW_REJECT 7
121 #define _BEEP_SLOW_RELEASE 8
122 #define _BEEP_STICKY_LATCH 9
123 #define _BEEP_STICKY_LOCK 10
124 #define _BEEP_STICKY_UNLOCK 11
125 #define _BEEP_LED_ON 12
126 #define _BEEP_LED_OFF 13
127 #define _BEEP_LED_CHANGE 14
128 #define _BEEP_BOUNCE_REJECT 15
130 typedef struct _XkbFilter {
137 int (*filter) (struct _XkbSrvInfo * /* xkbi */ ,
138 struct _XkbFilter * /* filter */ ,
139 unsigned /* keycode */ ,
140 XkbAction * /* action */
142 struct _XkbFilter *next;
143 } XkbFilterRec, *XkbFilterPtr;
145 typedef struct _XkbSrvInfo {
146 XkbStateRec prev_state;
151 KbdCtrlProcPtr kbdProc;
153 XkbRadioGroupPtr radioGroups;
161 double mouseKeysCurve;
162 double mouseKeysCurveFactor;
165 CARD8 mouseKeysFlags;
167 CARD8 mouseKeysCounter;
169 CARD8 lockedPtrButtons;
175 CARD8 krgTimerActive;
180 CARD32 lastPtrEventTime;
181 CARD32 lastShiftEventTime;
182 OsTimerPtr beepTimer;
183 OsTimerPtr mouseKeyTimer;
184 OsTimerPtr slowKeysTimer;
185 OsTimerPtr bounceKeysTimer;
186 OsTimerPtr repeatKeyTimer;
190 XkbFilterPtr filters;
191 } XkbSrvInfoRec, *XkbSrvInfoPtr;
193 #define XkbSLI_IsDefault (1L<<0)
194 #define XkbSLI_HasOwnState (1L<<1)
196 typedef struct _XkbSrvLedInfo {
205 CARD32 physIndicators;
207 CARD32 explicitState;
208 CARD32 effectiveState;
212 XkbIndicatorMapPtr maps;
218 CARD32 usesEffective;
222 CARD32 usedComponents;
223 } XkbSrvLedInfoRec, *XkbSrvLedInfoPtr;
226 * Settings for xkbClientFlags field (used by DIX)
227 * These flags _must_ not overlap with XkbPCF_*
229 #define _XkbClientInitialized (1<<15)
231 #define _XkbWantsDetectableAutoRepeat(c)\
232 ((c)->xkbClientFlags&XkbPCF_DetectableAutoRepeatMask)
235 * Settings for flags field
237 #define _XkbStateNotifyInProgress (1<<0)
240 ProcessInputProc processInputProc;
241 /* If processInputProc is set to something different than realInputProc,
242 * UNWRAP and COND_WRAP will not touch processInputProc and update only
243 * realInputProc. This ensures that
244 * processInputProc == (frozen ? EnqueueEvent : realInputProc)
246 * WRAP_PROCESS_INPUT_PROC should only be called during initialization,
247 * since it may destroy this invariant.
249 ProcessInputProc realInputProc;
250 DeviceUnwrapProc unwrapProc;
251 } xkbDeviceInfoRec, *xkbDeviceInfoPtr;
253 #define WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
254 device->public.processInputProc = proc; \
255 oldprocs->processInputProc = \
256 oldprocs->realInputProc = device->public.realInputProc; \
257 device->public.realInputProc = proc; \
258 oldprocs->unwrapProc = device->unwrapProc; \
259 device->unwrapProc = unwrapproc;
261 #define COND_WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
262 if (device->public.processInputProc == device->public.realInputProc)\
263 device->public.processInputProc = proc; \
264 oldprocs->processInputProc = \
265 oldprocs->realInputProc = device->public.realInputProc; \
266 device->public.realInputProc = proc; \
267 oldprocs->unwrapProc = device->unwrapProc; \
268 device->unwrapProc = unwrapproc;
270 #define UNWRAP_PROCESS_INPUT_PROC(device, oldprocs, backupproc) \
271 backupproc = device->public.realInputProc; \
272 if (device->public.processInputProc == device->public.realInputProc)\
273 device->public.processInputProc = oldprocs->realInputProc; \
274 device->public.realInputProc = oldprocs->realInputProc; \
275 device->unwrapProc = oldprocs->unwrapProc;
277 extern _X_EXPORT DevPrivateKeyRec xkbDevicePrivateKeyRec;
279 #define xkbDevicePrivateKey (&xkbDevicePrivateKeyRec)
281 #define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr)dixLookupPrivate(&(dev)->devPrivates, xkbDevicePrivateKey))
283 extern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, pointer);
285 /***====================================================================***/
287 /***====================================================================***/
289 #define XkbAX_KRGMask (XkbSlowKeysMask|XkbBounceKeysMask)
290 #define XkbAllFilteredEventsMask \
291 (XkbAccessXKeysMask|XkbRepeatKeysMask|XkbMouseKeysAccelMask|XkbAX_KRGMask)
293 /***====================================================================***/
295 extern _X_EXPORT int XkbReqCode;
296 extern _X_EXPORT int XkbEventBase;
297 extern _X_EXPORT int XkbKeyboardErrorCode;
298 extern _X_EXPORT const char *XkbBaseDirectory;
299 extern _X_EXPORT const char *XkbBinDirectory;
301 extern _X_EXPORT CARD32 xkbDebugFlags;
303 #define _XkbLibError(c,l,d) /* Epoch fail */
305 /* "a" is a "unique" numeric identifier that just defines which error
306 * code statement it is. _XkbErrCode2(4, foo) means "this is the 4th error
307 * statement in this function". lovely.
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)))
315 extern _X_EXPORT void XkbUseMsg(void
318 extern _X_EXPORT int XkbProcessArguments(int /* argc */ ,
323 extern _X_EXPORT Bool XkbInitPrivates(void);
325 extern _X_EXPORT void XkbSetExtension(DeviceIntPtr device,
326 ProcessInputProc proc);
328 extern _X_EXPORT void XkbFreeCompatMap(XkbDescPtr /* xkb */ ,
329 unsigned int /* which */ ,
333 extern _X_EXPORT void XkbFreeNames(XkbDescPtr /* xkb */ ,
334 unsigned int /* which */ ,
338 extern _X_EXPORT int _XkbLookupAnyDevice(DeviceIntPtr *pDev,
341 Mask access_mode, int *xkb_err);
343 extern _X_EXPORT int _XkbLookupKeyboard(DeviceIntPtr *pDev,
346 Mask access_mode, int *xkb_err);
348 extern _X_EXPORT int _XkbLookupBellDevice(DeviceIntPtr *pDev,
351 Mask access_mode, int *xkb_err);
353 extern _X_EXPORT int _XkbLookupLedDevice(DeviceIntPtr *pDev,
356 Mask access_mode, int *xkb_err);
358 extern _X_EXPORT int _XkbLookupButtonDevice(DeviceIntPtr *pDev,
361 Mask access_mode, int *xkb_err);
363 extern _X_EXPORT XkbDescPtr XkbAllocKeyboard(void
366 extern _X_EXPORT Status XkbAllocClientMap(XkbDescPtr /* xkb */ ,
367 unsigned int /* which */ ,
368 unsigned int /* nTypes */
371 extern _X_EXPORT Status XkbAllocServerMap(XkbDescPtr /* xkb */ ,
372 unsigned int /* which */ ,
373 unsigned int /* nNewActions */
376 extern _X_EXPORT void XkbFreeClientMap(XkbDescPtr /* xkb */ ,
377 unsigned int /* what */ ,
381 extern _X_EXPORT void XkbFreeServerMap(XkbDescPtr /* xkb */ ,
382 unsigned int /* what */ ,
386 extern _X_EXPORT Status XkbAllocIndicatorMaps(XkbDescPtr /* xkb */
389 extern _X_EXPORT Status XkbAllocCompatMap(XkbDescPtr /* xkb */ ,
390 unsigned int /* which */ ,
391 unsigned int /* nInterpret */
394 extern _X_EXPORT Status XkbAllocNames(XkbDescPtr /* xkb */ ,
395 unsigned int /* which */ ,
397 int /* nTotalAliases */
400 extern _X_EXPORT Status XkbAllocControls(XkbDescPtr /* xkb */ ,
401 unsigned int /* which */
404 extern _X_EXPORT Status XkbCopyKeyTypes(XkbKeyTypePtr /* from */ ,
405 XkbKeyTypePtr /* into */ ,
409 extern _X_EXPORT Status XkbResizeKeyType(XkbDescPtr /* xkb */ ,
411 int /* map_count */ ,
412 Bool /* want_preserve */ ,
413 int /* new_num_lvls */
416 extern _X_EXPORT void XkbFreeKeyboard(XkbDescPtr /* xkb */ ,
417 unsigned int /* which */ ,
421 extern _X_EXPORT void XkbFreeComponentNames(XkbComponentNamesPtr /* names */ ,
425 extern _X_EXPORT void XkbSetActionKeyMods(XkbDescPtr /* xkb */ ,
426 XkbAction * /* act */ ,
427 unsigned int /* mods */
430 extern _X_EXPORT unsigned int XkbMaskForVMask(XkbDescPtr /* xkb */ ,
431 unsigned int /* vmask */
434 extern _X_EXPORT Bool XkbVirtualModsToReal(XkbDescPtr /* xkb */ ,
435 unsigned int /* virtua_mask */ ,
436 unsigned int * /* mask_rtrn */
439 extern _X_EXPORT unsigned int XkbAdjustGroup(int /* group */ ,
440 XkbControlsPtr /* ctrls */
443 extern _X_EXPORT KeySym *XkbResizeKeySyms(XkbDescPtr /* xkb */ ,
448 extern _X_EXPORT XkbAction *XkbResizeKeyActions(XkbDescPtr /* xkb */ ,
453 extern _X_EXPORT void XkbUpdateKeyTypesFromCore(DeviceIntPtr /* pXDev */ ,
454 KeySymsPtr /* syms */ ,
455 KeyCode /* first */ ,
457 XkbChangesPtr /* pChanges */
460 extern _X_EXPORT void XkbUpdateDescActions(XkbDescPtr /* xkb */ ,
461 KeyCode /* first */ ,
463 XkbChangesPtr /* changes */
466 extern _X_EXPORT void XkbUpdateActions(DeviceIntPtr /* pXDev */ ,
467 KeyCode /* first */ ,
469 XkbChangesPtr /* pChanges */ ,
470 unsigned int * /* needChecksRtrn */ ,
471 XkbEventCausePtr /* cause */
474 extern _X_EXPORT KeySymsPtr XkbGetCoreMap(DeviceIntPtr /* keybd */
477 extern _X_EXPORT void XkbApplyMappingChange(DeviceIntPtr /* pXDev */ ,
478 KeySymsPtr /* map */ ,
479 KeyCode /* firstKey */ ,
481 CARD8 * /* modmap */ ,
482 ClientPtr /* client */
485 extern _X_EXPORT void XkbSetIndicators(DeviceIntPtr /* pXDev */ ,
486 CARD32 /* affect */ ,
487 CARD32 /* values */ ,
488 XkbEventCausePtr /* cause */
491 extern _X_EXPORT void XkbUpdateIndicators(DeviceIntPtr /* keybd */ ,
492 CARD32 /* changed */ ,
493 Bool /* check_edevs */ ,
494 XkbChangesPtr /* pChanges */ ,
495 XkbEventCausePtr /* cause */
498 extern _X_EXPORT XkbSrvLedInfoPtr XkbAllocSrvLedInfo(DeviceIntPtr /* dev */ ,
499 KbdFeedbackPtr /* kf */ ,
500 LedFeedbackPtr /* lf */ ,
501 unsigned int /* needed_parts */
504 extern _X_EXPORT XkbSrvLedInfoPtr XkbCopySrvLedInfo(DeviceIntPtr /* dev */ ,
505 XkbSrvLedInfoPtr /* src */ ,
506 KbdFeedbackPtr /* kf */ ,
507 LedFeedbackPtr /* lf */
510 extern _X_EXPORT XkbSrvLedInfoPtr XkbFindSrvLedInfo(DeviceIntPtr /* dev */ ,
511 unsigned int /* class */ ,
512 unsigned int /* id */ ,
513 unsigned int /* needed_parts */
516 extern _X_EXPORT void XkbApplyLedNameChanges(DeviceIntPtr /* dev */ ,
517 XkbSrvLedInfoPtr /* sli */ ,
518 unsigned int /* changed_names */ ,
519 xkbExtensionDeviceNotify * /* ed */
521 XkbChangesPtr /* changes */ ,
522 XkbEventCausePtr /* cause */
525 extern _X_EXPORT void XkbApplyLedMapChanges(DeviceIntPtr /* dev */ ,
526 XkbSrvLedInfoPtr /* sli */ ,
527 unsigned int /* changed_maps */ ,
528 xkbExtensionDeviceNotify * /* ed */
530 XkbChangesPtr /* changes */ ,
531 XkbEventCausePtr /* cause */
534 extern _X_EXPORT void XkbApplyLedStateChanges(DeviceIntPtr /* dev */ ,
535 XkbSrvLedInfoPtr /* sli */ ,
536 unsigned int /* changed_leds */ ,
537 xkbExtensionDeviceNotify *
539 XkbChangesPtr /* changes */ ,
540 XkbEventCausePtr /* cause */
543 extern _X_EXPORT void XkbFlushLedEvents(DeviceIntPtr /* dev */ ,
544 DeviceIntPtr /* kbd */ ,
545 XkbSrvLedInfoPtr /* sli */ ,
546 xkbExtensionDeviceNotify * /* ed */ ,
547 XkbChangesPtr /* changes */ ,
548 XkbEventCausePtr /* cause */
551 extern _X_EXPORT unsigned int XkbIndicatorsToUpdate(DeviceIntPtr /* dev */ ,
553 /* state_changes */ ,
554 Bool /* enabled_ctrl_changes */
557 extern _X_EXPORT void XkbComputeDerivedState(XkbSrvInfoPtr /* xkbi */
560 extern _X_EXPORT void XkbCheckSecondaryEffects(XkbSrvInfoPtr /* xkbi */ ,
561 unsigned int /* which */ ,
562 XkbChangesPtr /* changes */ ,
563 XkbEventCausePtr /* cause */
566 extern _X_EXPORT void XkbCheckIndicatorMaps(DeviceIntPtr /* dev */ ,
567 XkbSrvLedInfoPtr /* sli */ ,
568 unsigned int /* which */
571 extern _X_EXPORT unsigned int XkbStateChangedFlags(XkbStatePtr /* old */ ,
572 XkbStatePtr /* new */
575 extern _X_EXPORT void XkbSendStateNotify(DeviceIntPtr /* kbd */ ,
576 xkbStateNotify * /* pSN */
579 extern _X_EXPORT void XkbSendMapNotify(DeviceIntPtr /* kbd */ ,
580 xkbMapNotify * /* ev */
583 extern _X_EXPORT int XkbComputeControlsNotify(DeviceIntPtr /* kbd */ ,
584 XkbControlsPtr /* old */ ,
585 XkbControlsPtr /* new */ ,
586 xkbControlsNotify * /* pCN */ ,
587 Bool /* forceCtrlProc */
590 extern _X_EXPORT void XkbSendControlsNotify(DeviceIntPtr /* kbd */ ,
591 xkbControlsNotify * /* ev */
594 extern _X_EXPORT void XkbSendCompatMapNotify(DeviceIntPtr /* kbd */ ,
595 xkbCompatMapNotify * /* ev */
598 extern _X_EXPORT void XkbHandleBell(BOOL /* force */ ,
599 BOOL /* eventOnly */ ,
600 DeviceIntPtr /* kbd */ ,
601 CARD8 /* percent */ ,
605 WindowPtr /* pWin */ ,
606 ClientPtr /* pClient */
609 extern _X_EXPORT void XkbSendAccessXNotify(DeviceIntPtr /* kbd */ ,
610 xkbAccessXNotify * /* pEv */
613 extern _X_EXPORT void XkbSendNamesNotify(DeviceIntPtr /* kbd */ ,
614 xkbNamesNotify * /* ev */
617 extern _X_EXPORT void XkbSendActionMessage(DeviceIntPtr /* kbd */ ,
618 xkbActionMessage * /* ev */
621 extern _X_EXPORT void XkbSendExtensionDeviceNotify(DeviceIntPtr /* kbd */ ,
622 ClientPtr /* client */ ,
623 xkbExtensionDeviceNotify * /* ev */
626 extern _X_EXPORT void XkbSendNotification(DeviceIntPtr /* kbd */ ,
627 XkbChangesPtr /* pChanges */ ,
628 XkbEventCausePtr /* cause */
631 extern _X_EXPORT void XkbProcessKeyboardEvent(DeviceEvent * /* event */ ,
632 DeviceIntPtr /* keybd */
635 extern _X_EXPORT void XkbHandleActions(DeviceIntPtr /* dev */ ,
636 DeviceIntPtr /* kbd */ ,
637 DeviceEvent * /* event */
640 extern _X_EXPORT Bool XkbEnableDisableControls(XkbSrvInfoPtr /* xkbi */ ,
641 unsigned long /* change */ ,
642 unsigned long /* newValues */ ,
643 XkbChangesPtr /* changes */ ,
644 XkbEventCausePtr /* cause */
647 extern _X_EXPORT void AccessXInit(DeviceIntPtr /* dev */
650 extern _X_EXPORT Bool AccessXFilterPressEvent(DeviceEvent * /* event */ ,
651 DeviceIntPtr /* keybd */
654 extern _X_EXPORT Bool AccessXFilterReleaseEvent(DeviceEvent * /* event */ ,
655 DeviceIntPtr /* keybd */
658 extern _X_EXPORT void AccessXCancelRepeatKey(XkbSrvInfoPtr /* xkbi */ ,
662 extern _X_EXPORT void AccessXComputeCurveFactor(XkbSrvInfoPtr /* xkbi */ ,
663 XkbControlsPtr /* ctrls */
666 extern _X_EXPORT XkbInterestPtr XkbFindClientResource(DevicePtr /* inDev */ ,
667 ClientPtr /* client */
670 extern _X_EXPORT XkbInterestPtr XkbAddClientResource(DevicePtr /* inDev */ ,
671 ClientPtr /* client */ ,
675 extern _X_EXPORT int XkbRemoveResourceClient(DevicePtr /* inDev */ ,
679 extern _X_EXPORT int XkbDDXAccessXBeep(DeviceIntPtr /* dev */ ,
680 unsigned int /* what */ ,
681 unsigned int /* which */
684 extern _X_EXPORT int XkbDDXUsesSoftRepeat(DeviceIntPtr /* dev */
687 extern _X_EXPORT void XkbDDXKeybdCtrlProc(DeviceIntPtr /* dev */ ,
688 KeybdCtrl * /* ctrl */
691 extern _X_EXPORT void XkbDDXChangeControls(DeviceIntPtr /* dev */ ,
692 XkbControlsPtr /* old */ ,
693 XkbControlsPtr /* new */
696 extern _X_EXPORT void XkbDDXUpdateDeviceIndicators(DeviceIntPtr /* dev */ ,
697 XkbSrvLedInfoPtr /* sli */ ,
698 CARD32 /* newState */
701 extern _X_EXPORT int XkbDDXTerminateServer(DeviceIntPtr /* dev */ ,
703 XkbAction * /* act */
706 extern _X_EXPORT int XkbDDXSwitchScreen(DeviceIntPtr /* dev */ ,
708 XkbAction * /* act */
711 extern _X_EXPORT int XkbDDXPrivate(DeviceIntPtr /* dev */ ,
713 XkbAction * /* act */
716 extern _X_EXPORT void XkbDisableComputedAutoRepeats(DeviceIntPtr /* pXDev */ ,
717 unsigned int /* key */
720 extern _X_EXPORT void XkbSetRepeatKeys(DeviceIntPtr /* pXDev */ ,
725 extern _X_EXPORT int XkbLatchModifiers(DeviceIntPtr /* pXDev */ ,
730 extern _X_EXPORT int XkbLatchGroup(DeviceIntPtr /* pXDev */ ,
734 extern _X_EXPORT void XkbClearAllLatchesAndLocks(DeviceIntPtr /* dev */ ,
735 XkbSrvInfoPtr /* xkbi */ ,
737 XkbEventCausePtr /* cause */
740 extern _X_EXPORT void XkbGetRulesDflts(XkbRMLVOSet * /* rmlvo */
743 extern _X_EXPORT void XkbFreeRMLVOSet(XkbRMLVOSet * /* rmlvo */ ,
747 extern _X_EXPORT void XkbSetRulesDflts(XkbRMLVOSet * /* rmlvo */
750 extern _X_EXPORT void XkbDeleteRulesDflts(void
753 extern _X_EXPORT int SProcXkbDispatch(ClientPtr /* client */
756 extern _X_EXPORT XkbGeometryPtr XkbLookupNamedGeometry(DeviceIntPtr /* dev */ ,
758 Bool * /* shouldFree */
761 extern _X_EXPORT void XkbConvertCase(KeySym /* sym */ ,
762 KeySym * /* lower */ ,
766 extern _X_EXPORT Status XkbChangeKeycodeRange(XkbDescPtr /* xkb */ ,
769 XkbChangesPtr /* changes */
772 extern _X_EXPORT void XkbFreeSrvLedInfo(XkbSrvLedInfoPtr /* sli */
775 extern _X_EXPORT void XkbFreeInfo(XkbSrvInfoPtr /* xkbi */
778 extern _X_EXPORT Status XkbChangeTypesOfKey(XkbDescPtr /* xkb */ ,
781 unsigned int /* groups */ ,
782 int * /* newTypesIn */ ,
783 XkbMapChangesPtr /* changes */
786 extern _X_EXPORT int XkbKeyTypesForCoreSymbols(XkbDescPtr /* xkb */ ,
787 int /* map_width */ ,
788 KeySym * /* core_syms */ ,
789 unsigned int /* protected */ ,
790 int * /* types_inout */ ,
791 KeySym * /* xkb_syms_rtrn */
794 extern _X_EXPORT Bool XkbApplyCompatMapToKey(XkbDescPtr /* xkb */ ,
796 XkbChangesPtr /* changes */
799 extern _X_EXPORT Bool XkbApplyVirtualModChanges(XkbDescPtr /* xkb */ ,
800 unsigned int /* changed */ ,
801 XkbChangesPtr /* changes */
804 extern _X_EXPORT void XkbSendNewKeyboardNotify(DeviceIntPtr /* kbd */ ,
805 xkbNewKeyboardNotify * /* pNKN */
808 extern Bool XkbCopyKeymap(XkbDescPtr /* dst */ ,
809 XkbDescPtr /* src */ );
811 extern _X_EXPORT Bool XkbCopyDeviceKeymap(DeviceIntPtr /* dst */ ,
812 DeviceIntPtr /* src */ );
814 extern void XkbFilterEvents(ClientPtr /* pClient */ ,
818 extern int XkbGetEffectiveGroup(XkbSrvInfoPtr /* xkbi */ ,
819 XkbStatePtr /* xkbstate */ ,
820 CARD8 /* keycode */ );
822 extern void XkbMergeLockedPtrBtns(DeviceIntPtr /* master */ );
824 extern void XkbFakeDeviceButton(DeviceIntPtr /* dev */ ,
829 #include "xkbrules.h"
831 #define _XkbListKeycodes 0
832 #define _XkbListTypes 1
833 #define _XkbListCompat 2
834 #define _XkbListSymbols 3
835 #define _XkbListGeometry 4
836 #define _XkbListNumComponents 5
838 typedef struct _XkbSrvListInfo {
846 char *pattern[_XkbListNumComponents];
847 int nFound[_XkbListNumComponents];
848 } XkbSrvListInfoRec, *XkbSrvListInfoPtr;
850 extern _X_EXPORT Status XkbDDXList(DeviceIntPtr /* dev */ ,
851 XkbSrvListInfoPtr /* listing */ ,
852 ClientPtr /* client */
855 extern _X_EXPORT unsigned int XkbDDXLoadKeymapByNames(DeviceIntPtr /* keybd */ ,
858 unsigned int /* want */ ,
859 unsigned int /* need */ ,
863 /* keymapNameRtrn */ ,
864 int /* keymapNameRtrnLen */
867 extern _X_EXPORT Bool XkbDDXNamesFromRules(DeviceIntPtr /* keybd */ ,
869 XkbRF_VarDefsPtr /* defs */ ,
870 XkbComponentNamesPtr /* names */
873 extern _X_EXPORT XkbDescPtr XkbCompileKeymap(DeviceIntPtr /* dev */ ,
874 XkbRMLVOSet * /* rmlvo */
877 #endif /* _XKBSRV_H_ */