Source code of Windows XP (NT5)
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.

77 lines
2.0 KiB

  1. #ifndef LSLINE_DEFINED
  2. #define LSLINE_DEFINED
  3. #include "plsline.h"
  4. #include "plsdnode.h"
  5. #include "plnobj.h"
  6. #include "lslinfo.h"
  7. #include "lspap.h"
  8. #include "lsidefs.h"
  9. #include "lssubl.h"
  10. #define tagLSLINE Tag('L','I','N','E')
  11. #define FIsLSLINE(plsline) FHasTag(plsline,tagLSLINE)
  12. #define FLineValid(plsline, plsc) ((FIsLSLINE(plsline)) && (plsline->lssubl.plsc == plsc))
  13. struct lsline
  14. {
  15. DWORD tag;
  16. LSSUBL lssubl; /* structure that describes main subline */
  17. LSLINFO lslinfo;
  18. PQHEAP pqhAllDNodes;
  19. long upStartAutonumberingText; /* starting position of autonumering text
  20. calculated in PrepForDisplay*/
  21. long upLimAutonumberingText; /* end of autonumering text
  22. calculated in PrepForDisplay*/
  23. long upStartMainText; /* starting position of main text
  24. calculated in PrepForDisplay*/
  25. long upStartTrailing;
  26. long upLimLine; /* end of line
  27. calculated in PrepForDisplay*/
  28. long dvpAbove; /* Vertical extent -- prev. & ref. coords */
  29. long dvpBelow;
  30. long upRightMarginJustify; /* Width of column, calculated in PrepForDisplay */
  31. long upLimUnderline; /* boundary of underlining, calculated in PrepForDisplay */
  32. enum ksplat kspl; /* kind of splat to show on this line */
  33. BOOL fAllSimpleText; /* this variable is used only for optimization and is not handled
  34. strictly: if it is true then only text can be in a line,
  35. but backward sometimes (when dnode was deleted or after break)
  36. is not true; */
  37. BOOL fCollectVisual;
  38. BOOL fNonRealDnodeEncounted; /* pen dnode was created during formatting */
  39. BOOL fNonZeroDvpPosEncounted; /* run with non zero was formatted in the line */
  40. WORD AggregatedDisplayFlags; /* aggregated bites from all runs formatted on this line */
  41. WORD pad;
  42. PLNOBJ rgplnobj[1]; /* array of plnobj */
  43. /* should be the last */
  44. };
  45. enum ksplat
  46. {
  47. ksplNone,
  48. ksplColumnBreak,
  49. ksplSectionBreak,
  50. ksplPageBreak
  51. };
  52. #endif /* !LSLINE_DEFINED */