1/* Last non-groff version: gprint.h  1.1  84/10/08
2 *
3 * This file contains standard definitions used by the gprint program.
4 */
5
6#include <stdio.h>
7#include <math.h>
8
9
10#define xorn(x,y)	(x)
11			/* was 512 */
12#define yorn(x,y)	(511 - (y))	/* switch direction for */
13					/* y-coordinates        */
14
15#define STYLES 6
16#define SIZES 4
17#define FONTS 4
18#define SOLID -1
19#define DOTTED 004		/* 014 */
20#define DASHED 020		/* 034 */
21#define DOTDASHED 024		/* 054 */
22#define LONGDASHED 074
23
24#define DEFTHICK	-1	/* default thicknes */
25#define DEFSTYLE	SOLID	/* default line style */
26
27#define TRUE	1
28#define FALSE	0
29
30#define nullelt	-1
31#define nullpt	-1
32#define nullun	NULL
33
34#define BOTLEFT	0
35#define BOTRIGHT 1
36#define CENTCENT 2
37#define VECTOR 3
38#define ARC 4
39#define CURVE 5
40#define POLYGON 6
41#define BSPLINE 7
42#define BEZIER 8
43#define TOPLEFT 10
44#define TOPCENT 11
45#define TOPRIGHT 12
46#define CENTLEFT 13
47#define CENTRIGHT 14
48#define BOTCENT 15
49#define TEXT(t) ( (t <= CENTCENT) || (t >= TOPLEFT) )
50
51/* WARNING * WARNING * WARNING * WARNING * WARNING * WARNING * WARNING
52 *    The above (TEXT) test is dependent on the relative values of the
53 *    constants and will have to change if these values change or if new
54 *    commands are added with value greater than BOTCENT
55 */
56
57#define NUSER 4
58#define NFONTS 4
59#define NBRUSHES 6
60#define NSIZES 4
61#define NJUSTS 9
62#define NSTIPPLES 16
63
64#define ADD 1
65#define DELETE 2
66#define MOD 3
67
68typedef struct point {
69  double x, y;
70  struct point *nextpt;
71} POINT;
72
73typedef struct elmt {
74  int type, brushf, size, textlength;
75  char *textpt;
76  POINT *ptlist;
77  struct elmt *nextelt, *setnext;
78} ELT;
79
80#define DBNextElt(elt) (elt->nextelt)
81#define DBNextofSet(elt) (elt->setnext)
82#define DBNullelt(elt) (elt == NULL)
83#define Nullpoint(pt)  ((pt) == (POINT *) NULL)
84#define PTNextPoint(pt) (pt->nextpt)
85
86/* EOF */
87