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