78 lines
2 KiB
C
78 lines
2 KiB
C
|
#ifndef LSLINE_DEFINED
|
||
|
#define LSLINE_DEFINED
|
||
|
|
||
|
#include "plsline.h"
|
||
|
#include "plsdnode.h"
|
||
|
#include "plnobj.h"
|
||
|
#include "lslinfo.h"
|
||
|
#include "lspap.h"
|
||
|
#include "lsidefs.h"
|
||
|
#include "lssubl.h"
|
||
|
|
||
|
#define tagLSLINE Tag('L','I','N','E')
|
||
|
#define FIsLSLINE(plsline) FHasTag(plsline,tagLSLINE)
|
||
|
#define FLineValid(plsline, plsc) ((FIsLSLINE(plsline)) && (plsline->lssubl.plsc == plsc))
|
||
|
|
||
|
|
||
|
struct lsline
|
||
|
{
|
||
|
DWORD tag;
|
||
|
|
||
|
LSSUBL lssubl; /* structure that describes main subline */
|
||
|
|
||
|
LSLINFO lslinfo;
|
||
|
|
||
|
PQHEAP pqhAllDNodes;
|
||
|
|
||
|
long upStartAutonumberingText; /* starting position of autonumering text
|
||
|
calculated in PrepForDisplay*/
|
||
|
long upLimAutonumberingText; /* end of autonumering text
|
||
|
calculated in PrepForDisplay*/
|
||
|
long upStartMainText; /* starting position of main text
|
||
|
calculated in PrepForDisplay*/
|
||
|
long upStartTrailing;
|
||
|
long upLimLine; /* end of line
|
||
|
calculated in PrepForDisplay*/
|
||
|
|
||
|
long dvpAbove; /* Vertical extent -- prev. & ref. coords */
|
||
|
long dvpBelow;
|
||
|
|
||
|
long upRightMarginJustify; /* Width of column, calculated in PrepForDisplay */
|
||
|
|
||
|
long upLimUnderline; /* boundary of underlining, calculated in PrepForDisplay */
|
||
|
|
||
|
|
||
|
enum ksplat kspl; /* kind of splat to show on this line */
|
||
|
|
||
|
|
||
|
BOOL fAllSimpleText; /* this variable is used only for optimization and is not handled
|
||
|
strictly: if it is true then only text can be in a line,
|
||
|
but backward sometimes (when dnode was deleted or after break)
|
||
|
is not true; */
|
||
|
|
||
|
BOOL fCollectVisual;
|
||
|
|
||
|
BOOL fNonRealDnodeEncounted; /* pen dnode was created during formatting */
|
||
|
|
||
|
BOOL fNonZeroDvpPosEncounted; /* run with non zero was formatted in the line */
|
||
|
|
||
|
WORD AggregatedDisplayFlags; /* aggregated bites from all runs formatted on this line */
|
||
|
|
||
|
WORD pad;
|
||
|
|
||
|
PLNOBJ rgplnobj[1]; /* array of plnobj */
|
||
|
/* should be the last */
|
||
|
};
|
||
|
|
||
|
|
||
|
enum ksplat
|
||
|
{
|
||
|
ksplNone,
|
||
|
ksplColumnBreak,
|
||
|
ksplSectionBreak,
|
||
|
ksplPageBreak
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif /* !LSLINE_DEFINED */
|