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 42 typedef 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 84 extern _X_EXPORT char *XkbIndentText(unsigned /* size */ 85 ); 86 87 extern _X_EXPORT char *XkbAtomText(Atom /* atm */ , 88 unsigned /* format */ 89 ); 90 91 extern _X_EXPORT char *XkbKeysymText(KeySym /* sym */ , 92 unsigned /* format */ 93 ); 94 95 extern _X_EXPORT char *XkbStringText(char * /* str */ , 96 unsigned /* format */ 97 ); 98 99 extern _X_EXPORT char *XkbKeyNameText(char * /* name */ , 100 unsigned /* format */ 101 ); 102 103 extern _X_EXPORT char *XkbModIndexText(unsigned /* ndx */ , 104 unsigned /* format */ 105 ); 106 107 extern _X_EXPORT char *XkbModMaskText(unsigned /* mask */ , 108 unsigned /* format */ 109 ); 110 111 extern _X_EXPORT char *XkbVModIndexText(XkbDescPtr /* xkb */ , 112 unsigned /* ndx */ , 113 unsigned /* format */ 114 ); 115 116 extern _X_EXPORT char *XkbVModMaskText(XkbDescPtr /* xkb */ , 117 unsigned /* modMask */ , 118 unsigned /* mask */ , 119 unsigned /* format */ 120 ); 121 122 extern _X_EXPORT char *XkbConfigText(unsigned /* config */ , 123 unsigned /* format */ 124 ); 125 126 extern _X_EXPORT const char *XkbSIMatchText(unsigned /* type */ , 127 unsigned /* format */ 128 ); 129 130 extern _X_EXPORT char *XkbIMWhichStateMaskText(unsigned /* use_which */ , 131 unsigned /* format */ 132 ); 133 134 extern _X_EXPORT char *XkbControlsMaskText(unsigned /* ctrls */ , 135 unsigned /* format */ 136 ); 137 138 extern _X_EXPORT char *XkbGeomFPText(int /* val */ , 139 unsigned /* format */ 140 ); 141 142 extern _X_EXPORT char *XkbDoodadTypeText(unsigned /* type */ , 143 unsigned /* format */ 144 ); 145 146 extern _X_EXPORT const char *XkbActionTypeText(unsigned /* type */ , 147 unsigned /* format */ 148 ); 149 150 extern _X_EXPORT char *XkbActionText(XkbDescPtr /* xkb */ , 151 XkbAction * /* action */ , 152 unsigned /* format */ 153 ); 154 155 extern _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 171 extern _X_EXPORT unsigned _XkbKSCheckCase(KeySym /* sym */ 172 ); 173 174 extern _X_EXPORT int XkbFindKeycodeByName(XkbDescPtr /* xkb */ , 175 char * /* name */ , 176 Bool /* use_aliases */ 177 ); 178 179 /***====================================================================***/ 180 181 extern _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 192 typedef 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 206 extern _X_EXPORT unsigned XkbConvertGetByNameComponents(Bool /* toXkm */ , 207 unsigned /* orig */ 208 ); 209 210 extern _X_EXPORT Bool XkbNameMatchesPattern(char * /* name */ , 211 char * /* pattern */ 212 ); 213 214 /***====================================================================***/ 215 216 extern _X_EXPORT Bool XkbWriteXKBKeycodes(FILE * /* file */ , 217 XkbDescPtr /* result */ , 218 Bool /* topLevel */ , 219 Bool /* showImplicit */ , 220 XkbFileAddOnFunc /* addOn */ , 221 void * /* priv */ 222 ); 223 224 extern _X_EXPORT Bool XkbWriteXKBKeyTypes(FILE * /* file */ , 225 XkbDescPtr /* result */ , 226 Bool /* topLevel */ , 227 Bool /* showImplicit */ , 228 XkbFileAddOnFunc /* addOn */ , 229 void * /* priv */ 230 ); 231 232 extern _X_EXPORT Bool XkbWriteXKBCompatMap(FILE * /* file */ , 233 XkbDescPtr /* result */ , 234 Bool /* topLevel */ , 235 Bool /* showImplicit */ , 236 XkbFileAddOnFunc /* addOn */ , 237 void * /* priv */ 238 ); 239 240 extern _X_EXPORT Bool XkbWriteXKBSymbols(FILE * /* file */ , 241 XkbDescPtr /* result */ , 242 Bool /* topLevel */ , 243 Bool /* showImplicit */ , 244 XkbFileAddOnFunc /* addOn */ , 245 void * /* priv */ 246 ); 247 248 extern _X_EXPORT Bool XkbWriteXKBGeometry(FILE * /* file */ , 249 XkbDescPtr /* result */ , 250 Bool /* topLevel */ , 251 Bool /* showImplicit */ , 252 XkbFileAddOnFunc /* addOn */ , 253 void * /* priv */ 254 ); 255 256 extern _X_EXPORT Bool XkbWriteXKBKeymapForNames(FILE * /* file */ , 257 XkbComponentNamesPtr /* names */ 258 , 259 XkbDescPtr /* xkb */ , 260 unsigned /* want */ , 261 unsigned /* need */ 262 ); 263 264 /***====================================================================***/ 265 266 extern _X_EXPORT Bool XkmProbe(FILE * /* file */ 267 ); 268 269 extern _X_EXPORT unsigned XkmReadFile(FILE * /* file */ , 270 unsigned /* need */ , 271 unsigned /* want */ , 272 XkbDescPtr * /* result */ 273 ); 274 275 _XFUNCPROTOEND 276 #endif /* _XKBFILE_H_ */ 277