windows-nt/Source/XPSP1/NT/drivers/tpg/hwx/common/inc/frame.h
2020-09-26 16:20:57 +08:00

53 lines
1.5 KiB
C

// frame.h
#ifndef __INCLUDE_FRAME
#define __INCLUDE_FRAME
#ifdef __cplusplus
extern "C"
{
#endif
typedef POINT XY;
typedef struct tagFRAME
{
void *pvData; // Recognizer specific private data
STROKEINFO info; // Physical info about ink (Penwin.h)
UINT csmoothxy; // points in smoothed strokes
XY *rgrawxy; // tablet coords of all the points in the stroke
XY *rgsmoothxy; // array of points after smoothing
RECT rect; // bounding box of this stroke
int iframe; // pos of this frame in linked list of glyphs
} FRAME;
FRAME *NewFRAME(void);
void DestroyFRAME(FRAME *self);
RECT *RectFRAME(FRAME *self);
BOOL IsSafeForAdd(int a, int b);
BOOL IsSafeForMult(int a, int b);
BOOL TranslateFrame (FRAME *pFrame, int dx, int dy);
FRAME *copyFRAME(FRAME *pFrame);
#define SetIFrameFRAME(frame,i) ((frame)->iframe = (i))
#define IFrameFRAME(frame) ((frame)->iframe)
#define DeInitRectFRAME(frame) ((frame)->rect.left = -1)
#define IsVisibleSTROKE(info) (((info)->wPdk) & PDK_TIPMASK)
#define IsVisibleFRAME(frame) (IsVisibleSTROKE(&(frame)->info))
#define RgrawxyFRAME(frame) ((frame)->rgrawxy)
#define CrawxyFRAME(frame) ((frame)->info.cPnt)
#define RawxyAtFRAME(frame,i) ((frame)->rgrawxy[i])
#define LppointFRAME(frame) ((LPPOINT)(frame)->rgrawxy)
#define CpointFRAME(frame) ((frame)->info.cPnt)
#define CpointSmoothFRAME(frame) ((frame)->csmoothxy)
#define LpframeinfoFRAME(frame) (&(frame)->info)
#ifdef __cplusplus
};
#endif
#endif //__INCLUDE_FRAME