157 lines
4.4 KiB
C
157 lines
4.4 KiB
C
#ifndef OBJHELP_DEFINED
|
|
#define OBJHELP_DEFINED
|
|
|
|
#include "lsdefs.h"
|
|
#include "lstflow.h"
|
|
#include "pobjdim.h"
|
|
#include "plssubl.h"
|
|
#include "lsesc.h"
|
|
#include "plsdnode.h"
|
|
#include "fmtres.h"
|
|
#include "plsqin.h"
|
|
#include "plsqout.h"
|
|
#include "breakrec.h"
|
|
#include "plnobj.h"
|
|
#include "pdobj.h"
|
|
#include "pfmti.h"
|
|
#include "plsrun.h"
|
|
#include "pheights.h"
|
|
#include "mwcls.h"
|
|
#include "brkkind.h"
|
|
#include "pbrko.h"
|
|
|
|
#define ZeroMemory(a, b) memset(a, 0, b);
|
|
|
|
#ifdef DEBUG
|
|
|
|
#define Undefined(pvar) \
|
|
{int i; for (i=0; i<sizeof(*pvar); i++) ((BYTE*)pvar) [i] = 255; };
|
|
|
|
#else
|
|
|
|
#define Undefined(var) ; /* Nothing in ship-version */
|
|
|
|
#endif
|
|
|
|
#define AllocateMemory(pilsobj, cb) ((pilsobj)->lscbk.pfnNewPtr((pilsobj)->pols, (cb)))
|
|
#define FreeMemory(pilsobj, ptr) (pilsobj)->lscbk.pfnDisposePtr((pilsobj)->pols, (ptr))
|
|
|
|
#define NBreaksToSave 3 /* Number of break records to store in objects */
|
|
|
|
/*
|
|
* Proc: GetBreakRecordIndex
|
|
* Return number of break record based on brkkind enumeration.
|
|
*
|
|
*/
|
|
|
|
|
|
DWORD GetBreakRecordIndex (BRKKIND brkkind);
|
|
|
|
/*
|
|
* Proc: GetBreakRecordIndex
|
|
* Fill trailing info in BRKOUT as if there is no trailing spaces
|
|
*
|
|
*/
|
|
|
|
|
|
LSERR FormatLine(
|
|
PLSC plsc,
|
|
LSCP cpStart,
|
|
long durColMax,
|
|
LSTFLOW lstflow,
|
|
PLSSUBL *pplssubl,
|
|
DWORD cdwlsesc,
|
|
const LSESC *plsesc,
|
|
POBJDIM pobjdim,
|
|
LSCP *pcpOut,
|
|
PLSDNODE *pplsdnStart,
|
|
PLSDNODE *pplsdnEnd,
|
|
FMTRES *pfmtres);
|
|
|
|
LSERR FormatResumedLine(
|
|
PLSC plsc,
|
|
LSCP cpStart,
|
|
long durColMax,
|
|
LSTFLOW lstflow,
|
|
PLSSUBL *pplssubl,
|
|
DWORD cdwlsesc,
|
|
const LSESC *plsesc,
|
|
POBJDIM pobjdim,
|
|
LSCP *pcpOut,
|
|
PLSDNODE *pplsdnStart,
|
|
PLSDNODE *pplsdnEnd,
|
|
FMTRES *pfmtres,
|
|
const BREAKREC *pbreakrec,
|
|
DWORD cbreakrec);
|
|
|
|
LSERR CreateQueryResult(
|
|
PLSSUBL plssubl, /*(IN): subline of ruby */
|
|
long dupAdj, /*(IN): u offset of start of subline */
|
|
long dvpAdj, /*(IN): v offset of start of subline */
|
|
PCLSQIN plsqin, /*(IN): query input */
|
|
PLSQOUT plsqout); /*(OUT): query output */
|
|
|
|
/*
|
|
* Implementation of LSIMETHOD for objects that do not support the resuming
|
|
* of formatting. Ruby, Tatenakayoko and Hih are examples of this kind of
|
|
* object.
|
|
*/
|
|
LSERR WINAPI ObjHelpFmtResume(
|
|
PLNOBJ plnobj, /* (IN): object lnobj */
|
|
const BREAKREC *rgBreakRecord, /* (IN): array of break records */
|
|
DWORD nBreakRecord, /* (IN): size of the break records array */
|
|
PCFMTIN pcfmtin, /* (IN): formatting input */
|
|
FMTRES *pfmtres); /* (OUT): formatting result */
|
|
|
|
/*
|
|
* Implementation of LSIMETHOD for objects that do nothing for mod width.
|
|
* Tatenakayoko and Hih are examples of this kind of object.
|
|
*/
|
|
LSERR WINAPI ObjHelpGetModWidthChar(
|
|
PDOBJ pdobj, /* (IN): dobj */
|
|
PLSRUN plsrun, /* (IN): plsrun of the object */
|
|
PLSRUN plsrunText, /* (IN): plsrun of the preceding char */
|
|
PCHEIGHTS pcheightsRef, /* (IN): height info about character */
|
|
WCHAR wchar, /* (IN): preceding character */
|
|
MWCLS mwcls, /* (IN): ModWidth class of preceding character */
|
|
long *pdurChange); /* (OUT): amount by which width of the preceding char is to be changed */
|
|
|
|
/*
|
|
* Implementation of LSIMETHOD for objects that do nothing for SetBreak.
|
|
* Tatenakayoko and Hih are examples of this kind of object.
|
|
*/
|
|
|
|
LSERR WINAPI ObjHelpSetBreak(
|
|
PDOBJ pdobj, /* (IN): dobj which is broken */
|
|
BRKKIND brkkind, /* (IN): Previous / Next / Force / Imposed was chosen */
|
|
DWORD cBreakRecord, /* (IN): size of array */
|
|
BREAKREC *rgBreakRecord, /* (IN): array of break records */
|
|
DWORD *pcActualBreakRecord); /* (IN): actual number of used elements in array */
|
|
|
|
/*
|
|
* Default implementation of LSIMETHOD for objects that do not
|
|
* allow expanding the previous character.
|
|
*/
|
|
|
|
LSERR WINAPI ObjHelpFExpandWithPrecedingChar(
|
|
PDOBJ pdobj, /* (IN): dobj */
|
|
PLSRUN plsrun, /* (IN): plsrun of the object */
|
|
PLSRUN plsrunText, /* (IN): plsrun of the preceding char */
|
|
WCHAR wchar, /* (IN): preceding character */
|
|
MWCLS mwcls, /* (IN): ModWidth class of preceding character*/
|
|
BOOL *pfExpand); /* (OUT): (OUT): expand preceding character? */
|
|
|
|
/*
|
|
* Default implementation of LSIMETHOD for objects that do not
|
|
* allow expanding themselves.
|
|
*/
|
|
LSERR WINAPI ObjHelpFExpandWithFollowingChar(
|
|
PDOBJ pdobj, /* (IN): dobj */
|
|
PLSRUN plsrun, /* (IN): plsrun of the object */
|
|
PLSRUN plsrunText, /* (IN): plsrun of the following char */
|
|
WCHAR wchar, /* (IN): following character */
|
|
MWCLS mwcls, /* (IN): ModWidth class of following character*/
|
|
BOOL *pfExpand); /* (OUT): expand object? */
|
|
|
|
#endif /* !OBJHELP_DEFINED */
|