55 lines
1.4 KiB
C
55 lines
1.4 KiB
C
#include "lsidefs.h"
|
|
#include "plsrun.h"
|
|
#include "pilsobj.h"
|
|
#include "txtils.h"
|
|
#include "txtobj.h"
|
|
#include "txtln.h"
|
|
|
|
// %%Function: EnumObjText
|
|
// %%Contact: victork
|
|
//
|
|
LSERR WINAPI EnumObjText(PDOBJ pdobj, PLSRUN plsrun, PCLSCHP plschp, LSCP cpFirst, LSDCP dcp,
|
|
LSTFLOW lstflow, BOOL fReverseOrder, BOOL fGeometryProvided,
|
|
const POINT* pptStart, PCHEIGHTS pheightsPres, long dupRun)
|
|
|
|
{
|
|
TXTOBJ* ptxtobj;
|
|
PLNOBJ plnobj;
|
|
PILSOBJ pilsobj;
|
|
long* pdup;
|
|
BOOL fCharWidthsProvided;
|
|
|
|
ptxtobj = (TXTOBJ*)pdobj;
|
|
plnobj = ptxtobj->plnobj;
|
|
pilsobj = plnobj->pilsobj;
|
|
|
|
Unreferenced(plschp);
|
|
|
|
if (ptxtobj->txtkind == txtkindTab)
|
|
{
|
|
return (*pilsobj->plscbk->pfnEnumTab)(pilsobj->pols, plsrun, cpFirst,
|
|
&plnobj->pwch[ptxtobj->iwchFirst],
|
|
ptxtobj->u.tab.wchTabLeader, lstflow,
|
|
fReverseOrder, fGeometryProvided,
|
|
pptStart, pheightsPres, dupRun);
|
|
}
|
|
|
|
if (ptxtobj->txtf & txtfGlyphBased)
|
|
{
|
|
fCharWidthsProvided = fFalse;
|
|
pdup = NULL;
|
|
}
|
|
else
|
|
{
|
|
fCharWidthsProvided = fTrue;
|
|
pdup = &plnobj->pdup[ptxtobj->iwchFirst];
|
|
}
|
|
|
|
return (*pilsobj->plscbk->pfnEnumText)(pilsobj->pols, plsrun, cpFirst, dcp,
|
|
&plnobj->pwch[ptxtobj->iwchFirst],
|
|
ptxtobj->iwchLim - ptxtobj->iwchFirst, lstflow,
|
|
fReverseOrder, fGeometryProvided,
|
|
pptStart, pheightsPres, dupRun,
|
|
fCharWidthsProvided, pdup);
|
|
}
|