ftp.nice.ch/pub/next/developer/objc/dps/AdobeExamples.N.bs.tar.gz#/AdobeExamples/NX_LineDraw/DrawViewWraps.c

This is DrawViewWraps.c in view mode; [Download] [Up]

/* DrawViewWraps.c generated from DrawViewWraps.psw
   by unix pswrap V1.009  Wed Apr 19 17:50:24 PDT 1989
 */

#include <dpsclient/dpsfriends.h>
#include <string.h>

#line 1 "DrawViewWraps.psw"

/*
 * (a)  (C) 1990 by Adobe Systems Incorporated. All rights reserved.
 *
 * (b)  If this Sample Code is distributed as part of the Display PostScript
 *	System Software Development Kit from Adobe Systems Incorporated,
 *	then this copy is designated as Development Software and its use is
 *	subject to the terms of the License Agreement attached to such Kit.
 *
 * (c)  If this Sample Code is distributed independently, then the following
 *	terms apply:
 *
 * (d)  This file may be freely copied and redistributed as long as:
 *	1) Parts (a), (d), (e) and (f) continue to be included in the file,
 *	2) If the file has been modified in any way, a notice of such
 *      modification is conspicuously indicated.
 *
 * (e)  PostScript, Display PostScript, and Adobe are registered trademarks of
 *	Adobe Systems Incorporated.
 * 
 * (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
 *	CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
 *	AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
 *	ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
 *	OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
 *	WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
 *	WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
 *	DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, 
 *	FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
 *	OF THIRD PARTY RIGHTS.
 */

/*
*	DrawViewWraps.psw
*
*	Here lie the wraps used in DrawView.m for the LineDrawing application.
*	Several ways to draw lines are shown here.  One that is not is to use the
*	single operator functions from the method directly.
*
*	PostScript operators obtain their operands from the stack.
*	As a result the order of placing the operands on the stack is very important.
*	In the examples below,  comments are used in the bound procedures
*	to indicate the operands on stack when the procedure is called.
*	One common problem area is to inadvertently place the operands on 
*	stack in the wrong order. 
*
*	Version:	2.0
*	Author:	Ken Anderson, Ken Fromm
*	History:
*			03-07-91		Added this comment.
*/

/* StartTime is stored in the interpreter and contains the initial real time */
#line 63 "DrawViewWraps.c"
void PSWMarkTime( void )
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjGeneric obj2;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 3, 28,
    {DPS_LITERAL|DPS_NAME, 0, 0, 0},	/* StartTime */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 328},	/* realtime */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},	/* def */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  static long int _dpsCodes[1] = {-1};
  {
if (_dpsCodes[0] < 0) {
    static const char * const _dps_names[] = {
	"StartTime"};
    long int *_dps_nameVals[1];
    _dps_nameVals[0] = &_dpsCodes[0];

    DPSMapNames(_dpsCurCtxt, 1, _dps_names, _dps_nameVals);
    }
  }

  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[0].val.nameVal = _dpsCodes[0];
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,28);
}
#line 56 "DrawViewWraps.psw"


/* The difference between the current real time and the initial time stored                */
/* in StartTime is returned to the calling procedure in the output arg ElapsedTime. */
#line 106 "DrawViewWraps.c"
void PSWReturnTime(int *ElapsedTime)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjGeneric obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjGeneric obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjGeneric obj8;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 9, 76,
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 328},	/* realtime */
    {DPS_EXEC|DPS_NAME, 0, 0, 0},	/* StartTime */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 119},	/* printobject */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 119},	/* printobject */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 70},	/* flush */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  static long int _dpsCodes[1] = {-1};
  DPSResultsRec _dpsR[1];
  static const DPSResultsRec _dpsRstat[] = {
    { dps_tInt, -1 },
    };
    _dpsR[0] = _dpsRstat[0];
    _dpsR[0].value = (char *)ElapsedTime;

  {
if (_dpsCodes[0] < 0) {
    static const char * const _dps_names[] = {
	"StartTime"};
    long int *_dps_nameVals[1];
    _dps_nameVals[0] = &_dpsCodes[0];

    DPSMapNames(_dpsCurCtxt, 1, _dps_names, _dps_nameVals);
    }
  }

  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[1].val.nameVal = _dpsCodes[0];
  DPSSetResultTable(_dpsCurCtxt, _dpsR, 1);
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,76);
  DPSAwaitReturnValues(_dpsCurCtxt);
}
#line 63 "DrawViewWraps.psw"


