* fed.h: global definitions for font editor.
/* current windows - what's on the screen */
#define SCRHI 360 /* number of pixels on the screen */
#define SCRWID 720 /* width in pixels of the screen */
#define NROW 3 /* number of rows of glyphs on the screen */
#define NCOL 7 /* number of cols of glyphs in a row */
#define NWIND (NROW*NCOL) /* number of windows */
#define GLCOL 100 /* width of a glyph window */
#define GLROW 100 /* height of a glyph window */
#define GLPAD 3 /* number of pixels between windows */
#define WINDSIZE (((GLCOL+7)>>3)*GLROW) /* size in bytes of a window */
#define BASELINE 22 /* number of pixels below baseline in window */
#define SLOPE (3.5) /* Amount to slant italic vertical line */
/* equal to about 15.94 degrees */
/* for 5 degree caligraphy slant use 11.43 */
#define ESC '\033' /* The ASCII escape character */
#define abs(x) ((x) < 0 ? (-(x)) : (x))
#define max(x,y) ((x) > (y) ? (x) : (y))
#define min(x,y) ((x) < (y) ? (x) : (y))
int changes
; /* nonzero if changes since last write */
char curchar
; /* current character being edited */
int curcurs
; /* 1 if cursor is on now */
int currb
; /* 1 if rubber band lie is on now */
int curs_r
, curs_c
; /* position in current window of graphics cursor */
int curwind
; /* current open window number */
int curzoom
; /* 1 to 9 - current zoom level of screen */
int editing
; /* in file I/O command, true if editing font */
long fbase
; /* first loc in font file of bits */
FILE * fontdes
; /* open for reading, current font */
char fontfile
[100]; /* name of the font file */
int hpensize
; /* size of heavy pen in pixels diameter of dot */
char msgbuf
[100]; /* scratch space to sprintf into for messages */
int nextwind
; /* the next free window to grab */
int oldzoom
; /* the value of curzoom before a message */
int pen_r
, pen_c
; /* row/col in current glyph of logical pen */
int pencolor
; /* 0=erase, 1=draw */
int penweight
; /* 0=fine, 1=heavy */
int pointsize
; /* point size of current font */
int QUIET
; /* true if -q flag */
char stoutbuf
[BUFSIZ
]; /* for speed */
FILE *trace
; /* for debugging output */
char tracebuf
[BUFSIZ
]; /* for speed */
int und_p_r
, und_p_c
; /* pen_r, pen_c for undo */
int und_c_r
, und_c_c
; /* curs_r, curs_c for undo */
struct header FontHeader
;
struct dispatch disptable
[256];
bitmat val
; /* what we are making it into */
bitmat onscreen
; /* what's currently on the screen */
bitmat undval
; /* the previous version */
char used
; /* the character using this window */
int wherewind
; /* >=0: window # on screen, -1: in file, -2: use whereat */
bitmat whereat
; /* where it can be found */
int nrow
, ncol
; /* size of char */
int rcent
, ccent
; /* bit location of lower left corner of main part of char */
} base
[NROW
* NCOL
]; /* lower left corner of each window */
char penmat
[10][10]; /* 0 or 1 as the pen is. 5,5 is center */
float sqrtmat
[10][10]; /* table of sqrt(i**2+j**2) for speed */