68 lines
2.1 KiB
C
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 */
|
||
|
|