/*
* This wrap is called in the +newFrame:(NXRect *) frm method to
* define and bind procedures in the interpreter.  These procedures
* are then called from within other wraps. Binding replaces each
* executable operator name with its value.  During execution of the
* procedures, the interpreter encounters the operators themselves
* instead of the names of the operators.  A procedure that has been
* bounded will execute faster than one that has not been bound. 
* Certain caveats pertain; see the red book for further information.
*/
#line 178 "DrawViewWraps.c"
void PSWDefs( void )
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjGeneric obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjGeneric obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjGeneric obj8;
    DPSBinObjGeneric obj9;
    DPSBinObjGeneric obj10;
    DPSBinObjGeneric obj11;
    DPSBinObjGeneric obj12;
    DPSBinObjGeneric obj13;
    DPSBinObjGeneric obj14;
    DPSBinObjGeneric obj15;
    DPSBinObjGeneric obj16;
    DPSBinObjGeneric obj17;
    DPSBinObjGeneric obj18;
    DPSBinObjGeneric obj19;
    DPSBinObjGeneric obj20;
    DPSBinObjGeneric obj21;
    DPSBinObjGeneric obj22;
    DPSBinObjGeneric obj23;
    DPSBinObjGeneric obj24;
    DPSBinObjGeneric obj25;
    DPSBinObjGeneric obj26;
    DPSBinObjGeneric obj27;
    DPSBinObjGeneric obj28;
    DPSBinObjGeneric obj29;
    DPSBinObjGeneric obj30;
    DPSBinObjGeneric obj31;
    DPSBinObjGeneric obj32;
    DPSBinObjGeneric obj33;
    DPSBinObjGeneric obj34;
    DPSBinObjGeneric obj35;
    DPSBinObjGeneric obj36;
    DPSBinObjGeneric obj37;
    DPSBinObjGeneric obj38;
    DPSBinObjGeneric obj39;
    DPSBinObjGeneric obj40;
    DPSBinObjGeneric obj41;
    DPSBinObjGeneric obj42;
    DPSBinObjGeneric obj43;
    DPSBinObjGeneric obj44;
    DPSBinObjGeneric obj45;
    DPSBinObjGeneric obj46;
    DPSBinObjGeneric obj47;
    DPSBinObjGeneric obj48;
    DPSBinObjGeneric obj49;
    DPSBinObjGeneric obj50;
    DPSBinObjGeneric obj51;
    DPSBinObjGeneric obj52;
    DPSBinObjGeneric obj53;
    DPSBinObjGeneric obj54;
    DPSBinObjGeneric obj55;
    DPSBinObjGeneric obj56;
    DPSBinObjGeneric obj57;
    DPSBinObjGeneric obj58;
    DPSBinObjGeneric obj59;
    DPSBinObjGeneric obj60;
    DPSBinObjGeneric obj61;
    DPSBinObjGeneric obj62;
    DPSBinObjGeneric obj63;
    DPSBinObjGeneric obj64;
    DPSBinObjGeneric obj65;
    DPSBinObjGeneric obj66;
    DPSBinObjGeneric obj67;
    DPSBinObjGeneric obj68;
    DPSBinObjGeneric obj69;
    DPSBinObjGeneric obj70;
    DPSBinObjGeneric obj71;
    DPSBinObjGeneric obj72;
    DPSBinObjGeneric obj73;
    DPSBinObjGeneric obj74;
    DPSBinObjGeneric obj75;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 20, 612,
    {DPS_LITERAL|DPS_NAME, 0, 0, 0},	/* EVB */
    {DPS_EXEC|DPS_ARRAY, 0, 7, 552},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 14},	/* bind */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},	/* def */
    {DPS_LITERAL|DPS_NAME, 0, 0, 0},	/* DLB */
    {DPS_EXEC|DPS_ARRAY, 0, 5, 512},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 14},	/* bind */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},	/* def */
    {DPS_LITERAL|DPS_NAME, 0, 0, 0},	/* DLRB */
    {DPS_EXEC|DPS_ARRAY, 0, 9, 200},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 14},	/* bind */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},	/* def */
    {DPS_LITERAL|DPS_NAME, 0, 0, 0},	/* MLB */
    {DPS_EXEC|DPS_ARRAY, 0, 2, 184},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 14},	/* bind */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},	/* def */
    {DPS_LITERAL|DPS_NAME, 0, 0, 0},	/* SLB */
    {DPS_EXEC|DPS_ARRAY, 0, 3, 160},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 14},	/* bind */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},	/* def */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},	/* setlinewidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},	/* stroke */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 99},	/* lineto */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_LITERAL|DPS_INT, 0, 0, 3},
    {DPS_LITERAL|DPS_INT, 0, 0, -1},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 135},	/* roll */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_ARRAY, 0, 30, 272},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 72},	/* for */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 56},	/* dup */
    {DPS_EXEC|DPS_NAME, 0, 0, 0},	/* PSW */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},	/* setlinewidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 56},	/* dup */
    {DPS_EXEC|DPS_NAME, 0, 0, 0},	/* PSC */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 56},	/* dup */
    {DPS_EXEC|DPS_NAME, 0, 0, 0},	/* PSX */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, 0, 0},	/* PSY */
    {DPS_LITERAL|DPS_INT, 0, 0, 2},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 88},	/* index */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 56},	/* dup */
    {DPS_EXEC|DPS_NAME, 0, 0, 0},	/* PSX1 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, 0, 0},	/* PSY1 */
    {DPS_LITERAL|DPS_INT, 0, 0, 2},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 88},	/* index */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 99},	/* lineto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},	/* stroke */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 117},	/* pop */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},	/* setlinewidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 99},	/* lineto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},	/* stroke */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_LITERAL|DPS_INT, 0, 0, 2},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 88},	/* index */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 128},	/* rectfill */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},	/* setlinewidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 129},	/* rectstroke */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  static long int _dpsCodes[11] = {-1};
  {
if (_dpsCodes[0] < 0) {
    static const char * const _dps_names[] = {
	"EVB",
	"DLB",
	"DLRB",
	"MLB",
	"SLB",
	"PSW",
	"PSC",
	"PSX",
	"PSY",
	"PSX1",
	"PSY1"};
    long int *_dps_nameVals[11];
    _dps_nameVals[0] = &_dpsCodes[0];
    _dps_nameVals[1] = &_dpsCodes[1];
    _dps_nameVals[2] = &_dpsCodes[2];
    _dps_nameVals[3] = &_dpsCodes[3];
    _dps_nameVals[4] = &_dpsCodes[4];
    _dps_nameVals[5] = &_dpsCodes[5];
    _dps_nameVals[6] = &_dpsCodes[6];
    _dps_nameVals[7] = &_dpsCodes[7];
    _dps_nameVals[8] = &_dpsCodes[8];
    _dps_nameVals[9] = &_dpsCodes[9];
    _dps_nameVals[10] = &_dpsCodes[10];

    DPSMapNames(_dpsCurCtxt, 11, _dps_names, _dps_nameVals);
    }
  }

  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[0].val.nameVal = _dpsCodes[0];
  _dpsP[4].val.nameVal = _dpsCodes[1];
  _dpsP[8].val.nameVal = _dpsCodes[2];
  _dpsP[12].val.nameVal = _dpsCodes[3];
  _dpsP[16].val.nameVal = _dpsCodes[4];
  _dpsP[35].val.nameVal = _dpsCodes[5];
  _dpsP[40].val.nameVal = _dpsCodes[6];
  _dpsP[45].val.nameVal = _dpsCodes[7];
  _dpsP[48].val.nameVal = _dpsCodes[8];
  _dpsP[54].val.nameVal = _dpsCodes[9];
  _dpsP[57].val.nameVal = _dpsCodes[10];
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,612);
}
#line 108 "DrawViewWraps.psw"


