xkbfile.h revision 706f2543
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)(
43    FILE *		/* file */,
44    XkbDescPtr  	/* result */,
45    Bool		/* topLevel */,
46    Bool		/* showImplicit */,
47    int			/* fileSection */,
48    void *		/* priv */
49);
50
51/***====================================================================***/
52
53#define	_XkbSuccess			0
54#define	_XkbErrMissingNames		1
55#define	_XkbErrMissingTypes		2
56#define	_XkbErrMissingReqTypes		3
57#define	_XkbErrMissingSymbols		4
58#define	_XkbErrMissingVMods		5
59#define	_XkbErrMissingIndicators	6
60#define	_XkbErrMissingCompatMap		7
61#define	_XkbErrMissingSymInterps	8
62#define	_XkbErrMissingGeometry		9
63#define	_XkbErrIllegalDoodad		10
64#define	_XkbErrIllegalTOCType		11
65#define	_XkbErrIllegalContents		12
66#define	_XkbErrEmptyFile		13
67#define	_XkbErrFileNotFound		14
68#define	_XkbErrFileCannotOpen		15
69#define	_XkbErrBadValue			16
70#define	_XkbErrBadMatch			17
71#define	_XkbErrBadTypeName		18
72#define	_XkbErrBadTypeWidth		19
73#define	_XkbErrBadFileType		20
74#define	_XkbErrBadFileVersion		21
75#define	_XkbErrBadFileFormat		22
76#define	_XkbErrBadAlloc			23
77#define	_XkbErrBadLength		24
78#define	_XkbErrXReqFailure		25
79#define	_XkbErrBadImplementation	26
80
81/***====================================================================***/
82
83_XFUNCPROTOBEGIN
84
85extern _X_EXPORT char *	XkbIndentText(
86    unsigned	/* size */
87);
88
89extern _X_EXPORT char *	XkbAtomText(
90    Atom 	/* atm */,
91    unsigned	/* format */
92);
93
94extern _X_EXPORT char *	XkbKeysymText(
95    KeySym	/* sym */,
96    unsigned	/* format */
97);
98
99extern _X_EXPORT char *	XkbStringText(
100    char *	/* str */,
101    unsigned	/* format */
102);
103
104extern _X_EXPORT char *	XkbKeyNameText(
105    char *	/* name */,
106    unsigned	/* format */
107);
108
109extern _X_EXPORT char *
110XkbModIndexText(
111    unsigned	/* ndx */,
112    unsigned	/* format */
113);
114
115extern _X_EXPORT char *
116XkbModMaskText(
117    unsigned	/* mask */,
118    unsigned	/* format */
119);
120
121extern _X_EXPORT char *	XkbVModIndexText(
122    XkbDescPtr	/* xkb */,
123    unsigned	/* ndx */,
124    unsigned	/* format */
125);
126
127extern _X_EXPORT char *	XkbVModMaskText(
128    XkbDescPtr	/* xkb */,
129    unsigned	/* modMask */,
130    unsigned	/* mask */,
131    unsigned	/* format */
132);
133
134extern _X_EXPORT char *	XkbConfigText(
135    unsigned 	/* config */,
136    unsigned 	/* format */
137);
138
139extern _X_EXPORT char *	XkbSIMatchText(
140    unsigned	/* type */,
141    unsigned	/* format */
142);
143
144extern _X_EXPORT char *	XkbIMWhichStateMaskText(
145    unsigned	/* use_which */,
146    unsigned	/* format */
147);
148
149extern _X_EXPORT char *	XkbControlsMaskText(
150    unsigned	/* ctrls */,
151    unsigned	/* format */
152);
153
154extern _X_EXPORT char *	XkbGeomFPText(
155    int		/* val */,
156    unsigned 	/* format */
157);
158
159extern _X_EXPORT char *	XkbDoodadTypeText(
160    unsigned	/* type */,
161    unsigned	/* format */
162);
163
164extern _X_EXPORT char *	XkbActionTypeText(
165    unsigned	/* type */,
166    unsigned	/* format */
167);
168
169extern _X_EXPORT char *	XkbActionText(
170    XkbDescPtr	/* xkb */,
171    XkbAction *	/* action */,
172    unsigned	/* format */
173);
174
175extern _X_EXPORT char *	XkbBehaviorText(
176    XkbDescPtr 		/* xkb */,
177    XkbBehavior *	/* behavior */,
178    unsigned		/* format */
179);
180
181/***====================================================================***/
182
183#define	_XkbKSLower	(1<<0)
184#define	_XkbKSUpper	(1<<1)
185
186#define	XkbKSIsLower(k)		(_XkbKSCheckCase(k)&_XkbKSLower)
187#define	XkbKSIsUpper(k)		(_XkbKSCheckCase(k)&_XkbKSUpper)
188#define XkbKSIsKeypad(k)	(((k)>=XK_KP_Space)&&((k)<=XK_KP_Equal))
189#define	XkbKSIsDeadKey(k)	\
190		(((k)>=XK_dead_grave)&&((k)<=XK_dead_semivoiced_sound))
191
192extern _X_EXPORT unsigned _XkbKSCheckCase(
193   KeySym	/* sym */
194);
195
196extern _X_EXPORT int	 XkbFindKeycodeByName(
197    XkbDescPtr	/* xkb */,
198    char *	/* name */,
199    Bool	/* use_aliases */
200);
201
202/***====================================================================***/
203
204extern _X_EXPORT Atom	XkbInternAtom(
205    char *	/* name */,
206    Bool	/* onlyIfExists */
207);
208
209/***====================================================================***/
210
211#ifdef _XKBGEOM_H_
212
213#define	XkbDW_Unknown	0
214#define	XkbDW_Doodad	1
215#define	XkbDW_Section	2
216typedef struct _XkbDrawable {
217	int		type;
218	int		priority;
219	union {
220	    XkbDoodadPtr	doodad;
221	    XkbSectionPtr	section;
222	} u;
223	struct _XkbDrawable *	next;
224} XkbDrawableRec,*XkbDrawablePtr;
225
226#endif
227
228/***====================================================================***/
229
230extern _X_EXPORT unsigned	XkbConvertGetByNameComponents(
231    Bool		/* toXkm */,
232    unsigned 		/* orig */
233);
234
235extern _X_EXPORT Bool	XkbNameMatchesPattern(
236    char *		/* name */,
237    char *		/* pattern */
238);
239
240/***====================================================================***/
241
242extern _X_EXPORT Bool	XkbWriteXKBKeycodes(
243    FILE *		/* file */,
244    XkbDescPtr          /* result */,
245    Bool		/* topLevel */,
246    Bool		/* showImplicit */,
247    XkbFileAddOnFunc	/* addOn */,
248    void *		/* priv */
249);
250
251extern _X_EXPORT Bool	XkbWriteXKBKeyTypes(
252    FILE *		/* file */,
253    XkbDescPtr  	/* result */,
254    Bool		/* topLevel */,
255    Bool		/* showImplicit */,
256    XkbFileAddOnFunc	/* addOn */,
257    void *		/* priv */
258);
259
260extern _X_EXPORT Bool	XkbWriteXKBCompatMap(
261    FILE *		/* file */,
262    XkbDescPtr	/* result */,
263    Bool		/* topLevel */,
264    Bool		/* showImplicit */,
265    XkbFileAddOnFunc	/* addOn */,
266    void *		/* priv */
267);
268
269extern _X_EXPORT Bool	XkbWriteXKBSymbols(
270    FILE *		/* file */,
271    XkbDescPtr	/* result */,
272    Bool		/* topLevel */,
273    Bool		/* showImplicit */,
274    XkbFileAddOnFunc	/* addOn */,
275    void *		/* priv */
276);
277
278extern _X_EXPORT Bool	XkbWriteXKBGeometry(
279    FILE *		/* file */,
280    XkbDescPtr	/* result */,
281    Bool		/* topLevel */,
282    Bool		/* showImplicit */,
283    XkbFileAddOnFunc	/* addOn */,
284    void *		/* priv */
285);
286
287extern _X_EXPORT Bool	XkbWriteXKBKeymapForNames(
288    FILE *			/* file */,
289    XkbComponentNamesPtr	/* names */,
290    XkbDescPtr			/* xkb */,
291    unsigned			/* want */,
292    unsigned			/* need */
293);
294
295/***====================================================================***/
296
297extern _X_EXPORT Bool	XkmProbe(
298    FILE *		/* file */
299);
300
301extern _X_EXPORT unsigned	XkmReadFile(
302    FILE *		/* file */,
303    unsigned		/* need */,
304    unsigned		/* want */,
305    XkbDescPtr	        * /* result */
306);
307
308_XFUNCPROTOEND
309
310#endif /* _XKBFILE_H_ */
311