VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/kbproto-1.0.7/X11/extensions/XKBsrv.h@ 105254

最後變更 在這個檔案從105254是 98146,由 vboxsync 提交於 2 年 前

Additions/x11: OSE export fixing for various X proto headers.

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

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