github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xcb/include/X11/Xresource.h (about) 1 2 /*********************************************************** 3 4 Copyright 1987, 1988, 1998 The Open Group 5 6 Permission to use, copy, modify, distribute, and sell this software and its 7 documentation for any purpose is hereby granted without fee, provided that 8 the above copyright notice appear in all copies and that both that 9 copyright notice and this permission notice appear in supporting 10 documentation. 11 12 The above copyright notice and this permission notice shall be included in 13 all copies or substantial portions of the Software. 14 15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 19 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 22 Except as contained in this notice, the name of The Open Group shall not be 23 used in advertising or otherwise to promote the sale, use or other dealings 24 in this Software without prior written authorization from The Open Group. 25 26 27 Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. 28 29 All Rights Reserved 30 31 Permission to use, copy, modify, and distribute this software and its 32 documentation for any purpose and without fee is hereby granted, 33 provided that the above copyright notice appear in all copies and that 34 both that copyright notice and this permission notice appear in 35 supporting documentation, and that the name of Digital not be 36 used in advertising or publicity pertaining to distribution of the 37 software without specific, written prior permission. 38 39 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 40 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 41 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 42 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 43 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 44 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 45 SOFTWARE. 46 47 ******************************************************************/ 48 49 #ifndef _X11_XRESOURCE_H_ 50 #define _X11_XRESOURCE_H_ 51 52 #ifndef _XP_PRINT_SERVER_ 53 #include <X11/Xlib.h> 54 #endif 55 56 /**************************************************************** 57 **************************************************************** 58 *** *** 59 *** *** 60 *** X Resource Manager Intrinsics *** 61 *** *** 62 *** *** 63 **************************************************************** 64 ****************************************************************/ 65 66 _XFUNCPROTOBEGIN 67 68 /**************************************************************** 69 * 70 * Memory Management 71 * 72 ****************************************************************/ 73 74 extern char *Xpermalloc( 75 unsigned int /* size */ 76 ); 77 78 /**************************************************************** 79 * 80 * Quark Management 81 * 82 ****************************************************************/ 83 84 typedef int XrmQuark, *XrmQuarkList; 85 #define NULLQUARK ((XrmQuark) 0) 86 87 typedef char *XrmString; 88 #define NULLSTRING ((XrmString) 0) 89 90 /* find quark for string, create new quark if none already exists */ 91 extern XrmQuark XrmStringToQuark( 92 _Xconst char* /* string */ 93 ); 94 95 extern XrmQuark XrmPermStringToQuark( 96 _Xconst char* /* string */ 97 ); 98 99 /* find string for quark */ 100 extern XrmString XrmQuarkToString( 101 XrmQuark /* quark */ 102 ); 103 104 extern XrmQuark XrmUniqueQuark( 105 void 106 ); 107 108 #define XrmStringsEqual(a1, a2) (strcmp(a1, a2) == 0) 109 110 111 /**************************************************************** 112 * 113 * Conversion of Strings to Lists 114 * 115 ****************************************************************/ 116 117 typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList; 118 119 extern void XrmStringToQuarkList( 120 _Xconst char* /* string */, 121 XrmQuarkList /* quarks_return */ 122 ); 123 124 extern void XrmStringToBindingQuarkList( 125 _Xconst char* /* string */, 126 XrmBindingList /* bindings_return */, 127 XrmQuarkList /* quarks_return */ 128 ); 129 130 /**************************************************************** 131 * 132 * Name and Class lists. 133 * 134 ****************************************************************/ 135 136 typedef XrmQuark XrmName; 137 typedef XrmQuarkList XrmNameList; 138 #define XrmNameToString(name) XrmQuarkToString(name) 139 #define XrmStringToName(string) XrmStringToQuark(string) 140 #define XrmStringToNameList(str, name) XrmStringToQuarkList(str, name) 141 142 typedef XrmQuark XrmClass; 143 typedef XrmQuarkList XrmClassList; 144 #define XrmClassToString(c_class) XrmQuarkToString(c_class) 145 #define XrmStringToClass(c_class) XrmStringToQuark(c_class) 146 #define XrmStringToClassList(str,c_class) XrmStringToQuarkList(str, c_class) 147 148 149 150 /**************************************************************** 151 * 152 * Resource Representation Types and Values 153 * 154 ****************************************************************/ 155 156 typedef XrmQuark XrmRepresentation; 157 #define XrmStringToRepresentation(string) XrmStringToQuark(string) 158 #define XrmRepresentationToString(type) XrmQuarkToString(type) 159 160 typedef struct { 161 unsigned int size; 162 XPointer addr; 163 } XrmValue, *XrmValuePtr; 164 165 166 /**************************************************************** 167 * 168 * Resource Manager Functions 169 * 170 ****************************************************************/ 171 172 typedef struct _XrmHashBucketRec *XrmHashBucket; 173 typedef XrmHashBucket *XrmHashTable; 174 typedef XrmHashTable XrmSearchList[]; 175 typedef struct _XrmHashBucketRec *XrmDatabase; 176 177 178 extern void XrmDestroyDatabase( 179 XrmDatabase /* database */ 180 ); 181 182 extern void XrmQPutResource( 183 XrmDatabase* /* database */, 184 XrmBindingList /* bindings */, 185 XrmQuarkList /* quarks */, 186 XrmRepresentation /* type */, 187 XrmValue* /* value */ 188 ); 189 190 extern void XrmPutResource( 191 XrmDatabase* /* database */, 192 _Xconst char* /* specifier */, 193 _Xconst char* /* type */, 194 XrmValue* /* value */ 195 ); 196 197 extern void XrmQPutStringResource( 198 XrmDatabase* /* database */, 199 XrmBindingList /* bindings */, 200 XrmQuarkList /* quarks */, 201 _Xconst char* /* value */ 202 ); 203 204 extern void XrmPutStringResource( 205 XrmDatabase* /* database */, 206 _Xconst char* /* specifier */, 207 _Xconst char* /* value */ 208 ); 209 210 extern void XrmPutLineResource( 211 XrmDatabase* /* database */, 212 _Xconst char* /* line */ 213 ); 214 215 extern Bool XrmQGetResource( 216 XrmDatabase /* database */, 217 XrmNameList /* quark_name */, 218 XrmClassList /* quark_class */, 219 XrmRepresentation* /* quark_type_return */, 220 XrmValue* /* value_return */ 221 ); 222 223 extern Bool XrmGetResource( 224 XrmDatabase /* database */, 225 _Xconst char* /* str_name */, 226 _Xconst char* /* str_class */, 227 char** /* str_type_return */, 228 XrmValue* /* value_return */ 229 ); 230 231 extern Bool XrmQGetSearchList( 232 XrmDatabase /* database */, 233 XrmNameList /* names */, 234 XrmClassList /* classes */, 235 XrmSearchList /* list_return */, 236 int /* list_length */ 237 ); 238 239 extern Bool XrmQGetSearchResource( 240 XrmSearchList /* list */, 241 XrmName /* name */, 242 XrmClass /* class */, 243 XrmRepresentation* /* type_return */, 244 XrmValue* /* value_return */ 245 ); 246 247 /**************************************************************** 248 * 249 * Resource Database Management 250 * 251 ****************************************************************/ 252 253 #ifndef _XP_PRINT_SERVER_ 254 255 extern void XrmSetDatabase( 256 Display* /* display */, 257 XrmDatabase /* database */ 258 ); 259 260 extern XrmDatabase XrmGetDatabase( 261 Display* /* display */ 262 ); 263 264 #endif /* !_XP_PRINT_SERVER_ */ 265 266 extern XrmDatabase XrmGetFileDatabase( 267 _Xconst char* /* filename */ 268 ); 269 270 extern Status XrmCombineFileDatabase( 271 _Xconst char* /* filename */, 272 XrmDatabase* /* target */, 273 Bool /* override */ 274 ); 275 276 extern XrmDatabase XrmGetStringDatabase( 277 _Xconst char* /* data */ /* null terminated string */ 278 ); 279 280 extern void XrmPutFileDatabase( 281 XrmDatabase /* database */, 282 _Xconst char* /* filename */ 283 ); 284 285 extern void XrmMergeDatabases( 286 XrmDatabase /* source_db */, 287 XrmDatabase* /* target_db */ 288 ); 289 290 extern void XrmCombineDatabase( 291 XrmDatabase /* source_db */, 292 XrmDatabase* /* target_db */, 293 Bool /* override */ 294 ); 295 296 #define XrmEnumAllLevels 0 297 #define XrmEnumOneLevel 1 298 299 extern Bool XrmEnumerateDatabase( 300 XrmDatabase /* db */, 301 XrmNameList /* name_prefix */, 302 XrmClassList /* class_prefix */, 303 int /* mode */, 304 Bool (*)( 305 XrmDatabase* /* db */, 306 XrmBindingList /* bindings */, 307 XrmQuarkList /* quarks */, 308 XrmRepresentation* /* type */, 309 XrmValue* /* value */, 310 XPointer /* closure */ 311 ) /* proc */, 312 XPointer /* closure */ 313 ); 314 315 extern const char *XrmLocaleOfDatabase( 316 XrmDatabase /* database */ 317 ); 318 319 320 /**************************************************************** 321 * 322 * Command line option mapping to resource entries 323 * 324 ****************************************************************/ 325 326 typedef enum { 327 XrmoptionNoArg, /* Value is specified in OptionDescRec.value */ 328 XrmoptionIsArg, /* Value is the option string itself */ 329 XrmoptionStickyArg, /* Value is characters immediately following option */ 330 XrmoptionSepArg, /* Value is next argument in argv */ 331 XrmoptionResArg, /* Resource and value in next argument in argv */ 332 XrmoptionSkipArg, /* Ignore this option and the next argument in argv */ 333 XrmoptionSkipLine, /* Ignore this option and the rest of argv */ 334 XrmoptionSkipNArgs /* Ignore this option and the next 335 OptionDescRes.value arguments in argv */ 336 } XrmOptionKind; 337 338 typedef struct { 339 char *option; /* Option abbreviation in argv */ 340 char *specifier; /* Resource specifier */ 341 XrmOptionKind argKind; /* Which style of option it is */ 342 XPointer value; /* Value to provide if XrmoptionNoArg */ 343 } XrmOptionDescRec, *XrmOptionDescList; 344 345 346 extern void XrmParseCommand( 347 XrmDatabase* /* database */, 348 XrmOptionDescList /* table */, 349 int /* table_count */, 350 _Xconst char* /* name */, 351 int* /* argc_in_out */, 352 char** /* argv_in_out */ 353 ); 354 355 _XFUNCPROTOEND 356 357 #endif /* _X11_XRESOURCE_H_ */ 358 /* DON'T ADD STUFF AFTER THIS #endif */