XkbGetMap(3) - phpMan

Command: man perldoc info search(apropos)  


XkbGetMap(3)                              XKB FUNCTIONS                              XkbGetMap(3)



NAME
       XkbGetMap  -  Allocate  an XkbDescRec structure and populate it with the server's keyboard
       client map and server map

SYNOPSIS
       XkbDescPtr XkbGetMap (Display *display, unsigned int which, unsigned int device_spec);

ARGUMENTS
       - display
              connection to X server

       - which
              mask selecting subcomponents to populate

       - device_spec
              device_id, or XkbUseCoreKbd

DESCRIPTION
       Xkb provides two functions to obtain the keyboard mapping components from the server.  The
       first function, XkbGetMap, allocates an XkbDescRec structure, retrieves mapping components
       from the server, and stores them in the XkbDescRec structure it just allocated. The second
       function,  XkbGetUpdatedMap,  retrieves mapping components from the server and stores them
       in an XkbDescRec structure that has previously been allocated.

       To allocate an XkbDescRec structure and populate it with the server's keyboard client  map
       and  server  map,  use XkbGetMap. XkbGetMap is similar to XkbGetKeyboard, but is used only
       for obtaining the address of an XkbDescRec structure that is populated with keyboard  map-
       ping  components. It allows finer control over which substructures of the keyboard mapping
       components are to be populated.  XkbGetKeyboard always returns fully populated components,
       while XkbGetMap can be instructed to return a partially populated component.

       The  which  mask  is a bitwise inclusive OR of the masks defined in Table 14.1. Only those
       portions of the keyboard server map and the keyboard client maps  that  are  specified  in
       which are allocated and populated.

       In  addition to allocating and obtaining the server map and the client map, XkbGetMap also
       sets the device_spec, the min_key_code, and max_key_code fields of the  keyboard  descrip-
       tion.

       XkbGetMap  is  synchronous; it queries the server for the desired information, waits for a
       reply, and then returns. If successful, XkbGetMap returns  a  pointer  to  the  XkbDescRec
       structure it allocated. If unsuccessful, XkbGetMap returns NULL. When unsuccessful, one of
       the following protocol errors is also generated: BadAlloc (unable to allocate  the  XkbDe-
       scRec  structure),  BadValue (some mask bits in which are undefined), or BadImplementation
       (a compatible version of the Xkb extension is not available in the server).  To  free  the
       returned data, use XkbFreeKeyboard.

       Xkb  also  provides  convenience  functions  to get partial component definitions from the
       server. These functions are specified in the "convenience functions" column  in  Table  1.
       Refer to the sections listed in the table for more information on these functions.


                                     Table 1 Xkb Mapping Component Masks
                                          and Convenience Functions
       ------------------------------------------------------------------------------------------------
       Mask                             Value    Map      Fields        Convenience
                                                                        Functions
       ------------------------------------------------------------------------------------------------




       XkbKeyTypesMask                  (1<<0)   client   types         XkbGetKeyTypes
                                                          size_types    XkbResizeKeyType
                                                          num_types     XkbCopyKeyType
                                                                        XkbCopyKeyTypes
       XkbKeySymsMask                   (1<<1)   client   syms          XkbGetKeySyms
                                                          size_syms     XkbResizeKeySyms
                                                          num_syms      XkbChangeTypesOfKey
                                                          key_sym_map
       XkbModifierMapMask               (1<<2)   client   modmap        XkbGetKeyModifierMap
       XkbExplicitComponentsMask        (1<<3)   server   explicit      XkbGetKeyExplicitComponents
       XkbKeyActionsMask                (1<<4)   server   key_acts      XkbGetKeyActions
                                                          acts          XkbResizeKeyActions
                                                          num_acts
                                                          size_acts
       XkbKeyBehaviorsMask              (1<<5)   server   behaviors     XkbGetKeyBehaviors
       XkbVirtualModsMask               (1<<6)   server   vmods         XkbGetVirtualMods
       XkbVirtualModMapMask             (1<<7)   server   vmodmap       XkbGetVirtualModMap

       Xkb defines combinations of these masks for convenience:

          #define XkbResizableInfoMask   (XkbKeyTypesMask)
          #define XkbAllClientInfoMask   (XkbKeyTypesMask | XkbKeySymsMask |
                                          XkbModifierMapMask)
          #define XkbAllServerInfoMask   (XkbExplicitComponentsMask |
                                          XkbKeyActionsMask |
                                          XkbKeyBehaviorsMask |
                                          XkbVirtualModsMask |
                                          XkbVirtualModMapMask)
          #define XkbAllMapComponentsMask XkbAllClientInfoMask |
                                          XkbAllServerInfoMask)

       Key types, symbol maps, and actions are all interrelated: changes in one  require  changes
       in  the others. The convenience functions make it easier to edit these components and han-
       dle the interdependencies.


