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);
|
||
|
}
|