home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / evbl0627.zip / everblue_20010627.zip / x11 / XKBlib.h < prev    next >
C/C++ Source or Header  |  1999-11-02  |  35KB  |  1,336 lines

  1. /* $XConsortium: XKBlib.h /main/17 1996/03/01 14:30:14 kaleb $ */
  2. /************************************************************
  3. Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
  4.  
  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.
  16.  
  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.
  25.  
  26. ********************************************************/
  27.  
  28. #ifndef _XKBLIB_H_
  29. #define _XKBLIB_H_
  30.  
  31. #include <X11/extensions/XKBstr.h>
  32.  
  33. typedef struct _XkbAnyEvent {
  34.     int         type;        /* XkbAnyEvent */
  35.     unsigned long     serial;        /* # of last req processed by server */
  36.     Bool         send_event;    /* is this from a SendEvent request? */
  37.     Display *    display;    /* Display the event was read from */
  38.     Time         time;        /* milliseconds */
  39.     int         xkb_type;    /* XKB event minor code */
  40.     unsigned int     device;        /* device ID */
  41. } XkbAnyEvent;
  42.  
  43. typedef struct _XkbNewKeyboardNotify {
  44.     int         type;        /* XkbAnyEvent */
  45.     unsigned long     serial;        /* of last req processed by server */
  46.     Bool         send_event;    /* is this from a SendEvent request? */
  47.     Display *    display;    /* Display the event was read from */
  48.     Time         time;        /* milliseconds */
  49.     int         xkb_type;    /* XkbNewKeyboardNotify */
  50.     int         device;        /* device ID */
  51.     int         old_device;    /* device ID of previous keyboard */
  52.     int         min_key_code;    /* minimum key code */
  53.     int        max_key_code;    /* maximum key code */
  54.     int         old_min_key_code;/* min key code of previous kbd */
  55.     int        old_max_key_code;/* max key code of previous kbd */
  56.     unsigned int    changed;    /* changed aspects of the keyboard */
  57.     char         req_major;    /* major and minor opcode of req */
  58.     char         req_minor;    /* that caused change, if applicable */
  59. } XkbNewKeyboardNotifyEvent;
  60.  
  61. typedef struct _XkbMapNotifyEvent {
  62.     int         type;        /* XkbAnyEvent */
  63.     unsigned long     serial;        /* of last req processed by server */
  64.     Bool         send_event;    /* is this from a SendEvent request */
  65.     Display *    display;    /* Display the event was read from */
  66.     Time         time;        /* milliseconds */
  67.     int         xkb_type;    /* XkbMapNotify */
  68.     int         device;        /* device ID */
  69.     unsigned int     changed;    /* fields which have been changed */
  70.     unsigned int     flags;        /* reserved */
  71.     int         first_type;    /* first changed key type */
  72.     int         num_types;    /* number of changed key types */
  73.     KeyCode        min_key_code;
  74.     KeyCode        max_key_code;
  75.     KeyCode        first_key_sym;
  76.     KeyCode        first_key_act;
  77.     KeyCode        first_key_behavior;
  78.     KeyCode        first_key_explicit;
  79.     KeyCode        first_modmap_key;  
  80.     KeyCode        first_vmodmap_key;
  81.     int        num_key_syms;
  82.     int        num_key_acts;
  83.     int        num_key_behaviors;
  84.     int        num_key_explicit;
  85.     int         num_modmap_keys;
  86.     int         num_vmodmap_keys;
  87.     unsigned int     vmods;        /* mask of changed virtual mods */
  88. } XkbMapNotifyEvent;
  89.  
  90. typedef struct _XkbStateNotifyEvent {
  91.     int         type;        /* XkbAnyEvent */
  92.     unsigned long     serial;        /* # of last req processed by server */
  93.     Bool         send_event;    /* is this from a SendEvent request? */
  94.     Display *    display;    /* Display the event was read from */
  95.     Time         time;        /* milliseconds */
  96.     int         xkb_type;    /* XkbStateNotify */
  97.     int         device;        /* device ID */
  98.     unsigned int     changed;    /* mask of changed state components */
  99.     int         group;        /* keyboard group */
  100.     int         base_group;    /* base keyboard group */
  101.     int         latched_group;    /* latched keyboard group */
  102.     int         locked_group;    /* locked keyboard group */
  103.     unsigned int    mods;        /* modifier state */
  104.     unsigned int     base_mods;    /* base modifier state */
  105.     unsigned int    latched_mods;    /* latched modifiers */
  106.     unsigned int    locked_mods;    /* locked modifiers */
  107.     int         compat_state;    /* compatibility state */
  108.     unsigned char    grab_mods;    /* mods used for grabs */
  109.     unsigned char    compat_grab_mods;/* grab mods for non-XKB clients */
  110.     unsigned char    lookup_mods;    /* mods sent to clients */
  111.     unsigned char    compat_lookup_mods; /* mods sent to non-XKB clients */
  112.     int         ptr_buttons;    /* pointer button state */
  113.     KeyCode        keycode;    /* keycode that caused the change */
  114.     char         event_type;    /* KeyPress or KeyRelease */
  115.     char         req_major;    /* Major opcode of request */
  116.     char         req_minor;    /* Minor opcode of request */
  117. } XkbStateNotifyEvent;
  118.  
  119. typedef struct _XkbControlsNotify {
  120.     int         type;        /* XkbAnyEvent */
  121.     unsigned long     serial;        /* of last req processed by server */
  122.     Bool         send_event;    /* is this from a SendEvent request? */
  123.     Display *    display;    /* Display the event was read from */
  124.     Time         time;        /* milliseconds */
  125.     int         xkb_type;    /* XkbControlsNotify */
  126.     int         device;        /* device ID */
  127.     unsigned int    changed_ctrls;    /* controls with changed sub-values */
  128.     unsigned int     enabled_ctrls;    /* controls currently enabled */
  129.     unsigned int    enabled_ctrl_changes;/* controls just {en,dis}abled */
  130.     int         num_groups;    /* total groups on keyboard */
  131.     KeyCode        keycode;    /* key that caused change or 0 */
  132.     char         event_type;    /* type of event that caused change */
  133.     char         req_major;    /* if keycode==0, major and minor */
  134.     char         req_minor;    /* opcode of req that caused change */
  135. } XkbControlsNotifyEvent;
  136.  
  137. typedef struct _XkbIndicatorNotify {
  138.     int         type;        /* XkbAnyEvent */
  139.     unsigned long     serial;        /* of last req processed by server */
  140.     Bool         send_event;    /* is this from a SendEvent request? */
  141.     Display *    display;    /* Display the event was read from */
  142.     Time         time;        /* milliseconds */
  143.     int         xkb_type;    /* XkbIndicatorNotify */
  144.     int         device;        /* device ID */
  145.     unsigned int    changed;    /* indicators with new state or map */
  146.     unsigned int    state;         /* current state of all indicators */
  147. } XkbIndicatorNotifyEvent;
  148.  
  149. typedef struct _XkbNamesNotify {
  150.     int         type;        /* XkbAnyEvent */
  151.     unsigned long     serial;        /* of last req processed by server */
  152.     Bool         send_event;    /* is this from a SendEvent request? */
  153.     Display *    display;    /* Display the event was read from */
  154.     Time         time;        /* milliseconds */
  155.     int         xkb_type;    /* XkbNamesNotify */
  156.     int         device;        /* device ID */
  157.     unsigned int     changed;    /* names that have changed */
  158.     int         first_type;    /* first key type with new name */
  159.     int         num_types;    /* number of key types with new names */
  160.     int         first_lvl;    /* first key type new new level names */
  161.     int         num_lvls;    /* # of key types w/new level names */
  162.     int         num_aliases;    /* total number of key aliases*/
  163.     int         num_radio_groups;/* total number of radio groups */
  164.     unsigned int     changed_vmods;    /* virtual modifiers with new names */
  165.     unsigned int     changed_groups;    /* groups with new names */
  166.     unsigned int     changed_indicators;/* indicators with new names */
  167.     int        first_key;    /* first key with new name */
  168.     int        num_keys;    /* number of keys with new names */
  169. } XkbNamesNotifyEvent;
  170.  
  171. typedef struct _XkbCompatMapNotify {
  172.     int         type;        /* XkbAnyEvent */
  173.     unsigned long     serial;        /* of last req processed by server */
  174.     Bool         send_event;    /* is this from a SendEvent request? */
  175.     Display *    display;    /* Display the event was read from */
  176.     Time         time;        /* milliseconds */
  177.     int         xkb_type;    /* XkbCompatMapNotify */
  178.     int         device;        /* device ID */
  179.     unsigned int     changed_groups; /* groups with new compat maps */
  180.     int         first_si;    /* first new symbol interp */
  181.     int         num_si;        /* number of new symbol interps */
  182.     int         num_total_si;    /* total # of symbol interps */
  183. } XkbCompatMapNotifyEvent;
  184.  
  185. typedef struct _XkbBellNotify {
  186.     int         type;        /* XkbAnyEvent */
  187.     unsigned long     serial;        /* of last req processed by server */
  188.     Bool         send_event;    /* is this from a SendEvent request? */
  189.     Display *    display;    /* Display the event was read from */
  190.     Time         time;        /* milliseconds */
  191.     int         xkb_type;    /* XkbBellNotify */
  192.     int         device;        /* device ID */
  193.     int         percent;    /* requested volume as a % of maximum */
  194.     int         pitch;        /* requested pitch in Hz */
  195.     int         duration;    /* requested duration in useconds */
  196.     int         bell_class;    /* (input extension) feedback class */
  197.     int         bell_id;    /* (input extension) ID of feedback */
  198.     Atom         name;        /* "name" of requested bell */
  199.     Window         window;        /* window associated with event */
  200.     Bool        event_only;    /* "event only" requested */
  201. } XkbBellNotifyEvent;
  202.  
  203. typedef struct _XkbActionMessage {
  204.     int         type;        /* XkbAnyEvent */
  205.     unsigned long     serial;        /* of last req processed by server */
  206.     Bool         send_event;    /* is this from a SendEvent request? */
  207.     Display *    display;    /* Display the event was read from */
  208.     Time         time;        /* milliseconds */
  209.     int         xkb_type;    /* XkbActionMessage */
  210.     int         device;        /* device ID */
  211.     KeyCode        keycode;    /* key that generated the event */
  212.     Bool         press;        /* true if act caused by key press */
  213.     Bool         key_event_follows;/* true if key event also generated */
  214.     int        group;        /* effective group */
  215.     unsigned int    mods;        /* effective mods */
  216.     char         message[XkbActionMessageLength+1]; 
  217.                     /* message -- leave space for NUL */
  218. } XkbActionMessageEvent;
  219.  
  220. typedef struct _XkbAccessXNotify {
  221.     int         type;        /* XkbAnyEvent */
  222.     unsigned long     serial;        /* of last req processed by server */
  223.     Bool         send_event;    /* is this from a SendEvent request? */
  224.     Display *    display;    /* Display the event was read from */
  225.     Time         time;        /* milliseconds */
  226.     int         xkb_type;    /* XkbAccessXNotify */
  227.     int         device;        /* device ID */
  228.     int         detail;        /* XkbAXN_* */
  229.     int         keycode;    /* key of event */
  230.     int         sk_delay;    /* current slow keys delay */
  231.     int        debounce_delay;    /* current debounce delay */
  232. } XkbAccessXNotifyEvent;
  233.  
  234. typedef struct _XkbExtensionDeviceNotify {
  235.     int         type;        /* XkbAnyEvent */
  236.     unsigned long     serial;        /* of last req processed by server */
  237.     Bool         send_event;    /* is this from a SendEvent request? */
  238.     Display *    display;    /* Display the event was read from */
  239.     Time         time;        /* milliseconds */
  240.     int         xkb_type;    /* XkbExtensionDeviceNotify */
  241.     int         device;        /* device ID */
  242.     unsigned int    reason;        /* reason for the event */    
  243.     unsigned int    supported;    /* mask of supported features */    
  244.     unsigned int    unsupported;    /* mask of unsupported features */
  245.                     /* that some app tried to use */
  246.     int         first_btn;    /* first button that changed */
  247.     int         num_btns;    /* range of buttons changed */
  248.     unsigned int    leds_defined;   /* indicators with names or maps */
  249.     unsigned int    led_state;    /* current state of the indicators */
  250.     int        led_class;    /* feedback class for led changes */
  251.     int        led_id;       /* feedback id for led changes */
  252. } XkbExtensionDeviceNotifyEvent;
  253.  
  254. typedef union _XkbEvent {
  255.     int                type;
  256.     XkbAnyEvent            any;
  257.     XkbNewKeyboardNotifyEvent    new_kbd;
  258.     XkbMapNotifyEvent        map;
  259.     XkbStateNotifyEvent        state;
  260.     XkbControlsNotifyEvent        ctrls;
  261.     XkbIndicatorNotifyEvent     indicators;
  262.     XkbNamesNotifyEvent        names;
  263.     XkbCompatMapNotifyEvent        compat;
  264.     XkbBellNotifyEvent        bell;
  265.     XkbActionMessageEvent        message;
  266.     XkbAccessXNotifyEvent        accessx;
  267.     XkbExtensionDeviceNotifyEvent     device;
  268.     XEvent                core;
  269. } XkbEvent;
  270.  
  271. typedef struct    _XkbKbdDpyState    XkbKbdDpyStateRec,*XkbKbdDpyStatePtr;
  272.  
  273.     /* XkbOpenDisplay error codes */
  274. #define    XkbOD_Success        0
  275. #define    XkbOD_BadLibraryVersion    1
  276. #define    XkbOD_ConnectionRefused    2
  277. #define    XkbOD_NonXkbServer    3
  278. #define    XkbOD_BadServerVersion    4
  279.  
  280.     /* Values for XlibFlags */
  281. #define    XkbLC_ForceLatin1Lookup        (1<<0)
  282. #define    XkbLC_ConsumeLookupMods        (1<<1)
  283. #define    XkbLC_AlwaysConsumeShiftAndLock (1<<2)
  284. #define    XkbLC_IgnoreNewKeyboards    (1<<3)
  285. #define    XkbLC_ControlFallback        (1<<4)
  286. #define    XkbLC_ConsumeKeysOnComposeFail    (1<<29)
  287. #define    XkbLC_ComposeLED        (1<<30)
  288. #define    XkbLC_BeepOnComposeFail        (1<<31)
  289.  
  290. #define    XkbLC_AllComposeControls    (0xc0000000)
  291. #define    XkbLC_AllControls        (0xc000001f)
  292.  
  293. _XFUNCPROTOBEGIN
  294.  
  295. extern    Bool    XkbIgnoreExtension(
  296. #if NeedFunctionPrototypes
  297.     Bool            /* ignore */
  298. #endif
  299. );
  300.  
  301. extern    Display *XkbOpenDisplay(
  302. #if NeedFunctionPrototypes
  303.     char *            /* name */,
  304.     int *            /* ev_rtrn */,
  305.     int *            /* err_rtrn */,
  306.     int *            /* major_rtrn */,
  307.     int *            /* minor_rtrn */,
  308.     int *            /* reason */
  309. #endif
  310. );
  311.  
  312. extern    Bool    XkbQueryExtension(
  313. #if NeedFunctionPrototypes
  314.     Display *        /* dpy */,
  315.     int *            /* opcodeReturn */,
  316.     int *            /* eventBaseReturn */,
  317.     int *            /* errorBaseReturn */,
  318.     int *            /* majorRtrn */,
  319.     int *            /* minorRtrn */
  320. #endif
  321. );
  322.  
  323. extern    Bool    XkbUseExtension(
  324. #if NeedFunctionPrototypes
  325.     Display *        /* dpy */,
  326.     int *            /* major_rtrn */,
  327.     int *            /* minor_rtrn */
  328. #endif
  329. );
  330.  
  331. extern    Bool    XkbLibraryVersion(
  332. #if NeedFunctionPrototypes
  333.     int *            /* libMajorRtrn */,
  334.     int *            /* libMinorRtrn */
  335. #endif
  336. );
  337.  
  338. extern    unsigned int    XkbSetXlibControls(
  339. #if NeedFunctionPrototypes
  340.     Display*        /* dpy */,
  341.     unsigned int        /* affect */,
  342.     unsigned int        /* values */
  343. #endif
  344. );
  345.  
  346. extern    unsigned int    XkbGetXlibControls(
  347. #if NeedFunctionPrototypes
  348.     Display*        /* dpy */
  349. #endif
  350. );
  351.  
  352. typedef    Atom    (*XkbInternAtomFunc)(
  353. #if NeedFunctionPrototypes
  354.     Display *        /* dpy */,
  355.     _Xconst char *        /* name */,
  356.     Bool            /* only_if_exists */
  357. #endif
  358. );
  359.  
  360. typedef char *    (*XkbGetAtomNameFunc)(
  361. #if NeedFunctionPrototypes
  362.     Display *        /* dpy */,
  363.     Atom            /* atom */
  364. #endif
  365. );
  366.  
  367. extern void        XkbSetAtomFuncs(
  368. #if NeedFunctionPrototypes
  369.     XkbInternAtomFunc    /* getAtom */,
  370.     XkbGetAtomNameFunc    /* getName */
  371. #endif
  372. );
  373.  
  374. extern    KeySym XkbKeycodeToKeysym(
  375. #if NeedFunctionPrototypes
  376.         Display *    /* dpy */,
  377. #if NeedWidePrototypes
  378.          unsigned int     /* kc */,
  379. #else
  380.          KeyCode     /* kc */,
  381. #endif
  382.          int         /* group */,
  383.          int        /* level */
  384. #endif
  385. );
  386.  
  387. extern    unsigned int    XkbKeysymToModifiers(
  388. #if NeedFunctionPrototypes
  389.     Display *            /* dpy */,
  390.     KeySym             /* ks */
  391. #endif
  392. );
  393.  
  394. extern    Bool        XkbLookupKeySym(
  395. #if NeedFunctionPrototypes
  396.     Display *            /* dpy */,
  397.     KeyCode             /* keycode */,
  398.     unsigned int         /* modifiers */,
  399.     unsigned int *        /* modifiers_return */,
  400.     KeySym *            /* keysym_return */
  401. #endif
  402. );
  403.  
  404. extern    int        XkbLookupKeyBinding(
  405. #if NeedFunctionPrototypes
  406.     Display *            /* dpy */,
  407.     KeySym             /* sym_rtrn */,
  408.     unsigned int         /* mods */,
  409.     char *            /* buffer */,
  410.     int             /* nbytes */,
  411.     int *             /* extra_rtrn */
  412. #endif
  413. );
  414.  
  415. extern    Bool        XkbTranslateKeyCode(
  416. #if NeedFunctionPrototypes
  417.     XkbDescPtr            /* xkb */,
  418.     KeyCode             /* keycode */,
  419.     unsigned int         /* modifiers */,
  420.     unsigned int *        /* modifiers_return */,
  421.     KeySym *            /* keysym_return */
  422. #endif
  423. );
  424.  
  425. extern    int        XkbTranslateKeySym(
  426. #if NeedFunctionPrototypes
  427.     Display *            /* dpy */,
  428.     register KeySym *        /* sym_return */,
  429.     unsigned int         /* modifiers */,
  430.     char *            /* buffer */,
  431.     int             /* nbytes */,
  432.     int *            /* extra_rtrn */
  433. #endif
  434. );
  435.  
  436. extern    Bool    XkbSetAutoRepeatRate(
  437. #if NeedFunctionPrototypes
  438.     Display *        /* dpy */,
  439.     unsigned int        /* deviceSpec */,
  440.     unsigned int        /* delay */,
  441.     unsigned int        /* interval */
  442. #endif
  443. );
  444.  
  445. extern    Bool    XkbGetAutoRepeatRate(
  446. #if NeedFunctionPrototypes
  447.     Display *        /* dpy */,
  448.     unsigned int        /* deviceSpec */,
  449.     unsigned int *        /* delayRtrn */,
  450.     unsigned int *        /* intervalRtrn */
  451. #endif
  452. );
  453.  
  454. extern    Bool    XkbChangeEnabledControls(
  455. #if NeedFunctionPrototypes
  456.     Display *        /* dpy */,
  457.     unsigned int        /* deviceSpec */,
  458.     unsigned int        /* affect */,
  459.     unsigned int        /* values */
  460. #endif
  461. );
  462.  
  463. extern    Bool    XkbDeviceBell(
  464. #if NeedFunctionPrototypes
  465.     Display *        /* dpy */,
  466.     Window            /* win */,
  467.     int            /* deviceSpec */,
  468.     int            /* bellClass */,
  469.     int            /* bellID */,
  470.     int            /* percent */,
  471.     Atom            /* name */
  472. #endif
  473. );
  474.  
  475. extern    Bool    XkbForceDeviceBell(
  476. #if NeedFunctionPrototypes
  477.     Display *        /* dpy */,
  478.     int            /* deviceSpec */,
  479.     int            /* bellClass */,
  480.     int            /* bellID */,
  481.     int            /* percent */
  482. #endif
  483. );
  484.  
  485. extern    Bool    XkbDeviceBellEvent(
  486. #if NeedFunctionPrototypes
  487.     Display *        /* dpy */,
  488.     Window            /* win */,
  489.     int            /* deviceSpec */,
  490.     int            /* bellClass */,
  491.     int            /* bellID */,
  492.     int            /* percent */,
  493.     Atom            /* name */
  494. #endif
  495. );
  496.  
  497. extern    Bool    XkbBell(
  498. #if NeedFunctionPrototypes
  499.     Display *        /* dpy */,
  500.     Window            /* win */,
  501.     int            /* percent */,
  502.     Atom            /* name */
  503. #endif
  504. );
  505.  
  506. extern    Bool    XkbForceBell(
  507. #if NeedFunctionPrototypes
  508.     Display *        /* dpy */,
  509.     int            /* percent */
  510. #endif
  511. );
  512.  
  513. extern    Bool    XkbBellEvent(
  514. #if NeedFunctionPrototypes
  515.     Display *        /* dpy */,
  516.     Window            /* win */,
  517.     int            /* percent */,
  518.     Atom            /* name */
  519. #endif
  520. );
  521.  
  522. extern    Bool    XkbSelectEvents(
  523. #if NeedFunctionPrototypes
  524.     Display *        /* dpy */,
  525.     unsigned int        /* deviceID */,
  526.     unsigned int         /* affect */,
  527.     unsigned int         /* values */
  528. #endif
  529. );
  530.  
  531. extern    Bool    XkbSelectEventDetails(
  532. #if NeedFunctionPrototypes
  533.     Display *        /* dpy */,
  534.     unsigned int         /* deviceID */,
  535.     unsigned int         /* eventType */,
  536.     unsigned long         /* affect */,
  537.     unsigned long         /* details */
  538. #endif
  539. );
  540.  
  541. extern    void    XkbNoteMapChanges(
  542. #if NeedFunctionPrototypes
  543.     XkbMapChangesPtr        /* old */,
  544.     XkbMapNotifyEvent    *    /* new */,
  545.     unsigned int         /* wanted */
  546. #endif
  547. );
  548.  
  549. extern    void    XkbNoteNameChanges(
  550. #if NeedFunctionPrototypes
  551.     XkbNameChangesPtr        /* old */,
  552.     XkbNamesNotifyEvent    *    /* new */,
  553.     unsigned int         /* wanted */
  554. #endif
  555. );
  556.  
  557. extern    Status    XkbGetIndicatorState(
  558. #if NeedFunctionPrototypes
  559.     Display *        /* dpy */,
  560.     unsigned int        /* deviceSpec */,
  561.     unsigned int *        /* pStateRtrn */
  562. #endif
  563. );
  564.  
  565. extern    Status    XkbGetDeviceIndicatorState(
  566. #if NeedFunctionPrototypes
  567.     Display *        /* dpy */,
  568.     unsigned int        /* deviceSpec */,
  569.     unsigned int        /* ledClass */,
  570.     unsigned int        /* ledID */,
  571.     unsigned int *        /* pStateRtrn */
  572. #endif
  573. );
  574.  
  575. extern    Status     XkbGetIndicatorMap(
  576. #if NeedFunctionPrototypes
  577.     Display *        /* dpy */,
  578.     unsigned long        /* which */,
  579.     XkbDescPtr        /* desc */
  580. #endif
  581. );
  582.  
  583. extern    Bool     XkbSetIndicatorMap(
  584. #if NeedFunctionPrototypes
  585.     Display *        /* dpy */,
  586.     unsigned long         /* which */,
  587.     XkbDescPtr        /* desc */
  588. #endif
  589. );
  590.  
  591. #define    XkbNoteIndicatorMapChanges(o,n,w) \
  592.                 ((o)->map_changes|=((n)->map_changes&(w)))
  593. #define    XkbNoteIndicatorStateChanges(o,n,w)\
  594.                 ((o)->state_changes|=((n)->state_changes&(w)))
  595. #define    XkbGetIndicatorMapChanges(d,x,c) \
  596.                 (XkbGetIndicatorMap((d),(c)->map_changes,x)
  597. #define    XkbChangeIndicatorMaps(d,x,c) \
  598.                 (XkbSetIndicatorMap((d),(c)->map_changes,x))
  599.  
  600. extern    Bool    XkbGetNamedIndicator(
  601. #if NeedFunctionPrototypes
  602.     Display *        /* dpy */,
  603.     Atom            /* name */,
  604.     int *            /* pNdxRtrn */,
  605.     Bool *            /* pStateRtrn */,
  606.     XkbIndicatorMapPtr    /* pMapRtrn */,
  607.     Bool *            /* pRealRtrn */
  608. #endif
  609. );
  610.  
  611. extern    Bool    XkbGetNamedDeviceIndicator(
  612. #if NeedFunctionPrototypes
  613.     Display *        /* dpy */,
  614.     unsigned int        /* deviceSpec */,
  615.     unsigned int        /* ledClass */,
  616.     unsigned int        /* ledID */,
  617.     Atom            /* name */,
  618.     int *            /* pNdxRtrn */,
  619.     Bool *            /* pStateRtrn */,
  620.     XkbIndicatorMapPtr    /* pMapRtrn */,
  621.     Bool *            /* pRealRtrn */
  622. #endif
  623. );
  624.  
  625. extern    Bool    XkbSetNamedIndicator(
  626. #if NeedFunctionPrototypes
  627.     Display *        /* dpy */,
  628.     Atom            /* name */,
  629.     Bool            /* changeState */,
  630.     Bool             /* state */,
  631.     Bool            /* createNewMap */,
  632.     XkbIndicatorMapPtr    /* pMap */
  633. #endif
  634. );
  635.  
  636. extern    Bool    XkbSetNamedDeviceIndicator(
  637. #if NeedFunctionPrototypes
  638.     Display *        /* dpy */,
  639.     unsigned int        /* deviceSpec */,
  640.     unsigned int        /* ledClass */,
  641.     unsigned int        /* ledID */,
  642.     Atom            /* name */,
  643.     Bool            /* changeState */,
  644.     Bool             /* state */,
  645.     Bool            /* createNewMap */,
  646.     XkbIndicatorMapPtr    /* pMap */
  647. #endif
  648. );
  649.  
  650. extern    Bool    XkbLockModifiers(
  651. #if NeedFunctionPrototypes
  652.     Display *        /* dpy */,
  653.     unsigned int         /* deviceSpec */,
  654.     unsigned int         /* affect */,
  655.     unsigned int         /* values */
  656. #endif
  657. );
  658.  
  659. extern    Bool    XkbLatchModifiers(
  660. #if NeedFunctionPrototypes
  661.     Display *        /* dpy */,
  662.     unsigned int         /* deviceSpec */,
  663.     unsigned int         /* affect */,
  664.     unsigned int         /* values */
  665. #endif
  666. );
  667.  
  668. extern    Bool    XkbLockGroup(
  669. #if NeedFunctionPrototypes
  670.     Display *        /* dpy */,
  671.     unsigned int         /* deviceSpec */,
  672.     unsigned int         /* group */
  673. #endif
  674. );
  675.  
  676. extern    Bool    XkbLatchGroup(
  677. #if NeedFunctionPrototypes
  678.     Display *        /* dpy */,
  679.     unsigned int         /* deviceSpec */,
  680.     unsigned int         /* group */
  681. #endif
  682. );
  683.  
  684. extern    Bool    XkbSetServerInternalMods(
  685. #if NeedFunctionPrototypes
  686.     Display *        /* dpy */,
  687.     unsigned int         /* deviceSpec */,
  688.     unsigned int         /* affectReal */,
  689.     unsigned int         /* realValues */,
  690.     unsigned int        /* affectVirtual */,
  691.     unsigned int        /* virtualValues */
  692. #endif
  693. );
  694.  
  695. extern    Bool    XkbSetIgnoreLockMods(
  696. #if NeedFunctionPrototypes
  697.     Display *        /* dpy */,
  698.     unsigned int         /* deviceSpec */,
  699.     unsigned int         /* affectReal */,
  700.     unsigned int         /* realValues */,
  701.     unsigned int        /* affectVirtual */,
  702.     unsigned int        /* virtualValues */
  703. #endif
  704. );
  705.  
  706.  
  707. extern    Bool    XkbVirtualModsToReal(
  708. #if NeedFunctionPrototypes
  709.     XkbDescPtr        /* xkb */,
  710.     unsigned int        /* virtual_mask */,
  711.     unsigned int *        /* mask_rtrn */
  712. #endif
  713. );
  714.  
  715. extern    Bool    XkbComputeEffectiveMap(
  716. #if NeedFunctionPrototypes
  717.     XkbDescPtr         /* xkb */,
  718.     XkbKeyTypePtr        /* type */,
  719.     unsigned char *        /* map_rtrn */
  720. #endif
  721. );
  722.  
  723. extern    Status XkbInitCanonicalKeyTypes(
  724. #if NeedFunctionPrototypes
  725.     XkbDescPtr            /* xkb */,
  726.     unsigned int        /* which */,
  727.     int                /* keypadVMod */
  728. #endif
  729. );
  730.  
  731. extern    XkbDescPtr XkbAllocKeyboard(
  732. #if NeedFunctionPrototypes
  733.     void
  734. #endif
  735. );
  736.  
  737. extern    void    XkbFreeKeyboard(
  738. #if NeedFunctionPrototypes
  739.     XkbDescPtr        /* xkb */,
  740.     unsigned int        /* which */,
  741.     Bool            /* freeDesc */
  742. #endif
  743. );
  744.  
  745. extern    Status XkbAllocClientMap(
  746. #if NeedFunctionPrototypes
  747.     XkbDescPtr        /* xkb */,
  748.     unsigned int        /* which */,
  749.     unsigned int        /* nTypes */
  750. #endif
  751. );
  752.  
  753. extern    Status XkbAllocServerMap(
  754. #if NeedFunctionPrototypes
  755.     XkbDescPtr        /* xkb */,
  756.     unsigned int        /* which */,
  757.     unsigned int        /* nActions */
  758. #endif
  759. );
  760.  
  761. extern    void    XkbFreeClientMap(
  762. #if NeedFunctionPrototypes
  763.     XkbDescPtr            /* xkb */,
  764.     unsigned int        /* what */,
  765.     Bool            /* freeMap */
  766. #endif
  767. );
  768.  
  769. extern    void    XkbFreeServerMap(
  770. #if NeedFunctionPrototypes
  771.     XkbDescPtr            /* xkb */,
  772.     unsigned int        /* what */,
  773.     Bool            /* freeMap */
  774. #endif
  775. );
  776.  
  777. extern    XkbKeyTypePtr    XkbAddKeyType(
  778. #if NeedFunctionPrototypes
  779.     XkbDescPtr            /* xkb */,
  780.     Atom            /* name */,
  781.     int                /* map_count */,
  782.     Bool            /* want_preserve */,
  783.     int                /* num_lvls */
  784. #endif
  785. );
  786.  
  787. extern    Status XkbAllocIndicatorMaps(
  788. #if NeedFunctionPrototypes
  789.     XkbDescPtr        /* xkb */
  790. #endif
  791. );
  792.  
  793. extern    void XkbFreeIndicatorMaps(
  794. #if NeedFunctionPrototypes
  795.     XkbDescPtr            /* xkb */
  796. #endif
  797. );
  798.  
  799. extern    XkbDescPtr XkbGetMap(
  800. #if NeedFunctionPrototypes
  801.     Display *        /* dpy */,
  802.     unsigned int         /* which */,
  803.     unsigned int         /* deviceSpec */
  804. #endif
  805. );
  806.  
  807. extern    Status    XkbGetUpdatedMap(
  808. #if NeedFunctionPrototypes
  809.     Display *        /* dpy */,
  810.     unsigned int         /* which */,
  811.     XkbDescPtr        /* desc */
  812. #endif
  813. );
  814.  
  815. extern    Status    XkbGetMapChanges(
  816. #if NeedFunctionPrototypes
  817.     Display *            /* dpy */,
  818.     XkbDescPtr            /* xkb */,
  819.     XkbMapChangesPtr        /* changes */
  820. #endif
  821. );
  822.  
  823.  
  824. extern    Status    XkbRefreshKeyboardMapping(
  825. #if NeedFunctionPrototypes
  826.     XkbMapNotifyEvent *        /* event */
  827. #endif
  828. );
  829.  
  830. extern    Status    XkbGetKeyTypes(
  831. #if NeedFunctionPrototypes
  832.     Display *            /* dpy */,
  833.     unsigned int        /* first */,
  834.     unsigned int         /* num */,
  835.     XkbDescPtr            /* xkb */
  836. #endif
  837. );
  838.  
  839. extern    Status    XkbGetKeySyms(
  840. #if NeedFunctionPrototypes
  841.     Display *            /* dpy */,
  842.     unsigned int        /* first */,
  843.     unsigned int        /* num */,
  844.     XkbDescPtr            /* xkb */
  845. #endif
  846. );
  847.  
  848. extern    Status    XkbGetKeyActions(
  849. #if NeedFunctionPrototypes
  850.     Display *            /* dpy */,
  851.     unsigned int         /* first */,
  852.     unsigned int         /* num */,
  853.     XkbDescPtr            /* xkb */
  854. #endif
  855. );
  856.  
  857. extern    Status    XkbGetKeyBehaviors(
  858. #if NeedFunctionPrototypes
  859.     Display *        /* dpy */,
  860.     unsigned int         /* firstKey */,
  861.     unsigned int        /* nKeys */,
  862.     XkbDescPtr        /* desc */
  863. #endif
  864. );
  865.  
  866. extern    Status    XkbGetVirtualMods(
  867. #if NeedFunctionPrototypes
  868.     Display *        /* dpy */,
  869.     unsigned int         /* which */,
  870.     XkbDescPtr        /* desc */
  871. #endif
  872. );
  873.  
  874. extern    Status    XkbGetKeyExplicitComponents(
  875. #if NeedFunctionPrototypes
  876.     Display *        /* dpy */,
  877.     unsigned int         /* firstKey */,
  878.     unsigned int        /* nKeys */,
  879.     XkbDescPtr        /* desc */
  880. #endif
  881. );
  882.  
  883. extern    Status    XkbGetKeyModifierMap(
  884. #if NeedFunctionPrototypes
  885.     Display *        /* dpy */,
  886.     unsigned int         /* firstKey */,
  887.     unsigned int        /* nKeys */,
  888.     XkbDescPtr        /* desc */
  889. #endif
  890. );
  891.  
  892. extern    Status    XkbAllocControls(
  893. #if NeedFunctionPrototypes
  894.     XkbDescPtr        /* xkb */,
  895.     unsigned int        /* which*/
  896. #endif
  897. );
  898.  
  899. extern    void    XkbFreeControls(
  900. #if NeedFunctionPrototypes
  901.     XkbDescPtr        /* xkb */,
  902.     unsigned int        /* which */,
  903.     Bool            /* freeMap */
  904. #endif
  905. );
  906.  
  907. extern    Status    XkbGetControls(
  908. #if NeedFunctionPrototypes
  909.     Display *        /* dpy */,
  910.     unsigned long        /* which */,
  911.     XkbDescPtr        /* desc */
  912. #endif
  913. );
  914.  
  915. extern    Bool    XkbSetControls(
  916. #if NeedFunctionPrototypes
  917.     Display *        /* dpy */,
  918.     unsigned long        /* which */,
  919.     XkbDescPtr        /* desc */
  920. #endif
  921. );
  922.  
  923. extern    void    XkbNoteControlsChanges(
  924. #if NeedFunctionPrototypes
  925.     XkbControlsChangesPtr    /* old */,
  926.     XkbControlsNotifyEvent *    /* new */,
  927.     unsigned int         /* wanted */
  928. #endif
  929. );
  930.  
  931. #define    XkbGetControlsChanges(d,x,c)    XkbGetControls(d,(c)->changed_ctrls,x)
  932. #define    XkbChangeControls(d,x,c)    XkbSetControls(d,(c)->changed_ctrls,x)
  933.  
  934. extern    Status    XkbAllocCompatMap(
  935. #if NeedFunctionPrototypes
  936.     XkbDescPtr            /* xkb */,
  937.     unsigned int        /* which */,
  938.     unsigned int        /* nInterpret */
  939. #endif
  940. );
  941.  
  942. extern    void    XkbFreeCompatMap(
  943. #if NeedFunctionPrototypes
  944.     XkbDescPtr            /* xkb */,
  945.     unsigned int        /* which */,
  946.     Bool            /* freeMap */
  947. #endif
  948. );
  949.  
  950. extern Status XkbGetCompatMap(
  951. #if NeedFunctionPrototypes
  952.     Display *        /* dpy */,
  953.     unsigned int         /* which */,
  954.     XkbDescPtr         /* xkb */
  955. #endif
  956. );
  957.  
  958. extern Bool XkbSetCompatMap(
  959. #if NeedFunctionPrototypes
  960.     Display *        /* dpy */,
  961.     unsigned int         /* which */,
  962.     XkbDescPtr         /* xkb */,
  963.     Bool            /* updateActions */
  964. #endif
  965. );
  966.  
  967. extern    XkbSymInterpretPtr XkbAddSymInterpret(
  968. #if NeedFunctionPrototypes
  969.     XkbDescPtr        /* xkb */,
  970.     XkbSymInterpretPtr    /* si */,
  971.     Bool            /* updateMap */,
  972.     XkbChangesPtr        /* changes */
  973. #endif
  974. );
  975.  
  976. extern    Status XkbAllocNames(
  977. #if NeedFunctionPrototypes
  978.     XkbDescPtr        /* xkb */,
  979.     unsigned int        /* which */,
  980.     int            /* nTotalRG */,
  981.     int            /* nTotalAliases */
  982. #endif
  983. );
  984.  
  985. extern    Status    XkbGetNames(
  986. #if NeedFunctionPrototypes
  987.     Display *        /* dpy */,
  988.     unsigned int        /* which */,
  989.     XkbDescPtr        /* desc */
  990. #endif
  991. );
  992.  
  993. extern    Bool    XkbSetNames(
  994. #if NeedFunctionPrototypes
  995.     Display *        /* dpy */,
  996.     unsigned int        /* which */,
  997.     unsigned int        /* firstType */,
  998.     unsigned int        /* nTypes */,
  999.     XkbDescPtr        /* desc */
  1000. #endif
  1001. );
  1002.  
  1003. extern    Bool    XkbChangeNames(
  1004. #if NeedFunctionPrototypes
  1005.     Display *        /* dpy */,
  1006.     XkbDescPtr        /* xkb */,
  1007.     XkbNameChangesPtr    /* changes */
  1008. #endif
  1009. );
  1010.  
  1011. extern    void XkbFreeNames(
  1012. #if NeedFunctionPrototypes
  1013.     XkbDescPtr        /* xkb */,
  1014.     unsigned int        /* which */,
  1015.     Bool            /* freeMap */
  1016. #endif
  1017. );
  1018.  
  1019.  
  1020. extern    Status    XkbGetState(
  1021. #if NeedFunctionPrototypes
  1022.     Display *        /* dpy */,
  1023.     unsigned int         /* deviceSpec */,
  1024.     XkbStatePtr        /* rtrnState */
  1025. #endif
  1026. );
  1027.  
  1028. extern    Bool    XkbSetMap(
  1029. #if NeedFunctionPrototypes
  1030.     Display *        /* dpy */,
  1031.     unsigned int        /* which */,
  1032.     XkbDescPtr        /* desc */
  1033. #endif
  1034. );
  1035.  
  1036. extern    Bool    XkbChangeMap(
  1037. #if NeedFunctionPrototypes
  1038.     Display*        /* dpy */,
  1039.     XkbDescPtr        /* desc */,
  1040.     XkbMapChangesPtr    /* changes */
  1041. #endif
  1042. );
  1043.  
  1044. extern    Bool    XkbSetDetectableAutoRepeat(
  1045. #if NeedFunctionPrototypes
  1046.     Display *        /* dpy */,
  1047.     Bool            /* detectable */,
  1048.     Bool *            /* supported */
  1049. #endif
  1050. );
  1051.  
  1052. extern    Bool    XkbGetDetectableAutoRepeat(
  1053. #if NeedFunctionPrototypes
  1054.     Display *        /* dpy */,
  1055.     Bool *            /* supported */
  1056. #endif
  1057. );
  1058.  
  1059. extern    Bool    XkbSetAutoResetControls(
  1060. #if NeedFunctionPrototypes
  1061.     Display *            /* dpy */,
  1062.     unsigned int         /* changes */,
  1063.     unsigned int *        /* auto_ctrls */,
  1064.     unsigned int *        /* auto_values */
  1065. #endif
  1066. );
  1067.  
  1068. extern    Bool    XkbGetAutoResetControls(
  1069. #if NeedFunctionPrototypes
  1070.     Display *            /* dpy */,
  1071.     unsigned int *        /* auto_ctrls */,
  1072.     unsigned int *        /* auto_ctrl_values */
  1073. #endif
  1074. );
  1075.  
  1076. extern Status XkbCopyKeyType(
  1077. #if NeedFunctionPrototypes
  1078.     XkbKeyTypePtr    /* from */,
  1079.     XkbKeyTypePtr    /* into */
  1080. #endif
  1081. );
  1082.  
  1083. extern Status XkbCopyKeyTypes(
  1084. #if NeedFunctionPrototypes
  1085.     XkbKeyTypePtr    /* from */,
  1086.     XkbKeyTypePtr    /* into */,
  1087.     int            /* num_types */
  1088. #endif
  1089. );
  1090.  
  1091. extern    Status    XkbResizeKeyType(
  1092. #if NeedFunctionPrototypes
  1093.     XkbDescPtr        /* xkb */,
  1094.     int            /* type_ndx */,
  1095.     int            /* map_count */,
  1096.     Bool        /* want_preserve */,
  1097.     int            /* new_num_lvls */
  1098. #endif
  1099. );
  1100.  
  1101. extern    KeySym *XkbResizeKeySyms(
  1102. #if NeedFunctionPrototypes
  1103.     XkbDescPtr        /* desc */,
  1104.     int             /* forKey */,
  1105.     int             /* symsNeeded */
  1106. #endif
  1107. );
  1108.  
  1109. extern    XkbAction *XkbResizeKeyActions(
  1110. #if NeedFunctionPrototypes
  1111.     XkbDescPtr        /* desc */,
  1112.     int             /* forKey */,
  1113.     int             /* actsNeeded */
  1114. #endif
  1115. );
  1116.  
  1117. extern    Status XkbChangeTypesOfKey(
  1118. #if NeedFunctionPrototypes
  1119.     XkbDescPtr        /* xkb */,
  1120.     int             /* key */,
  1121.     int            /* num_groups */,
  1122.     unsigned int        /* groups */,
  1123.     int *            /* newTypes */,
  1124.     XkbMapChangesPtr    /* pChanges */
  1125. #endif
  1126. );
  1127.  
  1128. /***====================================================================***/
  1129.  
  1130. extern    XkbComponentListPtr    XkbListComponents(
  1131. #if NeedFunctionPrototypes
  1132.     Display *        /* dpy */,
  1133.     unsigned int        /* deviceSpec */,
  1134.     XkbComponentNamesPtr    /* ptrns */,
  1135.     int *            /* max_inout */
  1136. #endif
  1137. );
  1138.  
  1139. extern    void XkbFreeComponentList(
  1140. #if NeedFunctionPrototypes
  1141.     XkbComponentListPtr    /* list */
  1142. #endif
  1143. );
  1144.  
  1145. extern    XkbDescPtr XkbGetKeyboard(
  1146. #if NeedFunctionPrototypes
  1147.     Display *        /* dpy */,
  1148.     unsigned int         /* which */,
  1149.     unsigned int         /* deviceSpec */
  1150. #endif
  1151. );
  1152.  
  1153. extern XkbDescPtr XkbGetKeyboardByName(
  1154. #if NeedFunctionPrototypes
  1155.     Display *            /* dpy */,
  1156.     unsigned int        /* deviceSpec */,
  1157.     XkbComponentNamesPtr    /* names */,
  1158.     unsigned int         /* want */,
  1159.     unsigned int         /* need */,
  1160.     Bool            /* load */
  1161. #endif
  1162. );
  1163.  
  1164. /***====================================================================***/
  1165.  
  1166. extern    int    XkbKeyTypesForCoreSymbols(    /* returns # of groups */
  1167. #if NeedFunctionPrototypes
  1168.     XkbDescPtr    /* xkb */,            /* keyboard device */
  1169.     int        /* map_width */,        /* width of core KeySym array */
  1170.     KeySym *    /* core_syms */,        /* always mapWidth symbols */
  1171.     unsigned int    /* protected */,    /* explicit key types */
  1172.     int *    /* types_inout */,        /* always four type indices */
  1173.     KeySym *     /* xkb_syms_rtrn */        /* must have enough space */
  1174. #endif
  1175. );
  1176.  
  1177. extern    Bool    XkbApplyCompatMapToKey(    /* False only on error */
  1178. #if NeedFunctionPrototypes
  1179.     XkbDescPtr        /* xkb */,        /* keymap to be edited */
  1180.     KeyCode        /* key */,        /* key to be updated */
  1181.     XkbChangesPtr    /* changes */        /* resulting changes to map */
  1182. #endif
  1183. );
  1184.  
  1185. extern    Bool    XkbUpdateMapFromCore( /* False only on error */
  1186. #if NeedFunctionPrototypes
  1187.     XkbDescPtr        /* xkb */,        /* XKB keyboard to be edited */
  1188.     KeyCode        /* first_key */,    /* first changed key */
  1189.     int            /* num_keys */,     /* number of changed keys */
  1190.     int            /* map_width */,    /* width of core keymap */
  1191.     KeySym *        /* core_keysyms */,    /* symbols from core keymap */
  1192.     XkbChangesPtr    /* changes */        /* resulting changes */
  1193. #endif
  1194. );
  1195.  
  1196. /***====================================================================***/
  1197.  
  1198. extern    XkbDeviceLedInfoPtr    XkbAddDeviceLedInfo(
  1199. #if NeedFunctionPrototypes
  1200.     XkbDeviceInfoPtr    /* devi */,
  1201.     unsigned int        /* ledClass */,
  1202.     unsigned int        /* ledId */
  1203. #endif
  1204. );
  1205.  
  1206. extern    Status            XkbResizeDeviceButtonActions(
  1207. #if NeedFunctionPrototypes
  1208.     XkbDeviceInfoPtr    /* devi */,
  1209.     unsigned int        /* newTotal */
  1210. #endif
  1211. );
  1212.  
  1213. extern    XkbDeviceInfoPtr    XkbAllocDeviceInfo(
  1214. #if NeedFunctionPrototypes
  1215.     unsigned int        /* deviceSpec */,
  1216.     unsigned int        /* nButtons */,
  1217.     unsigned int        /* szLeds */
  1218. #endif
  1219. );
  1220.  
  1221. extern    void XkbFreeDeviceInfo(
  1222. #if NeedFunctionPrototypes
  1223.     XkbDeviceInfoPtr    /* devi */,
  1224.     unsigned int        /* which */,
  1225.     Bool            /* freeDevI */
  1226. #endif
  1227. );
  1228.  
  1229. extern    void    XkbNoteDeviceChanges(
  1230. #if NeedFunctionPrototypes
  1231.     XkbDeviceChangesPtr            /* old */,
  1232.     XkbExtensionDeviceNotifyEvent *    /* new */,
  1233.     unsigned int             /* wanted */
  1234. #endif
  1235. );
  1236.  
  1237. extern    XkbDeviceInfoPtr XkbGetDeviceInfo(
  1238. #if NeedFunctionPrototypes
  1239.     Display *        /* dpy */,
  1240.     unsigned int         /* which */,
  1241.     unsigned int        /* deviceSpec */,
  1242.     unsigned int        /* ledClass */,
  1243.     unsigned int        /* ledID */
  1244. #endif
  1245. );
  1246.  
  1247. extern    Status    XkbGetDeviceInfoChanges(
  1248. #if NeedFunctionPrototypes
  1249.     Display *        /* dpy */,
  1250.     XkbDeviceInfoPtr    /* devi */,
  1251.     XkbDeviceChangesPtr     /* changes */
  1252. #endif
  1253. );
  1254.  
  1255. extern    Status    XkbGetDeviceButtonActions(
  1256. #if NeedFunctionPrototypes
  1257.     Display *        /* dpy */,
  1258.     XkbDeviceInfoPtr    /* devi */,
  1259.     Bool            /* all */,
  1260.     unsigned int        /* first */,
  1261.     unsigned int        /* nBtns */
  1262. #endif
  1263. );
  1264.  
  1265. extern    Status    XkbGetDeviceLedInfo(
  1266. #if NeedFunctionPrototypes
  1267.     Display *        /* dpy */,
  1268.     XkbDeviceInfoPtr    /* devi */,
  1269.     unsigned int        /* ledClass (class, XIDflt, XIAll) */,
  1270.     unsigned int        /* ledId (id, XIDflt, XIAll) */,
  1271.     unsigned int        /* which (XkbXI_Indicator{Names,Map}Mask */
  1272. #endif
  1273. );
  1274.  
  1275. extern    Bool    XkbSetDeviceInfo(
  1276. #if NeedFunctionPrototypes
  1277.     Display *        /* dpy */,
  1278.     unsigned int        /* which */,
  1279.     XkbDeviceInfoPtr    /* devi */
  1280. #endif
  1281. );
  1282.  
  1283. extern    Bool    XkbChangeDeviceInfo(
  1284. #if NeedFunctionPrototypes
  1285.     Display*        /* dpy */,
  1286.     XkbDeviceInfoPtr    /* desc */,
  1287.     XkbDeviceChangesPtr    /* changes */
  1288. #endif
  1289. );
  1290.  
  1291. extern  Bool XkbSetDeviceLedInfo(
  1292. #if NeedFunctionPrototypes
  1293.     Display *        /* dpy */,
  1294.     XkbDeviceInfoPtr    /* devi */,
  1295.     unsigned int         /* ledClass */,
  1296.     unsigned int        /* ledID */,
  1297.     unsigned int        /* which */
  1298. #endif
  1299. );
  1300.  
  1301. extern    Bool XkbSetDeviceButtonActions(
  1302. #if NeedFunctionPrototypes
  1303.     Display *        /* dpy */,
  1304.     XkbDeviceInfoPtr    /* devi */,
  1305.     unsigned int        /* first */,
  1306.     unsigned int        /* nBtns */
  1307. #endif
  1308. );
  1309.  
  1310. /***====================================================================***/
  1311.  
  1312. extern    char    XkbToControl(
  1313. #if NeedFunctionPrototypes
  1314.     char        /* c */
  1315. #endif
  1316. );
  1317.  
  1318. /***====================================================================***/
  1319.  
  1320. extern    Bool XkbSetDebuggingFlags(
  1321. #if NeedFunctionPrototypes
  1322.     Display *        /* dpy */,
  1323.     unsigned int    /* mask */,
  1324.     unsigned int    /* flags */,
  1325.     char *        /* msg */,
  1326.     unsigned int    /* ctrls_mask */,
  1327.     unsigned int    /* ctrls */,
  1328.     unsigned int *    /* rtrn_flags */,
  1329.     unsigned int *    /* rtrn_ctrls */
  1330. #endif
  1331. );
  1332.  
  1333. _XFUNCPROTOEND
  1334.  
  1335. #endif /* _XKBLIB_H_ */
  1336.