Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#ifndef LSSUBL_DEFINED
#define LSSUBL_DEFINED
#include "lsidefs.h"
#include "plsdnode.h"
#include "lstflow.h"
#include "plschcon.h"
#include "posinln.h"
#include "objdim.h"
#include "brkkind.h"
#define tagLSSUBL Tag('L','S','S','L')
#define FIsLSSUBL(p) FHasTag(p,tagLSSUBL)
typedef struct brkcontext { POSINLINE posinlineBreakPrev; /* information about previous break */ OBJDIM objdimBreakPrev; BRKKIND brkkindForPrev; BOOL fBreakPrevValid;
POSINLINE posinlineBreakNext; /* information about next break */ OBJDIM objdimBreakNext; BRKKIND brkkindForNext; BOOL fBreakNextValid;
POSINLINE posinlineBreakForce; /* information about force break */ OBJDIM objdimBreakForce; BRKKIND brkkindForForce; BOOL fBreakForceValid; } BRKCONTEXT;
typedef struct lssubl
{ DWORD tag; /* tag for safety checks */
PLSC plsc; /* LineServices context
parameter to CreateSubLine */ LSCP cpFirst; /* cp for the first fetch
parameter to CreateSubLine */ LSTFLOW lstflow; /* text flow of the subline
parameter to CreateSubLine */
long urColumnMax; /* max lenght to fit into a main line
parameter to CreateSubLine */
LSCP cpLim; /* during formatting is a cpFirst for the next fetch
after SetBreak indicates boundary of the line */
LSCP cpLimDisplay; /* doesn't consider splat char */
PLSDNODE plsdnFirst; /* starting dnode in a subline */
PLSDNODE plsdnLast; /* last dnode in a subline
during formatting serves as psdnToAppend */
PLSDNODE plsdnLastDisplay; /* doesn't consider splat dnode */
PLSCHUNKCONTEXT plschunkcontext;
PLSDNODE plsdnUpTemp; /* temporary used for collecting group chunk */
long urCur, vrCur; /* Current pen position in reference units */
BRKCONTEXT* pbrkcontext; /* information about break opportunites */
BYTE fContiguous; /* if TRUE such line has the same coordinate system as main line
and is allowed to have tabs, otherwise coordinates of the line starts from 0,0 parameter to CreateSubLine */
BYTE fDupInvalid; /* TRUE before preparing line for display */ BYTE fMain; /* is this subline main */
BYTE fAcceptedForDisplay; /* subline was submitted for display and accepted */
BYTE fRightMarginExceeded; /* used for low level subline to avoid double call to
nominal to ideal */
} LSSUBL;
#define LstflowFromSubline(plssubl) ((plssubl)->lstflow)
#define PlschunkcontextFromSubline(plssubl) ((plssubl)->plschunkcontext)
#define FIsSubLineMain(plssubl) (plssubl)->fMain
#endif /* LSSUBL_DEFINED */
|