XkbGetNames retrieves symbolic names for the components of the keyboard extension from the X server. The which parameter specifies the name components to be updated in the xkb parameter, and 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 |
If the names field of the keyboard description xkb is NULL, XkbGetNames allocates and initializes the names component of the keyboard description before obtaining the values specified by which. If the names field of xkb is not NULL, XkbGetNames obtains the values specified by which and copies them into the keyboard description Xkb.
If the map component of the xkb parameter is NULL, XkbGetNames does not retrieve type or shift level names, even if XkbKeyTypeNamesMask or XkbKTLevelNamesMask are set in which.
XkbGetNames can return Success, or BadAlloc, BadLength, BadMatch, and BadImplementation errors.
To free symbolic names, use XkbFreeNames.