1 /* $Xorg: XKBlib.h,v 1.6 2000/08/17 19:45:03 cpqbld Exp $ */
2 /************************************************************
3 Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
5 Permission to use, copy, modify, and distribute this
6 software and its documentation for any purpose and without
7 fee is hereby granted, provided that the above copyright
8 notice appear in all copies and that both that copyright
9 notice and this permission notice appear in supporting
10 documentation, and that the name of Silicon Graphics not be
11 used in advertising or publicity pertaining to distribution
12 of the software without specific prior written permission.
13 Silicon Graphics makes no representation about the suitability
14 of this software for any purpose. It is provided "as is"
15 without any express or implied warranty.
17 SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
18 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
19 AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
20 GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
21 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
22 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
23 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
24 THE USE OR PERFORMANCE OF THIS SOFTWARE.
26 ********************************************************/
27 /* $XFree86: xc/lib/X11/XKBlib.h,v 3.5 2003/04/17 02:06:31 dawes Exp $ */
33 #include <X11/extensions/XKBstr.h>
35 typedef struct _XkbAnyEvent
{
36 int type
; /* XkbAnyEvent */
37 unsigned long serial
; /* # of last req processed by server */
38 Bool send_event
; /* is this from a SendEvent request? */
39 Display
* display
; /* Display the event was read from */
40 Time time
; /* milliseconds */
41 int xkb_type
; /* XKB event minor code */
42 unsigned int device
; /* device ID */
45 typedef struct _XkbNewKeyboardNotify
{
46 int type
; /* XkbAnyEvent */
47 unsigned long serial
; /* of last req processed by server */
48 Bool send_event
; /* is this from a SendEvent request? */
49 Display
* display
; /* Display the event was read from */
50 Time time
; /* milliseconds */
51 int xkb_type
; /* XkbNewKeyboardNotify */
52 int device
; /* device ID */
53 int old_device
; /* device ID of previous keyboard */
54 int min_key_code
; /* minimum key code */
55 int max_key_code
; /* maximum key code */
56 int old_min_key_code
;/* min key code of previous kbd */
57 int old_max_key_code
;/* max key code of previous kbd */
58 unsigned int changed
; /* changed aspects of the keyboard */
59 char req_major
; /* major and minor opcode of req */
60 char req_minor
; /* that caused change, if applicable */
61 } XkbNewKeyboardNotifyEvent
;
63 typedef struct _XkbMapNotifyEvent
{
64 int type
; /* XkbAnyEvent */
65 unsigned long serial
; /* of last req processed by server */
66 Bool send_event
; /* is this from a SendEvent request */
67 Display
* display
; /* Display the event was read from */
68 Time time
; /* milliseconds */
69 int xkb_type
; /* XkbMapNotify */
70 int device
; /* device ID */
71 unsigned int changed
; /* fields which have been changed */
72 unsigned int flags
; /* reserved */
73 int first_type
; /* first changed key type */
74 int num_types
; /* number of changed key types */
77 KeyCode first_key_sym
;
78 KeyCode first_key_act
;
79 KeyCode first_key_behavior
;
80 KeyCode first_key_explicit
;
81 KeyCode first_modmap_key
;
82 KeyCode first_vmodmap_key
;
85 int num_key_behaviors
;
89 unsigned int vmods
; /* mask of changed virtual mods */
92 typedef struct _XkbStateNotifyEvent
{
93 int type
; /* XkbAnyEvent */
94 unsigned long serial
; /* # of last req processed by server */
95 Bool send_event
; /* is this from a SendEvent request? */
96 Display
* display
; /* Display the event was read from */
97 Time time
; /* milliseconds */
98 int xkb_type
; /* XkbStateNotify */
99 int device
; /* device ID */
100 unsigned int changed
; /* mask of changed state components */
101 int group
; /* keyboard group */
102 int base_group
; /* base keyboard group */
103 int latched_group
; /* latched keyboard group */
104 int locked_group
; /* locked keyboard group */
105 unsigned int mods
; /* modifier state */
106 unsigned int base_mods
; /* base modifier state */
107 unsigned int latched_mods
; /* latched modifiers */
108 unsigned int locked_mods
; /* locked modifiers */
109 int compat_state
; /* compatibility state */
110 unsigned char grab_mods
; /* mods used for grabs */
111 unsigned char compat_grab_mods
;/* grab mods for non-XKB clients */
112 unsigned char lookup_mods
; /* mods sent to clients */
113 unsigned char compat_lookup_mods
; /* mods sent to non-XKB clients */
114 int ptr_buttons
; /* pointer button state */
115 KeyCode keycode
; /* keycode that caused the change */
116 char event_type
; /* KeyPress or KeyRelease */
117 char req_major
; /* Major opcode of request */
118 char req_minor
; /* Minor opcode of request */
119 } XkbStateNotifyEvent
;
121 typedef struct _XkbControlsNotify
{
122 int type
; /* XkbAnyEvent */
123 unsigned long serial
; /* of last req processed by server */
124 Bool send_event
; /* is this from a SendEvent request? */
125 Display
* display
; /* Display the event was read from */
126 Time time
; /* milliseconds */
127 int xkb_type
; /* XkbControlsNotify */
128 int device
; /* device ID */
129 unsigned int changed_ctrls
; /* controls with changed sub-values */
130 unsigned int enabled_ctrls
; /* controls currently enabled */
131 unsigned int enabled_ctrl_changes
;/* controls just {en,dis}abled */
132 int num_groups
; /* total groups on keyboard */
133 KeyCode keycode
; /* key that caused change or 0 */
134 char event_type
; /* type of event that caused change */
135 char req_major
; /* if keycode==0, major and minor */
136 char req_minor
; /* opcode of req that caused change */
137 } XkbControlsNotifyEvent
;
139 typedef struct _XkbIndicatorNotify
{
140 int type
; /* XkbAnyEvent */
141 unsigned long serial
; /* of last req processed by server */
142 Bool send_event
; /* is this from a SendEvent request? */
143 Display
* display
; /* Display the event was read from */
144 Time time
; /* milliseconds */
145 int xkb_type
; /* XkbIndicatorNotify */
146 int device
; /* device ID */
147 unsigned int changed
; /* indicators with new state or map */
148 unsigned int state
; /* current state of all indicators */
149 } XkbIndicatorNotifyEvent
;
151 typedef struct _XkbNamesNotify
{
152 int type
; /* XkbAnyEvent */
153 unsigned long serial
; /* of last req processed by server */
154 Bool send_event
; /* is this from a SendEvent request? */
155 Display
* display
; /* Display the event was read from */
156 Time time
; /* milliseconds */
157 int xkb_type
; /* XkbNamesNotify */
158 int device
; /* device ID */
159 unsigned int changed
; /* names that have changed */
160 int first_type
; /* first key type with new name */
161 int num_types
; /* number of key types with new names */
162 int first_lvl
; /* first key type new new level names */
163 int num_lvls
; /* # of key types w/new level names */
164 int num_aliases
; /* total number of key aliases*/
165 int num_radio_groups
;/* total number of radio groups */
166 unsigned int changed_vmods
; /* virtual modifiers with new names */
167 unsigned int changed_groups
; /* groups with new names */
168 unsigned int changed_indicators
;/* indicators with new names */
169 int first_key
; /* first key with new name */
170 int num_keys
; /* number of keys with new names */
171 } XkbNamesNotifyEvent
;
173 typedef struct _XkbCompatMapNotify
{
174 int type
; /* XkbAnyEvent */
175 unsigned long serial
; /* of last req processed by server */
176 Bool send_event
; /* is this from a SendEvent request? */
177 Display
* display
; /* Display the event was read from */
178 Time time
; /* milliseconds */
179 int xkb_type
; /* XkbCompatMapNotify */
180 int device
; /* device ID */
181 unsigned int changed_groups
; /* groups with new compat maps */
182 int first_si
; /* first new symbol interp */
183 int num_si
; /* number of new symbol interps */
184 int num_total_si
; /* total # of symbol interps */
185 } XkbCompatMapNotifyEvent
;
187 typedef struct _XkbBellNotify
{
188 int type
; /* XkbAnyEvent */
189 unsigned long serial
; /* of last req processed by server */
190 Bool send_event
; /* is this from a SendEvent request? */
191 Display
* display
; /* Display the event was read from */
192 Time time
; /* milliseconds */
193 int xkb_type
; /* XkbBellNotify */
194 int device
; /* device ID */
195 int percent
; /* requested volume as a % of maximum */
196 int pitch
; /* requested pitch in Hz */
197 int duration
; /* requested duration in useconds */
198 int bell_class
; /* (input extension) feedback class */
199 int bell_id
; /* (input extension) ID of feedback */
200 Atom name
; /* "name" of requested bell */
201 Window window
; /* window associated with event */
202 Bool event_only
; /* "event only" requested */
203 } XkbBellNotifyEvent
;
205 typedef struct _XkbActionMessage
{
206 int type
; /* XkbAnyEvent */
207 unsigned long serial
; /* of last req processed by server */
208 Bool send_event
; /* is this from a SendEvent request? */
209 Display
* display
; /* Display the event was read from */
210 Time time
; /* milliseconds */
211 int xkb_type
; /* XkbActionMessage */
212 int device
; /* device ID */
213 KeyCode keycode
; /* key that generated the event */
214 Bool press
; /* true if act caused by key press */
215 Bool key_event_follows
;/* true if key event also generated */
216 int group
; /* effective group */
217 unsigned int mods
; /* effective mods */
218 char message
[XkbActionMessageLength
+1];
219 /* message -- leave space for NUL */
220 } XkbActionMessageEvent
;
222 typedef struct _XkbAccessXNotify
{
223 int type
; /* XkbAnyEvent */
224 unsigned long serial
; /* of last req processed by server */
225 Bool send_event
; /* is this from a SendEvent request? */
226 Display
* display
; /* Display the event was read from */
227 Time time
; /* milliseconds */
228 int xkb_type
; /* XkbAccessXNotify */
229 int device
; /* device ID */
230 int detail
; /* XkbAXN_* */
231 int keycode
; /* key of event */
232 int sk_delay
; /* current slow keys delay */
233 int debounce_delay
; /* current debounce delay */
234 } XkbAccessXNotifyEvent
;
236 typedef struct _XkbExtensionDeviceNotify
{
237 int type
; /* XkbAnyEvent */
238 unsigned long serial
; /* of last req processed by server */
239 Bool send_event
; /* is this from a SendEvent request? */
240 Display
* display
; /* Display the event was read from */
241 Time time
; /* milliseconds */
242 int xkb_type
; /* XkbExtensionDeviceNotify */
243 int device
; /* device ID */
244 unsigned int reason
; /* reason for the event */
245 unsigned int supported
; /* mask of supported features */
246 unsigned int unsupported
; /* mask of unsupported features */
247 /* that some app tried to use */
248 int first_btn
; /* first button that changed */
249 int num_btns
; /* range of buttons changed */
250 unsigned int leds_defined
; /* indicators with names or maps */
251 unsigned int led_state
; /* current state of the indicators */
252 int led_class
; /* feedback class for led changes */
253 int led_id
; /* feedback id for led changes */
254 } XkbExtensionDeviceNotifyEvent
;
256 typedef union _XkbEvent
{
259 XkbNewKeyboardNotifyEvent new_kbd
;
260 XkbMapNotifyEvent map
;
261 XkbStateNotifyEvent state
;
262 XkbControlsNotifyEvent ctrls
;
263 XkbIndicatorNotifyEvent indicators
;
264 XkbNamesNotifyEvent names
;
265 XkbCompatMapNotifyEvent compat
;
266 XkbBellNotifyEvent bell
;
267 XkbActionMessageEvent message
;
268 XkbAccessXNotifyEvent accessx
;
269 XkbExtensionDeviceNotifyEvent device
;
273 typedef struct _XkbKbdDpyState XkbKbdDpyStateRec
,*XkbKbdDpyStatePtr
;
275 /* XkbOpenDisplay error codes */
276 #define XkbOD_Success 0
277 #define XkbOD_BadLibraryVersion 1
278 #define XkbOD_ConnectionRefused 2
279 #define XkbOD_NonXkbServer 3
280 #define XkbOD_BadServerVersion 4
282 /* Values for XlibFlags */
283 #define XkbLC_ForceLatin1Lookup (1<<0)
284 #define XkbLC_ConsumeLookupMods (1<<1)
285 #define XkbLC_AlwaysConsumeShiftAndLock (1<<2)
286 #define XkbLC_IgnoreNewKeyboards (1<<3)
287 #define XkbLC_ControlFallback (1<<4)
288 #define XkbLC_ConsumeKeysOnComposeFail (1<<29)
289 #define XkbLC_ComposeLED (1<<30)
290 #define XkbLC_BeepOnComposeFail (1<<31)
292 #define XkbLC_AllComposeControls (0xc0000000)
293 #define XkbLC_AllControls (0xc000001f)
297 extern Bool
XkbIgnoreExtension(
301 extern Display
*XkbOpenDisplay(
304 int * /* err_rtrn */,
305 int * /* major_rtrn */,
306 int * /* minor_rtrn */,
310 extern Bool
XkbQueryExtension(
312 int * /* opcodeReturn */,
313 int * /* eventBaseReturn */,
314 int * /* errorBaseReturn */,
315 int * /* majorRtrn */,
316 int * /* minorRtrn */
319 extern Bool
XkbUseExtension(
321 int * /* major_rtrn */,
322 int * /* minor_rtrn */
325 extern Bool
XkbLibraryVersion(
326 int * /* libMajorRtrn */,
327 int * /* libMinorRtrn */
330 extern unsigned int XkbSetXlibControls(
332 unsigned int /* affect */,
333 unsigned int /* values */
336 extern unsigned int XkbGetXlibControls(
340 extern unsigned int XkbXlibControlsImplemented(void);
342 typedef Atom (*XkbInternAtomFunc
)(
344 _Xconst
char * /* name */,
345 Bool
/* only_if_exists */
348 typedef char * (*XkbGetAtomNameFunc
)(
353 extern void XkbSetAtomFuncs(
354 XkbInternAtomFunc
/* getAtom */,
355 XkbGetAtomNameFunc
/* getName */
358 extern KeySym
XkbKeycodeToKeysym(
360 #if NeedWidePrototypes
361 unsigned int /* kc */,
369 extern unsigned int XkbKeysymToModifiers(
374 extern Bool
XkbLookupKeySym(
376 KeyCode
/* keycode */,
377 unsigned int /* modifiers */,
378 unsigned int * /* modifiers_return */,
379 KeySym
* /* keysym_return */
382 extern int XkbLookupKeyBinding(
384 KeySym
/* sym_rtrn */,
385 unsigned int /* mods */,
388 int * /* extra_rtrn */
391 extern Bool
XkbTranslateKeyCode(
392 XkbDescPtr
/* xkb */,
393 KeyCode
/* keycode */,
394 unsigned int /* modifiers */,
395 unsigned int * /* modifiers_return */,
396 KeySym
* /* keysym_return */
399 extern int XkbTranslateKeySym(
401 register KeySym
* /* sym_return */,
402 unsigned int /* modifiers */,
405 int * /* extra_rtrn */
408 extern Bool
XkbSetAutoRepeatRate(
410 unsigned int /* deviceSpec */,
411 unsigned int /* delay */,
412 unsigned int /* interval */
415 extern Bool
XkbGetAutoRepeatRate(
417 unsigned int /* deviceSpec */,
418 unsigned int * /* delayRtrn */,
419 unsigned int * /* intervalRtrn */
422 extern Bool
XkbChangeEnabledControls(
424 unsigned int /* deviceSpec */,
425 unsigned int /* affect */,
426 unsigned int /* values */
429 extern Bool
XkbDeviceBell(
432 int /* deviceSpec */,
439 extern Bool
XkbForceDeviceBell(
441 int /* deviceSpec */,
447 extern Bool
XkbDeviceBellEvent(
450 int /* deviceSpec */,
464 extern Bool
XkbForceBell(
469 extern Bool
XkbBellEvent(
476 extern Bool
XkbSelectEvents(
478 unsigned int /* deviceID */,
479 unsigned int /* affect */,
480 unsigned int /* values */
483 extern Bool
XkbSelectEventDetails(
485 unsigned int /* deviceID */,
486 unsigned int /* eventType */,
487 unsigned long /* affect */,
488 unsigned long /* details */
491 extern void XkbNoteMapChanges(
492 XkbMapChangesPtr
/* old */,
493 XkbMapNotifyEvent
* /* new */,
494 unsigned int /* wanted */
497 extern void XkbNoteNameChanges(
498 XkbNameChangesPtr
/* old */,
499 XkbNamesNotifyEvent
* /* new */,
500 unsigned int /* wanted */
503 extern Status
XkbGetIndicatorState(
505 unsigned int /* deviceSpec */,
506 unsigned int * /* pStateRtrn */
509 extern Status
XkbGetDeviceIndicatorState(
511 unsigned int /* deviceSpec */,
512 unsigned int /* ledClass */,
513 unsigned int /* ledID */,
514 unsigned int * /* pStateRtrn */
517 extern Status
XkbGetIndicatorMap(
519 unsigned long /* which */,
520 XkbDescPtr
/* desc */
523 extern Bool
XkbSetIndicatorMap(
525 unsigned long /* which */,
526 XkbDescPtr
/* desc */
529 #define XkbNoteIndicatorMapChanges(o,n,w) \
530 ((o)->map_changes|=((n)->map_changes&(w)))
531 #define XkbNoteIndicatorStateChanges(o,n,w)\
532 ((o)->state_changes|=((n)->state_changes&(w)))
533 #define XkbGetIndicatorMapChanges(d,x,c) \
534 (XkbGetIndicatorMap((d),(c)->map_changes,x)
535 #define XkbChangeIndicatorMaps(d,x,c) \
536 (XkbSetIndicatorMap((d),(c)->map_changes,x))
538 extern Bool
XkbGetNamedIndicator(
541 int * /* pNdxRtrn */,
542 Bool
* /* pStateRtrn */,
543 XkbIndicatorMapPtr
/* pMapRtrn */,
544 Bool
* /* pRealRtrn */
547 extern Bool
XkbGetNamedDeviceIndicator(
549 unsigned int /* deviceSpec */,
550 unsigned int /* ledClass */,
551 unsigned int /* ledID */,
553 int * /* pNdxRtrn */,
554 Bool
* /* pStateRtrn */,
555 XkbIndicatorMapPtr
/* pMapRtrn */,
556 Bool
* /* pRealRtrn */
559 extern Bool
XkbSetNamedIndicator(
562 Bool
/* changeState */,
564 Bool
/* createNewMap */,
565 XkbIndicatorMapPtr
/* pMap */
568 extern Bool
XkbSetNamedDeviceIndicator(
570 unsigned int /* deviceSpec */,
571 unsigned int /* ledClass */,
572 unsigned int /* ledID */,
574 Bool
/* changeState */,
576 Bool
/* createNewMap */,
577 XkbIndicatorMapPtr
/* pMap */
580 extern Bool
XkbLockModifiers(
582 unsigned int /* deviceSpec */,
583 unsigned int /* affect */,
584 unsigned int /* values */
587 extern Bool
XkbLatchModifiers(
589 unsigned int /* deviceSpec */,
590 unsigned int /* affect */,
591 unsigned int /* values */
594 extern Bool
XkbLockGroup(
596 unsigned int /* deviceSpec */,
597 unsigned int /* group */
600 extern Bool
XkbLatchGroup(
602 unsigned int /* deviceSpec */,
603 unsigned int /* group */
606 extern Bool
XkbSetServerInternalMods(
608 unsigned int /* deviceSpec */,
609 unsigned int /* affectReal */,
610 unsigned int /* realValues */,
611 unsigned int /* affectVirtual */,
612 unsigned int /* virtualValues */
615 extern Bool
XkbSetIgnoreLockMods(
617 unsigned int /* deviceSpec */,
618 unsigned int /* affectReal */,
619 unsigned int /* realValues */,
620 unsigned int /* affectVirtual */,
621 unsigned int /* virtualValues */
625 extern Bool
XkbVirtualModsToReal(
626 XkbDescPtr
/* xkb */,
627 unsigned int /* virtual_mask */,
628 unsigned int * /* mask_rtrn */
631 extern Bool
XkbComputeEffectiveMap(
632 XkbDescPtr
/* xkb */,
633 XkbKeyTypePtr
/* type */,
634 unsigned char * /* map_rtrn */
637 extern Status
XkbInitCanonicalKeyTypes(
638 XkbDescPtr
/* xkb */,
639 unsigned int /* which */,
643 extern XkbDescPtr
XkbAllocKeyboard(
647 extern void XkbFreeKeyboard(
648 XkbDescPtr
/* xkb */,
649 unsigned int /* which */,
653 extern Status
XkbAllocClientMap(
654 XkbDescPtr
/* xkb */,
655 unsigned int /* which */,
656 unsigned int /* nTypes */
659 extern Status
XkbAllocServerMap(
660 XkbDescPtr
/* xkb */,
661 unsigned int /* which */,
662 unsigned int /* nActions */
665 extern void XkbFreeClientMap(
666 XkbDescPtr
/* xkb */,
667 unsigned int /* what */,
671 extern void XkbFreeServerMap(
672 XkbDescPtr
/* xkb */,
673 unsigned int /* what */,
677 extern XkbKeyTypePtr
XkbAddKeyType(
678 XkbDescPtr
/* xkb */,
681 Bool
/* want_preserve */,
685 extern Status
XkbAllocIndicatorMaps(
689 extern void XkbFreeIndicatorMaps(
693 extern XkbDescPtr
XkbGetMap(
695 unsigned int /* which */,
696 unsigned int /* deviceSpec */
699 extern Status
XkbGetUpdatedMap(
701 unsigned int /* which */,
702 XkbDescPtr
/* desc */
705 extern Status
XkbGetMapChanges(
707 XkbDescPtr
/* xkb */,
708 XkbMapChangesPtr
/* changes */
712 extern Status
XkbRefreshKeyboardMapping(
713 XkbMapNotifyEvent
* /* event */
716 extern Status
XkbGetKeyTypes(
718 unsigned int /* first */,
719 unsigned int /* num */,
723 extern Status
XkbGetKeySyms(
725 unsigned int /* first */,
726 unsigned int /* num */,
730 extern Status
XkbGetKeyActions(
732 unsigned int /* first */,
733 unsigned int /* num */,
737 extern Status
XkbGetKeyBehaviors(
739 unsigned int /* firstKey */,
740 unsigned int /* nKeys */,
741 XkbDescPtr
/* desc */
744 extern Status
XkbGetVirtualMods(
746 unsigned int /* which */,
747 XkbDescPtr
/* desc */
750 extern Status
XkbGetKeyExplicitComponents(
752 unsigned int /* firstKey */,
753 unsigned int /* nKeys */,
754 XkbDescPtr
/* desc */
757 extern Status
XkbGetKeyModifierMap(
759 unsigned int /* firstKey */,
760 unsigned int /* nKeys */,
761 XkbDescPtr
/* desc */
764 extern Status
XkbGetKeyVirtualModMap(
766 unsigned int /* first */,
767 unsigned int /* num */,
771 extern Status
XkbAllocControls(
772 XkbDescPtr
/* xkb */,
773 unsigned int /* which*/
776 extern void XkbFreeControls(
777 XkbDescPtr
/* xkb */,
778 unsigned int /* which */,
782 extern Status
XkbGetControls(
784 unsigned long /* which */,
785 XkbDescPtr
/* desc */
788 extern Bool
XkbSetControls(
790 unsigned long /* which */,
791 XkbDescPtr
/* desc */
794 extern void XkbNoteControlsChanges(
795 XkbControlsChangesPtr
/* old */,
796 XkbControlsNotifyEvent
* /* new */,
797 unsigned int /* wanted */
800 #define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x)
801 #define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x)
803 extern Status
XkbAllocCompatMap(
804 XkbDescPtr
/* xkb */,
805 unsigned int /* which */,
806 unsigned int /* nInterpret */
809 extern void XkbFreeCompatMap(
810 XkbDescPtr
/* xkb */,
811 unsigned int /* which */,
815 extern Status
XkbGetCompatMap(
817 unsigned int /* which */,
821 extern Bool
XkbSetCompatMap(
823 unsigned int /* which */,
824 XkbDescPtr
/* xkb */,
825 Bool
/* updateActions */
828 extern XkbSymInterpretPtr
XkbAddSymInterpret(
829 XkbDescPtr
/* xkb */,
830 XkbSymInterpretPtr
/* si */,
831 Bool
/* updateMap */,
832 XkbChangesPtr
/* changes */
835 extern Status
XkbAllocNames(
836 XkbDescPtr
/* xkb */,
837 unsigned int /* which */,
839 int /* nTotalAliases */
842 extern Status
XkbGetNames(
844 unsigned int /* which */,
845 XkbDescPtr
/* desc */
848 extern Bool
XkbSetNames(
850 unsigned int /* which */,
851 unsigned int /* firstType */,
852 unsigned int /* nTypes */,
853 XkbDescPtr
/* desc */
856 extern Bool
XkbChangeNames(
858 XkbDescPtr
/* xkb */,
859 XkbNameChangesPtr
/* changes */
862 extern void XkbFreeNames(
863 XkbDescPtr
/* xkb */,
864 unsigned int /* which */,
869 extern Status
XkbGetState(
871 unsigned int /* deviceSpec */,
872 XkbStatePtr
/* rtrnState */
875 extern Bool
XkbSetMap(
877 unsigned int /* which */,
878 XkbDescPtr
/* desc */
881 extern Bool
XkbChangeMap(
883 XkbDescPtr
/* desc */,
884 XkbMapChangesPtr
/* changes */
887 extern Bool
XkbSetDetectableAutoRepeat(
889 Bool
/* detectable */,
890 Bool
* /* supported */
893 extern Bool
XkbGetDetectableAutoRepeat(
895 Bool
* /* supported */
898 extern Bool
XkbSetAutoResetControls(
900 unsigned int /* changes */,
901 unsigned int * /* auto_ctrls */,
902 unsigned int * /* auto_values */
905 extern Bool
XkbGetAutoResetControls(
907 unsigned int * /* auto_ctrls */,
908 unsigned int * /* auto_ctrl_values */
911 extern Bool
XkbSetPerClientControls(
913 unsigned int /* change */,
914 unsigned int * /* values */
917 extern Bool
XkbGetPerClientControls(
919 unsigned int * /* ctrls */
922 extern Status
XkbCopyKeyType(
923 XkbKeyTypePtr
/* from */,
924 XkbKeyTypePtr
/* into */
927 extern Status
XkbCopyKeyTypes(
928 XkbKeyTypePtr
/* from */,
929 XkbKeyTypePtr
/* into */,
933 extern Status
XkbResizeKeyType(
934 XkbDescPtr
/* xkb */,
937 Bool
/* want_preserve */,
938 int /* new_num_lvls */
941 extern KeySym
*XkbResizeKeySyms(
942 XkbDescPtr
/* desc */,
947 extern XkbAction
*XkbResizeKeyActions(
948 XkbDescPtr
/* desc */,
953 extern Status
XkbChangeTypesOfKey(
954 XkbDescPtr
/* xkb */,
956 int /* num_groups */,
957 unsigned int /* groups */,
958 int * /* newTypes */,
959 XkbMapChangesPtr
/* pChanges */
962 extern Status
XkbChangeKeycodeRange(
963 XkbDescPtr
/* xkb */,
966 XkbChangesPtr
/* changes */
969 /***====================================================================***/
971 extern XkbComponentListPtr
XkbListComponents(
973 unsigned int /* deviceSpec */,
974 XkbComponentNamesPtr
/* ptrns */,
975 int * /* max_inout */
978 extern void XkbFreeComponentList(
979 XkbComponentListPtr
/* list */
982 extern XkbDescPtr
XkbGetKeyboard(
984 unsigned int /* which */,
985 unsigned int /* deviceSpec */
988 extern XkbDescPtr
XkbGetKeyboardByName(
990 unsigned int /* deviceSpec */,
991 XkbComponentNamesPtr
/* names */,
992 unsigned int /* want */,
993 unsigned int /* need */,
997 /***====================================================================***/
999 extern int XkbKeyTypesForCoreSymbols( /* returns # of groups */
1000 XkbDescPtr
/* xkb */, /* keyboard device */
1001 int /* map_width */, /* width of core KeySym array */
1002 KeySym
* /* core_syms */, /* always mapWidth symbols */
1003 unsigned int /* protected */, /* explicit key types */
1004 int * /* types_inout */, /* always four type indices */
1005 KeySym
* /* xkb_syms_rtrn */ /* must have enough space */
1008 extern Bool
XkbApplyCompatMapToKey( /* False only on error */
1009 XkbDescPtr
/* xkb */, /* keymap to be edited */
1010 KeyCode
/* key */, /* key to be updated */
1011 XkbChangesPtr
/* changes */ /* resulting changes to map */
1014 extern Bool
XkbUpdateMapFromCore( /* False only on error */
1015 XkbDescPtr
/* xkb */, /* XKB keyboard to be edited */
1016 KeyCode
/* first_key */, /* first changed key */
1017 int /* num_keys */, /* number of changed keys */
1018 int /* map_width */, /* width of core keymap */
1019 KeySym
* /* core_keysyms */, /* symbols from core keymap */
1020 XkbChangesPtr
/* changes */ /* resulting changes */
1023 /***====================================================================***/
1025 extern XkbDeviceLedInfoPtr
XkbAddDeviceLedInfo(
1026 XkbDeviceInfoPtr
/* devi */,
1027 unsigned int /* ledClass */,
1028 unsigned int /* ledId */
1031 extern Status
XkbResizeDeviceButtonActions(
1032 XkbDeviceInfoPtr
/* devi */,
1033 unsigned int /* newTotal */
1036 extern XkbDeviceInfoPtr
XkbAllocDeviceInfo(
1037 unsigned int /* deviceSpec */,
1038 unsigned int /* nButtons */,
1039 unsigned int /* szLeds */
1042 extern void XkbFreeDeviceInfo(
1043 XkbDeviceInfoPtr
/* devi */,
1044 unsigned int /* which */,
1048 extern void XkbNoteDeviceChanges(
1049 XkbDeviceChangesPtr
/* old */,
1050 XkbExtensionDeviceNotifyEvent
* /* new */,
1051 unsigned int /* wanted */
1054 extern XkbDeviceInfoPtr
XkbGetDeviceInfo(
1055 Display
* /* dpy */,
1056 unsigned int /* which */,
1057 unsigned int /* deviceSpec */,
1058 unsigned int /* ledClass */,
1059 unsigned int /* ledID */
1062 extern Status
XkbGetDeviceInfoChanges(
1063 Display
* /* dpy */,
1064 XkbDeviceInfoPtr
/* devi */,
1065 XkbDeviceChangesPtr
/* changes */
1068 extern Status
XkbGetDeviceButtonActions(
1069 Display
* /* dpy */,
1070 XkbDeviceInfoPtr
/* devi */,
1072 unsigned int /* first */,
1073 unsigned int /* nBtns */
1076 extern Status
XkbGetDeviceLedInfo(
1077 Display
* /* dpy */,
1078 XkbDeviceInfoPtr
/* devi */,
1079 unsigned int /* ledClass (class, XIDflt, XIAll) */,
1080 unsigned int /* ledId (id, XIDflt, XIAll) */,
1081 unsigned int /* which (XkbXI_Indicator{Names,Map}Mask */
1084 extern Bool
XkbSetDeviceInfo(
1085 Display
* /* dpy */,
1086 unsigned int /* which */,
1087 XkbDeviceInfoPtr
/* devi */
1090 extern Bool
XkbChangeDeviceInfo(
1092 XkbDeviceInfoPtr
/* desc */,
1093 XkbDeviceChangesPtr
/* changes */
1096 extern Bool
XkbSetDeviceLedInfo(
1097 Display
* /* dpy */,
1098 XkbDeviceInfoPtr
/* devi */,
1099 unsigned int /* ledClass */,
1100 unsigned int /* ledID */,
1101 unsigned int /* which */
1104 extern Bool
XkbSetDeviceButtonActions(
1105 Display
* /* dpy */,
1106 XkbDeviceInfoPtr
/* devi */,
1107 unsigned int /* first */,
1108 unsigned int /* nBtns */
1111 /***====================================================================***/
1113 extern char XkbToControl(
1117 /***====================================================================***/
1119 extern Bool
XkbSetDebuggingFlags(
1120 Display
* /* dpy */,
1121 unsigned int /* mask */,
1122 unsigned int /* flags */,
1124 unsigned int /* ctrls_mask */,
1125 unsigned int /* ctrls */,
1126 unsigned int * /* rtrn_flags */,
1127 unsigned int * /* rtrn_ctrls */
1130 extern Bool
XkbApplyVirtualModChanges(
1131 XkbDescPtr
/* xkb */,
1132 unsigned int /* changed */,
1133 XkbChangesPtr
/* changes */
1136 extern Bool
XkbUpdateActionVirtualMods(
1137 XkbDescPtr
/* xkb */,
1138 XkbAction
* /* act */,
1139 unsigned int /* changed */
1142 extern void XkbUpdateKeyTypeVirtualMods(
1143 XkbDescPtr
/* xkb */,
1144 XkbKeyTypePtr
/* type */,
1145 unsigned int /* changed */,
1146 XkbChangesPtr
/* changes */
1151 #endif /* _XKBLIB_H_ */