/***  Called by -drawWraps ***/
/* Calls the operators from the wrap itself. */
#line 397 "DrawViewWraps.c"
void PSWEraseView(float BGColor, float BGStrColor, float BGStrWidth, float BGrect[])
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjReal obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjGeneric obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjReal obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjReal obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjGeneric obj8;
    DPSBinObjGeneric obj9;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 10, 148,
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: BGColor */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_LITERAL|DPS_ARRAY, 0, 4, 112},	/* param[const]: BGrect */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 128},	/* rectfill */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: BGStrColor */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: BGStrWidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},	/* setlinewidth */
    {DPS_LITERAL|DPS_ARRAY, 0, 4, 80},	/* param[const]: BGrect */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 129},	/* rectstroke */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  register int _dps_offset = 80;
  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[0].val.realVal = BGColor;
  _dpsP[4].val.realVal = BGStrColor;
  _dpsP[6].val.realVal = BGStrWidth;
  _dpsP[8].val.arrayVal = _dps_offset;
  _dps_offset += 4 * sizeof(DPSBinObjGeneric);
  _dpsP[2].val.arrayVal = _dps_offset;
  _dps_offset += 4 * sizeof(DPSBinObjGeneric);

  _dpsF.nBytes = _dps_offset+4;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,84);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)BGrect, 4);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)BGrect, 4);
}
#line 118 "DrawViewWraps.psw"


