xkbfile.h revision 4642e01f
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/***====================================================================***/ 31 32#define XkbXKMFile 0 33#define XkbCFile 1 34#define XkbXKBFile 2 35#define XkbMessage 3 36 37#define XkbMapDefined (1<<0) 38#define XkbStateDefined (1<<1) 39 40typedef void (*XkbFileAddOnFunc)( 41 FILE * /* file */, 42 XkbDescPtr /* result */, 43 Bool /* topLevel */, 44 Bool /* showImplicit */, 45 int /* fileSection */, 46 void * /* priv */ 47); 48 49/***====================================================================***/ 50 51#define _XkbSuccess 0 52#define _XkbErrMissingNames 1 53#define _XkbErrMissingTypes 2 54#define _XkbErrMissingReqTypes 3 55#define _XkbErrMissingSymbols 4 56#define _XkbErrMissingVMods 5 57#define _XkbErrMissingIndicators 6 58#define _XkbErrMissingCompatMap 7 59#define _XkbErrMissingSymInterps 8 60#define _XkbErrMissingGeometry 9 61#define _XkbErrIllegalDoodad 10 62#define _XkbErrIllegalTOCType 11 63#define _XkbErrIllegalContents 12 64#define _XkbErrEmptyFile 13 65#define _XkbErrFileNotFound 14 66#define _XkbErrFileCannotOpen 15 67#define _XkbErrBadValue 16 68#define _XkbErrBadMatch 17 69#define _XkbErrBadTypeName 18 70#define _XkbErrBadTypeWidth 19 71#define _XkbErrBadFileType 20 72#define _XkbErrBadFileVersion 21 73#define _XkbErrBadFileFormat 22 74#define _XkbErrBadAlloc 23 75#define _XkbErrBadLength 24 76#define _XkbErrXReqFailure 25 77#define _XkbErrBadImplementation 26 78 79extern char * _XkbErrMessages[]; 80extern unsigned _XkbErrCode; 81extern char * _XkbErrLocation; 82extern unsigned _XkbErrData; 83 84/***====================================================================***/ 85 86_XFUNCPROTOBEGIN 87 88extern char * XkbIndentText( 89 unsigned /* size */ 90); 91 92extern char * XkbAtomText( 93 Atom /* atm */, 94 unsigned /* format */ 95); 96 97extern char * XkbKeysymText( 98 KeySym /* sym */, 99 unsigned /* format */ 100); 101 102extern char * XkbStringText( 103 char * /* str */, 104 unsigned /* format */ 105); 106 107extern char * XkbKeyNameText( 108 char * /* name */, 109 unsigned /* format */ 110); 111 112extern char * 113XkbModIndexText( 114 unsigned /* ndx */, 115 unsigned /* format */ 116); 117 118extern char * 119XkbModMaskText( 120 unsigned /* mask */, 121 unsigned /* format */ 122); 123 124extern char * XkbVModIndexText( 125 XkbDescPtr /* xkb */, 126 unsigned /* ndx */, 127 unsigned /* format */ 128); 129 130extern char * XkbVModMaskText( 131 XkbDescPtr /* xkb */, 132 unsigned /* modMask */, 133 unsigned /* mask */, 134 unsigned /* format */ 135); 136 137extern char * XkbConfigText( 138 unsigned /* config */, 139 unsigned /* format */ 140); 141 142extern char * XkbSIMatchText( 143 unsigned /* type */, 144 unsigned /* format */ 145); 146 147extern char * XkbIMWhichStateMaskText( 148 unsigned /* use_which */, 149 unsigned /* format */ 150); 151 152extern char * XkbAccessXDetailText( 153 unsigned /* state */, 154 unsigned /* format */ 155); 156 157extern char * XkbNKNDetailMaskText( 158 unsigned /* detail */, 159 unsigned /* format */ 160); 161 162extern char * XkbControlsMaskText( 163 unsigned /* ctrls */, 164 unsigned /* format */ 165); 166 167extern char * XkbGeomFPText( 168 int /* val */, 169 unsigned /* format */ 170); 171 172extern char * XkbDoodadTypeText( 173 unsigned /* type */, 174 unsigned /* format */ 175); 176 177extern char * XkbActionTypeText( 178 unsigned /* type */, 179 unsigned /* format */ 180); 181 182extern char * XkbActionText( 183 XkbDescPtr /* xkb */, 184 XkbAction * /* action */, 185 unsigned /* format */ 186); 187 188extern char * XkbBehaviorText( 189 XkbDescPtr /* xkb */, 190 XkbBehavior * /* behavior */, 191 unsigned /* format */ 192); 193 194/***====================================================================***/ 195 196#define _XkbKSLower (1<<0) 197#define _XkbKSUpper (1<<1) 198 199#define XkbKSIsLower(k) (_XkbKSCheckCase(k)&_XkbKSLower) 200#define XkbKSIsUpper(k) (_XkbKSCheckCase(k)&_XkbKSUpper) 201#define XkbKSIsKeypad(k) (((k)>=XK_KP_Space)&&((k)<=XK_KP_Equal)) 202#define XkbKSIsDeadKey(k) \ 203 (((k)>=XK_dead_grave)&&((k)<=XK_dead_semivoiced_sound)) 204 205extern unsigned _XkbKSCheckCase( 206 KeySym /* sym */ 207); 208 209extern int XkbFindKeycodeByName( 210 XkbDescPtr /* xkb */, 211 char * /* name */, 212 Bool /* use_aliases */ 213); 214 215extern Bool XkbLookupGroupAndLevel( 216 XkbDescPtr /* xkb */, 217 int /* key */, 218 int * /* mods_inout */, 219 int * /* grp_inout */, 220 int * /* lvl_rtrn */ 221); 222 223/***====================================================================***/ 224 225extern Atom XkbInternAtom( 226 char * /* name */, 227 Bool /* onlyIfExists */ 228); 229 230extern void XkbInitAtoms(void); 231 232/***====================================================================***/ 233 234#ifdef _XKBGEOM_H_ 235 236#define XkbDW_Unknown 0 237#define XkbDW_Doodad 1 238#define XkbDW_Section 2 239typedef struct _XkbDrawable { 240 int type; 241 int priority; 242 union { 243 XkbDoodadPtr doodad; 244 XkbSectionPtr section; 245 } u; 246 struct _XkbDrawable * next; 247} XkbDrawableRec,*XkbDrawablePtr; 248 249extern XkbDrawablePtr 250XkbGetOrderedDrawables( 251 XkbGeometryPtr /* geom */, 252 XkbSectionPtr /* section */ 253); 254 255extern void 256XkbFreeOrderedDrawables( 257 XkbDrawablePtr /* draw */ 258); 259 260#endif 261 262/***====================================================================***/ 263 264extern unsigned XkbConvertGetByNameComponents( 265 Bool /* toXkm */, 266 unsigned /* orig */ 267); 268 269extern unsigned XkbConvertXkbComponents( 270 Bool /* toXkm */, 271 unsigned /* orig */ 272); 273 274extern Bool XkbNameMatchesPattern( 275 char * /* name */, 276 char * /* pattern */ 277); 278 279/***====================================================================***/ 280 281extern Bool XkbWriteXKBKeycodes( 282 FILE * /* file */, 283 XkbDescPtr /* result */, 284 Bool /* topLevel */, 285 Bool /* showImplicit */, 286 XkbFileAddOnFunc /* addOn */, 287 void * /* priv */ 288); 289 290extern Bool XkbWriteXKBKeyTypes( 291 FILE * /* file */, 292 XkbDescPtr /* result */, 293 Bool /* topLevel */, 294 Bool /* showImplicit */, 295 XkbFileAddOnFunc /* addOn */, 296 void * /* priv */ 297); 298 299extern Bool XkbWriteXKBCompatMap( 300 FILE * /* file */, 301 XkbDescPtr /* result */, 302 Bool /* topLevel */, 303 Bool /* showImplicit */, 304 XkbFileAddOnFunc /* addOn */, 305 void * /* priv */ 306); 307 308extern Bool XkbWriteXKBSymbols( 309 FILE * /* file */, 310 XkbDescPtr /* result */, 311 Bool /* topLevel */, 312 Bool /* showImplicit */, 313 XkbFileAddOnFunc /* addOn */, 314 void * /* priv */ 315); 316 317extern Bool XkbWriteXKBGeometry( 318 FILE * /* file */, 319 XkbDescPtr /* result */, 320 Bool /* topLevel */, 321 Bool /* showImplicit */, 322 XkbFileAddOnFunc /* addOn */, 323 void * /* priv */ 324); 325 326extern Bool XkbWriteXKBSemantics( 327 FILE * /* file */, 328 XkbDescPtr /* result */, 329 Bool /* topLevel */, 330 Bool /* showImplicit */, 331 XkbFileAddOnFunc /* addOn */, 332 void * /* priv */ 333); 334 335extern Bool XkbWriteXKBLayout( 336 FILE * /* file */, 337 XkbDescPtr /* result */, 338 Bool /* topLevel */, 339 Bool /* showImplicit */, 340 XkbFileAddOnFunc /* addOn */, 341 void * /* priv */ 342); 343 344extern Bool XkbWriteXKBKeymap( 345 FILE * /* file */, 346 XkbDescPtr /* result */, 347 Bool /* topLevel */, 348 Bool /* showImplicit */, 349 XkbFileAddOnFunc /* addOn */, 350 void * /* priv */ 351); 352 353extern Bool XkbWriteXKBFile( 354 FILE * /* file */, 355 XkbDescPtr /* result */, 356 Bool /* showImplicit */, 357 XkbFileAddOnFunc /* addOn */, 358 void * /* priv */ 359); 360 361extern Bool XkbWriteCFile( 362 FILE * /* file */, 363 char * /* name */, 364 XkbDescPtr /* info */ 365); 366 367extern Bool XkbWriteXKMFile( 368 FILE * /* file */, 369 XkbDescPtr /* result */ 370); 371 372extern Bool XkbWriteToServer( 373 XkbDescPtr /* result */ 374); 375 376extern void XkbEnsureSafeMapName( 377 char * /* name */ 378); 379 380extern Bool XkbWriteXKBKeymapForNames( 381 FILE * /* file */, 382 XkbComponentNamesPtr /* names */, 383 XkbDescPtr /* xkb */, 384 unsigned /* want */, 385 unsigned /* need */ 386); 387 388extern Status XkbMergeFile( 389 XkbDescPtr /* xkb */ 390); 391 392/***====================================================================***/ 393 394extern Bool XkmProbe( 395 FILE * /* file */ 396); 397 398extern unsigned XkmReadFile( 399 FILE * /* file */, 400 unsigned /* need */, 401 unsigned /* want */, 402 XkbDescPtr * /* result */ 403); 404 405_XFUNCPROTOEND 406 407#endif /* _XKBFILE_H_ */ 408