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.

67 lines
2.1 KiB

  1. #ifndef LSTXTBRS_DEFINED
  2. #define LSTXTBRS_DEFINED
  3. #include "lsidefs.h"
  4. #include "pdobj.h"
  5. #include "plocchnk.h"
  6. #include "pobjdim.h"
  7. #include "lstflow.h"
  8. #include "lschnke.h"
  9. #include "txtils.h"
  10. #include "txtobj.h"
  11. typedef struct hyphout
  12. {
  13. long durHyphen;
  14. long dupHyphen;
  15. long durPrev;
  16. long dupPrev;
  17. long durPrevPrev;
  18. long dupPrevPrev;
  19. long ddurDnodePrev;
  20. long ddurDnodePrevPrev;
  21. long durChangeTotal;
  22. long iwchLim;
  23. long dwchYsr;
  24. WCHAR wchPrev;
  25. WCHAR wchPrevPrev;
  26. long igindHyphen;
  27. long igindPrev;
  28. long igindPrevPrev;
  29. GINDEX gindHyphen;
  30. GINDEX gindPrev;
  31. GINDEX gindPrevPrev;
  32. } HYPHOUT;
  33. typedef struct ysrinf
  34. {
  35. WORD kysr; /* Kind of Ysr - see "lskysr.h" */
  36. WCHAR wchYsr; /* YSR char code */
  37. } YSRINF;
  38. #define FCanBreak(pilsobj,b1, b2) \
  39. ((pilsobj)->plsbrk[(pilsobj)->pilsbrk[(pilsobj)->cBreakingClasses * (b1) + (b2)]].fBreak)
  40. #define FCanBreakAcrossSpaces(pilsobj, b1, b2) \
  41. ((pilsobj)->plsbrk[(pilsobj)->pilsbrk[pilsobj->cBreakingClasses * (b1) + (b2)]].fBreakAcrossSpaces)
  42. BOOL FindNonSpaceBefore(PCLSCHNK rglschnk, long itxtobjCur, long iwchCur,
  43. long* pitxtobjBefore, long* piwchBefore);
  44. BOOL FindNonSpaceAfter(PCLSCHNK rglschnk, DWORD clschnk, long itxtobjCur, long iwchCur,
  45. long* pitxtobjAfter, long* piwchAfter);
  46. BOOL FindPrevChar(PCLSCHNK rglschnk, long itxtobjCur, long iwchCur,
  47. long* pitxtobjBefore, long* piwchBefore);
  48. BOOL FindNextChar(PCLSCHNK rglschnk, DWORD clschnk, long itxtobjSpace, long iwchSpace,
  49. long* pitxtobjAfter, long* piwchAfter);
  50. LSERR CalcPartWidths(PTXTOBJ ptxtobj, long dwchLim, POBJDIM pobjdim, long* pdur);
  51. LSERR CalcPartWidthsGlyphs(PTXTOBJ ptxtobj, long dwchLim, POBJDIM pobjdim, long* pdur);
  52. LSERR CheckHotZone(PCLOCCHNK plocchnk, long itxtobj, long iwch, BOOL* pfInHyphenZone);
  53. LSERR ProcessYsr(PCLOCCHNK plocchnk, long itxtobjYsr, long dwchYsr, long itxtobjPrev, long itxtobjPrevPrev,
  54. YSRINF ysrinf, BOOL* pfSuccess, HYPHOUT* phyphout);
  55. LSERR GetPbrkinf(PILSOBJ pilsobj, PDOBJ pdobj, BRKKIND brkkind, BREAKINFO** ppbrkinf);
  56. #endif /* !LSTXTBRS_DEFINED */