VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/7.0/X11/extensions/XKBsrv.h@ 6202

Last change on this file since 6202 was 6202, checked in by vboxsync, 17 years ago

re-export x11

  • Property svn:eol-style set to native
File size: 27.5 KB
Line 
1/* $Xorg: XKBsrv.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
2/* $XdotOrg: $ */
3/************************************************************
4Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
5
6Permission to use, copy, modify, and distribute this
7software and its documentation for any purpose and without
8fee is hereby granted, provided that the above copyright
9notice appear in all copies and that both that copyright
10notice and this permission notice appear in supporting
11documentation, and that the name of Silicon Graphics not be
12used in advertising or publicity pertaining to distribution
13of the software without specific prior written permission.
14Silicon Graphics makes no representation about the suitability
15of this software for any purpose. It is provided "as is"
16without any express or implied warranty.
17
18SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
19SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
20AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
21GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
22DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
23DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
24OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
25THE USE OR PERFORMANCE OF THIS SOFTWARE.
26
27********************************************************/
28/* $XFree86: xc/include/extensions/XKBsrv.h,v 3.22 2002/11/20 04:49:01 dawes Exp $ */
29
30#ifndef _XKBSRV_H_
31#define _XKBSRV_H_
32
33#ifdef XKB_IN_SERVER
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
70#endif
71
72#include <X11/extensions/XKBstr.h>
73#include <X11/extensions/XKBproto.h>
74#include "inputstr.h"
75
76typedef struct _XkbInterest {
77 DeviceIntPtr dev;
78 ClientPtr client;
79 XID resource;
80 struct _XkbInterest * next;
81 CARD16 extDevNotifyMask;
82 CARD16 stateNotifyMask;
83 CARD16 namesNotifyMask;
84 CARD32 ctrlsNotifyMask;
85 CARD8 compatNotifyMask;
86 BOOL bellNotifyMask;
87 BOOL actionMessageMask;
88 CARD16 accessXNotifyMask;
89 CARD32 iStateNotifyMask;
90 CARD32 iMapNotifyMask;
91 CARD16 altSymsNotifyMask;
92 CARD32 autoCtrls;
93 CARD32 autoCtrlValues;
94} XkbInterestRec,*XkbInterestPtr;
95
96typedef struct _XkbRadioGroup {
97 CARD8 flags;
98 CARD8 nMembers;
99 CARD8 dfltDown;
100 CARD8 currentDown;
101 CARD8 members[XkbRGMaxMembers];
102} XkbRadioGroupRec, *XkbRadioGroupPtr;
103
104typedef struct _XkbEventCause {
105 CARD8 kc;
106 CARD8 event;
107 CARD8 mjr;
108 CARD8 mnr;
109 ClientPtr client;
110} XkbEventCauseRec,*XkbEventCausePtr;
111#define XkbSetCauseKey(c,k,e) { (c)->kc= (k),(c)->event= (e),\
112 (c)->mjr= (c)->mnr= 0; \
113 (c)->client= NULL; }
114#define XkbSetCauseReq(c,j,n,cl) { (c)->kc= (c)->event= 0,\
115 (c)->mjr= (j),(c)->mnr= (n);\
116 (c)->client= (cl); }
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)
120
121#define _OFF_TIMER 0
122#define _KRG_WARN_TIMER 1
123#define _KRG_TIMER 2
124#define _SK_TIMEOUT_TIMER 3
125#define _ALL_TIMEOUT_TIMER 4
126
127#define _BEEP_NONE 0
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
143
144typedef struct _XkbSrvInfo {
145 XkbStateRec prev_state;
146 XkbStateRec state;
147 XkbDescPtr desc;
148
149 DeviceIntPtr device;
150 KbdCtrlProcPtr kbdProc;
151
152 XkbRadioGroupPtr radioGroups;
153 CARD8 nRadioGroups;
154 CARD8 clearMods;
155 CARD8 setMods;
156 INT16 groupChange;
157
158 CARD16 dfltPtrDelta;
159
160 double mouseKeysCurve;
161 double mouseKeysCurveFactor;
162 INT16 mouseKeysDX;
163 INT16 mouseKeysDY;
164 CARD8 mouseKeysFlags;
165 Bool mouseKeysAccel;
166 CARD8 mouseKeysCounter;
167
168 CARD8 lockedPtrButtons;
169 CARD8 shiftKeyCount;
170 KeyCode mouseKey;
171 KeyCode inactiveKey;
172 KeyCode slowKey;
173 KeyCode repeatKey;
174 CARD8 krgTimerActive;
175 CARD8 beepType;
176 CARD8 beepCount;
177
178 CARD32 flags;
179 CARD32 lastPtrEventTime;
180 CARD32 lastShiftEventTime;
181 OsTimerPtr beepTimer;
182 OsTimerPtr mouseKeyTimer;
183 OsTimerPtr slowKeysTimer;
184 OsTimerPtr bounceKeysTimer;
185 OsTimerPtr repeatKeyTimer;
186 OsTimerPtr krgTimer;
187} XkbSrvInfoRec, *XkbSrvInfoPtr;
188
189#define XkbSLI_IsDefault (1L<<0)
190#define XkbSLI_HasOwnState (1L<<1)
191
192typedef struct _XkbSrvLedInfo {
193 CARD16 flags;
194 CARD16 class;
195 CARD16 id;
196 union {
197 KbdFeedbackPtr kf;
198 LedFeedbackPtr lf;
199 } fb;
200
201 CARD32 physIndicators;
202 CARD32 autoState;
203 CARD32 explicitState;
204 CARD32 effectiveState;
205
206 CARD32 mapsPresent;
207 CARD32 namesPresent;
208 XkbIndicatorMapPtr maps;
209 Atom * names;
210
211 CARD32 usesBase;
212 CARD32 usesLatched;
213 CARD32 usesLocked;
214 CARD32 usesEffective;
215 CARD32 usesCompat;
216 CARD32 usesControls;
217
218 CARD32 usedComponents;
219} XkbSrvLedInfoRec, *XkbSrvLedInfoPtr;
220
221/*
222 * Settings for xkbClientFlags field (used by DIX)
223 * These flags _must_ not overlap with XkbPCF_*
224 */
225#define _XkbClientInitialized (1<<15)
226
227#define _XkbWantsDetectableAutoRepeat(c)\
228 ((c)->xkbClientFlags&XkbPCF_DetectableAutoRepeatMask)
229
230/*
231 * Settings for flags field
232 */
233#define _XkbStateNotifyInProgress (1<<0)
234
235typedef struct
236{
237 ProcessInputProc processInputProc;
238 ProcessInputProc realInputProc;
239 DeviceUnwrapProc unwrapProc;
240} xkbDeviceInfoRec, *xkbDeviceInfoPtr;
241
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;
249
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;
258
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;
263
264#define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr) (dev)->devPrivates[xkbDevicePrivateIndex].ptr)
265
266/***====================================================================***/
267
268
269/***====================================================================***/
270
271#define XkbAX_KRGMask (XkbSlowKeysMask|XkbBounceKeysMask)
272#define XkbAllFilteredEventsMask \
273 (XkbAccessXKeysMask|XkbRepeatKeysMask|XkbMouseKeysAccelMask|XkbAX_KRGMask)
274
275/***====================================================================***/
276
277extern int XkbReqCode;
278extern int XkbEventBase;
279extern int XkbKeyboardErrorCode;
280extern int XkbDisableLockActions;
281extern char * XkbBaseDirectory;
282extern char * XkbBinDirectory;
283extern char * XkbInitialMap;
284extern int _XkbClientMajor;
285extern int _XkbClientMinor;
286extern unsigned int XkbXIUnsupported;
287
288extern char * XkbModelUsed,*XkbLayoutUsed,*XkbVariantUsed,*XkbOptionsUsed;
289extern Bool noXkbExtension;
290extern Bool XkbWantRulesProp;
291
292extern pointer XkbLastRepeatEvent;
293
294extern CARD32 xkbDebugFlags;
295extern CARD32 xkbDebugCtrls;
296
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)
306
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)))
312
313extern int DeviceKeyPress,DeviceKeyRelease;
314extern int DeviceButtonPress,DeviceButtonRelease;
315
316#ifdef XINPUT
317#define _XkbIsPressEvent(t) (((t)==KeyPress)||((t)==DeviceKeyPress))
318#define _XkbIsReleaseEvent(t) (((t)==KeyRelease)||((t)==DeviceKeyRelease))
319#else
320#define _XkbIsPressEvent(t) ((t)==KeyPress)
321#define _XkbIsReleaseEvent(t) ((t)==KeyRelease)
322#endif
323
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)
328
329#define XConvertCase(s,l,u) XkbConvertCase(s,l,u)
330#undef IsKeypadKey
331#define IsKeypadKey(s) XkbKSIsKeypad(s)
332
333#define Status int
334#define XPointer pointer
335#define Display struct _XDisplay
336
337#ifndef True
338#define True 1
339#define False 0
340#endif
341
342#ifndef PATH_MAX
343#ifdef MAXPATHLEN
344#define PATH_MAX MAXPATHLEN
345#else
346#define PATH_MAX 1024
347#endif
348#endif
349
350_XFUNCPROTOBEGIN
351
352extern void XkbUseMsg(
353 void
354);
355
356extern int XkbProcessArguments(
357 int /* argc */,
358 char ** /* argv */,
359 int /* i */
360);
361
362extern void XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc);
363
364extern void XkbFreeCompatMap(
365 XkbDescPtr /* xkb */,
366 unsigned int /* which */,
367 Bool /* freeMap */
368);
369
370extern void XkbFreeNames(
371 XkbDescPtr /* xkb */,
372 unsigned int /* which */,
373 Bool /* freeMap */
374);
375
376extern DeviceIntPtr _XkbLookupAnyDevice(
377 int /* id */,
378 int * /* why_rtrn */
379);
380
381extern DeviceIntPtr _XkbLookupKeyboard(
382 int /* id */,
383 int * /* why_rtrn */
384);
385
386extern DeviceIntPtr _XkbLookupBellDevice(
387 int /* id */,
388 int * /* why_rtrn */
389);
390
391extern DeviceIntPtr _XkbLookupLedDevice(
392 int /* id */,
393 int * /* why_rtrn */
394);
395
396extern DeviceIntPtr _XkbLookupButtonDevice(
397 int /* id */,
398 int * /* why_rtrn */
399);
400
401extern XkbDescPtr XkbAllocKeyboard(
402 void
403);
404
405extern Status XkbAllocClientMap(
406 XkbDescPtr /* xkb */,
407 unsigned int /* which */,
408 unsigned int /* nTypes */
409);
410
411extern Status XkbAllocServerMap(
412 XkbDescPtr /* xkb */,
413 unsigned int /* which */,
414 unsigned int /* nNewActions */
415);
416
417extern void XkbFreeClientMap(
418 XkbDescPtr /* xkb */,
419 unsigned int /* what */,
420 Bool /* freeMap */
421);
422
423extern void XkbFreeServerMap(
424 XkbDescPtr /* xkb */,
425 unsigned int /* what */,
426 Bool /* freeMap */
427);
428
429extern Status XkbAllocIndicatorMaps(
430 XkbDescPtr /* xkb */
431);
432
433extern Status XkbAllocCompatMap(
434 XkbDescPtr /* xkb */,
435 unsigned int /* which */,
436 unsigned int /* nInterpret */
437);
438
439extern Status XkbAllocNames(
440 XkbDescPtr /* xkb */,
441 unsigned int /* which */,
442 int /* nTotalRG */,
443 int /* nTotalAliases */
444);
445
446extern Status XkbAllocControls(
447 XkbDescPtr /* xkb */,
448 unsigned int /* which*/
449);
450
451extern Status XkbCopyKeyType(
452 XkbKeyTypePtr /* from */,
453 XkbKeyTypePtr /* into */
454);
455
456extern Status XkbCopyKeyTypes(
457 XkbKeyTypePtr /* from */,
458 XkbKeyTypePtr /* into */,
459 int /* num_types */
460);
461
462extern Status XkbResizeKeyType(
463 XkbDescPtr /* xkb */,
464 int /* type_ndx */,
465 int /* map_count */,
466 Bool /* want_preserve */,
467 int /* new_num_lvls */
468);
469
470extern void XkbFreeKeyboard(
471 XkbDescPtr /* xkb */,
472 unsigned int /* which */,
473 Bool /* freeDesc */
474);
475
476extern void XkbSetActionKeyMods(
477 XkbDescPtr /* xkb */,
478 XkbAction * /* act */,
479 unsigned int /* mods */
480);
481
482extern Bool XkbCheckActionVMods(
483 XkbDescPtr /* xkb */,
484 XkbAction * /* act */,
485 unsigned int /* changed */
486);
487
488extern Bool XkbApplyVModChanges(
489 XkbSrvInfoPtr /* xkbi */,
490 unsigned int /* changed */,
491 XkbChangesPtr /* pChanges */,
492 unsigned int * /* needChecksRtrn */,
493 XkbEventCausePtr /* cause */
494);
495
496extern void XkbApplyVModChangesToAllDevices(
497 DeviceIntPtr /* dev */,
498 XkbDescPtr /* xkb */,
499 unsigned int /* changed */,
500 XkbEventCausePtr /* cause */
501);
502
503extern unsigned int XkbMaskForVMask(
504 XkbDescPtr /* xkb */,
505 unsigned int /* vmask */
506);
507
508extern Bool XkbVirtualModsToReal(
509 XkbDescPtr /* xkb */,
510 unsigned int /* virtua_mask */,
511 unsigned int * /* mask_rtrn */
512);
513
514extern unsigned int XkbAdjustGroup(
515 int /* group */,
516 XkbControlsPtr /* ctrls */
517);
518
519extern KeySym *XkbResizeKeySyms(
520 XkbDescPtr /* xkb */,
521 int /* key */,
522 int /* needed */
523);
524
525extern XkbAction *XkbResizeKeyActions(
526 XkbDescPtr /* xkb */,
527 int /* key */,
528 int /* needed */
529);
530
531extern void XkbUpdateKeyTypesFromCore(
532 DeviceIntPtr /* pXDev */,
533 KeyCode /* first */,
534 CARD8 /* num */,
535 XkbChangesPtr /* pChanges */
536);
537
538extern void XkbUpdateDescActions(
539 XkbDescPtr /* xkb */,
540 KeyCode /* first */,
541 CARD8 /* num */,
542 XkbChangesPtr /* changes */
543);
544
545extern void XkbUpdateActions(
546 DeviceIntPtr /* pXDev */,
547 KeyCode /* first */,
548 CARD8 /* num */,
549 XkbChangesPtr /* pChanges */,
550 unsigned int * /* needChecksRtrn */,
551 XkbEventCausePtr /* cause */
552);
553
554extern void XkbUpdateCoreDescription(
555 DeviceIntPtr /* keybd */,
556 Bool /* resize */
557);
558
559extern void XkbApplyMappingChange(
560 DeviceIntPtr /* pXDev */,
561 CARD8 /* request */,
562 KeyCode /* firstKey */,
563 CARD8 /* num */,
564 ClientPtr /* client */
565);
566
567extern void XkbSetIndicators(
568 DeviceIntPtr /* pXDev */,
569 CARD32 /* affect */,
570 CARD32 /* values */,
571 XkbEventCausePtr /* cause */
572);
573
574extern void XkbUpdateIndicators(
575 DeviceIntPtr /* keybd */,
576 CARD32 /* changed */,
577 Bool /* check_edevs */,
578 XkbChangesPtr /* pChanges */,
579 XkbEventCausePtr /* cause */
580);
581
582extern XkbSrvLedInfoPtr XkbAllocSrvLedInfo(
583 DeviceIntPtr /* dev */,
584 KbdFeedbackPtr /* kf */,
585 LedFeedbackPtr /* lf */,
586 unsigned int /* needed_parts */
587);
588
589extern XkbSrvLedInfoPtr XkbFindSrvLedInfo(
590 DeviceIntPtr /* dev */,
591 unsigned int /* class */,
592 unsigned int /* id */,
593 unsigned int /* needed_parts */
594);
595
596extern void XkbApplyLedNameChanges(
597 DeviceIntPtr /* dev */,
598 XkbSrvLedInfoPtr /* sli */,
599 unsigned int /* changed_names */,
600 xkbExtensionDeviceNotify * /* ed */,
601 XkbChangesPtr /* changes */,
602 XkbEventCausePtr /* cause */
603);
604
605extern void XkbApplyLedMapChanges(
606 DeviceIntPtr /* dev */,
607 XkbSrvLedInfoPtr /* sli */,
608 unsigned int /* changed_maps */,
609 xkbExtensionDeviceNotify * /* ed */,
610 XkbChangesPtr /* changes */,
611 XkbEventCausePtr /* cause */
612);
613
614extern void XkbApplyLedStateChanges(
615 DeviceIntPtr /* dev */,
616 XkbSrvLedInfoPtr /* sli */,
617 unsigned int /* changed_leds */,
618 xkbExtensionDeviceNotify * /* ed */,
619 XkbChangesPtr /* changes */,
620 XkbEventCausePtr /* cause */
621);
622
623extern void XkbUpdateLedAutoState(
624 DeviceIntPtr /* dev */,
625 XkbSrvLedInfoPtr /* sli */,
626 unsigned int /* maps_to_check */,
627 xkbExtensionDeviceNotify * /* ed */,
628 XkbChangesPtr /* changes */,
629 XkbEventCausePtr /* cause */
630);
631
632extern void XkbFlushLedEvents(
633 DeviceIntPtr /* dev */,
634 DeviceIntPtr /* kbd */,
635 XkbSrvLedInfoPtr /* sli */,
636 xkbExtensionDeviceNotify * /* ed */,
637 XkbChangesPtr /* changes */,
638 XkbEventCausePtr /* cause */
639);
640
641extern void XkbUpdateAllDeviceIndicators(
642 XkbChangesPtr /* changes */,
643 XkbEventCausePtr /* cause */
644);
645
646extern unsigned int XkbIndicatorsToUpdate(
647 DeviceIntPtr /* dev */,
648 unsigned long /* state_changes */,
649 Bool /* enabled_ctrl_changes */
650);
651
652extern void XkbComputeDerivedState(
653 XkbSrvInfoPtr /* xkbi */
654);
655
656extern void XkbCheckSecondaryEffects(
657 XkbSrvInfoPtr /* xkbi */,
658 unsigned int /* which */,
659 XkbChangesPtr /* changes */,
660 XkbEventCausePtr /* cause */
661);
662
663extern void XkbCheckIndicatorMaps(
664 DeviceIntPtr /* dev */,
665 XkbSrvLedInfoPtr /* sli */,
666 unsigned int /* which */
667);
668
669extern unsigned int XkbStateChangedFlags(
670 XkbStatePtr /* old */,
671 XkbStatePtr /* new */
672);
673
674extern void XkbSendStateNotify(
675 DeviceIntPtr /* kbd */,
676 xkbStateNotify * /* pSN */
677);
678
679extern void XkbSendMapNotify(
680 DeviceIntPtr /* kbd */,
681 xkbMapNotify * /* ev */
682);
683
684extern int XkbComputeControlsNotify(
685 DeviceIntPtr /* kbd */,
686 XkbControlsPtr /* old */,
687 XkbControlsPtr /* new */,
688 xkbControlsNotify * /* pCN */,
689 Bool /* forceCtrlProc */
690);
691
692extern void XkbSendControlsNotify(
693 DeviceIntPtr /* kbd */,
694 xkbControlsNotify * /* ev */
695);
696
697extern void XkbSendCompatMapNotify(
698 DeviceIntPtr /* kbd */,
699 xkbCompatMapNotify * /* ev */
700);
701
702extern void XkbSendIndicatorNotify(
703 DeviceIntPtr /* kbd */,
704 int /* xkbType */,
705 xkbIndicatorNotify * /* ev */
706);
707
708extern void XkbHandleBell(
709 BOOL /* force */,
710 BOOL /* eventOnly */,
711 DeviceIntPtr /* kbd */,
712 CARD8 /* percent */,
713 pointer /* ctrl */,
714 CARD8 /* class */,
715 Atom /* name */,
716 WindowPtr /* pWin */,
717 ClientPtr /* pClient */
718);
719
720extern void XkbSendAccessXNotify(
721 DeviceIntPtr /* kbd */,
722 xkbAccessXNotify * /* pEv */
723);
724
725extern void XkbSendNamesNotify(
726 DeviceIntPtr /* kbd */,
727 xkbNamesNotify * /* ev */
728);
729
730extern void XkbSendCompatNotify(
731 DeviceIntPtr /* kbd */,
732 xkbCompatMapNotify * /* ev */
733);
734
735extern void XkbSendActionMessage(
736 DeviceIntPtr /* kbd */,
737 xkbActionMessage * /* ev */
738);
739
740extern void XkbSendExtensionDeviceNotify(
741 DeviceIntPtr /* kbd */,
742 ClientPtr /* client */,
743 xkbExtensionDeviceNotify * /* ev */
744);
745
746extern void XkbSendNotification(
747 DeviceIntPtr /* kbd */,
748 XkbChangesPtr /* pChanges */,
749 XkbEventCausePtr /* cause */
750);
751
752extern void XkbProcessKeyboardEvent(
753 struct _xEvent * /* xE */,
754 DeviceIntPtr /* keybd */,
755 int /* count */
756);
757
758extern void XkbProcessOtherEvent(
759 struct _xEvent * /* xE */,
760 DeviceIntPtr /* keybd */,
761 int /* count */
762);
763
764extern void XkbHandleActions(
765 DeviceIntPtr /* dev */,
766 DeviceIntPtr /* kbd */,
767 struct _xEvent * /* xE */,
768 int /* count */
769);
770
771extern Bool XkbEnableDisableControls(
772 XkbSrvInfoPtr /* xkbi */,
773 unsigned long /* change */,
774 unsigned long /* newValues */,
775 XkbChangesPtr /* changes */,
776 XkbEventCausePtr /* cause */
777);
778
779extern void AccessXInit(
780 DeviceIntPtr /* dev */
781);
782
783extern Bool AccessXFilterPressEvent(
784 register struct _xEvent * /* xE */,
785 register DeviceIntPtr /* keybd */,
786 int /* count */
787);
788
789extern Bool AccessXFilterReleaseEvent(
790 register struct _xEvent * /* xE */,
791 register DeviceIntPtr /* keybd */,
792 int /* count */
793);
794
795extern void AccessXCancelRepeatKey(
796 XkbSrvInfoPtr /* xkbi */,
797 KeyCode /* key */
798);
799
800extern void AccessXComputeCurveFactor(
801 XkbSrvInfoPtr /* xkbi */,
802 XkbControlsPtr /* ctrls */
803);
804
805extern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo(
806 XkbDeviceInfoPtr /* devi */,
807 unsigned int /* ledClass */,
808 unsigned int /* ledId */
809);
810
811extern XkbDeviceInfoPtr XkbAllocDeviceInfo(
812 unsigned int /* deviceSpec */,
813 unsigned int /* nButtons */,
814 unsigned int /* szLeds */
815);
816
817extern void XkbFreeDeviceInfo(
818 XkbDeviceInfoPtr /* devi */,
819 unsigned int /* which */,
820 Bool /* freeDevI */
821);
822
823extern Status XkbResizeDeviceButtonActions(
824 XkbDeviceInfoPtr /* devi */,
825 unsigned int /* newTotal */
826);
827
828extern XkbInterestPtr XkbFindClientResource(
829 DevicePtr /* inDev */,
830 ClientPtr /* client */
831);
832
833extern XkbInterestPtr XkbAddClientResource(
834 DevicePtr /* inDev */,
835 ClientPtr /* client */,
836 XID /* id */
837);
838
839extern int XkbRemoveClient(
840 DevicePtr /* inDev */,
841 ClientPtr /* client */
842);
843
844extern int XkbRemoveResourceClient(
845 DevicePtr /* inDev */,
846 XID /* id */
847);
848
849extern int XkbDDXInitDevice(
850 DeviceIntPtr /* dev */
851);
852
853extern int XkbDDXAccessXBeep(
854 DeviceIntPtr /* dev */,
855 unsigned int /* what */,
856 unsigned int /* which */
857);
858
859extern void XkbDDXKeyClick(
860 DeviceIntPtr /* dev */,
861 int /* keycode */,
862 int /* synthetic */
863);
864
865extern int XkbDDXUsesSoftRepeat(
866 DeviceIntPtr /* dev */
867);
868
869extern void XkbDDXKeybdCtrlProc(
870 DeviceIntPtr /* dev */,
871 KeybdCtrl * /* ctrl */
872);
873
874extern void XkbDDXChangeControls(
875 DeviceIntPtr /* dev */,
876 XkbControlsPtr /* old */,
877 XkbControlsPtr /* new */
878);
879
880extern void XkbDDXUpdateIndicators(
881 DeviceIntPtr /* keybd */,
882 CARD32 /* newState */
883);
884
885extern void XkbDDXUpdateDeviceIndicators(
886 DeviceIntPtr /* dev */,
887 XkbSrvLedInfoPtr /* sli */,
888 CARD32 /* newState */
889);
890
891extern void XkbDDXFakePointerButton(
892 int /* event */,
893 int /* button */
894);
895
896extern void XkbDDXFakePointerMotion(
897 unsigned int /* flags */,
898 int /* x */,
899 int /* y */
900);
901
902extern void XkbDDXFakeDeviceButton(
903 DeviceIntPtr /* dev */,
904 Bool /* press */,
905 int /* button */
906);
907
908extern int XkbDDXTerminateServer(
909 DeviceIntPtr /* dev */,
910 KeyCode /* key */,
911 XkbAction * /* act */
912);
913
914extern int XkbDDXSwitchScreen(
915 DeviceIntPtr /* dev */,
916 KeyCode /* key */,
917 XkbAction * /* act */
918);
919
920extern int XkbDDXPrivate(
921 DeviceIntPtr /* dev */,
922 KeyCode /* key */,
923 XkbAction * /* act */
924);
925
926extern void XkbDisableComputedAutoRepeats(
927 DeviceIntPtr /* pXDev */,
928 unsigned int /* key */
929);
930
931extern void XkbSetRepeatKeys(
932 DeviceIntPtr /* pXDev */,
933 int /* key */,
934 int /* onoff */
935);
936
937extern int XkbLatchModifiers(
938 DeviceIntPtr /* pXDev */,
939 CARD8 /* mask */,
940 CARD8 /* latches */
941);
942
943extern int XkbLatchGroup(
944 DeviceIntPtr /* pXDev */,
945 int /* group */
946);
947
948extern void XkbClearAllLatchesAndLocks(
949 DeviceIntPtr /* dev */,
950 XkbSrvInfoPtr /* xkbi */,
951 Bool /* genEv */,
952 XkbEventCausePtr /* cause */
953);
954
955extern void XkbSetRulesDflts(
956 char * /* rulesFile */,
957 char * /* model */,
958 char * /* layout */,
959 char * /* variant */,
960 char * /* options */
961);
962
963extern void XkbInitDevice(
964 DeviceIntPtr /* pXDev */
965);
966
967extern Bool XkbInitKeyboardDeviceStruct(
968 DeviceIntPtr /* pXDev */,
969 XkbComponentNamesPtr /* pNames */,
970 KeySymsPtr /* pSyms */,
971 CARD8 /* pMods */[],
972 BellProcPtr /* bellProc */,
973 KbdCtrlProcPtr /* ctrlProc */
974);
975
976extern int SProcXkbDispatch(
977 ClientPtr /* client */
978);
979
980extern XkbGeometryPtr XkbLookupNamedGeometry(
981 DeviceIntPtr /* dev */,
982 Atom /* name */,
983 Bool * /* shouldFree */
984);
985
986extern char * _XkbDupString(
987 char * /* str */
988);
989
990extern void XkbConvertCase(
991 KeySym /* sym */,
992 KeySym * /* lower */,
993 KeySym * /* upper */
994);
995
996extern Status XkbChangeKeycodeRange(
997 XkbDescPtr /* xkb */,
998 int /* minKC */,
999 int /* maxKC */,
1000 XkbChangesPtr /* changes */
1001);
1002
1003extern int XkbFinishDeviceInit(
1004 DeviceIntPtr /* pXDev */
1005);
1006
1007extern void XkbFreeSrvLedInfo(
1008 XkbSrvLedInfoPtr /* sli */
1009);
1010
1011extern void XkbFreeInfo(
1012 XkbSrvInfoPtr /* xkbi */
1013);
1014
1015extern Status XkbChangeTypesOfKey(
1016 XkbDescPtr /* xkb */,
1017 int /* key */,
1018 int /* nGroups */,
1019 unsigned int /* groups */,
1020 int * /* newTypesIn */,
1021 XkbMapChangesPtr /* changes */
1022);
1023
1024extern XkbKeyTypePtr XkbAddKeyType(
1025 XkbDescPtr /* xkb */,
1026 Atom /* name */,
1027 int /* map_count */,
1028 Bool /* want_preserve */,
1029 int /* num_lvls */
1030);
1031
1032extern Status XkbInitCanonicalKeyTypes(
1033 XkbDescPtr /* xkb */,
1034 unsigned int /* which */,
1035 int /* keypadVMod */
1036);
1037
1038extern 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 */
1045);
1046
1047extern Bool XkbApplyCompatMapToKey(
1048 XkbDescPtr /* xkb */,
1049 KeyCode /* key */,
1050 XkbChangesPtr /* changes */
1051);
1052
1053extern Bool XkbUpdateMapFromCore(
1054 XkbDescPtr /* xkb */,
1055 KeyCode /* first_key */,
1056 int /* num_keys */,
1057 int /* map_width */,
1058 KeySym * /* core_keysyms */,
1059 XkbChangesPtr /* changes */
1060);
1061
1062extern void XkbFreeControls(
1063 XkbDescPtr /* xkb */,
1064 unsigned int /* which */,
1065 Bool /* freeMap */
1066);
1067
1068extern void XkbFreeIndicatorMaps(
1069 XkbDescPtr /* xkb */
1070);
1071
1072extern Bool XkbApplyVirtualModChanges(
1073 XkbDescPtr /* xkb */,
1074 unsigned int /* changed */,
1075 XkbChangesPtr /* changes */
1076);
1077
1078extern Bool XkbUpdateActionVirtualMods(
1079 XkbDescPtr /* xkb */,
1080 XkbAction * /* act */,
1081 unsigned int /* changed */
1082);
1083
1084extern void XkbUpdateKeyTypeVirtualMods(
1085 XkbDescPtr /* xkb */,
1086 XkbKeyTypePtr /* type */,
1087 unsigned int /* changed */,
1088 XkbChangesPtr /* changes */
1089);
1090
1091extern void XkbSendNewKeyboardNotify(
1092 DeviceIntPtr /* kbd */,
1093 xkbNewKeyboardNotify * /* pNKN */
1094);
1095
1096#ifdef XKBSRV_NEED_FILE_FUNCS
1097
1098#include <X11/extensions/XKMformat.h>
1099#include <X11/extensions/XKBfile.h>
1100#include <X11/extensions/XKBrules.h>
1101
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
1109
1110typedef struct _XkbSrvListInfo {
1111 int szPool;
1112 int nPool;
1113 char * pool;
1114
1115 int maxRtrn;
1116 int nTotal;
1117
1118 char * pattern[_XkbListNumComponents];
1119 int nFound[_XkbListNumComponents];
1120} XkbSrvListInfoRec,*XkbSrvListInfoPtr;
1121
1122char *
1123XkbGetRulesDflts(
1124 XkbRF_VarDefsPtr /* defs */
1125);
1126
1127extern void XkbSetRulesUsed(
1128 XkbRF_VarDefsPtr /* defs */
1129);
1130
1131
1132extern Status XkbDDXList(
1133 DeviceIntPtr /* dev */,
1134 XkbSrvListInfoPtr /* listing */,
1135 ClientPtr /* client */
1136);
1137
1138extern 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 */
1146);
1147
1148extern Bool XkbDDXNamesFromRules(
1149 DeviceIntPtr /* keybd */,
1150 char * /* rules */,
1151 XkbRF_VarDefsPtr /* defs */,
1152 XkbComponentNamesPtr /* names */
1153);
1154
1155extern FILE *XkbDDXOpenConfigFile(
1156 char * /* mapName */,
1157 char * /* fileNameRtrn */,
1158 int /* fileNameRtrnLen */
1159);
1160
1161extern Bool XkbDDXApplyConfig(
1162 XPointer /* cfg_in */,
1163 XkbSrvInfoPtr /* xkbi */
1164);
1165
1166extern XPointer XkbDDXPreloadConfig(
1167 char ** /* rulesFileRtrn */,
1168 XkbRF_VarDefsPtr /* defs */,
1169 XkbComponentNamesPtr /* names */,
1170 DeviceIntPtr /* dev */
1171);
1172
1173extern int _XkbStrCaseCmp(
1174 char * /* str1 */,
1175 char * /* str2 */
1176);
1177
1178#endif /* XKBSRV_NEED_FILE_FUNCS */
1179
1180
1181_XFUNCPROTOEND
1182
1183#define XkbAtomGetString(d,s) NameForAtom(s)
1184
1185#endif /* _XKBSRV_H_ */
1186
1187
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette