|
|
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.