STRUCTURES
       The complete description of an Xkb keyboard is  given  by  an  XkbDescRec.  The  component
       structures in the XkbDescRec represent the major Xkb components.

       typedef struct {
          struct _XDisplay * display;      /* connection to X server */
          unsigned short     flags;        /* private to Xkb, do not modify */
          unsigned short     device_spec;  /* device of interest */
          KeyCode            min_key_code; /* minimum keycode for device */
          KeyCode            max_key_code; /* maximum keycode for device */
          XkbControlsPtr     ctrls;        /* controls */
          XkbServerMapPtr    server;       /* server keymap */
          XkbClientMapPtr    map;          /* client keymap */
          XkbIndicatorPtr    indicators;   /* indicator map */
          XkbNamesPtr        names;        /* names for all components */
          XkbCompatMapPtr    compat;       /* compatibility map */
          XkbGeometryPtr     geom;         /* physical geometry of keyboard */
       } XkbDescRec, *XkbDescPtr;

       The  display  field  points  to  an X display structure. The flags field is private to the
       library: modifying flags may yield unpredictable results. The device_spec field  specifies
       the device identifier of the keyboard input device, or XkbUseCoreKeyboard, which specifies
       the core keyboard device. The min_key_code and max_key_code fields specify the  least  and
       greatest keycode that can be returned by the keyboard.

       Each  structure  component  has a corresponding mask bit that is used in function calls to
       indicate that the structure should be manipulated in some manner, such as allocating it or
       freeing  it. These masks and their relationships to the fields in the XkbDescRec are shown
       in Table 2.


               Table 2 Mask Bits for XkbDescRec
       --------------------------------------------------
       Mask Bit               XkbDescRec Field   Value
       --------------------------------------------------

       XkbControlsMask        ctrls              (1L<<0)
       XkbServerMapMask       server             (1L<<1)
       XkbIClientMapMask      map                (1L<<2)
       XkbIndicatorMapMask    indicators         (1L<<3)
       XkbNamesMask           names              (1L<<4)
       XkbCompatMapMask       compat             (1L<<5)
       XkbGeometryMask        geom               (1L<<6)
       XkbAllComponentsMask   All Fields         (0x7f)

SEE ALSO
       XkbChangeTypesOfKey(3),   XkbCopyKeyType(3),   XkbCopyKeyTypes(3),    XkbFreeClientMap(3),
       XkbGetKeyActions(3),   XkbGetKeyBehaviors(3),  XkbGetKeyboard(3),  XkbGetKeyExplicitCompo-
       nents(3),  XkbGetKeyModifierMap(3),  XkbGetKeySyms(3),   XkbGetKeyTypes(3),   XkbGetUpdat-
       edMap(3),  XkbGetVirtualModMap(3),  XkbGetVirtualMods(3),  XkbResizeKeyActions(3),  XkbRe-
       sizeKeySyms(3), XkbResizeKeyType(3)








X Version 11                               libX11 1.6.7                              XkbGetMap(3)

Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2024-04-19 22:53 @3.142.53.68 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0!Valid CSS!