Imported Upstream version 1.15.1
[deb_xorg-server.git] / include / xkbfile.h
CommitLineData
a09e091a
JB
1/************************************************************
2 Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
3
4 Permission to use, copy, modify, and distribute this
5 software and its documentation for any purpose and without
6 fee is hereby granted, provided that the above copyright
7 notice appear in all copies and that both that copyright
8 notice and this permission notice appear in supporting
9 documentation, and that the name of Silicon Graphics not be
10 used in advertising or publicity pertaining to distribution
11 of the software without specific prior written permission.
12 Silicon Graphics makes no representation about the suitability
13 of this software for any purpose. It is provided "as is"
14 without any express or implied warranty.
15
16 SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
17 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
18 AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
19 GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
20 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
21 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
22 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
23 THE USE OR PERFORMANCE OF THIS SOFTWARE.
24
25 ********************************************************/
26
27#ifndef _XKBFILE_H_
28#define _XKBFILE_H_ 1
29
30#include "xkbstr.h"
31
32/***====================================================================***/
33
34#define XkbXKMFile 0
35#define XkbCFile 1
36#define XkbXKBFile 2
37#define XkbMessage 3
38
39#define XkbMapDefined (1<<0)
40#define XkbStateDefined (1<<1)
41
42typedef void (*XkbFileAddOnFunc) (FILE * /* file */ ,
43 XkbDescPtr /* result */ ,
44 Bool /* topLevel */ ,
45 Bool /* showImplicit */ ,
46 int /* fileSection */ ,
47 void * /* priv */
48 );
49
50/***====================================================================***/
51
52#define _XkbSuccess 0
53#define _XkbErrMissingNames 1
54#define _XkbErrMissingTypes 2
55#define _XkbErrMissingReqTypes 3
56#define _XkbErrMissingSymbols 4
57#define _XkbErrMissingVMods 5
58#define _XkbErrMissingIndicators 6
59#define _XkbErrMissingCompatMap 7
60#define _XkbErrMissingSymInterps 8
61#define _XkbErrMissingGeometry 9
62#define _XkbErrIllegalDoodad 10
63#define _XkbErrIllegalTOCType 11
64#define _XkbErrIllegalContents 12
65#define _XkbErrEmptyFile 13
66#define _XkbErrFileNotFound 14
67#define _XkbErrFileCannotOpen 15
68#define _XkbErrBadValue 16
69#define _XkbErrBadMatch 17
70#define _XkbErrBadTypeName 18
71#define _XkbErrBadTypeWidth 19
72#define _XkbErrBadFileType 20
73#define _XkbErrBadFileVersion 21
74#define _XkbErrBadFileFormat 22
75#define _XkbErrBadAlloc 23
76#define _XkbErrBadLength 24
77#define _XkbErrXReqFailure 25
78#define _XkbErrBadImplementation 26
79
80/***====================================================================***/
81
82_XFUNCPROTOBEGIN
83
84extern _X_EXPORT char *XkbIndentText(unsigned /* size */
85 );
86
87extern _X_EXPORT char *XkbAtomText(Atom /* atm */ ,
88 unsigned /* format */
89 );
90
91extern _X_EXPORT char *XkbKeysymText(KeySym /* sym */ ,
92 unsigned /* format */
93 );
94
95extern _X_EXPORT char *XkbStringText(char * /* str */ ,
96 unsigned /* format */
97 );
98
99extern _X_EXPORT char *XkbKeyNameText(char * /* name */ ,
100 unsigned /* format */
101 );
102
103extern _X_EXPORT char *XkbModIndexText(unsigned /* ndx */ ,
104 unsigned /* format */
105 );
106
107extern _X_EXPORT char *XkbModMaskText(unsigned /* mask */ ,
108 unsigned /* format */
109 );
110
111extern _X_EXPORT char *XkbVModIndexText(XkbDescPtr /* xkb */ ,
112 unsigned /* ndx */ ,
113 unsigned /* format */
114 );
115
116extern _X_EXPORT char *XkbVModMaskText(XkbDescPtr /* xkb */ ,
117 unsigned /* modMask */ ,
118 unsigned /* mask */ ,
119 unsigned /* format */
120 );
121
122extern _X_EXPORT char *XkbConfigText(unsigned /* config */ ,
123 unsigned /* format */
124 );
125
126extern _X_EXPORT const char *XkbSIMatchText(unsigned /* type */ ,
127 unsigned /* format */
128 );
129
130extern _X_EXPORT char *XkbIMWhichStateMaskText(unsigned /* use_which */ ,
131 unsigned /* format */
132 );
133
134extern _X_EXPORT char *XkbControlsMaskText(unsigned /* ctrls */ ,
135 unsigned /* format */
136 );
137
138extern _X_EXPORT char *XkbGeomFPText(int /* val */ ,
139 unsigned /* format */
140 );
141
142extern _X_EXPORT char *XkbDoodadTypeText(unsigned /* type */ ,
143 unsigned /* format */
144 );
145
146extern _X_EXPORT const char *XkbActionTypeText(unsigned /* type */ ,
147 unsigned /* format */
148 );
149
150extern _X_EXPORT char *XkbActionText(XkbDescPtr /* xkb */ ,
151 XkbAction * /* action */ ,
152 unsigned /* format */
153 );
154
155extern _X_EXPORT char *XkbBehaviorText(XkbDescPtr /* xkb */ ,
156 XkbBehavior * /* behavior */ ,
157 unsigned /* format */
158 );
159
160/***====================================================================***/
161
162#define _XkbKSLower (1<<0)
163#define _XkbKSUpper (1<<1)
164
165#define XkbKSIsLower(k) (_XkbKSCheckCase(k)&_XkbKSLower)
166#define XkbKSIsUpper(k) (_XkbKSCheckCase(k)&_XkbKSUpper)
167#define XkbKSIsKeypad(k) (((k)>=XK_KP_Space)&&((k)<=XK_KP_Equal))
168#define XkbKSIsDeadKey(k) \
169 (((k)>=XK_dead_grave)&&((k)<=XK_dead_semivoiced_sound))
170
171extern _X_EXPORT unsigned _XkbKSCheckCase(KeySym /* sym */
172 );
173
174extern _X_EXPORT int XkbFindKeycodeByName(XkbDescPtr /* xkb */ ,
175 char * /* name */ ,
176 Bool /* use_aliases */
177 );
178
179/***====================================================================***/
180
181extern _X_EXPORT Atom XkbInternAtom(char * /* name */ ,
182 Bool /* onlyIfExists */
183 );
184
185/***====================================================================***/
186
187#ifdef _XKBGEOM_H_
188
189#define XkbDW_Unknown 0
190#define XkbDW_Doodad 1
191#define XkbDW_Section 2
192typedef struct _XkbDrawable {
193 int type;
194 int priority;
195 union {
196 XkbDoodadPtr doodad;
197 XkbSectionPtr section;
198 } u;
199 struct _XkbDrawable *next;
200} XkbDrawableRec, *XkbDrawablePtr;
201
202#endif
203
204/***====================================================================***/
205
206extern _X_EXPORT unsigned XkbConvertGetByNameComponents(Bool /* toXkm */ ,
207 unsigned /* orig */
208 );
209
210extern _X_EXPORT Bool XkbNameMatchesPattern(char * /* name */ ,
211 char * /* pattern */
212 );
213
214/***====================================================================***/
215
216extern _X_EXPORT Bool XkbWriteXKBKeycodes(FILE * /* file */ ,
217 XkbDescPtr /* result */ ,
218 Bool /* topLevel */ ,
219 Bool /* showImplicit */ ,
220 XkbFileAddOnFunc /* addOn */ ,
221 void * /* priv */
222 );
223
224extern _X_EXPORT Bool XkbWriteXKBKeyTypes(FILE * /* file */ ,
225 XkbDescPtr /* result */ ,
226 Bool /* topLevel */ ,
227 Bool /* showImplicit */ ,
228 XkbFileAddOnFunc /* addOn */ ,
229 void * /* priv */
230 );
231
232extern _X_EXPORT Bool XkbWriteXKBCompatMap(FILE * /* file */ ,
233 XkbDescPtr /* result */ ,
234 Bool /* topLevel */ ,
235 Bool /* showImplicit */ ,
236 XkbFileAddOnFunc /* addOn */ ,
237 void * /* priv */
238 );
239
240extern _X_EXPORT Bool XkbWriteXKBSymbols(FILE * /* file */ ,
241 XkbDescPtr /* result */ ,
242 Bool /* topLevel */ ,
243 Bool /* showImplicit */ ,
244 XkbFileAddOnFunc /* addOn */ ,
245 void * /* priv */
246 );
247
248extern _X_EXPORT Bool XkbWriteXKBGeometry(FILE * /* file */ ,
249 XkbDescPtr /* result */ ,
250 Bool /* topLevel */ ,
251 Bool /* showImplicit */ ,
252 XkbFileAddOnFunc /* addOn */ ,
253 void * /* priv */
254 );
255
256extern _X_EXPORT Bool XkbWriteXKBKeymapForNames(FILE * /* file */ ,
257 XkbComponentNamesPtr /* names */
258 ,
259 XkbDescPtr /* xkb */ ,
260 unsigned /* want */ ,
261 unsigned /* need */
262 );
263
264/***====================================================================***/
265
266extern _X_EXPORT Bool XkmProbe(FILE * /* file */
267 );
268
269extern _X_EXPORT unsigned XkmReadFile(FILE * /* file */ ,
270 unsigned /* need */ ,
271 unsigned /* want */ ,
272 XkbDescPtr * /* result */
273 );
274
275_XFUNCPROTOEND
276#endif /* _XKBFILE_H_ */