/* Calls the operators from the wrap itself. */
#line 452 "DrawViewWraps.c"
void PSWDrawLine(float LineWidth, float LineColor, float X, float Y, float X1, float Y1)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjReal obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjReal obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjReal obj4;
    DPSBinObjReal obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjReal obj7;
    DPSBinObjReal obj8;
    DPSBinObjGeneric obj9;
    DPSBinObjGeneric obj10;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 11, 92,
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: LineWidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},	/* setlinewidth */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: LineColor */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: X */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: Y */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: X1 */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: Y1 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 99},	/* lineto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},	/* stroke */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[0].val.realVal = LineWidth;
  _dpsP[2].val.realVal = LineColor;
  _dpsP[4].val.realVal = X;
  _dpsP[5].val.realVal = Y;
  _dpsP[7].val.realVal = X1;
  _dpsP[8].val.realVal = Y1;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,92);
}
#line 127 "DrawViewWraps.psw"



/***  Called by -drawWrapsBind  ***/
/* Places the input args on the stack and calls the EraseViewBind procedure. */
#line 505 "DrawViewWraps.c"
void PSWEraseViewBind(float BGColor, float BGStrColor, float BGStrWidth, float BGrect[])
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjReal obj1;
    DPSBinObjReal obj2;
    DPSBinObjReal obj3;
    DPSBinObjGeneric obj4;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 5, 76,
    {DPS_LITERAL|DPS_ARRAY, 0, 4, 40},	/* param[const]: BGrect */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: BGStrWidth */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: BGStrColor */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: BGColor */
    {DPS_EXEC|DPS_NAME, 0, 0, 0},	/* EVB */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  static long int _dpsCodes[1] = {-1};
  register int _dps_offset = 40;
  {
if (_dpsCodes[0] < 0) {
    static const char * const _dps_names[] = {
	"EVB"};
    long int *_dps_nameVals[1];
    _dps_nameVals[0] = &_dpsCodes[0];

    DPSMapNames(_dpsCurCtxt, 1, _dps_names, _dps_nameVals);
    }
  }

  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[3].val.realVal = BGColor;
  _dpsP[2].val.realVal = BGStrColor;
  _dpsP[1].val.realVal = BGStrWidth;
  _dpsP[4].val.nameVal = _dpsCodes[0];
  _dpsP[0].val.arrayVal = _dps_offset;
  _dps_offset += 4 * sizeof(DPSBinObjGeneric);

  _dpsF.nBytes = _dps_offset+4;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,44);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)BGrect, 4);
}
#line 134 "DrawViewWraps.psw"


