Table of Contents


XkbAllocNames - Allocate symbolic names structures


Status XkbAllocNames
(XkbDescPtr xkb, unsigned int which, int num_rg, int num_key_aliases);


- xkb
keyboard description for which names are to be allocated
- which
mask of names to be allocated
- num_rg
total number of radio group names needed
- num_key_aliases
total number of key aliases needed


Most applications do not need to directly allocate symbolic names structures. Do not allocate a names structure directly using malloc or Xmalloc if your application changes the number of key aliases or radio groups or constructs a symbolic names structure without loading the necessary components from the X server. Instead use XkbAllocNames.

XkbAllocNames can return BadAlloc, BadMatch, and BadValue errors. The which parameter is the bitwise inclusive OR of the valid names mask bits defined in Table 1.

Table 1 Symbolic Names Masks
Mask Bit    Value    Keyboard    Field
XkbKeycodesNameMask    (1<<0)    Xkb->names    keycodes
XkbGeometryNameMask    (1<<1)    Xkb->names    geometry
XkbSymbolsNameMask    (1<<2)    Xkb->names    symbols
XkbPhysSymbolsNameMask    (1<<3)    Xkb->names    phys_symbols
XkbTypesNameMask    (1<<4)    Xkb->names    type
XkbCompatNameMask    (1<<5)    Xkb->names    compat
XkbKeyTypeNamesMask    (1<<6)    Xkb->map    type[*].name
XkbKTLevelNamesMask    (1<<7)    Xkb->map    type[*].lvl_names[*]
XkbIndicatorNamesMask    (1<<8)    Xkb->names    indicators[*]
XkbKeyNamesMask    (1<<9)    Xkb->names    keys[*], num_keys
XkbKeyAliasesMask    (1<<10)    Xkb->names    key_aliases[*], num_key_aliases
XkbVirtualModNamesMask    (1<<11)    Xkb->names    vmods[*]
XkbGroupNamesMask    (1<<12)    Xkb->names    groups[*]
XkbRGNamesMask    (1<<13)    Xkb->names    radio_groups[*], num_rg
XkbComponentNamesMask    (0x3f)    Xkb->names    keycodes,
           physical symbols,
           types, and
           compatibility map
XkbAllNamesMask    (0x3fff)    Xkb->names    all name components

Do not free symbolic names structures directly using free or XFree. Use XkbFreeNames instead.


Unable to allocate storage
A compatible version of Xkb was not available in the server or an argument has correct type and range, but is otherwise invalid
An argument is out of range

See Also


Table of Contents