windows-nt/Source/XPSP1/NT/windows/richedit/inci/lstxtbrs.h
2020-09-26 16:20:57 +08:00

68 lines
2.1 KiB
C

#ifndef LSTXTBRS_DEFINED
#define LSTXTBRS_DEFINED
#include "lsidefs.h"
#include "pdobj.h"
#include "plocchnk.h"
#include "pobjdim.h"
#include "lstflow.h"
#include "lschnke.h"
#include "txtils.h"
#include "txtobj.h"
typedef struct hyphout
{
long durHyphen;
long dupHyphen;
long durPrev;
long dupPrev;
long durPrevPrev;
long dupPrevPrev;
long ddurDnodePrev;
long ddurDnodePrevPrev;
long durChangeTotal;
long iwchLim;
long dwchYsr;
WCHAR wchPrev;
WCHAR wchPrevPrev;
long igindHyphen;
long igindPrev;
long igindPrevPrev;
GINDEX gindHyphen;
GINDEX gindPrev;
GINDEX gindPrevPrev;
} HYPHOUT;
typedef struct ysrinf
{
WORD kysr; /* Kind of Ysr - see "lskysr.h" */
WCHAR wchYsr; /* YSR char code */
} YSRINF;
#define FCanBreak(pilsobj,b1, b2) \
((pilsobj)->plsbrk[(pilsobj)->pilsbrk[(pilsobj)->cBreakingClasses * (b1) + (b2)]].fBreak)
#define FCanBreakAcrossSpaces(pilsobj, b1, b2) \
((pilsobj)->plsbrk[(pilsobj)->pilsbrk[pilsobj->cBreakingClasses * (b1) + (b2)]].fBreakAcrossSpaces)
BOOL FindNonSpaceBefore(PCLSCHNK rglschnk, long itxtobjCur, long iwchCur,
long* pitxtobjBefore, long* piwchBefore);
BOOL FindNonSpaceAfter(PCLSCHNK rglschnk, DWORD clschnk, long itxtobjCur, long iwchCur,
long* pitxtobjAfter, long* piwchAfter);
BOOL FindPrevChar(PCLSCHNK rglschnk, long itxtobjCur, long iwchCur,
long* pitxtobjBefore, long* piwchBefore);
BOOL FindNextChar(PCLSCHNK rglschnk, DWORD clschnk, long itxtobjSpace, long iwchSpace,
long* pitxtobjAfter, long* piwchAfter);
LSERR CalcPartWidths(PTXTOBJ ptxtobj, long dwchLim, POBJDIM pobjdim, long* pdur);
LSERR CalcPartWidthsGlyphs(PTXTOBJ ptxtobj, long dwchLim, POBJDIM pobjdim, long* pdur);
LSERR CheckHotZone(PCLOCCHNK plocchnk, long itxtobj, long iwch, BOOL* pfInHyphenZone);
LSERR ProcessYsr(PCLOCCHNK plocchnk, long itxtobjYsr, long dwchYsr, long itxtobjPrev, long itxtobjPrevPrev,
YSRINF ysrinf, BOOL* pfSuccess, HYPHOUT* phyphout);
LSERR GetPbrkinf(PILSOBJ pilsobj, PDOBJ pdobj, BRKKIND brkkind, BREAKINFO** ppbrkinf);
#endif /* !LSTXTBRS_DEFINED */