/* Places the input args on the stack and calls the DrawLineBind procedure. */
#line 560 "DrawViewWraps.c"
void PSWDrawLineBind(float LineWidth, float LineColor, float X, float Y, float X1, float Y1)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjReal obj0;
    DPSBinObjReal obj1;
    DPSBinObjReal obj2;
    DPSBinObjReal obj3;
    DPSBinObjReal obj4;
    DPSBinObjReal obj5;
    DPSBinObjGeneric obj6;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 7, 60,
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: X1 */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: Y1 */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: X */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: Y */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: LineColor */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: LineWidth */
    {DPS_EXEC|DPS_NAME, 0, 0, 0},	/* DLB */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  static long int _dpsCodes[1] = {-1};
  {
if (_dpsCodes[0] < 0) {
    static const char * const _dps_names[] = {
	"DLB"};
    long int *_dps_nameVals[1];
    _dps_nameVals[0] = &_dpsCodes[0];

    DPSMapNames(_dpsCurCtxt, 1, _dps_names, _dps_nameVals);
    }
  }

  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[5].val.realVal = LineWidth;
  _dpsP[4].val.realVal = LineColor;
  _dpsP[2].val.realVal = X;
  _dpsP[3].val.realVal = Y;
  _dpsP[0].val.realVal = X1;
  _dpsP[1].val.realVal = Y1;
  _dpsP[6].val.nameVal = _dpsCodes[0];
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,60);
}
#line 139 "DrawViewWraps.psw"



/***  Called by -drawWrapsRepeat  ***/
/* Defines input args, places the number of repetitions on the stack and then */
/* calls the DrawLineRepeatBind procedure. */
#line 619 "DrawViewWraps.c"
void PSWDrawLineRepeatBind(float W[], float C[], float X[], float Y[], float X1[], float Y1[], int i)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjGeneric obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjGeneric obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjGeneric obj8;
    DPSBinObjGeneric obj9;
    DPSBinObjGeneric obj10;
    DPSBinObjGeneric obj11;
    DPSBinObjGeneric obj12;
    DPSBinObjGeneric obj13;
    DPSBinObjGeneric obj14;
    DPSBinObjGeneric obj15;
    DPSBinObjGeneric obj16;
    DPSBinObjGeneric obj17;
    DPSBinObjGeneric obj18;
    DPSBinObjGeneric obj19;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 20, 164,
    {DPS_LITERAL|DPS_NAME, 0, 0, 0},	/* PSW */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 160},	/* param[var]: W */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},	/* def */
    {DPS_LITERAL|DPS_NAME, 0, 0, 0},	/* PSC */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 160},	/* param[var]: C */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},	/* def */
    {DPS_LITERAL|DPS_NAME, 0, 0, 0},	/* PSX */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 160},	/* param[var]: X */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},	/* def */
    {DPS_LITERAL|DPS_NAME, 0, 0, 0},	/* PSY */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 160},	/* param[var]: Y */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},	/* def */
    {DPS_LITERAL|DPS_NAME, 0, 0, 0},	/* PSX1 */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 160},	/* param[var]: X1 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},	/* def */
    {DPS_LITERAL|DPS_NAME, 0, 0, 0},	/* PSY1 */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 160},	/* param[var]: Y1 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},	/* def */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},	/* param: i */
    {DPS_EXEC|DPS_NAME, 0, 0, 0},	/* DLRB */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  static long int _dpsCodes[7] = {-1};
  register int _dps_offset = 160;
  {
if (_dpsCodes[0] < 0) {
    static const char * const _dps_names[] = {
	"PSW",
	"PSC",
	"PSX",
	"PSY",
	"PSX1",
	"PSY1",
	"DLRB"};
    long int *_dps_nameVals[7];
    _dps_nameVals[0] = &_dpsCodes[0];
    _dps_nameVals[1] = &_dpsCodes[1];
    _dps_nameVals[2] = &_dpsCodes[2];
    _dps_nameVals[3] = &_dpsCodes[3];
    _dps_nameVals[4] = &_dpsCodes[4];
    _dps_nameVals[5] = &_dpsCodes[5];
    _dps_nameVals[6] = &_dpsCodes[6];

    DPSMapNames(_dpsCurCtxt, 7, _dps_names, _dps_nameVals);
    }
  }

  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[1].length = i;
  _dpsP[4].length = i;
  _dpsP[7].length = i;
  _dpsP[10].length = i;
  _dpsP[13].length = i;
  _dpsP[16].length = i;
  _dpsP[18].val.integerVal = i;
  _dpsP[0].val.nameVal = _dpsCodes[0];
  _dpsP[3].val.nameVal = _dpsCodes[1];
  _dpsP[6].val.nameVal = _dpsCodes[2];
  _dpsP[9].val.nameVal = _dpsCodes[3];
  _dpsP[12].val.nameVal = _dpsCodes[4];
  _dpsP[15].val.nameVal = _dpsCodes[5];
  _dpsP[19].val.nameVal = _dpsCodes[6];
  _dpsP[16].val.arrayVal = _dps_offset;
  _dps_offset += i * sizeof(DPSBinObjGeneric);
  _dpsP[13].val.arrayVal = _dps_offset;
  _dps_offset += i * sizeof(DPSBinObjGeneric);
  _dpsP[10].val.arrayVal = _dps_offset;
  _dps_offset += i * sizeof(DPSBinObjGeneric);
  _dpsP[7].val.arrayVal = _dps_offset;
  _dps_offset += i * sizeof(DPSBinObjGeneric);
  _dpsP[4].val.arrayVal = _dps_offset;
  _dps_offset += i * sizeof(DPSBinObjGeneric);
  _dpsP[1].val.arrayVal = _dps_offset;
  _dps_offset += i * sizeof(DPSBinObjGeneric);

  _dpsF.nBytes = _dps_offset+4;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,164);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)Y1, i);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)X1, i);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)Y, i);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)X, i);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)C, i);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)W, i);
}
#line 151 "DrawViewWraps.psw"



