💾 Archived View for runjimmyrunrunyoufuckerrun.com › src › foreign › pmw › src › pagehdr.h captured on 2021-12-17 at 13:26:06.
View Raw
More Information
-=-=-=-=-=-=-
/*************************************************
- The PMW Music Typesetter - 3rd incarnation *
- ************************************************/
/* Copyright (c) Philip Hazel, 1991 - 2019 */
/* Written by Philip Hazel, starting November 1991 */
/* This file last modified: August 2019 */
/* This is the header file for the pagination routines. It contains mostly
definitions of shared variables. Many of the structures used are more global,
and are therefore in pmwhdr. */
/* Backward offsets for non-note items in a bar. */
#define posx_acc (-1) /* accidental */
#define posx_gracelast (-2) /* grace notes use 2 to 15, in reverse order */
#define posx_gracefirst (-15)
#define posx_RLright (-16) /* left repeat when printed on the right */
#define posx_timelast (-17) /* time signatures use 17 to 20, in reverse */
#define posx_timefirst (-20)
#define posx_keylast (-21) /* key signatures use 21 to 24, in reverse */
#define posx_keyfirst (-24)
#define posx_RLleft (-25) /* left repeat when printed on the left */
#define posx_RR (-26)
#define posx_dotbar (-27)
#define posx_clef (-28)
#define posx_tick (-29)
#define posx_comma (-30)
#define posx_caesura (-31)
#define posx_max (-31)
#define posx_maxgrace (posx_gracelast - posx_gracefirst + 1)
#define posx_maxtime (posx_timelast - posx_timefirst + 1)
#define posx_maxkey (posx_keylast - posx_keyfirst + 1)
extern pagedatastr *page_accepteddata; /* pointers to the data structures */
extern pagedatastr *page_nextdata; /* used while measuring */
extern pagedatastr *page_previousdata;
extern int page_barcount; /* bars processed so far */
extern int page_barlinewidth; /* bar line width */
extern int page_barnumber; /* next to be processed */
extern int page_botmargin; /* value for this page */
extern contstr *page_cont; /* continuation structure */
extern int page_countsystems; /* count of systems on a page */
extern BOOL page_firstsystem; /* first system of movt */
extern headstr *page_footing; /* pending footing */
extern int page_footnotedepth; /* depth of footnotes for a system */
extern headstr *page_footnotes; /* pending footnotes */
extern int page_footnotespacing; /* current spacing off value */
extern int page_justify; /* bits for this page */
extern int page_justifyLR; /* bits for this system */
extern int page_lastbarcountbump; /* for backing off */
extern BOOL page_lastendwide; /* flag for repeat */
extern BOOL page_lastenddouble; /* flag for double bar */
extern headstr *page_lastfootnote;
extern headstr *page_lastnewfootnote;
extern sysblock *page_lastsystem; /* previous system */
extern int page_lastulevel; /* bottommost underlay level */
extern int page_lastwanted; /* highest wanted stave number */
extern int page_layout_stretchn; /* used for re-spacing */
extern int page_layout_stretchd; /* ditto */
extern int page_manyrest; /* multi-rest count */
extern startlinestr *page_midline; /* current mid line data */
extern int page_movtnumber; /* current movement */
extern BOOL page_movtpending; /* new movement pending */
extern int page_newfootnotedepth; /* depth of footnotes for a system */
extern headstr *page_newfootnotes; /* footnotes for a system */
extern BOOL page_newpagewanted; /* set to force newpage */
extern int page_olaysize; /* overlay size for this movement */
extern int *page_olevel; /* forced olevels */
extern int *page_olhere; /* local forcings */
extern workposstr *page_posptr; /* pointer to end of following */
extern workposstr *page_postable; /* working position table */
extern BOOL page_savehadmovt; /* temp save */
extern int page_sgnext; /* system gap for next system */
extern usint page_showtimes[STAVE_BITVEC_SIZE]; /* which staves require time sigs */
extern int *page_ssnext; /* spacing table for next system */
extern int *page_ssehere; /* ensure table for this system */
extern int *page_ssenext; /* ensure table for next system */
extern BOOL page_startchangetime; /* flags change of ts at start line */
extern startlinestr *page_startline; /* current start line data */
extern BOOL page_startlinebar; /* flags start of line */
extern int page_stave; /* current stave */
extern usint page_stavemap[STAVE_BITVEC_SIZE]; /* copy of movement stave bits */
extern uschar *page_sysclef; /* clef maintenance */
extern sysblock *page_sysblock; /* current block */
extern sysblock **page_sysprevptr; /* points to where to hang the next on */
extern int page_sys_botmargin; /* value set by this system */
extern int page_sys_justify; /* ditto */
extern int page_sys_topmargin; /* ditto */
extern int page_topmargin; /* value for this page */
extern int page_ulaysize; /* underlay size for this movement */
extern int *page_ulevel; /* forced ulevels */
extern int *page_ulhere; /* local forcings */
extern BOOL page_warnkey; /* warning key wanted */
extern BOOL page_warntime; /* warning time wanted */
extern int page_xxwidth; /* width of signatures only bar */
extern void page_dopageheading(headstr *);
extern void page_endpage(BOOL);
extern void page_justifyheading(headstr *);
extern void page_newpage(headstr *, headstr *);
extern int page_makepostable(BOOL);
extern void page_setcont(void);
extern void page_setsignatures(void);
extern int page_startwidth(pagedatastr *, usint *, usint *);
/* End of pagehdr.h */