|
|
1.1 root 1: /* $Header: Intrinsic.h,v 1.2 87/07/13 09:27:06 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 _Xtintrinsic_h
30: #define _Xtintrinsic_h
31:
32: #include <X11/Xresource.h>
33: #include <X11/Xutil.h>
34:
35: /****************************************************************
36: ****************************************************************
37: *** ***
38: *** ***
39: *** X Toolkit Intrinsics ***
40: *** ***
41: *** ***
42: ****************************************************************
43: ****************************************************************/
44:
45:
46: /****************************************************************
47: *
48: * System Dependent Definitions
49: *
50: *
51: * The typedef for XtArgVal should be chosen such that
52: * sizeof (XtArgVal) == max (sizeof(caddr_t), sizeof(long))
53: *
54: * ArgLists rely heavily on the above typedef.
55: *
56: ****************************************************************/
57:
58: typedef char *XtArgVal;
59:
60:
61:
62: /****************************************************************
63: *
64: * Miscellaneous definitions
65: *
66: ****************************************************************/
67:
68: #include <sys/types.h>
69:
70: #ifndef NULL
71: #define NULL 0
72: #endif
73:
74: #define Boolean int
75: #ifndef FALSE
76: #define FALSE 0
77: #define TRUE 1
78: #endif
79:
80: #define XtNumber(arr) (sizeof(arr) / sizeof(arr[0]))
81:
82: typedef char *String;
83:
84: typedef unsigned long GCMask; /* Mask of values that are used by widget*/
85: typedef unsigned long Pixel; /* Index into colormap */
86: typedef int Position; /* Offset from 0 coordinate */
87: typedef unsigned int Dimension; /* Size in pixels */
88:
89:
90: /****************************************************************
91: *
92: * Error codes
93: *
94: ****************************************************************/
95:
96: typedef int XtStatus;
97:
98: #define XtSUCCESS 0 /* No error. */
99:
100: extern int (*XtErrorFunction)();
101: extern int XtreferenceCount;
102:
103:
104: #define XtNOMEM 1 /* Out of memory. */
105: #define XtFOPEN 3 /* fopen failed. */
106: #define XtNOTWINDOW 4 /* Given window id is invalid. */
107:
108:
109: /****************************************************************
110: *
111: * Toolkit initialization
112: *
113: ****************************************************************/
114:
115: extern void XtInitialize();
116:
117: /****************************************************************
118: *
119: * Memory Allocation
120: *
121: ****************************************************************/
122:
123: #ifndef _Alloc_c_
124:
125: extern char *XtMalloc(); /* size */
126: /* unsigned size; */
127:
128: extern char *XtCalloc(); /* num, size */
129: /* unsigned num, size; */
130:
131: extern char *XtRealloc(); /* ptr, num */
132: /* char *ptr; */
133: /* unsigned num; */
134:
135: extern void XtFree(); /* ptr */
136: /* char *ptr; */
137:
138: #endif
139:
140:
141:
142:
143: /****************************************************************
144: *
145: * Arg lists
146: *
147: ****************************************************************/
148:
149: typedef struct {
150: XrmAtom name;
151: XtArgVal value;
152: } Arg, *ArgList;
153:
154: #define XtSetArg(arg, n, d) \
155: ( (arg).name = (n), (arg).value = (XtArgVal)(d) )
156:
157: extern ArgList XtMergeArgLists(); /* args1, argCount1, args2, argCount2 */
158: /* ArgList args1; */
159: /* int argCount1; */
160: /* ArgList args2; */
161: /* int argCount2; */
162:
163:
164:
165: /****************************************************************
166: *
167: * Cursor Management
168: *
169: ****************************************************************/
170:
171: extern Cursor XtGetCursor(); /* num */
172: /* int num; */
173:
174:
175: /****************************************************************
176: *
177: * Event Management
178: *
179: ****************************************************************/
180:
181: typedef enum {
182: XteventHandled, /* Event dispatched and handled */
183: XteventNotHandled, /* Event dispatched but not handled by event proc */
184: XteventNoHandler, /* No event handler proc found */
185: } XtEventReturnCode;
186:
187: #define XtINPUT_READ (1)
188: #define XtINPUT_WRITE (2)
189: #define XtINPUT_EXCEPT (4)
190:
191: /* These are hand-generated atoms for use in ClientMessage events
192: * They are never sent to the server. They will not conflict with
193: * any server-generated atoms because one of the 3 most significant
194: * bits is set. We should consider getting real atoms from the server
195: * at runtime
196: */
197:
198: #define XtHasInput (0x80000001)
199: /* XClientEvent.data.l[0] is source
200: * XClientEvent.data.l[1] is condition
201: */
202:
203: #define XtTimerExpired (0x80000002)
204: /* XClientEvent.data.l[0] is cookie
205: */
206:
207: typedef XtEventReturnCode (*XtEventHandler)(); /* event, data */
208: /* XEvent *event; */
209: /* caddr_t data; */
210:
211: extern void XtSetEventHandler(); /* w, proc, eventMask, data */
212: /* Window w; */
213: /* XtEventHandler proc; */
214: /* unsigned long eventMask; */
215: /* caddr_t data; */
216:
217: extern void XtSetGlobalEventHandler(); /* dpy, proc, eventMask, data */
218: /* Display *dpy; */
219: /* XtEventHandler proc; */
220: /* unsigned long eventMask; */
221: /* caddr_t data; */
222:
223: extern void XtDeleteEventHandler(); /* w, proc */
224: /* Window w; */
225: /* XtEventHandler proc; */
226:
227: extern void XtClearEventHandlers(); /* window */
228: /* Window window; */
229:
230: extern void XtMakeMaster(); /* w */
231: /* Window w; */
232:
233: extern XtEventReturnCode XtDispatchEvent(); /* event */
234: /* XEvent *event; */
235:
236: /****************************************************************
237: *
238: * Event Gathering Routines
239: *
240: ****************************************************************/
241:
242: extern void XtSetTimeOut(); /* wID, cookie, interval */
243: /* Window wID; */
244: /* caddr_t cookie; */
245: /* int interval; */
246:
247: extern int XtGetTimeOut(); /* wID, cookie */
248: /* Window wID; */
249: /* caddr_t cookie; */
250:
251: extern int XtClearTimeOut(); /* wID, cookie */
252: /* Window wID; */
253: /* caddr_t cookie; */
254:
255: extern void XtAddInput(); /* wID, source, condition */
256: /* Window wID; */
257: /* int source; */
258: /* int condition; */
259:
260: extern void XtRemoveInput(); /* wID, source, condition */
261: /* Window wID; */
262: /* int source; */
263: /* int condition; */
264:
265: extern void XtNextEvent(); /* event */
266: /* XtEvent *event; */
267:
268: extern XtPeekEvent(); /* event */
269: /* XtEvent *event; */
270:
271:
272: /****************************************************************
273: *
274: * Geometry Management
275: *
276: ****************************************************************/
277:
278: typedef enum {
279: XtgeometryMove, /* Move window to wb.x, wb.y */
280: XtgeometryResize, /* Resize window to wb.width, wb.height */
281: XtgeometryTop, /* Move window to top of stack */
282: XtgeometryBottom, /* Move window to bottom of stack */
283: XtgeometryGetWindowBox /* Return window position, dimensions */
284: } XtGeometryRequest;
285:
286: typedef struct {
287: Position x, y;
288: Dimension width, height, borderWidth;
289: } WindowBox, *WindowBoxPtr;
290:
291: typedef enum {
292: XtgeometryYes, /* Request accepted. */
293: XtgeometryNo, /* Request denied. */
294: XtgeometryAlmost, /* Request denied, but willing to take replyBox. */
295: XtgeometryNoManager /* Request denied: couldn't find geometry manager */
296: } XtGeometryReturnCode;
297:
298: typedef XtGeometryReturnCode (*XtGeometryHandler)();
299: /* dpy, w, request, requestBox, replyBox */
300: /* Display *dpy; */
301: /* Window w; */
302: /* XtGeometryRequest request; */
303: /* WindowBox *requestBox; */
304: /* WindowBox *replyBox; /* RETURN */
305:
306: extern XtStatus XtSetGeometryHandler(); /* dpy, w, proc */
307: /* Display *dpy; */
308: /* Window w; */
309: /* XtGeometryHandler proc; */
310:
311: extern XtStatus XtGetGeometryHandler(); /* dpy, w, proc */
312: /* Display *dpy; */
313: /* Window w; */
314: /* XtGeometryHandler *proc; /* RETURN */
315:
316: extern XtStatus XtClearGeometryHandler(); /* w */
317: /* Window w; */
318:
319: extern XtGeometryReturnCode XtMakeGeometryRequest();
320: /* dpy, window, request, requestBox, replyBox */
321: /* Display *dpy; */
322: /* Window window; */
323: /* XtGeometryRequest request; */
324: /* WindowBox *requestBox; */
325: /* WindowBox *replyBox; /* RETURN */
326:
327: typedef struct {
328: Window w;
329: WindowBox wb;
330: } WindowLug, *WindowLugPtr;
331:
332:
333: /****************************************************************
334: *
335: * Graphic Context Management
336: *****************************************************************/
337:
338: extern GC XtGetGC(); /* widgetKind, drawable, valueMask, values */
339: /* XContext widgetKind; */
340: /* Drawable d; */
341: /* int valueMask; */
342: /* XGCValues *values; */
343:
344:
345: /****************************************************************
346: *
347: * Messages
348: *
349: ****************************************************************/
350:
351: extern XtEventReturnCode XtSendEvent(); /* w, type */
352: /* Window w; */
353: /* unsigned long type; */
354:
355: extern XtEventReturnCode XtSendDestroyNotify(); /* w */
356: /* Window w; */
357:
358: extern XtEventReturnCode XtSendExpose(); /* w */
359: /* Window w; */
360:
361: extern XtEventReturnCode XtSendConfigureNotify(); /* w, box */
362: /* Window w; */
363: /* WindowBox box; */
364:
365: extern XtEventReturnCode XtSendMessage(); /* w, message, args, argCount */
366: /* Window w; */
367: /* XtMessage message; */
368: /* ArgList args; */
369: /* int argCount; */
370:
371: extern XtStatus XtGetWindowSize(); /* window, width, height, borderWidth */
372: /* Window window; */
373: /* int *width, *height, *borderWidth; /* RETURN */
374:
375:
376: /****************************************************************
377: *
378: * Resources
379: *
380: ****************************************************************/
381:
382: typedef struct _Resource {
383: XrmAtom name; /* Resource name */
384: XrmAtom class; /* Resource class */
385: XrmAtom type; /* Representation type desired */
386: unsigned int size; /* Size in bytes of representation */
387: caddr_t addr; /* Where to put resource value */
388: caddr_t defaultaddr; /* Default resource value (or addr) */
389: } Resource, *ResourceList;
390:
391:
392: extern void XtGetResources();
393: /* resources, resourceCount, args, argCount,
394: parent, widgetName, widgetClass, names, classes */
395: /* ResourceList resources; */
396: /* int resourceCount; */
397: /* ArgList args; */
398: /* int argCount; */
399: /* Window parent; */
400: /* XrmAtom widgetName; */
401: /* XrmAtom widgetClass; */
402: /* XrmNameList *names; /* RETURN */
403: /* XrmClassList *classes; /* RETURN */
404:
405: extern void XtSetNameAndClass(); /* dpy, w, names, classes */
406: /* Display *dpy; */
407: /* Window w; */
408: /* XrmNameList names; */
409: /* XrmClassList classes; */
410:
411: extern void XtGetValues(); /* resources, resourceCount, args, argCount */
412: /* ResourceList resources; */
413: /* int resourceCount; */
414: /* ArgList args; */
415: /* int argCount; */
416:
417: extern void XtSetValues(); /* resources, resourceCount, args, argCount */
418: /* ResourceList resources; */
419: /* int resourceCount; */
420: /* ArgList args; */
421: /* int argCount; */
422:
423: extern int XtDefaultFGPixel, XtDefaultBGPixel;
424:
425:
426:
427:
428: /****************************************************************
429: *
430: * Translation Management
431: *
432: ****************************************************************/
433:
434: typedef caddr_t XtEventsPtr;
435:
436: typedef struct {
437: char *string;
438: caddr_t value;
439: } XtActionsRec, *XtActionsPtr;
440:
441: /* Different classes of action tokens */
442:
443: typedef enum {XttokenChar, XttokenString, XttokenAction} TokenType;
444:
445: /* List of tokens. */
446:
447: typedef XrmQuark XtAction;
448: #define XtAtomToAction(atom) ((XtAction) XrmAtomToQuark(atom))
449:
450: typedef struct _XtActionTokenRec {
451: TokenType type;
452: union {
453: char c;
454: char *str;
455: XtAction action;
456: } value;
457: struct _XtActionTokenRec *next;
458: } XtActionTokenRec, *XtActionTokenPtr;
459:
460: typedef struct _TranslationRec *TranslationPtr;
461:
462: extern XtEventsPtr XtSetActionBindings();
463: /* eventTable, actionTable, defaultValue */
464: /* XtEventsPtr eventTable; */
465: /* XtActionsPtr actionTable; */
466: /* caddr_t defaultValue; */
467:
468: extern XtEventsPtr XtParseEventBindings(); /* stringTable */
469: /* char **stringTable */
470:
471: extern caddr_t XtInterpretAction(); /* state, action */
472: /* TranslationPtr start; */
473: /* XtAction action; */
474:
475: XtActionTokenPtr XtTranslateEvent(); /* event, state */
476: /* XEvent *event; */
477: /* TranslationPtr state; */
478:
479:
480:
481: /***********************************************************************
482: *
483: * Utility routines
484: *
485: ***********************************************************************/
486:
487: extern Window XtCreateWindow(); /* (dpy, parent, x, y, width, height,
488: borderWidth, border, background,
489: bitgravity) */
490: /* Display *dpy; */
491: /* Window parent; */
492: /* Position x, y; */
493: /* Dimension width, height, borderWidth; */
494: /* Pixel border; */
495: /* Pixel background; */
496: /* int bitgravity; */
497:
498: #endif _Xtintrinsic_h
499: /* 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.