/* * FONT - Font name/number table * There are one of these for each font/size combination * These chunks should appear at the top of the file * (before document data) */ typedef struct { UBYTE Num; /* 0 .. 255 */ UWORD Size; /* UBYTE Name[]; */ /* NULL terminated, without ".font" */ } FontID; /* * COLR - Color translation table * Translates from color numbers used in file to ISO color numbers * Should be at top of file (before document data) * Note: Currently ProWrite only checks these values to be its * current map, it does no translation as it does for FONT chunks */ typedef struct { UBYTE ISOColors[8]; } ISOColors; /* * DOC - Begin document section * All text and paragraph formatting following this chunk and up to a * HEAD, FOOT, or PICT chunk belong to the document section */ #define PAGESTYLE_1 0 /* 1, 2, 3 */ #define PAGESTYLE_I 1 /* I, II, III */ #define PAGESTYLE_i 2 /* i, ii, iii */ #define PAGESTYLE_A 3 /* A, B, C */ #define PAGESTYLE_a 4 /* a, b, c */ typedef struct { UWORD StartPage; /* Starting page number */ UBYTE PageNumStyle; /* From defines above */ UBYTE pad1; LONG pad2; } DocHdr; /* * HEAD/FOOT - Begin header/footer section * All text and paragraph formatting following this chunk and up to a * DOC, HEAD, FOOT, or PICT chunk belong to this header/footer * Note: This format supports multiple headers and footers, but * currently ProWrite only allows a single header and footer per * document */ #define PAGES_NONE 0 #define PAGES_LEFT 1 #define PAGES_RIGHT 2 #define PAGES_BOTH 3 typedef struct { UBYTE PageType; /* From defines above */ UBYTE FirstPage; /* 0 = Not on first page */ LONG pad; } HeadHdr; /* * PCTS - Begin picture section * Note: ProWrite currently requires NPlanes to be three (3) */ typedef struct { UBYTE NPlanes; /* Number of planes used in picture bitmaps */ UBYTE pad; } PictHdr; /* * PARA - New paragraph format * This chunk should be inserted first when a new section is started * (DOC, HEAD, or FOOT), and again whenever the paragraph format * changes */ #define SPACE_SINGLE 0 #define SPACE_DOUBLE 0x10 #define JUSTIFY_LEFT 0 #define JUSTIFY_CENTER 1 #define JUSTIFY_RIGHT 2 #define JUSTIFY_FULL 3 #define MISCSTYLE_NONE 0 #define MISCSTYLE_SUPER 1 /* Superscript */ #define MISCSTYLE_SUB 2 /* Subscript */ typedef struct { UWORD LeftIndent; /* In decipoints (720 dpi) */ UWORD LeftMargin; UWORD RightMargin; UBYTE Spacing; /* From defines above */ UBYTE Justify; /* From defines above */ UBYTE FontNum; /* FontNum, Style, etc. for first char in para*/ UBYTE Style; /* Standard Amiga style bits */ UBYTE MiscStyle; /* From defines above */ UBYTE Color; /* Internal number, use COLR to translate */ LONG pad; } ParaFormat; /* * TABS - New tab stop types/locations * Use an array of values in each chunk * Like the PARA chunk, this should be inserted whenever the tab * settings for a paragraph change * Note: ProWrite currently does not support TAB_CENTER */ #define TAB_LEFT 0 #define TAB_CENTER 1 #define TAB_RIGHT 2 #define TAB_DECIMAL 3 typedef struct { UWORD Position; /* In decipoints */ UBYTE Type; UBYTE pad; } TabStop; /* * PAGE - Page break * Just a marker - this chunk has no data */ /* * TEXT - Paragraph text (one block per paragraph) * Block is actual text, no need for separate structure * If the paragraph is empty, this is an empty chunk -- there MUST be * a TEXT block for every paragraph * Note: The only ctrl characters ProWrite can currently handle in TEXT * chunks are Tab and PAGENUM_CHAR, ie no Return's, etc. */ /* * FSCC - Font/Style/Color changes in previous TEXT block * Use an array of values in each chunk * Only include this chunk if the previous TEXT block did not have * the same Font/Style/Color for all its characters */ typedef struct { UWORD Location; /* Character location in TEXT chunk of change */ UBYTE FontNum; UBYTE Style; UBYTE MiscStyle; UBYTE Color; UWORD pad; } FSCChange; /* * PINF - Picture info * This chunk must only be in a PCTS section * Must be followed by ILBM BODY chunk * Pictures are treated independently of the document text (like a * page-layout system), this chunk includes information about what * page and location on the page the picture is at * Note: ProWrite currently only supports mskTransparentColor and * mskHasMask masking */ typedef struct { UWORD Width, Height; /* In pixels */ UWORD Page; /* Which page picture is on (0..max) */ UWORD XPos, YPos; /* Location on page in decipoints */ Masking Masking; /* Like ILBM format */ Compression Compression; /* Like ILBM format */ UBYTE TransparentColor; /* Like ILBM format */ UBYTE pad; } PictInfo; /* end */