2 .\" Copyright 1999 Oracle and/or its affiliates. All rights reserved.
4 .\" Permission is hereby granted, free of charge, to any person obtaining a
5 .\" copy of this software and associated documentation files (the "Software"),
6 .\" to deal in the Software without restriction, including without limitation
7 .\" the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 .\" and/or sell copies of the Software, and to permit persons to whom the
9 .\" Software is furnished to do so, subject to the following conditions:
11 .\" The above copyright notice and this permission notice (including the next
12 .\" paragraph) shall be included in all copies or substantial portions of the
15 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 .\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 .\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 .\" THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 .\" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 .\" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 .\" DEALINGS IN THE SOFTWARE.
23 .TH XkbFreeCompatMap __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
25 XkbFreeCompatMap \- Free an entire compatibility map or selected portions of one
28 .B void XkbFreeCompatMap
29 .BI "(\^XkbDescPtr " "xkb" "\^,"
30 .BI "unsigned int " "which" "\^,"
31 .BI "Bool " "free_map" "\^);"
37 Xkb description in which to free compatibility map
40 mask of compatibility map components to free
43 True => free XkbCompatMap structure itself
47 specifies the compatibility map components to be freed (see XkbGetCompatMap).
49 is an inclusive OR of the bits shown in Table 1.
54 Table 1 Compatibility Map Component Masks
58 XkbSymInterpMask (1<<0) Symbol interpretations
59 XkbGroupCompatMask (1<<1) Group maps
60 XkbAllCompatMask (0x3) All compatibility map components
64 indicates whether the XkbCompatMap structure itself should be freed. If
68 is ignored, all non-NULL compatibility map components are freed, and the
70 field in the XkbDescRec referenced by
77 typedef struct _XkbCompatMapRec {
78 XkbSymInterpretPtr sym_interpret; /\(** symbol based key semantics*/
79 XkbModsRec groups[XkbNumKbdGroups]; /\(** group => modifier map */
80 unsigned short num_si; /\(** # structures used in sym_interpret */
81 unsigned short size_si; /\(** # structures allocated in sym_interpret */
82 } XkbCompatMapRec, *XkbCompatMapPtr;
86 The complete description of an Xkb keyboard is given by an XkbDescRec. The component
87 structures in the XkbDescRec represent the major Xkb components outlined in Figure 1.1.
91 struct _XDisplay * display; /\(** connection to X server */
92 unsigned short flags; /\(** private to Xkb, do not modify */
93 unsigned short device_spec; /\(** device of interest */
94 KeyCode min_key_code; /\(** minimum keycode for device */
95 KeyCode max_key_code; /\(** maximum keycode for device */
96 XkbControlsPtr ctrls; /\(** controls */
97 XkbServerMapPtr server; /\(** server keymap */
98 XkbClientMapPtr map; /\(** client keymap */
99 XkbIndicatorPtr indicators; /\(** indicator map */
100 XkbNamesPtr names; /\(** names for all components */
101 XkbCompatMapPtr compat; /\(** compatibility map */
102 XkbGeometryPtr geom; /\(** physical geometry of keyboard */
103 } XkbDescRec, *XkbDescPtr;
108 field points to an X display structure. The
109 .I flags field is private to the library: modifying
111 may yield unpredictable results. The
113 field specifies the device identifier of the keyboard input device, or
114 XkbUseCoreKeyboard, which specifies the core keyboard device. The
118 fields specify the least and greatest keycode that can be returned by the keyboard.
119 The other fields specify structure components of the keyboard description and are
120 described in detail in other sections of this document. Table 2 identifies the
121 subsequent sections of this document that discuss the individual components of the
128 Table 2 XkbDescRec Component References
130 XkbDescRec Field For more info
141 Each structure component has a corresponding mask bit that is used in function calls to
142 indicate that the structure should be manipulated in some manner, such as allocating it
143 or freeing it. These masks and their relationships to the fields in the XkbDescRec are
150 Table 3 Mask Bits for XkbDescRec
152 Mask Bit XkbDescRec Field Value
154 XkbControlsMask ctrls (1L<<0)
155 XkbServerMapMask server (1L<<1)
156 XkbIClientMapMask map (1L<<2)
157 XkbIndicatorMapMask indicators (1L<<3)
158 XkbNamesMask names (1L<<4)
159 XkbCompatMapMask compat (1L<<5)
160 XkbGeometryMask geom (1L<<6)
161 XkbAllComponentsMask All Fields (0x7f)
164 .BR XkbGetCompatMap (__libmansuffix__)