xkbfile.h revision 6747b715
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