/***  Called by -drawOptimizedStroke  ***/
/* Places the input args on the stack and calls the MakeLineBind procedure. */
#line 743 "DrawViewWraps.c"
void PSWMakeLineBind(float X, float Y, float X1, float Y1)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjReal obj0;
    DPSBinObjReal obj1;
    DPSBinObjReal obj2;
    DPSBinObjReal obj3;
    DPSBinObjGeneric obj4;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 5, 44,
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: X1 */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: Y1 */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: X */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: Y */
    {DPS_EXEC|DPS_NAME, 0, 0, 0},	/* MLB */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  static long int _dpsCodes[1] = {-1};
  {
if (_dpsCodes[0] < 0) {
    static const char * const _dps_names[] = {
	"MLB"};
    long int *_dps_nameVals[1];
    _dps_nameVals[0] = &_dpsCodes[0];

    DPSMapNames(_dpsCurCtxt, 1, _dps_names, _dps_nameVals);
    }
  }

  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[2].val.realVal = X;
  _dpsP[3].val.realVal = Y;
  _dpsP[0].val.realVal = X1;
  _dpsP[1].val.realVal = Y1;
  _dpsP[4].val.nameVal = _dpsCodes[0];
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,44);
}
#line 158 "DrawViewWraps.psw"


/* Places the input args on the stack and calls the StrokeLineBind procedure. */
#line 793 "DrawViewWraps.c"
void PSWStrokeLineBind(float LineWidth, float LineColor)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjReal obj0;
    DPSBinObjReal obj1;
    DPSBinObjGeneric obj2;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 3, 28,
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: LineColor */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: LineWidth */
    {DPS_EXEC|DPS_NAME, 0, 0, 0},	/* SLB */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  static long int _dpsCodes[1] = {-1};
  {
if (_dpsCodes[0] < 0) {
    static const char * const _dps_names[] = {
	"SLB"};
    long int *_dps_nameVals[1];
    _dps_nameVals[0] = &_dpsCodes[0];

    DPSMapNames(_dpsCurCtxt, 1, _dps_names, _dps_nameVals);
    }
  }

  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[1].val.realVal = LineWidth;
  _dpsP[0].val.realVal = LineColor;
  _dpsP[2].val.nameVal = _dpsCodes[0];
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,28);
}
#line 163 "DrawViewWraps.psw"


These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.