VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/xorg-server-1.17.1/xkbsrv.h@ 77662

最後變更 在這個檔案從77662是 54163,由 vboxsync 提交於 10 年 前

Additions/x11/vboxvideo: support X.Org Server 1.17 (still untested).

  • 屬性 svn:eol-style 設為 native
檔案大小: 33.8 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#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
54
55#include <X11/extensions/XKBproto.h>
56#include "xkbstr.h"
57#include "xkbrules.h"
58#include "inputstr.h"
59#include "events.h"
60
61typedef struct _XkbInterest {
62 DeviceIntPtr dev;
63 ClientPtr client;
64 XID resource;
65 struct _XkbInterest *next;
66 CARD16 extDevNotifyMask;
67 CARD16 stateNotifyMask;
68 CARD16 namesNotifyMask;
69 CARD32 ctrlsNotifyMask;
70 CARD8 compatNotifyMask;
71 BOOL bellNotifyMask;
72 BOOL actionMessageMask;
73 CARD16 accessXNotifyMask;
74 CARD32 iStateNotifyMask;
75 CARD32 iMapNotifyMask;
76 CARD16 altSymsNotifyMask;
77 CARD32 autoCtrls;
78 CARD32 autoCtrlValues;
79} XkbInterestRec, *XkbInterestPtr;
80
81typedef struct _XkbRadioGroup {
82 CARD8 flags;
83 CARD8 nMembers;
84 CARD8 dfltDown;
85 CARD8 currentDown;
86 CARD8 members[XkbRGMaxMembers];
87} XkbRadioGroupRec, *XkbRadioGroupPtr;
88
89typedef struct _XkbEventCause {
90 CARD8 kc;
91 CARD8 event;
92 CARD8 mjr;
93 CARD8 mnr;
94 ClientPtr client;
95} XkbEventCauseRec, *XkbEventCausePtr;
96
97#define XkbSetCauseKey(c,k,e) { (c)->kc= (k),(c)->event= (e),\
98 (c)->mjr= (c)->mnr= 0; \
99 (c)->client= NULL; }
100#define XkbSetCauseReq(c,j,n,cl) { (c)->kc= (c)->event= 0,\
101 (c)->mjr= (j),(c)->mnr= (n);\
102 (c)->client= (cl); }
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)
106
107#define _OFF_TIMER 0
108#define _KRG_WARN_TIMER 1
109#define _KRG_TIMER 2
110#define _SK_TIMEOUT_TIMER 3
111#define _ALL_TIMEOUT_TIMER 4
112
113#define _BEEP_NONE 0
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
129
130typedef struct _XkbFilter {
131 CARD16 keycode;
132 CARD8 what;
133 CARD8 active;
134 CARD8 filterOthers;
135 CARD32 priv;
136 XkbAction upAction;
137 int (*filter) (struct _XkbSrvInfo * /* xkbi */ ,
138 struct _XkbFilter * /* filter */ ,
139 unsigned /* keycode */ ,
140 XkbAction * /* action */
141 );
142 struct _XkbFilter *next;
143} XkbFilterRec, *XkbFilterPtr;
144
145typedef struct _XkbSrvInfo {
146 XkbStateRec prev_state;
147 XkbStateRec state;
148 XkbDescPtr desc;
149
150 DeviceIntPtr device;
151 KbdCtrlProcPtr kbdProc;
152
153 XkbRadioGroupPtr radioGroups;
154 CARD8 nRadioGroups;
155 CARD8 clearMods;
156 CARD8 setMods;
157 INT16 groupChange;
158
159 CARD16 dfltPtrDelta;
160
161 double mouseKeysCurve;
162 double mouseKeysCurveFactor;
163 INT16 mouseKeysDX;
164 INT16 mouseKeysDY;
165 CARD8 mouseKeysFlags;
166 Bool mouseKeysAccel;
167 CARD8 mouseKeysCounter;
168
169 CARD8 lockedPtrButtons;
170 CARD8 shiftKeyCount;
171 KeyCode mouseKey;
172 KeyCode inactiveKey;
173 KeyCode slowKey;
174 KeyCode slowKeyEnableKey;
175 KeyCode repeatKey;
176 CARD8 krgTimerActive;
177 CARD8 beepType;
178 CARD8 beepCount;
179
180 CARD32 flags;
181 CARD32 lastPtrEventTime;
182 CARD32 lastShiftEventTime;
183 OsTimerPtr beepTimer;
184 OsTimerPtr mouseKeyTimer;
185 OsTimerPtr slowKeysTimer;
186 OsTimerPtr bounceKeysTimer;
187 OsTimerPtr repeatKeyTimer;
188 OsTimerPtr krgTimer;
189
190 int szFilters;
191 XkbFilterPtr filters;
192} XkbSrvInfoRec, *XkbSrvInfoPtr;
193
194#define XkbSLI_IsDefault (1L<<0)
195#define XkbSLI_HasOwnState (1L<<1)
196
197typedef struct _XkbSrvLedInfo {
198 CARD16 flags;
199 CARD16 class;
200 CARD16 id;
201 union {
202 KbdFeedbackPtr kf;
203 LedFeedbackPtr lf;
204 } fb;
205
206 CARD32 physIndicators;
207 CARD32 autoState;
208 CARD32 explicitState;
209 CARD32 effectiveState;
210
211 CARD32 mapsPresent;
212 CARD32 namesPresent;
213 XkbIndicatorMapPtr maps;
214 Atom *names;
215
216 CARD32 usesBase;
217 CARD32 usesLatched;
218 CARD32 usesLocked;
219 CARD32 usesEffective;
220 CARD32 usesCompat;
221 CARD32 usesControls;
222
223 CARD32 usedComponents;
224} XkbSrvLedInfoRec, *XkbSrvLedInfoPtr;
225
226/*
227 * Settings for xkbClientFlags field (used by DIX)
228 * These flags _must_ not overlap with XkbPCF_*
229 */
230#define _XkbClientInitialized (1<<15)
231
232#define _XkbWantsDetectableAutoRepeat(c)\
233 ((c)->xkbClientFlags&XkbPCF_DetectableAutoRepeatMask)
234
235/*
236 * Settings for flags field
237 */
238#define _XkbStateNotifyInProgress (1<<0)
239
240typedef struct {
241 ProcessInputProc processInputProc;
242 /* If processInputProc is set to something different than realInputProc,
243 * UNWRAP and COND_WRAP will not touch processInputProc and update only
244 * realInputProc. This ensures that
245 * processInputProc == (frozen ? EnqueueEvent : realInputProc)
246 *
247 * WRAP_PROCESS_INPUT_PROC should only be called during initialization,
248 * since it may destroy this invariant.
249 */
250 ProcessInputProc realInputProc;
251 DeviceUnwrapProc unwrapProc;
252} xkbDeviceInfoRec, *xkbDeviceInfoPtr;
253
254#define WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
255 device->public.processInputProc = proc; \
256 oldprocs->processInputProc = \
257 oldprocs->realInputProc = device->public.realInputProc; \
258 device->public.realInputProc = proc; \
259 oldprocs->unwrapProc = device->unwrapProc; \
260 device->unwrapProc = unwrapproc;
261
262#define COND_WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
263 if (device->public.processInputProc == device->public.realInputProc)\
264 device->public.processInputProc = proc; \
265 oldprocs->processInputProc = \
266 oldprocs->realInputProc = device->public.realInputProc; \
267 device->public.realInputProc = proc; \
268 oldprocs->unwrapProc = device->unwrapProc; \
269 device->unwrapProc = unwrapproc;
270
271#define UNWRAP_PROCESS_INPUT_PROC(device, oldprocs, backupproc) \
272 backupproc = device->public.realInputProc; \
273 if (device->public.processInputProc == device->public.realInputProc)\
274 device->public.processInputProc = oldprocs->realInputProc; \
275 device->public.realInputProc = oldprocs->realInputProc; \
276 device->unwrapProc = oldprocs->unwrapProc;
277
278extern _X_EXPORT DevPrivateKeyRec xkbDevicePrivateKeyRec;
279
280#define xkbDevicePrivateKey (&xkbDevicePrivateKeyRec)
281
282#define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr)dixLookupPrivate(&(dev)->devPrivates, xkbDevicePrivateKey))
283
284extern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, void *);
285
286/***====================================================================***/
287
288/***====================================================================***/
289
290#define XkbAX_KRGMask (XkbSlowKeysMask|XkbBounceKeysMask)
291#define XkbAllFilteredEventsMask \
292 (XkbAccessXKeysMask|XkbRepeatKeysMask|XkbMouseKeysAccelMask|XkbAX_KRGMask)
293
294/***====================================================================***/
295
296extern _X_EXPORT int XkbReqCode;
297extern _X_EXPORT int XkbEventBase;
298extern _X_EXPORT int XkbKeyboardErrorCode;
299extern _X_EXPORT const char *XkbBaseDirectory;
300extern _X_EXPORT const char *XkbBinDirectory;
301
302extern _X_EXPORT CARD32 xkbDebugFlags;
303
304#define _XkbLibError(c,l,d) /* Epoch fail */
305
306/* "a" is a "unique" numeric identifier that just defines which error
307 * code statement it is. _XkbErrCode2(4, foo) means "this is the 4th error
308 * statement in this function". lovely.
309 */
310#define _XkbErrCode2(a,b) ((XID)((((unsigned int)(a))<<24)|((b)&0xffffff)))
311#define _XkbErrCode3(a,b,c) _XkbErrCode2(a,(((unsigned int)(b))<<16)|(c))
312#define _XkbErrCode4(a,b,c,d) _XkbErrCode3(a,b,((((unsigned int)(c))<<8)|(d)))
313
314#define Status int
315
316extern _X_EXPORT void XkbUseMsg(void
317 );
318
319extern _X_EXPORT int XkbProcessArguments(int /* argc */ ,
320 char ** /* argv */ ,
321 int /* i */
322 );
323
324extern _X_EXPORT Bool XkbInitPrivates(void);
325
326extern _X_EXPORT void XkbSetExtension(DeviceIntPtr device,
327 ProcessInputProc proc);
328
329extern _X_EXPORT void XkbFreeCompatMap(XkbDescPtr /* xkb */ ,
330 unsigned int /* which */ ,
331 Bool /* freeMap */
332 );
333
334extern _X_EXPORT void XkbFreeNames(XkbDescPtr /* xkb */ ,
335 unsigned int /* which */ ,
336 Bool /* freeMap */
337 );
338
339extern _X_EXPORT int _XkbLookupAnyDevice(DeviceIntPtr *pDev,
340 int id,
341 ClientPtr client,
342 Mask access_mode, int *xkb_err);
343
344extern _X_EXPORT int _XkbLookupKeyboard(DeviceIntPtr *pDev,
345 int id,
346 ClientPtr client,
347 Mask access_mode, int *xkb_err);
348
349extern _X_EXPORT int _XkbLookupBellDevice(DeviceIntPtr *pDev,
350 int id,
351 ClientPtr client,
352 Mask access_mode, int *xkb_err);
353
354extern _X_EXPORT int _XkbLookupLedDevice(DeviceIntPtr *pDev,
355 int id,
356 ClientPtr client,
357 Mask access_mode, int *xkb_err);
358
359extern _X_EXPORT int _XkbLookupButtonDevice(DeviceIntPtr *pDev,
360 int id,
361 ClientPtr client,
362 Mask access_mode, int *xkb_err);
363
364extern _X_EXPORT XkbDescPtr XkbAllocKeyboard(void
365 );
366
367extern _X_EXPORT Status XkbAllocClientMap(XkbDescPtr /* xkb */ ,
368 unsigned int /* which */ ,
369 unsigned int /* nTypes */
370 );
371
372extern _X_EXPORT Status XkbAllocServerMap(XkbDescPtr /* xkb */ ,
373 unsigned int /* which */ ,
374 unsigned int /* nNewActions */
375 );
376
377extern _X_EXPORT void XkbFreeClientMap(XkbDescPtr /* xkb */ ,
378 unsigned int /* what */ ,
379 Bool /* freeMap */
380 );
381
382extern _X_EXPORT void XkbFreeServerMap(XkbDescPtr /* xkb */ ,
383 unsigned int /* what */ ,
384 Bool /* freeMap */
385 );
386
387extern _X_EXPORT Status XkbAllocIndicatorMaps(XkbDescPtr /* xkb */
388 );
389
390extern _X_EXPORT Status XkbAllocCompatMap(XkbDescPtr /* xkb */ ,
391 unsigned int /* which */ ,
392 unsigned int /* nInterpret */
393 );
394
395extern _X_EXPORT Status XkbAllocNames(XkbDescPtr /* xkb */ ,
396 unsigned int /* which */ ,
397 int /* nTotalRG */ ,
398 int /* nTotalAliases */
399 );
400
401extern _X_EXPORT Status XkbAllocControls(XkbDescPtr /* xkb */ ,
402 unsigned int /* which */
403 );
404
405extern _X_EXPORT Status XkbCopyKeyTypes(XkbKeyTypePtr /* from */ ,
406 XkbKeyTypePtr /* into */ ,
407 int /* num_types */
408 );
409
410extern _X_EXPORT Status XkbResizeKeyType(XkbDescPtr /* xkb */ ,
411 int /* type_ndx */ ,
412 int /* map_count */ ,
413 Bool /* want_preserve */ ,
414 int /* new_num_lvls */
415 );
416
417extern _X_EXPORT void XkbFreeKeyboard(XkbDescPtr /* xkb */ ,
418 unsigned int /* which */ ,
419 Bool /* freeDesc */
420 );
421
422extern _X_EXPORT void XkbFreeComponentNames(XkbComponentNamesPtr /* names */ ,
423 Bool /* freeNames */
424 );
425
426extern _X_EXPORT void XkbSetActionKeyMods(XkbDescPtr /* xkb */ ,
427 XkbAction * /* act */ ,
428 unsigned int /* mods */
429 );
430
431extern _X_EXPORT unsigned int XkbMaskForVMask(XkbDescPtr /* xkb */ ,
432 unsigned int /* vmask */
433 );
434
435extern _X_EXPORT Bool XkbVirtualModsToReal(XkbDescPtr /* xkb */ ,
436 unsigned int /* virtua_mask */ ,
437 unsigned int * /* mask_rtrn */
438 );
439
440extern _X_EXPORT unsigned int XkbAdjustGroup(int /* group */ ,
441 XkbControlsPtr /* ctrls */
442 );
443
444extern _X_EXPORT KeySym *XkbResizeKeySyms(XkbDescPtr /* xkb */ ,
445 int /* key */ ,
446 int /* needed */
447 );
448
449extern _X_EXPORT XkbAction *XkbResizeKeyActions(XkbDescPtr /* xkb */ ,
450 int /* key */ ,
451 int /* needed */
452 );
453
454extern _X_EXPORT void XkbUpdateKeyTypesFromCore(DeviceIntPtr /* pXDev */ ,
455 KeySymsPtr /* syms */ ,
456 KeyCode /* first */ ,
457 CARD8 /* num */ ,
458 XkbChangesPtr /* pChanges */
459 );
460
461extern _X_EXPORT void XkbUpdateDescActions(XkbDescPtr /* xkb */ ,
462 KeyCode /* first */ ,
463 CARD8 /* num */ ,
464 XkbChangesPtr /* changes */
465 );
466
467extern _X_EXPORT void XkbUpdateActions(DeviceIntPtr /* pXDev */ ,
468 KeyCode /* first */ ,
469 CARD8 /* num */ ,
470 XkbChangesPtr /* pChanges */ ,
471 unsigned int * /* needChecksRtrn */ ,
472 XkbEventCausePtr /* cause */
473 );
474
475extern _X_EXPORT KeySymsPtr XkbGetCoreMap(DeviceIntPtr /* keybd */
476 );
477
478extern _X_EXPORT void XkbApplyMappingChange(DeviceIntPtr /* pXDev */ ,
479 KeySymsPtr /* map */ ,
480 KeyCode /* firstKey */ ,
481 CARD8 /* num */ ,
482 CARD8 * /* modmap */ ,
483 ClientPtr /* client */
484 );
485
486extern _X_EXPORT void XkbSetIndicators(DeviceIntPtr /* pXDev */ ,
487 CARD32 /* affect */ ,
488 CARD32 /* values */ ,
489 XkbEventCausePtr /* cause */
490 );
491
492extern _X_EXPORT void XkbUpdateIndicators(DeviceIntPtr /* keybd */ ,
493 CARD32 /* changed */ ,
494 Bool /* check_edevs */ ,
495 XkbChangesPtr /* pChanges */ ,
496 XkbEventCausePtr /* cause */
497 );
498
499extern _X_EXPORT XkbSrvLedInfoPtr XkbAllocSrvLedInfo(DeviceIntPtr /* dev */ ,
500 KbdFeedbackPtr /* kf */ ,
501 LedFeedbackPtr /* lf */ ,
502 unsigned int /* needed_parts */
503 );
504
505extern _X_EXPORT XkbSrvLedInfoPtr XkbCopySrvLedInfo(DeviceIntPtr /* dev */ ,
506 XkbSrvLedInfoPtr /* src */ ,
507 KbdFeedbackPtr /* kf */ ,
508 LedFeedbackPtr /* lf */
509 );
510
511extern _X_EXPORT XkbSrvLedInfoPtr XkbFindSrvLedInfo(DeviceIntPtr /* dev */ ,
512 unsigned int /* class */ ,
513 unsigned int /* id */ ,
514 unsigned int /* needed_parts */
515 );
516
517extern _X_EXPORT void XkbApplyLedNameChanges(DeviceIntPtr /* dev */ ,
518 XkbSrvLedInfoPtr /* sli */ ,
519 unsigned int /* changed_names */ ,
520 xkbExtensionDeviceNotify * /* ed */
521 ,
522 XkbChangesPtr /* changes */ ,
523 XkbEventCausePtr /* cause */
524 );
525
526extern _X_EXPORT void XkbApplyLedMapChanges(DeviceIntPtr /* dev */ ,
527 XkbSrvLedInfoPtr /* sli */ ,
528 unsigned int /* changed_maps */ ,
529 xkbExtensionDeviceNotify * /* ed */
530 ,
531 XkbChangesPtr /* changes */ ,
532 XkbEventCausePtr /* cause */
533 );
534
535extern _X_EXPORT void XkbApplyLedStateChanges(DeviceIntPtr /* dev */ ,
536 XkbSrvLedInfoPtr /* sli */ ,
537 unsigned int /* changed_leds */ ,
538 xkbExtensionDeviceNotify *
539 /* ed */ ,
540 XkbChangesPtr /* changes */ ,
541 XkbEventCausePtr /* cause */
542 );
543
544extern _X_EXPORT void XkbFlushLedEvents(DeviceIntPtr /* dev */ ,
545 DeviceIntPtr /* kbd */ ,
546 XkbSrvLedInfoPtr /* sli */ ,
547 xkbExtensionDeviceNotify * /* ed */ ,
548 XkbChangesPtr /* changes */ ,
549 XkbEventCausePtr /* cause */
550 );
551
552extern _X_EXPORT unsigned int XkbIndicatorsToUpdate(DeviceIntPtr /* dev */ ,
553 unsigned long
554 /* state_changes */ ,
555 Bool /* enabled_ctrl_changes */
556 );
557
558extern _X_EXPORT void XkbComputeDerivedState(XkbSrvInfoPtr /* xkbi */
559 );
560
561extern _X_EXPORT void XkbCheckSecondaryEffects(XkbSrvInfoPtr /* xkbi */ ,
562 unsigned int /* which */ ,
563 XkbChangesPtr /* changes */ ,
564 XkbEventCausePtr /* cause */
565 );
566
567extern _X_EXPORT void XkbCheckIndicatorMaps(DeviceIntPtr /* dev */ ,
568 XkbSrvLedInfoPtr /* sli */ ,
569 unsigned int /* which */
570 );
571
572extern _X_EXPORT unsigned int XkbStateChangedFlags(XkbStatePtr /* old */ ,
573 XkbStatePtr /* new */
574 );
575
576extern _X_EXPORT void XkbSendStateNotify(DeviceIntPtr /* kbd */ ,
577 xkbStateNotify * /* pSN */
578 );
579
580extern _X_EXPORT void XkbSendMapNotify(DeviceIntPtr /* kbd */ ,
581 xkbMapNotify * /* ev */
582 );
583
584extern _X_EXPORT int XkbComputeControlsNotify(DeviceIntPtr /* kbd */ ,
585 XkbControlsPtr /* old */ ,
586 XkbControlsPtr /* new */ ,
587 xkbControlsNotify * /* pCN */ ,
588 Bool /* forceCtrlProc */
589 );
590
591extern _X_EXPORT void XkbSendControlsNotify(DeviceIntPtr /* kbd */ ,
592 xkbControlsNotify * /* ev */
593 );
594
595extern _X_EXPORT void XkbSendCompatMapNotify(DeviceIntPtr /* kbd */ ,
596 xkbCompatMapNotify * /* ev */
597 );
598
599extern _X_EXPORT void XkbHandleBell(BOOL force,
600 BOOL eventOnly,
601 DeviceIntPtr kbd,
602 CARD8 percent,
603 void *ctrl,
604 CARD8 class,
605 Atom name,
606 WindowPtr pWin,
607 ClientPtr pClient
608 );
609
610extern _X_EXPORT void XkbSendAccessXNotify(DeviceIntPtr /* kbd */ ,
611 xkbAccessXNotify * /* pEv */
612 );
613
614extern _X_EXPORT void XkbSendNamesNotify(DeviceIntPtr /* kbd */ ,
615 xkbNamesNotify * /* ev */
616 );
617
618extern _X_EXPORT void XkbSendActionMessage(DeviceIntPtr /* kbd */ ,
619 xkbActionMessage * /* ev */
620 );
621
622extern _X_EXPORT void XkbSendExtensionDeviceNotify(DeviceIntPtr /* kbd */ ,
623 ClientPtr /* client */ ,
624 xkbExtensionDeviceNotify * /* ev */
625 );
626
627extern _X_EXPORT void XkbSendNotification(DeviceIntPtr /* kbd */ ,
628 XkbChangesPtr /* pChanges */ ,
629 XkbEventCausePtr /* cause */
630 );
631
632extern _X_EXPORT void XkbProcessKeyboardEvent(DeviceEvent * /* event */ ,
633 DeviceIntPtr /* keybd */
634 );
635
636extern _X_EXPORT void XkbHandleActions(DeviceIntPtr /* dev */ ,
637 DeviceIntPtr /* kbd */ ,
638 DeviceEvent * /* event */
639 );
640
641extern void XkbPushLockedStateToSlaves(DeviceIntPtr /* master */,
642 int /* evtype */,
643 int /* key */);
644
645extern _X_EXPORT Bool XkbEnableDisableControls(XkbSrvInfoPtr /* xkbi */ ,
646 unsigned long /* change */ ,
647 unsigned long /* newValues */ ,
648 XkbChangesPtr /* changes */ ,
649 XkbEventCausePtr /* cause */
650 );
651
652extern _X_EXPORT void AccessXInit(DeviceIntPtr /* dev */
653 );
654
655extern _X_EXPORT Bool AccessXFilterPressEvent(DeviceEvent * /* event */ ,
656 DeviceIntPtr /* keybd */
657 );
658
659extern _X_EXPORT Bool AccessXFilterReleaseEvent(DeviceEvent * /* event */ ,
660 DeviceIntPtr /* keybd */
661 );
662
663extern _X_EXPORT void AccessXCancelRepeatKey(XkbSrvInfoPtr /* xkbi */ ,
664 KeyCode /* key */
665 );
666
667extern _X_EXPORT void AccessXComputeCurveFactor(XkbSrvInfoPtr /* xkbi */ ,
668 XkbControlsPtr /* ctrls */
669 );
670
671extern _X_EXPORT XkbInterestPtr XkbFindClientResource(DevicePtr /* inDev */ ,
672 ClientPtr /* client */
673 );
674
675extern _X_EXPORT XkbInterestPtr XkbAddClientResource(DevicePtr /* inDev */ ,
676 ClientPtr /* client */ ,
677 XID /* id */
678 );
679
680extern _X_EXPORT int XkbRemoveResourceClient(DevicePtr /* inDev */ ,
681 XID /* id */
682 );
683
684extern _X_EXPORT int XkbDDXAccessXBeep(DeviceIntPtr /* dev */ ,
685 unsigned int /* what */ ,
686 unsigned int /* which */
687 );
688
689extern _X_EXPORT int XkbDDXUsesSoftRepeat(DeviceIntPtr /* dev */
690 );
691
692extern _X_EXPORT void XkbDDXKeybdCtrlProc(DeviceIntPtr /* dev */ ,
693 KeybdCtrl * /* ctrl */
694 );
695
696extern _X_EXPORT void XkbDDXChangeControls(DeviceIntPtr /* dev */ ,
697 XkbControlsPtr /* old */ ,
698 XkbControlsPtr /* new */
699 );
700
701extern _X_EXPORT void XkbDDXUpdateDeviceIndicators(DeviceIntPtr /* dev */ ,
702 XkbSrvLedInfoPtr /* sli */ ,
703 CARD32 /* newState */
704 );
705
706extern _X_EXPORT int XkbDDXTerminateServer(DeviceIntPtr /* dev */ ,
707 KeyCode /* key */ ,
708 XkbAction * /* act */
709 );
710
711extern _X_EXPORT int XkbDDXSwitchScreen(DeviceIntPtr /* dev */ ,
712 KeyCode /* key */ ,
713 XkbAction * /* act */
714 );
715
716extern _X_EXPORT int XkbDDXPrivate(DeviceIntPtr /* dev */ ,
717 KeyCode /* key */ ,
718 XkbAction * /* act */
719 );
720
721extern _X_EXPORT void XkbDisableComputedAutoRepeats(DeviceIntPtr /* pXDev */ ,
722 unsigned int /* key */
723 );
724
725extern _X_EXPORT void XkbSetRepeatKeys(DeviceIntPtr /* pXDev */ ,
726 int /* key */ ,
727 int /* onoff */
728 );
729
730extern _X_EXPORT int XkbLatchModifiers(DeviceIntPtr /* pXDev */ ,
731 CARD8 /* mask */ ,
732 CARD8 /* latches */
733 );
734
735extern _X_EXPORT int XkbLatchGroup(DeviceIntPtr /* pXDev */ ,
736 int /* group */
737 );
738
739extern _X_EXPORT void XkbClearAllLatchesAndLocks(DeviceIntPtr /* dev */ ,
740 XkbSrvInfoPtr /* xkbi */ ,
741 Bool /* genEv */ ,
742 XkbEventCausePtr /* cause */
743 );
744
745extern _X_EXPORT void XkbInitRules(XkbRMLVOSet * /* rmlvo */,
746 const char * /* rules */,
747 const char * /* model */,
748 const char * /* layout */,
749 const char * /* variant */,
750 const char * /* options */
751 ) ;
752
753extern _X_EXPORT void XkbGetRulesDflts(XkbRMLVOSet * /* rmlvo */
754 );
755
756extern _X_EXPORT void XkbFreeRMLVOSet(XkbRMLVOSet * /* rmlvo */ ,
757 Bool /* freeRMLVO */
758 );
759
760extern _X_EXPORT void XkbSetRulesDflts(XkbRMLVOSet * /* rmlvo */
761 );
762
763extern _X_EXPORT void XkbDeleteRulesDflts(void
764 );
765
766extern _X_EXPORT void XkbDeleteRulesUsed(void
767 );
768
769extern _X_EXPORT int SProcXkbDispatch(ClientPtr /* client */
770 );
771
772extern _X_EXPORT XkbGeometryPtr XkbLookupNamedGeometry(DeviceIntPtr /* dev */ ,
773 Atom /* name */ ,
774 Bool * /* shouldFree */
775 );
776
777extern _X_EXPORT void XkbConvertCase(KeySym /* sym */ ,
778 KeySym * /* lower */ ,
779 KeySym * /* upper */
780 );
781
782extern _X_EXPORT Status XkbChangeKeycodeRange(XkbDescPtr /* xkb */ ,
783 int /* minKC */ ,
784 int /* maxKC */ ,
785 XkbChangesPtr /* changes */
786 );
787
788extern _X_EXPORT void XkbFreeSrvLedInfo(XkbSrvLedInfoPtr /* sli */
789 );
790
791extern _X_EXPORT void XkbFreeInfo(XkbSrvInfoPtr /* xkbi */
792 );
793
794extern _X_EXPORT Status XkbChangeTypesOfKey(XkbDescPtr /* xkb */ ,
795 int /* key */ ,
796 int /* nGroups */ ,
797 unsigned int /* groups */ ,
798 int * /* newTypesIn */ ,
799 XkbMapChangesPtr /* changes */
800 );
801
802extern _X_EXPORT int XkbKeyTypesForCoreSymbols(XkbDescPtr /* xkb */ ,
803 int /* map_width */ ,
804 KeySym * /* core_syms */ ,
805 unsigned int /* protected */ ,
806 int * /* types_inout */ ,
807 KeySym * /* xkb_syms_rtrn */
808 );
809
810extern _X_EXPORT Bool XkbApplyCompatMapToKey(XkbDescPtr /* xkb */ ,
811 KeyCode /* key */ ,
812 XkbChangesPtr /* changes */
813 );
814
815extern _X_EXPORT Bool XkbApplyVirtualModChanges(XkbDescPtr /* xkb */ ,
816 unsigned int /* changed */ ,
817 XkbChangesPtr /* changes */
818 );
819
820extern _X_EXPORT void XkbSendNewKeyboardNotify(DeviceIntPtr /* kbd */ ,
821 xkbNewKeyboardNotify * /* pNKN */
822 );
823
824extern Bool XkbCopyKeymap(XkbDescPtr /* dst */ ,
825 XkbDescPtr /* src */ );
826
827extern _X_EXPORT Bool XkbCopyDeviceKeymap(DeviceIntPtr /* dst */,
828 DeviceIntPtr /* src */);
829
830extern _X_EXPORT Bool XkbDeviceApplyKeymap(DeviceIntPtr /* dst */ ,
831 XkbDescPtr /* src */ );
832
833extern void XkbFilterEvents(ClientPtr /* pClient */ ,
834 int /* nEvents */ ,
835 xEvent * /* xE */ );
836
837extern int XkbGetEffectiveGroup(XkbSrvInfoPtr /* xkbi */ ,
838 XkbStatePtr /* xkbstate */ ,
839 CARD8 /* keycode */ );
840
841extern void XkbMergeLockedPtrBtns(DeviceIntPtr /* master */ );
842
843extern void XkbFakeDeviceButton(DeviceIntPtr /* dev */ ,
844 int /* press */ ,
845 int /* button */ );
846
847extern _X_EXPORT void XkbCopyControls(XkbDescPtr /* dst */ ,
848 XkbDescPtr /* src */ );
849
850#include "xkbfile.h"
851#include "xkbrules.h"
852
853#define _XkbListKeycodes 0
854#define _XkbListTypes 1
855#define _XkbListCompat 2
856#define _XkbListSymbols 3
857#define _XkbListGeometry 4
858#define _XkbListNumComponents 5
859
860extern _X_EXPORT unsigned int XkbDDXLoadKeymapByNames(DeviceIntPtr /* keybd */ ,
861 XkbComponentNamesPtr
862 /* names */ ,
863 unsigned int /* want */ ,
864 unsigned int /* need */ ,
865 XkbDescPtr *
866 /* finfoRtrn */ ,
867 char *
868 /* keymapNameRtrn */ ,
869 int /* keymapNameRtrnLen */
870 );
871
872extern _X_EXPORT Bool XkbDDXNamesFromRules(DeviceIntPtr /* keybd */ ,
873 const char * /* rules */ ,
874 XkbRF_VarDefsPtr /* defs */ ,
875 XkbComponentNamesPtr /* names */
876 );
877
878extern _X_EXPORT XkbDescPtr XkbCompileKeymap(DeviceIntPtr /* dev */ ,
879 XkbRMLVOSet * /* rmlvo */
880 );
881
882extern _X_EXPORT XkbDescPtr XkbCompileKeymapFromString(DeviceIntPtr dev,
883 const char *keymap,
884 int keymap_length);
885
886#endif /* _XKBSRV_H_ */
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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