|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: I T
Length: 16665 (0x4119) Types: TextFile Names: »Intrinsic.h«
└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« └─⟦d3ac74d73⟧ └─⟦this⟧ »isode-5.0/others/max/Intrinsic.h« └─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦35176feda⟧ »EurOpenD22/isode/isode-6.tar.Z« └─⟦de7628f85⟧ └─⟦this⟧ »isode-6.0/others/max/Intrinsic.h«
/* * sccsid: @(#)Intrinsic.h 1.16 6/8/87 */ /* * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. * * All Rights Reserved * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, * provided that the above copyright notice appear in all copies and that * both that copyright notice and this permission notice appear in * supporting documentation, and that the name of Digital Equipment * Corporation not be used in advertising or publicity pertaining to * distribution of the software without specific, written prior permission. * * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ #ifndef _Intrinsic_h #define _Intrinsic_h /**************************************************************** **************************************************************** *** *** *** *** *** X Toolkit Intrinsics *** *** *** *** *** **************************************************************** ****************************************************************/ /**************************************************************** * * System Dependent Definitions * * * The typedef for XtArgVal should be chosen such that * sizeof (XtArgVal) == max (sizeof(caddr_t), sizeof(long)) * * ArgLists rely heavily on the above typedef. * ****************************************************************/ typedef char *XtArgVal; /**************************************************************** * * Miscellaneous definitions * ****************************************************************/ #ifndef makedev #include <sys/types.h> #endif #ifndef NULL #define NULL 0 #endif #define Boolean int #ifndef FALSE #define FALSE 0 #define TRUE 1 #endif #define XtNumber(arr) (sizeof(arr) / sizeof(arr[0])) /**************************************************************** * * Error codes * ****************************************************************/ typedef int XtStatus; #define XtSUCCESS 0 /* No error. */ extern int (*XtErrorFunction)(); extern int XtreferenceCount; /* Associative lookup table error codes */ #define XtNOMEM 1 /* Out of memory */ #define XtNOENT 2 /* No entry in table */ #define XtFOPEN 3 /* fopen failed. */ /* Other errors. */ #define XtNOTWINDOW 3 /* Given window id is invalid. */ /**************************************************************** * * Toolkit initialization * ****************************************************************/ extern void XtInitialize(); extern Display *XtCurDisplay; extern int XtCurScreen; /**************************************************************** * * Memory Allocation * ****************************************************************/ #ifndef _Alloc_c_ extern char *XtMalloc(); /* size */ /* unsigned size; */ extern char *XtCalloc(); /* num, size */ /* unsigned num, size; */ extern char *XtRealloc(); /* ptr, num */ /* char *ptr; */ /* unsigned num; */ extern void free(); #define XtFree(ptr) if ((ptr) != NULL) free(ptr); #endif /**************************************************************** * * Quark Management * ****************************************************************/ typedef int XtQuark, *XtQuarkList; #define NULLQUARK ((XtQuark) 0) typedef char *XtAtom; #define NULLATOM ((XtAtom) 0) /* find quark for atom, create new quark if none already exists */ extern XtQuark XtAtomToQuark(); /* name */ /* XtAtom name; */ /* find atom for quark */ extern XtAtom XtQuarkToAtom(); /* quark */ /* XtQuark name; */ extern XtQuark XtUniqueQuark(); #define XtAtomsEqual(a1, a2) (a1 && a2 && (strcmp(a1, a2) == 0)) /**************************************************************** * * Quark Lists * ****************************************************************/ extern void XtStringToQuarkList(); /* name, quarks */ /* char *name; */ /* XtQuarkList quarks; */ extern XtQuarkList XtNewQuarkList(); #define XtFreeQuarkList(list) XtFree((char *) list) extern int XtQuarkListLength(); /* list */ /* XtQuarkList list */ extern XtQuarkList XtCopyQuarkList(); /* list */ /* XtQuarkList list; */ /**************************************************************** * * Arg lists * ****************************************************************/ typedef struct { XtAtom name; XtArgVal value; } Arg, *ArgList; #define XtSetArg(arg, n, d) \ ( (arg).name = (n), (arg).value = (XtArgVal)(d) ) extern ArgList XtMergeArgLists(); /* args1, argCount1, args2, argCount2 */ /* ArgList args1; */ /* int argCount1; */ /* ArgList args2; */ /* int argCount2; */ /**************************************************************** * * Context Management * ****************************************************************/ typedef XtQuark XtContext; #define XtUniqueContext() ((XtContext) XtUniqueQuark()) #define XtAtomToContext(atom) ((XtContext) XtAtomToQuark(atom)) extern XtStatus XtSaveContext(); /* window, context, data */ /* Window window; */ /* XtContext context; */ /* caddr_t data; */ extern XtStatus XtFindContext(); /* window, context, data */ /* Window window; */ /* XtContext context; */ /* caddr_t *data; /* RETURN */ extern XtStatus XtDeleteContext(); /* window, context */ /* Window window; */ /* XtContext context; */ /**************************************************************** * * Cursor Management * ****************************************************************/ extern Cursor XtGetCursor(); /* num */ /* int num; */ /**************************************************************** * * Event Management * ****************************************************************/ #define ResizeWindow 0x0081 /* Faked XEvent code for windows changing s! ize */ #define DestroyWindow 0x0083 /* Faked XEvent code for destroying a wind! ow */ typedef enum { XteventHandled, /* Event dispatched and handled */ XteventNotHandled, /* Event dispatched but not handled by event proc */ XteventNoHandler, /* No event handler proc found */ XteventError /* Error in event handling */ } XtEventReturnCode; #define XtINPUT_READ (1) #define XtINPUT_WRITE (2) #define XtINPUT_EXCEPT (4) typedef XtEventReturnCode (*XtEventHandler)(); /* event, data */ /* XEvent *event; */ /* caddr_t data; */ extern void XtSetEventHandler(); /* w, proc, eventMask, data */ /* Window w; */ /* XtEventHandler proc; */ /* unsigned long eventMask; */ /* caddr_t data; */ extern void XtSetNotify(); /* proc, mask, data */ /* XtEventHandler proc; */ /* unsigned long mask; */ /* caddr_t data; */ extern void XtDeleteNotify(); /* proc */ /* XtEventHandler proc; */ extern void XtDeleteEventHandler(); /* w, proc */ /* Window w; */ /* XtEventHandler proc; */ extern void XtClearEventHandlers(); /* window */ /* Window window; */ extern XtEventReturnCode XtDispatchEvent(); /* event */ /* XEvent *event; */ extern void XtDisableAutoGrab(); /* w */ /* Window w; */ extern void XtEnableAutoGrab(); /* w */ /* Window w; */ extern void XtGrabMouse(); /* w, cursor, mask */ /* Window w; */ /* Cursor cursor; */ /* unsigned long mask; */ extern void XtUngrabMouse(); /**************************************************************** * * Geometry Management * ****************************************************************/ #define geometryMOVE 0x1 /* Move window to wb.x, wb.y */ #define geometryRESIZE 0x2 /* Resize to wb.width, wb.height */ #define geometryTOP 0x4 /* Move window to top of stack */ #define geometryBOTTOM 0x8 /* Move window to bottom of stack */ #define geometryGETWINDOWBOX 0x10 /* Return window pos., dimensions */ typedef struct { int x, y, width, height, borderWidth; } WindowBox, *WindowBoxPtr; typedef enum { XtgeometryYes, /* Request accepted. */ XtgeometryNo, /* Request denied. */ XtgeometryAlmost, /* Request denied, but willing to take replyBox. */ XtgeometryNoManager /* Request denied: couldn't find geometry manager */ } XtGeometryReturnCode; typedef XtGeometryReturnCode (*XtGeometryHandler)(); /* w, request, requestBox, replyBox */ /* Window w; */ /* XtGeometryRequest request; */ /* WindowBox *requestBox; */ /* WindowBox *replyBox; /* RETURN */ extern XtStatus XtSetGeometryHandler(); /* w, proc */ /* Window w; */ /* XtGeometryHandler proc; */ extern XtStatus XtGetGeometryHandler(); /* w, proc */ /* Window w; */ /* XtGeometryHandler *proc; /* RETURN */ extern XtStatus XtClearGeometryHandler(); /* w */ /* Window w; */ extern XtGeometryReturnCode XtMakeGeometryRequest(); /* window, request, requestBox, replyBox */ /* Window window; */ /* XtGeometryRequest request; */ /* WindowBox *requestBox; */ /* WindowBox *replyBox; /* RETURN */ typedef struct { Window w; WindowBox wb; } WindowLug, *WindowLugPtr; /**************************************************************** * * Resources * ****************************************************************/ typedef struct _Resource { XtAtom name; /* Resource name */ XtAtom class; /* Resource class */ XtAtom type; /* Representation type desired */ unsigned int size; /* Size in bytes of representation */ caddr_t addr; /* Where to put resource value */ caddr_t defaultaddr; /* Default resource value (or addr) */ } Resource, *ResourceList; /* ||| Should be opaque types */ /* ||| Free of lists should probably be done by SetNameAndClass */ typedef XtQuark XtName; typedef XtQuarkList XtNameList; #define XtNameToAtom(name) (XtQuarkToAtom((XtQuark) (name))) #define XtNameListLength(names) (XtQuarkListLength((XtQuarkList)names)) #define XtFreeNameList(name) XtFreeQuarkList((XtQuark) (name)) typedef XtQuark XtClass; typedef XtQuarkList XtClassList; #define XtFreeClassList(class) XtFreeQuarkList((XtQuark) (class)) extern void XtGetResources(); /* resources, resourceCount, args, argCount, parent, widgetName, widgetClass, names, classes */ /* ResourceList resources; */ /* int resourceCount; */ /* ArgList args; */ /* int argCount; */ /* Window parent; */ /* XtAtom widgetName; */ /* XtAtom widgetClass; */ /* XtNameList *names; /* RETURN */ /* XtClassList *classes; /* RETURN */ extern void XtSetNameAndClass(); /* w, names, classes */ /* Window w; */ /* XtNameList names; */ /* XtClassList classes; */ extern void XtGetValues(); /* resources, resourceCount, args, argCount */ /* ResourceList resources; */ /* int resourceCount; */ /* ArgList args; */ /* int argCount; */ extern void XtSetValues(); /* resources, resourceCount, args, argCount */ /* ResourceList resources; */ /* int resourceCount; */ /* ArgList args; */ /* int argCount; */ extern int XtDefaultFGPixel, XtDefaultBGPixel; extern Pixmap XtDefaultFGPixmap, XtDefaultBGPixmap; /**************************************************************** * * Resource Types and Conversions * ****************************************************************/ typedef struct { unsigned int size; caddr_t addr; } XrmValue, *XrmValuePtr; typedef void (*XtTypeConverter)(); /* from, to */ /* XrmValue from; */ /* XrmValue *to; */ extern void XtRegisterTypeConverter(); /*fromType, toType, converter*/ /* XtAtom fromType, toType; */ /* XtTypeConverter converter; */ extern void XtConvert(); /* fromType, from, toType, to*/ /* XtAtom fromType */ /* XrmValue from; */ /* XtAtom toType; */ /* XrmValue *to; /* RETURN */ /**************************************************************** * * Resource Database Management * ****************************************************************/ typedef struct _ResourceDataBase *ResourceDataBase; typedef int unspecified; extern void XtSetCurrentDataBase(); /* db */ /* ResourceDataBase db; */ extern void XtGetCurrentDataBase(); /* db */ /* ResourceDataBase *db; /* RETURN */ extern void XtFreeDataBase (); /* db */ /* ResourceDataBase db; */ extern void XtGetDataBase(); /* magicCookie, db*/ /* unspecified magicCookie; /* *FILE, actually */ /* ResourceDataBase *db; /* RETURN */ extern void XtPutDataBase(); /* magicCookie, db */ /* unspecified magicCookie; /* *FILE, actually */ /* ResourceDataBase db; */ extern void XtEnumDataBase(); /* tag, proc, db */ /* caddr_t tag; */ /* DBEnumProc proc; */ /* ResourceDataBase db; */ extern void XtMergeDataBases(); /* new, into */ /* ResourceDataBase new; */ /* ResourceDataBase *into; /* RETURN */ /**************************************************************** * * Command line option mapping to resource entries * ****************************************************************/ typedef enum { XtoptionNoArg, /* Value is specified in OptionDescRec.value */ XtoptionIsArg, /* Value is the option string itself */ XtoptionStickyArg, /* Value is characters immediately following option */ XtoptionSepArg, /* Value is next argument in argv */ XtoptionSkipArg, /* Ignore this option and the next argument in argv */ XtoptionSkipLine /* Ignore this option and the rest of argv */ } XtOptionKind; typedef struct { char *option; /* Option abbreviation in argv */ char *resourceName; /* Resource name (sans application name) */ XtOptionKind argKind; /* Which style of option it is */ caddr_t value; /* Value to provide if optionSTICKYARG */ } OptionDescRec, *OptionDescList; extern void XtParseCommand(); /* table, prependName, argc, argv */ /* OptionDescList table; */ /* int tableCount; */ /* XtAtom prependName; (NULLATOM means don't prepend) */ /* int *argc; */ /* char **argv; */ /**************************************************************** * * Translation Management * ****************************************************************/ typedef caddr_t XtEventsPtr; typedef struct { char *string; caddr_t value; } XtActionsRec, *XtActionsPtr; /* Different classes of action tokens */ typedef enum {XttokenChar, XttokenString, XttokenAction} XtTokenType; /* List of tokens. */ typedef XtQuark XtAction; #define XtAtomToAction(atom) ((XtAction) XtAtomToQuark(atom)) typedef struct _XtActionTokenRec { XtTokenType type; union { char c; char *str; XtAction action; } value; struct _XtActionTokenRec *next; } XtActionTokenRec, *XtActionTokenPtr; extern caddr_t XtSetActionBindings(); /* eventTable, actionTable, defaultValue */ /* XtEventsPtr eventTable; */ /* XtActionsPtr actionTable; */ /* caddr_t defaultValue; */ extern XtEventsPtr XtParseEventBindings(); /* stringTable */ /* char **stringTable */ extern void XtMergeEventBindings(); /* eventTable, string Table */ /* XtEventsPtr eventTable */ /* char **stringTable */ extern caddr_t XtInterpretAction(); /* state, action */ /* TranslationPtr start; */ /* XtAction action; */ XtActionTokenPtr XtTranslateEvent(); /* event, state */ /* XEvent *event; */ /* TranslationPtr state; */ #endif _Intrinsic_h /* DON'T ADD STUFF AFTER THIS #endif */