|
|
1.1 ! root 1: /* $Header: Xresource.h,v 1.1 87/09/11 08:09:41 toddb Exp $ */ ! 2: /* ! 3: * sccsid: %W% %G% ! 4: */ ! 5: ! 6: /* ! 7: * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. ! 8: * ! 9: * All Rights Reserved ! 10: * ! 11: * Permission to use, copy, modify, and distribute this software and its ! 12: * documentation for any purpose and without fee is hereby granted, ! 13: * provided that the above copyright notice appear in all copies and that ! 14: * both that copyright notice and this permission notice appear in ! 15: * supporting documentation, and that the name of Digital Equipment ! 16: * Corporation not be used in advertising or publicity pertaining to ! 17: * distribution of the software without specific, written prior permission. ! 18: * ! 19: * ! 20: * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ! 21: * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ! 22: * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ! 23: * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, ! 24: * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ! 25: * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ! 26: * SOFTWARE. ! 27: */ ! 28: ! 29: #ifndef _Xresource_h ! 30: #define _Xresource_h ! 31: ! 32: /**************************************************************** ! 33: **************************************************************** ! 34: *** *** ! 35: *** *** ! 36: *** X Resource Manager Intrinsics *** ! 37: *** *** ! 38: *** *** ! 39: **************************************************************** ! 40: ****************************************************************/ ! 41: ! 42: ! 43: ! 44: /**************************************************************** ! 45: * ! 46: * Miscellaneous definitions ! 47: * ! 48: ****************************************************************/ ! 49: ! 50: #include <sys/types.h> ! 51: ! 52: #ifndef NULL ! 53: #define NULL 0 ! 54: #endif ! 55: ! 56: /**************************************************************** ! 57: * ! 58: * Quark Management ! 59: * ! 60: ****************************************************************/ ! 61: ! 62: typedef int XrmQuark, *XrmQuarkList; ! 63: #define NULLQUARK ((XrmQuark) 0) ! 64: ! 65: typedef char *XrmAtom; ! 66: #define NULLATOM ((XrmAtom) 0) ! 67: ! 68: /* find quark for atom, create new quark if none already exists */ ! 69: extern XrmQuark XrmAtomToQuark(); /* name */ ! 70: /* XrmAtom name; */ ! 71: ! 72: /* find atom for quark */ ! 73: extern XrmAtom XrmQuarkToAtom(); /* quark */ ! 74: /* XrmQuark name; */ ! 75: ! 76: extern XrmQuark XrmUniqueQuark(); ! 77: ! 78: #define XrmAtomsEqual(a1, a2) (strcmp(a1, a2) == 0) ! 79: ! 80: ! 81: /**************************************************************** ! 82: * ! 83: * Quark Lists ! 84: * ! 85: ****************************************************************/ ! 86: ! 87: extern void XrmStringToQuarkList(); /* name, quarks */ ! 88: /* char *name; */ ! 89: /* XrmQuarkList quarks; */ ! 90: ! 91: extern XrmQuarkList XrmNewQuarkList(); ! 92: ! 93: extern XrmQuarkList XrmFreeQuarkList(); /* list */ ! 94: /* XrmQuarkList list; */ ! 95: ! 96: extern int XrmQuarkListLength(); /* list */ ! 97: /* XrmQuarkList list */ ! 98: ! 99: extern XrmQuarkList XrmCopyQuarkList(); /* list */ ! 100: /* XrmQuarkList list; */ ! 101: ! 102: ! 103: /**************************************************************** ! 104: * ! 105: * Name and Class lists. ! 106: * ! 107: ****************************************************************/ ! 108: ! 109: /* ||| Should be opaque types */ ! 110: ! 111: typedef XrmQuark XrmName; ! 112: typedef XrmQuarkList XrmNameList; ! 113: #define XrmNameToAtom(name) (XrmQuarkToAtom((XrmQuark) (name))) ! 114: #define XrmAtomToName(name) ((XrmName) XrmAtomToQuark((XrmAtom) (name))) ! 115: #define XrmNameListLength(names) XrmQuarkListLength((XrmQuarkList)(names)) ! 116: #define XrmStringToNameList(str, name) XrmStringToQuarkList(str, (XrmQuarkList)(name)) ! 117: #define XrmFreeNameList(name) XrmFreeQuarkList((XrmQuarkList)(name)) ! 118: ! 119: typedef XrmQuark XrmClass; ! 120: typedef XrmQuarkList XrmClassList; ! 121: #define XrmClassToAtom(class) (XrmQuarkToAtom((XrmQuark) (class))) ! 122: #define XrmAtomToClass(class) ((XrmClass) XrmAtomToQuark((XrmAtom) (class))) ! 123: #define XrmClassListLength(classes) XrmQuarkListLength((XrmQuarkList)(classes)) ! 124: #define XrmStringToClassList(str,class) XrmStringToQuarkList(str, (XrmQuarkList)(class)) ! 125: #define XrmFreeClassList(class) XrmFreeQuarkList((XrmQuarkList)(class)) ! 126: ! 127: ! 128: ! 129: /**************************************************************** ! 130: * ! 131: * Resource Types and Conversions ! 132: * ! 133: ****************************************************************/ ! 134: ! 135: typedef struct { ! 136: unsigned int size; ! 137: caddr_t addr; ! 138: } XrmValue, *XrmValuePtr; ! 139: ! 140: typedef void (*XrmTypeConverter)(); /* from, to */ ! 141: /* XrmValue from; */ ! 142: /* XrmValue *to; */ ! 143: ! 144: extern void XrmRegisterTypeConverter(); /*fromType, toType, converter*/ ! 145: /* XrmAtom fromType, toType; */ ! 146: /* XrmTypeConverter converter; */ ! 147: ! 148: extern void XrmConvert(); /* dpy, fromType, from, toType, to*/ ! 149: /* Display *dpy; */ ! 150: /* XrmAtom fromType */ ! 151: /* XrmValue from; */ ! 152: /* XrmAtom toType; */ ! 153: /* XrmValue *to; /* RETURN */ ! 154: ! 155: /**************************************************************** ! 156: * ! 157: * Resource Manager Functions ! 158: * ! 159: ****************************************************************/ ! 160: ! 161: typedef struct _XrmHashBucketRec *XrmHashBucket; ! 162: typedef XrmHashBucket *XrmHashTable; ! 163: typedef XrmHashTable XrmSearchList[]; ! 164: ! 165: extern void XrmInitialize(); ! 166: ! 167: extern void XrmPutResource(); /*quarks, type, val*/ ! 168: /* XrmQuarkList quarks; */ ! 169: /* XrmRepresentation type; */ ! 170: /* XrmValue val; */ ! 171: ! 172: extern void XrmGetResource(); /* dpy, names, classes, destType, val*/ ! 173: /* Display *dpy; */ ! 174: /* XrmNameList names; */ ! 175: /* XrmClassList classes; */ ! 176: /* XrmRepresentation destType; */ ! 177: /* XrmValue *val; */ ! 178: ! 179: extern void XrmGetSearchList(); /* names, classes, searchList */ ! 180: /* XrmNameList names; */ ! 181: /* XrmClassList classes; */ ! 182: /* SearchList searchList; /* RETURN */ ! 183: ! 184: extern void XrmGetSearchResource(); ! 185: /* dpy, searchList, name, class, type, pVal */ ! 186: /* Display *dpy; */ ! 187: /* SearchList searchList; */ ! 188: /* XrmName name; */ ! 189: /* XrmClass class; */ ! 190: /* XrmAtom type; */ ! 191: /* XrmValue *pVal; /* RETURN */ ! 192: ! 193: /**************************************************************** ! 194: * ! 195: * Resource Database Management ! 196: * ! 197: ****************************************************************/ ! 198: ! 199: typedef struct _XrmResourceDataBase *XrmResourceDataBase; ! 200: typedef int unspecified; ! 201: ! 202: extern void XrmSetCurrentDataBase(); /* db */ ! 203: /* XrmResourceDataBase db; */ ! 204: ! 205: extern void XrmGetCurrentDataBase(); /* db */ ! 206: /* XrmResourceDataBase *db; /* RETURN */ ! 207: ! 208: extern void XrmGetDataBase(); /* magicCookie, db*/ ! 209: /* unspecified magicCookie; /* *FILE, actually */ ! 210: /* XrmResourceDataBase *db; /* RETURN */ ! 211: ! 212: extern void XrmPutDataBase(); /* magicCookie, db */ ! 213: /* unspecified magicCookie; /* *FILE, actually */ ! 214: /* XrmResourceDataBase db; */ ! 215: ! 216: extern void XrmMergeDataBases(); /* new, into */ ! 217: /* XrmResourceDataBase new; */ ! 218: /* XrmResourceDataBase *into; /* RETURN */ ! 219: ! 220: ! 221: ! 222: ! 223: /**************************************************************** ! 224: * ! 225: * Command line option mapping to resource entries ! 226: * ! 227: ****************************************************************/ ! 228: ! 229: typedef enum { ! 230: XrmoptionNoArg, /* Value is specified in OptionDescRec.value */ ! 231: XrmoptionIsArg, /* Value is the option string itself */ ! 232: XrmoptionStickyArg, /* Value is characters immediately following option */ ! 233: XrmoptionSepArg, /* Value is next argument in argv */ ! 234: XrmoptionSkipArg, /* Ignore this option and the next argument in argv */ ! 235: XrmoptionSkipLine /* Ignore this option and the rest of argv */ ! 236: } XrmOptionKind; ! 237: ! 238: typedef struct { ! 239: char *option; /* Option abbreviation in argv */ ! 240: char *resourceName; /* Resource name (sans application name) */ ! 241: XrmOptionKind argKind; /* Which style of option it is */ ! 242: caddr_t value; /* Value to provide if XrmoptionStickyArg */ ! 243: } XrmOptionDescRec, *XrmOptionDescList; ! 244: ! 245: extern void XrmParseCommand(); /* table, prependName, argc, argv */ ! 246: /* XrmOptionDescList table; */ ! 247: /* int tableCount; */ ! 248: /* XrmAtom prependName; (NULLATOM means don't prepend) */ ! 249: /* int *argc; */ ! 250: /* char **argv; */ ! 251: ! 252: ! 253: /**************************************************************** ! 254: * ! 255: * Predefined atoms ! 256: * ! 257: ****************************************************************/ ! 258: ! 259: /* Representation types */ ! 260: ! 261: #define XrmRBoolean "Boolean" ! 262: #define XrmRColor "Color" ! 263: #define XrmRCursor "Cursor" ! 264: #define XrmRDims "Dims" ! 265: #define XrmRDisplay "Display" ! 266: #define XrmRFile "File" ! 267: #define XrmRFloat "Float" ! 268: #define XrmRFont "Font" ! 269: #define XrmRFontStruct "FontStruct" ! 270: #define XrmRGeometry "Geometry" ! 271: #define XrmRInt "Int" ! 272: #define XrmRPixel "Pixel" ! 273: #define XrmRPixmap "Pixmap" ! 274: #define XrmRPointer "Pointer" ! 275: #define XrmRString "String" ! 276: #define XrmRWindow "Window" ! 277: ! 278: ! 279: /* Boolean enumeration constants */ ! 280: ! 281: #define XrmEoff "off" ! 282: #define XrmEfalse "false" ! 283: #define XrmEno "no" ! 284: ! 285: #define XrmEon "on" ! 286: #define XrmEtrue "true" ! 287: #define XrmEyes "yes" ! 288: ! 289: ! 290: ! 291: ! 292: #endif _Xresource_h ! 293: /* DON'T ADD STUFF AFTER THIS #endif */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.