ftp.nice.ch/pub/next/unix/text/Wn2troff.s.tar.gz#/Wn2troff/wn.h

This is wn.h in view mode; [Download] [Up]

/***********************************************************************
* This program Copyright 1988 by Steven Dorner and the University of
* Illinois Board of Trustees
* 
* No warrantees expressed or implied.
* 
* This program may be redistributed, provided no charge is made for it.
***********************************************************************/
/***********************************************************************
This header file describes the contents of a WriteNow document
***********************************************************************/
#define A32BitInteger	long
#define A16BitInteger	short
#define A32BitFixedPointNumber	float
#define Byte		unsigned char
#define Boolean		unsigned char
#define Handle		A32BitInteger

typedef struct rect Rect;
typedef struct point Point;
typedef A32BitInteger HandleDiskAddress;
typedef struct docinfo DocInfoType;
typedef struct pagelo PageLOType;
typedef struct collo ColLOType;
typedef struct paper PaperType;
typedef struct border BorderType;
typedef struct edgepair EdgePair;
typedef struct textedge TextEdge;
typedef struct docsize DocSizeType;

struct point
{
    A16BitInteger v;
    A16BitInteger h;
};

struct rect
{
    Point top;
    Point bottom;
};

struct textedge
{
     HandleDiskAddress	tBlockTE;
     A16BitInteger	offsetTE;
     Point		topTE;
     A16BitInteger	heightTE;
};

struct edgepair
{
    TextEdge	startSelect;
    TextEdge	endSelect;
};

struct paper
{
    A16BitInteger	pHeight;
    A16BitInteger	pWidth;

};

struct border
{
    A32BitFixedPointNumber	leftBorder;
    A32BitFixedPointNumber	rightBorder;
    Boolean			nonStdPaper;
    Boolean			altBorders;
};
struct collo
{
    Byte		maxColumn;
    Byte		column;
    A16BitInteger	widthOfColumns;
    A16BitInteger	leftEdge;
};

struct pagelo
{
    Boolean		autoFootNote;
    Boolean		fractWidths;
    BorderType		borders;
    ColLOType		colLayout;
    A16BitInteger	docVRes;
    A16BitInteger	docHRes;
    A16BitInteger	firstPageNumber;
    A16BitInteger	pageSlop;
    PaperType		paperSize;
    Rect		printableRect;
    A16BitInteger	rulerReduction;
    A32BitInteger	unused8;
};
    
struct docsize
{
    A32BitInteger	startDiskAdr;
    A32BitInteger	cleanEOF;
    A32BitInteger	ourEOF;
    A32BitInteger	fileEOF;
    A32BitInteger	nextDiskAdr;
};

struct docinfo
{
  /* Handles whose contents must be copied during document copy */
    HandleDiskAddress docMap;
    HandleDiskAddress headFootMap;
    HandleDiskAddress footNMap;
    HandleDiskAddress docWords;
    HandleDiskAddress docPrintRecord;
    Handle screenLayout;
    Handle docDate;
    Handle docTime;
    Handle hScrollBar;
    Handle vScrollBar;
    A32BitInteger unused3;

  /* Variables whose value should not be changed during document copy */
    A32BitInteger docDirID;
    A16BitInteger docRefNum;
    A16BitInteger docVRefNum;
    A32BitInteger unused6;
    Byte docKind;

  /* Variables that are copied directly during document copy */
    Byte docView;
    Boolean dontSaveChanges;
    Boolean doSmartPaste;
    Boolean graphicSelected;
    Boolean markersVis;
    Boolean newDoc;
    Boolean returnInserted;
    Boolean selectVis;
    Boolean spaceVis;
    Boolean squeezeWhenBurn;
    Boolean wordsSelected;
    Boolean writeProtected;
    Byte unused2;

  /* Other variables alphabetically */
    Rect docRect;
    A32BitInteger docVExtension;
    A16BitInteger footHeight;
    Rect graphicRect;
    A16BitInteger headHeight;
    A32BitInteger lastPxlsTilWind;
    PageLOType pageLayout;
    EdgePair selectionEdges;
    A16BitInteger systemName;
    A32BitInteger wastedBytes;
    A32BitInteger unused7;

  /* Variables whose value is not changed by undo */
    Boolean backupExists;
    Boolean docSqueezed;
    DocSizeType docSize;
};

typedef struct map MapType;
typedef struct mapelement MapElement;
struct map
{
    A16BitInteger byteCount;
    MapElement *mapArray;
};

struct mapelement
{
    HandleDiskAddress mapData;
    A16BitInteger textHeight;
};

#define NOTTEXT		0x80000000
#define	RULERCHANGE	0x40000000
#define FONTCHANGE	0x20000000
#define FORCEDPAGE	0x10000000
#define SPCHECKED	0x08000000
#define NONRES		0x04000000
#define MAYBESHARE	0x02000000
#define DONTSPLIT	0x01000000

typedef struct textblock TextBlock;
struct textblock
{
    A16BitInteger byteCount;
    Byte *characters;
};
#define FmtFont		0xFF /* Font, size, or style change */
#define FmtGraphics	0xFE /* Embedded graphics */
#define FmtMarker	0xFD /* Page number, date, time, and footnote marker */
#define FmtRuler	0xFC /* Paragraph ruler formats */
#define Fmt4Unused	0xFB /* Reserved for future use */
#define FmtTabFill	0xFA /* Tab fill */
#define FmtY		0xF9 /* Subscript or superscript */
#define Fmt1Unused	0xF8 /* Reserved for future use */
#define FmtEndFmt	0xF7 /* End of additional data */
#define FmtFooter	0xF6 /* Footer definition */
#define FmtHeader	0xF5 /* Header definition */
#define FmtFootnote	0xF4 /* Footnote definition */
#define FmtSoftHyphen	0xF3 /* Soft hyphen */
#define Fmt2Unused	0xF2 /* Reserved for future use */
#define Fmt3Unused	0xF1 /* Reserved for future use */
#define LiteralCode	0xF0 /* Used to represent characters F0 to FF */

typedef struct fss FSSType;
struct fss
{
    A16BitInteger fontID;
    Byte fontSize;
    Byte fontStyle;
};

#define MAXTABS 50
typedef struct ruler RulerType;
struct ruler
{
    A16BitInteger leftMargin;
    A16BitInteger rightMargin;
    A16BitInteger paraIndent;
    Byte justification;
    Byte lineSpacing;
    A16BitInteger tabStops[MAXTABS];
};

#define IDPNumMarker  0
#define IDDateMarker  1
#define IDTimeMarker  2
#define IDFNumMarker  3

#define FontTimes	20
#define FontCourier	22

#define StyleBold	0x1
#define StyleItalic	0x2
#define StyleUline	0x4
#define CanDoStyleMask	(StyleBold | StyleItalic | StyleUline)

#define JLeft		0
#define JJust		1
#define JCenter		2
#define JRight		3

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