1. NAME▲
XkbFreeNames - Free symbolic names structures
2. SYNOPSIS ▲
void XkbFreeNames (XkbDescPtr xkb , unsigned int which , Bool free_map );
3. ARGUMENTS ▲
- - xkb
keyboard description for which names are to be freed - - which
mask of names components to be freed - - free_map
True => XkbNamesRec structure itself should be freed
4. DESCRIPTION ▲
Do not free symbolic names structures directly using freeor XFree.Use XkbFreeNamesinstead. The whichparameter is the bitwise inclusive OR of the valid names mask bits defined in Table 1. Xkb provides several functions that work with symbolic names. Each of these functions uses a mask to specify individual fields of the structures described above. These masks and their relationships to the fields in a keyboard description are shown in Table 1.
c s s s | |||
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 |