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 |
|
|
Component |
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, |
|
|
|
geometry, |
|
|
|
symbols, |
|
|
|
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.
- BadAlloc
- Unable to allocate storage
- BadMatch
- A compatible version of Xkb was not available in the server or an argument
has correct type and range, but is otherwise invalid
- BadValue
- An argument is out of range