XkbAllocNames (3)
Leading comments
Copyright 1999 Oracle and/or its affiliates. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following condition...
NAME
XkbAllocNames - Allocate symbolic names structuresSYNOPSIS
-
Status XkbAllocNames
(XkbDescPtr xkb,
unsigned int which,
int num_rg,
int num_key_aliases);
ARGUMENTS
- - 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
DESCRIPTION
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.
DIAGNOSTICS
- 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