aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/include/DPS/dpsfriends.h
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/include/DPS/dpsfriends.h')
-rw-r--r--nx-X11/include/DPS/dpsfriends.h481
1 files changed, 0 insertions, 481 deletions
diff --git a/nx-X11/include/DPS/dpsfriends.h b/nx-X11/include/DPS/dpsfriends.h
deleted file mode 100644
index 920ffc134..000000000
--- a/nx-X11/include/DPS/dpsfriends.h
+++ /dev/null
@@ -1,481 +0,0 @@
-/*
- * dpsfriends.h -- Low-level interface to the Display PostScript Library.
- *
- * (c) Copyright 1988-1994 Adobe Systems Incorporated.
- * All rights reserved.
- *
- * Permission to use, copy, modify, distribute, and sublicense this software
- * and its documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notices appear in all copies and that
- * both those copyright notices and this permission notice appear in
- * supporting documentation and that the name of Adobe Systems Incorporated
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. No trademark license
- * to use the Adobe trademarks is hereby granted. If the Adobe trademark
- * "Display PostScript"(tm) is used to describe this software, its
- * functionality or for any other purpose, such use shall be limited to a
- * statement that this software works in conjunction with the Display
- * PostScript system. Proper trademark attribution to reflect Adobe's
- * ownership of the trademark shall be given whenever any such reference to
- * the Display PostScript system is made.
- *
- * ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR
- * ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
- * ADOBE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NON- INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL ADOBE BE LIABLE
- * TO YOU OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE, STRICT LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ADOBE WILL NOT
- * PROVIDE ANY TRAINING OR OTHER SUPPORT FOR THE SOFTWARE.
- *
- * Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems
- * Incorporated which may be registered in certain jurisdictions
- *
- * Author: Adobe Systems Incorporated
- */
-/* $XFree86: xc/include/DPS/dpsfriends.h,v 1.4 2001/08/01 00:44:34 tsi Exp $ */
-
-#ifndef DPSFRIENDS_H
-#define DPSFRIENDS_H
-
-#include <DPS/dpsconfig.h>
-
-/*=== CONSTANTS ===*/
-
-/* TokenType values, used to specify the format of numeric values
- for the system on which the client library is built. See DPS language
- reference manual */
-
-#define DPS_HI_IEEE 128
-#define DPS_LO_IEEE 129
-#define DPS_HI_NATIVE 130
-#define DPS_LO_NATIVE 131
-
-#ifndef DPS_DEF_TOKENTYPE
-
-#if IEEEFLOAT
-
-#if SWAPBITS
-#define DPS_DEF_TOKENTYPE DPS_LO_IEEE
-#else /* SWAPBITS */
-#define DPS_DEF_TOKENTYPE DPS_HI_IEEE
-#endif /* SWAPBITS */
-
-#else /* IEEEFLOAT */
-
-#if SWAPBITS
-#define DPS_DEF_TOKENTYPE DPS_LO_NATIVE
-#else /* SWAPBITS */
-#define DPS_DEF_TOKENTYPE DPS_HI_NATIVE
-#endif /* SWAPBITS */
-
-#endif /* IEEEFLOAT */
-
-#endif /* DPS_DEF_TOKENTYPE */
-
- /* DPS_DEF_TOKENTYPE is the specification code for the form of binary
- object sequences generated by PSWrap. The C code generated by pswrap
- references this name. DPS_DEF_TOKENTYPE is system-dependent. */
-
-
-/* --- binary object sequence support --- */
-
-/* Object attributes & types: Values for attributedTypes */
-
-#define DPS_LITERAL 0
-#define DPS_EXEC 0x080
-
- /* Attribute masks */
-
-
-#define DPS_NULL 0
-#define DPS_INT 1
-#define DPS_REAL 2
-#define DPS_NAME 3
-#define DPS_BOOL 4
-#define DPS_STRING 5
-#define DPS_IMMEDIATE 6
-#define DPS_ARRAY 9
-#define DPS_MARK 10
-
- /* Type values */
-
-
-/* Object sequence constants */
-
-#define DPS_HEADER_SIZE 4
-#define DPS_EXT_HEADER_SIZE 8
-
-
-/*=== TYPES ===*/
-
-typedef enum {
- dps_ascii, dps_binObjSeq, dps_encodedTokens
- } DPSProgramEncoding;
- /* Defines the 3 possible encodings of PostScript language programs. */
-
-typedef enum {
- dps_indexed, dps_strings
- } DPSNameEncoding;
- /* Defines the 2 possible encodings for user names in the
- dps_binObjSeq and dps_encodedTokens forms of PostScript language
- programs. */
-
-typedef enum {
- dps_tBoolean,
- dps_tChar, dps_tUChar,
- dps_tFloat, dps_tDouble,
- dps_tShort, dps_tUShort,
- dps_tInt, dps_tUInt,
- dps_tLong, dps_tULong } DPSDefinedType;
-
-struct _t_DPSContextRec;
-
- /* Enumerates the C data types that can be used to describe wrap
- parameters. */
-
-typedef void (*DPSContextProc)(
- struct _t_DPSContextRec *ctxt
-);
-
-typedef void (*DPSContextBufProc)(
- struct _t_DPSContextRec *ctxt, char *buf,
- unsigned int count
-);
-
-typedef void (*DPSContextTypedArrayProc)(
- struct _t_DPSContextRec *ctxt,
- DPSDefinedType type,
- char *array, unsigned int length
-);
-
-typedef void (*DPSWriteNumStringProc)(
- struct _t_DPSContextRec *ctxt,
- DPSDefinedType type,
- const void *array,
- unsigned int count,
- int scale
-);
-
-typedef struct {
- DPSContextBufProc BinObjSeqWrite;
- /* Begin a new binary object sequence. 'buf' contains 'count'
- bytes of a binary object sequence. 'buf' must point to the
- beginning of a sequence, which includes at least the header
- and the entire top-level sequence of objects. It may also
- include subsidiary array elements and/or string chars.
- Writes PostScript language as specified by the
- encoding variables of ctxt, doing appropriate conversions as
- needed. 'buf' and its contents must remain valid until the
- entire binary object sequence has been sent. */
-
- DPSContextTypedArrayProc WriteTypedObjectArray;
- /* 'array' points at an array of 'length' elements of 'type'.
- 'array' contains the element values for the body of a subsidiary
- array in a binary object sequence. Writes PostScript language
- as specified by the 4 format and encoding variables of ctxt, doing
- appropriate conversions as needed. 'array' and its contents must
- remain valid until the entire binary object sequence has been sent */
-
- DPSContextBufProc WriteStringChars;
- /* Used both to implement DPSWritePostScript and to send the bodies of
- strings in binary object sequences. 'buf' contains 'count' bytes.
- For the latter, 'buf' and its contents must remain valid until the
- entire binary object sequence has been sent.*/
-
- DPSContextBufProc WriteData;
- /* See DPSWriteData in dpsclient.h */
-
- DPSContextBufProc WritePostScript;
- /* See DPSWritePostScript in dpsclient.h */
-
- DPSContextProc FlushContext;
- /* See DPSFlushContext in dpsclient.h */
-
- DPSContextProc ResetContext;
- /* See DPSResetContext in dpsclient.h */
-
- DPSContextProc UpdateNameMap;
- /* This routine is called if the context's space's name map is
- out-of-sync with that of the client library's name map. It may
- send a series of "defineusername" commands to the service. */
-
- DPSContextProc AwaitReturnValues;
- /* Called to receive return values.
- ctxt->resultTableLength and ctxt->resultTable must have been
- set previously. Returns when all expected results are received.
-
- This is normally called from wraps. It is unusual for an application
- program to call this directly.
-
- See the definitions of DPSResultsRec and DPSContextRec for more info.
- */
-
- DPSContextProc Interrupt;
- /* See DPSInterrupt in dpsclient.h */
-
- DPSContextProc DestroyContext;
- /* See DPSDestroyContext in dpsclient.h */
-
- DPSContextProc WaitContext;
- /* See DPSWaitContext in dpsclient.h */
-
- DPSWriteNumStringProc WriteNumString;
- /* Write a number string, possibly marking it to be converted into
- an array depending upon the context flags. */
-
-} DPSProcsRec, *DPSProcs;
-
- /* The DPSProcsRec may be extended to include system-specific items */
-
-struct _t_DPSSpaceRec;
-
-typedef void (*DPSSpaceProc)(
- struct _t_DPSSpaceRec *space
-);
-
-typedef struct {
- DPSSpaceProc DestroySpace;
- /* See DPSDestroySpace in dpsclient.h */
-
-} DPSSpaceProcsRec, *DPSSpaceProcs;
-
- /* The DPSSpaceProcsRec may be extended to include system-specific items */
-
-typedef struct {
- DPSDefinedType type;
- int count;
- char *value;
-} DPSResultsRec, *DPSResults;
-
- /* A DPSResultsRec defines one of the formal result args of a wrapped
- procedure. The 'type' field specifies the formal type of the
- return value. The 'count' field specifies the number of values
- expected (this supports array formals). The 'value' field points
- to the location of the first value; the storage beginning there
- must have room for count values of type. If 'count' == -1, then
- 'value' points to a scalar (single) result arg. */
-
-typedef struct _t_DPSSpaceRec {
- DPSSpaceProcs procs;
-} DPSSpaceRec, *DPSSpace;
-
- /* A DPSSpaceRec provides a representation of a space.
-
- The DPSSpaceRec may be extended to include system-specific items.
-
- BEWARE an implementation of the DPS client library is also likely to
- extend the DPSSpaceRec to include implementation-dependent information
- in additional fields. */
-
-typedef struct _t_DPSContextExtensionRec {
- int extensionId;
- struct _t_DPSContextExtensionRec *next;
-} DPSContextExtensionRec;
-
-struct _t_DPSContextRec;
-
-typedef struct _t_DPSContextRec {
- char *priv;
- DPSSpace space;
- DPSProgramEncoding programEncoding;
- DPSNameEncoding nameEncoding;
- DPSProcs procs;
- void (*textProc)(struct _t_DPSContextRec *, char *, long unsigned);
- void (*errorProc)(struct _t_DPSContextRec *, int, long unsigned, long unsigned);
- DPSResults resultTable;
- unsigned int resultTableLength;
- struct _t_DPSContextRec *chainParent, *chainChild;
- unsigned int contextFlags;
- DPSContextExtensionRec *extension;
-} DPSContextRec, *DPSContext;
-
- /* A DPSContextRec provides a representation of a context.
-
- The 'priv' field is provided for use by application code. It is
- initialized to NULL and is not touched thereafter by the client
- library implementation.
-
- The 'space' field is the space to which the context belongs. The
- 'programEncoding' and 'nameEncoding' fields describe the encodings
- preferred by the context (server). The values in these fields are
- established when the DPSContext is created and cannot be changed
- therafter. The 'procs' field points to a vector of procedures
- (in a DPSProcsRec) that implement the context operations.
-
- The 'textProc' and 'errorProc' are called by the client library
- implementation to dispose of ascii text and errors, respectively, that
- the PostScript interpreter produces.
-
- The 'resultTableLength' and 'resultTable' fields define the number, type
- and location of values expected back from the PostScript interpreter.
- They should be set up before writing any PostScript language that
- may return values.
-
- The chainParent field is non-NIL if this context automatically receives
- a copy of any PostScript language sent to the referenced (parent) context.
-
- The chainChild field is non-NIL if this context automatically sends
- a copy of any PostScript language it receives to the referenced (child)
- context.
-
- The contextFlags parameter contains a set of bit flags. The bits 0-15
- are reserved for system-independent flags, bits 16-31 for
- system-specific flags.
-
- The extension parameter points to a linked list of extension records
- to allow toolkit to associate arbitrary data with contexts.
-
- NOTE the client library implementation extends the DPSContextRec to
- include implementation-dependent information in additional fields.
-
- You may read the fields of a DPSContextRec directly, but you should
- never modify them directly. Use the macros provided for that purpose. */
-
-#define DPS_FLAG_SYNC 0x1
-#define DPS_FLAG_CONVERT_NUMSTRINGS 0x2
-#define DPS_FLAG_NO_BINARY_CONVERSION 0x4
-#define DPS_FLAG_USE_ABBREVS 0x8
-
-/* -- binary object sequence support -- */
-
-#define DPSSYSNAME 0x0FFFF /* unsigned rep. of -1 */
-
-typedef struct {
- unsigned char attributedType;
- unsigned char tag;
- unsigned short length;
- int val;
-} DPSBinObjGeneric; /* boolean, int, string, name and array */
-
-
-typedef struct {
- unsigned char attributedType;
- unsigned char tag;
- unsigned short length;
- float realVal;
-} DPSBinObjReal; /* float */
-
-
-typedef struct {
- unsigned char attributedType;
- unsigned char tag;
- unsigned short length;
- union {
- int integerVal;
- float realVal;
- int nameVal; /* offset or index */
- int booleanVal;
- int stringVal; /* offset */
- int arrayVal; /* offset */
- } val;
-} DPSBinObjRec, *DPSBinObj;
-
-typedef struct {
- unsigned char tokenType;
- unsigned char nTopElements;
- unsigned short length;
- DPSBinObjRec objects[1];
-} DPSBinObjSeqRec, *DPSBinObjSeq;
-
-typedef struct {
- unsigned char tokenType;
- unsigned char escape; /* zero if this is an extended sequence */
- unsigned short nTopElements;
- unsigned length;
- DPSBinObjRec objects[1];
-} DPSExtendedBinObjSeqRec, *DPSExtendedBinObjSeq;
-
-/*=== SYNCHRONIZATION MACRO ===*/
-
-#ifndef NeXTSTEP
-#define DPSSYNCHOOK(ctxt) \
- if ((ctxt)->contextFlags & DPS_FLAG_SYNC) DPSWaitContext(ctxt);
-#endif /* NeXT */
-
-/*=== PROCEDURES ===*/
-
-#if defined(__cplusplus) || defined(c_plusplus)
-extern "C" {
-#endif
-
-extern void DPSAwaitReturnValues(DPSContext ctxt);
-
-extern void DPSUpdateNameMap(DPSContext ctxt);
-
-extern void DPSBinObjSeqWrite(DPSContext ctxt, char *buf, unsigned int count);
-
-extern DPSContext DPSPrivCurrentContext(void);
-
-extern void DPSWriteStringChars(DPSContext ctxt, char *buf,
- unsigned int count);
-
-extern void DPSWriteNumString(DPSContext ctxt, DPSDefinedType type,
- char *data, unsigned int size, int scale);
-
-extern void DPSWriteTypedObjectArray(DPSContext ctxt, DPSDefinedType type,
- char *array, unsigned int length);
-
-extern void DPSSetResultTable(DPSContext ctxt, DPSResults tbl,
- unsigned int len);
-
-
-/* Support for user names */
-
-extern void DPSMapNames(DPSContext ctxt, unsigned int nNames, char **names,
- int **indices);
-
- /* This routine assigns indices to the given user names. It is
- called once for each wrapped procedure. The parameters 'nNames' and
- 'names' define an array of strings which are the user names. The
- parameter 'indices' is an array of (int *) which are the locations
- in which to store the indices. The caller must ensure that the string
- pointers remain valid after the return.
-
- As a storage optimization, DPSMapNames will interpret a NIL
- value in the names array as the previous valid string in
- the name array. Effectively, if names[n] == NIL, DPSMapNames
- will decrement n until names[] is non-NIL and use that string.
- names[0] must be non-NIL. */
-
-extern char *DPSNameFromIndex(long int index);
-
- /* This routine returns the text for the user name with the given index.
- The string returned is owned by the library (treat it as readonly). */
-
-extern DPSContextExtensionRec *DPSGetContextExtensionRec(DPSContext ctxt,
- int extensionId);
-
- /* This procedure finds the context extension record with the given id */
-
-extern void DPSAddContextExtensionRec(DPSContext ctxt,
- DPSContextExtensionRec *rec);
-
- /* This procedure adds a context extension record */
-
-extern DPSContextExtensionRec *DPSRemoveContextExtensionRec(DPSContext ctxt,
- int extensionId);
-
- /* This procedure removes a context extension record */
-
-extern int DPSGenerateExtensionRecID(void);
-
- /* This procedure generates a unique extension record id. */
-
-extern void DPSWaitContext(DPSContext ctxt);
-
- /* Waits until the PostScript interpreter is ready for more input to
- this context. This is useful for synchronizing an application
- with the DPS server.
-
- If 'ctxt' represents an invalid context, for example because
- the context has terminated in the server, the dps_err_invalidContext
- error will be reported via ctxt's error proc. */
-
-#if defined(__cplusplus) || defined(c_plusplus)
-}
-#endif
-
-#endif /* DPSFRIENDS_H */