cleanup vtable/method macros

This commit is contained in:
Eric House 2024-12-02 19:10:12 -08:00
parent e1ebba4d24
commit 2a5fb95dac

View file

@ -28,8 +28,8 @@
/* typedef struct DrawCtx DrawCtx; */ /* typedef struct DrawCtx DrawCtx; */
typedef XP_Bool (*LastScoreCallback)( void* closure, XWEnv xwe, typedef XP_Bool (*LastScoreCallback)(void* closure, XWEnv xwe,
XP_S16 player, LastMoveInfo* lmi ); XP_S16 player, LastMoveInfo* lmi);
typedef enum { typedef enum {
CELL_NONE = 0x00 CELL_NONE = 0x00
@ -69,7 +69,7 @@ enum HINT_ATTS { HINT_BORDER_NONE = 0,
HINT_BORDER_CENTER = 0x10 HINT_BORDER_CENTER = 0x10
}; };
typedef XP_UCHAR HintAtts; typedef XP_UCHAR HintAtts;
#define HINT_BORDER_EDGE \ #define HINT_BORDER_EDGE \
(HINT_BORDER_LEFT|HINT_BORDER_RIGHT|HINT_BORDER_TOP|HINT_BORDER_BOTTOM) (HINT_BORDER_LEFT|HINT_BORDER_RIGHT|HINT_BORDER_TOP|HINT_BORDER_BOTTOM)
@ -99,127 +99,127 @@ typedef struct DrawCtxVTable {
#endif #endif
#ifdef DRAW_WITH_PRIMITIVES #ifdef DRAW_WITH_PRIMITIVES
void DRAW_VTABLE_NAME(setClip)( DrawCtx* dctx, XWEnv xwe, XWEnv xwe, const XP_Rect* newClip, void DRAW_VTABLE_NAME(setClip)(DrawCtx* dctx, XWEnv xwe, XWEnv xwe, const XP_Rect* newClip,
const XP_Rect* oldClip ); const XP_Rect* oldClip);
void DRAW_VTABLE_NAME(frameRect)( DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect ); void DRAW_VTABLE_NAME(frameRect)(DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect);
void DRAW_VTABLE_NAME(invertRect)( DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect ); void DRAW_VTABLE_NAME(invertRect)(DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect);
void DRAW_VTABLE_NAME(drawString)( DrawCtx* dctx, XWEnv xwe, const XP_UCHAR* str, void DRAW_VTABLE_NAME(drawString)(DrawCtx* dctx, XWEnv xwe, const XP_UCHAR* str,
XP_U16 x, XP_U16 y ); XP_U16 x, XP_U16 y);
void DRAW_VTABLE_NAME(drawBitmap)( DrawCtx* dctx, XWEnv xwe, const XP_Bitmap bm, void DRAW_VTABLE_NAME(drawBitmap)(DrawCtx* dctx, XWEnv xwe, const XP_Bitmap bm,
XP_U16 x, XP_U16 y ); XP_U16 x, XP_U16 y);
void DRAW_VTABLE_NAME(measureText)( DrawCtx* dctx, XWEnv xwe, const XP_UCHAR* buf, void DRAW_VTABLE_NAME(measureText)(DrawCtx* dctx, XWEnv xwe, const XP_UCHAR* buf,
XP_U16* widthP, XP_U16* heightP ); XP_U16* widthP, XP_U16* heightP);
#endif #endif
void DRAW_VTABLE_NAME(destroyCtxt) ( DrawCtx* dctx, XWEnv xwe ); void DRAW_VTABLE_NAME(destroyCtxt) (DrawCtx* dctx, XWEnv xwe);
void DRAW_VTABLE_NAME(dictChanged)( DrawCtx* dctx, XWEnv xwe, XP_S16 playerNum, void DRAW_VTABLE_NAME(dictChanged)(DrawCtx* dctx, XWEnv xwe, XP_S16 playerNum,
const DictionaryCtxt* dict ); const DictionaryCtxt* dict);
XP_Bool DRAW_VTABLE_NAME(beginDraw) ( DrawCtx* dctx, XWEnv xwe ); XP_Bool DRAW_VTABLE_NAME(beginDraw) (DrawCtx* dctx, XWEnv xwe);
void DRAW_VTABLE_NAME(endDraw) ( DrawCtx* dctx, XWEnv xwe ); void DRAW_VTABLE_NAME(endDraw) (DrawCtx* dctx, XWEnv xwe);
XP_Bool DRAW_VTABLE_NAME(boardBegin) ( DrawCtx* dctx, XWEnv xwe, XP_Bool DRAW_VTABLE_NAME(boardBegin) (DrawCtx* dctx, XWEnv xwe,
const XP_Rect* rect, const XP_Rect* rect,
XP_U16 hScale, XP_U16 vScale, XP_U16 hScale, XP_U16 vScale,
DrawFocusState dfs, TileValueType tvType ); DrawFocusState dfs, TileValueType tvType);
void DRAW_VTABLE_NAME(objFinished)( DrawCtx* dctx, XWEnv xwe, BoardObjectType typ, void DRAW_VTABLE_NAME(objFinished)(DrawCtx* dctx, XWEnv xwe, BoardObjectType typ,
const XP_Rect* rect, const XP_Rect* rect,
DrawFocusState dfs ); DrawFocusState dfs);
/* rect is not const: set by callee */ /* rect is not const: set by callee */
XP_Bool DRAW_VTABLE_NAME(vertScrollBoard) (DrawCtx* dctx, XWEnv xwe, XP_Rect* rect, XP_Bool DRAW_VTABLE_NAME(vertScrollBoard) (DrawCtx* dctx, XWEnv xwe, XP_Rect* rect,
XP_S16 dist, DrawFocusState dfs ); XP_S16 dist, DrawFocusState dfs);
XP_Bool DRAW_VTABLE_NAME(trayBegin) ( DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect, XP_Bool DRAW_VTABLE_NAME(trayBegin) (DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect,
XP_U16 owner, XP_S16 score, XP_U16 owner, XP_S16 score,
DrawFocusState dfs ); DrawFocusState dfs);
XP_Bool DRAW_VTABLE_NAME(scoreBegin) ( DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect, XP_Bool DRAW_VTABLE_NAME(scoreBegin) (DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect,
XP_U16 numPlayers, XP_U16 numPlayers,
const XP_S16* const scores, const XP_S16* const scores,
XP_S16 remCount, DrawFocusState dfs ); XP_S16 remCount, DrawFocusState dfs);
#ifdef XWFEATURE_SCOREONEPASS #ifdef XWFEATURE_SCOREONEPASS
XP_Bool DRAW_VTABLE_NAME(drawRemText) ( DrawCtx* dctx, XWEnv xwe, XP_S16 nTilesLeft, XP_Bool DRAW_VTABLE_NAME(drawRemText) (DrawCtx* dctx, XWEnv xwe, XP_S16 nTilesLeft,
XP_Bool focussed, XP_Rect* rect ); XP_Bool focussed, XP_Rect* rect);
void DRAW_VTABLE_NAME(score_drawPlayers)( DrawCtx* dctx, XWEnv xwe, void DRAW_VTABLE_NAME(score_drawPlayers)(DrawCtx* dctx, XWEnv xwe,
const XP_Rect* scoreRect, const XP_Rect* scoreRect,
XP_U16 nPlayers, XP_U16 nPlayers,
DrawScoreInfo playerData[], DrawScoreInfo playerData[],
XP_Rect playerRects[] ); XP_Rect playerRects[]);
#else #else
XP_Bool DRAW_VTABLE_NAME(measureRemText) ( DrawCtx* dctx, XWEnv xwe, const XP_Rect* r, XP_Bool DRAW_VTABLE_NAME(measureRemText) (DrawCtx* dctx, XWEnv xwe, const XP_Rect* r,
XP_S16 nTilesLeft, XP_S16 nTilesLeft,
XP_U16* width, XP_U16* height ); XP_U16* width, XP_U16* height);
void DRAW_VTABLE_NAME(drawRemText) ( DrawCtx* dctx, XWEnv xwe, const XP_Rect* rInner, void DRAW_VTABLE_NAME(drawRemText) (DrawCtx* dctx, XWEnv xwe, const XP_Rect* rInner,
const XP_Rect* rOuter, const XP_Rect* rOuter,
XP_S16 nTilesLeft, XP_Bool focussed ); XP_S16 nTilesLeft, XP_Bool focussed);
void DRAW_VTABLE_NAME(measureScoreText) ( DrawCtx* dctx, XWEnv xwe, void DRAW_VTABLE_NAME(measureScoreText) (DrawCtx* dctx, XWEnv xwe,
const XP_Rect* r, const XP_Rect* r,
const DrawScoreInfo* dsi, const DrawScoreInfo* dsi,
XP_U16* width, XP_U16* height ); XP_U16* width, XP_U16* height);
void DRAW_VTABLE_NAME(score_drawPlayer) ( DrawCtx* dctx, XWEnv xwe, void DRAW_VTABLE_NAME(score_drawPlayer) (DrawCtx* dctx, XWEnv xwe,
const XP_Rect* rInner, const XP_Rect* rInner,
const XP_Rect* rOuter, const XP_Rect* rOuter,
XP_U16 gotPct, XP_U16 gotPct,
const DrawScoreInfo* dsi ); const DrawScoreInfo* dsi);
#endif #endif
void DRAW_VTABLE_NAME(score_pendingScore) ( DrawCtx* dctx, XWEnv xwe, void DRAW_VTABLE_NAME(score_pendingScore) (DrawCtx* dctx, XWEnv xwe,
const XP_Rect* rect, const XP_Rect* rect,
XP_S16 score, XP_S16 score,
XP_U16 playerNum, XP_U16 playerNum,
XP_Bool curTurn, XP_Bool curTurn,
CellFlags flags ); CellFlags flags);
void DRAW_VTABLE_NAME(drawTimer) ( DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect, void DRAW_VTABLE_NAME(drawTimer) (DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect,
XP_U16 player, XP_S16 secondsLeft, XP_U16 player, XP_S16 secondsLeft,
XP_Bool turnDone ); XP_Bool turnDone);
XP_Bool DRAW_VTABLE_NAME(drawCell) ( DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect, XP_Bool DRAW_VTABLE_NAME(drawCell) (DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect,
/* at least one of these two will be null */ /* at least one of these two will be null */
const XP_UCHAR* text, const XP_Bitmaps* bitmaps, const XP_UCHAR* text, const XP_Bitmaps* bitmaps,
Tile tile, XP_U16 value, Tile tile, XP_U16 value,
XP_S16 owner, /* -1 means don't use */ XP_S16 owner, /* -1 means don't use */
XWBonusType bonus, HintAtts hintAtts, XWBonusType bonus, HintAtts hintAtts,
CellFlags flags ); CellFlags flags);
void DRAW_VTABLE_NAME(invertCell) ( DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect ); void DRAW_VTABLE_NAME(invertCell) (DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect);
XP_Bool DRAW_VTABLE_NAME(drawTile) ( DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect, XP_Bool DRAW_VTABLE_NAME(drawTile) (DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect,
/* at least 1 of these 2 will be /* at least 1 of these 2 will be
null*/ null*/
const XP_UCHAR* text, const XP_UCHAR* text,
const XP_Bitmaps* bitmaps, const XP_Bitmaps* bitmaps,
XP_S16 val, CellFlags flags ); XP_S16 val, CellFlags flags);
#ifdef POINTER_SUPPORT #ifdef POINTER_SUPPORT
XP_Bool DRAW_VTABLE_NAME(drawTileMidDrag) ( DrawCtx* dctx, XWEnv xwe, XP_Bool DRAW_VTABLE_NAME(drawTileMidDrag) (DrawCtx* dctx, XWEnv xwe,
const XP_Rect* rect, const XP_Rect* rect,
/* at least 1 of these 2 will /* at least 1 of these 2 will
be null*/ be null*/
const XP_UCHAR* text, const XP_UCHAR* text,
const XP_Bitmaps* bitmaps, const XP_Bitmaps* bitmaps,
XP_U16 val, XP_U16 owner, XP_U16 val, XP_U16 owner,
CellFlags flags ); CellFlags flags);
#endif #endif
XP_Bool DRAW_VTABLE_NAME(drawTileBack) ( DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect, XP_Bool DRAW_VTABLE_NAME(drawTileBack) (DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect,
CellFlags flags );
void DRAW_VTABLE_NAME(drawTrayDivider) ( DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect,
CellFlags flags );
void DRAW_VTABLE_NAME(clearRect) ( DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect );
void DRAW_VTABLE_NAME(drawBoardArrow) ( DrawCtx* dctx, XWEnv xwe,
const XP_Rect* rect,
XWBonusType bonus, XP_Bool vert,
HintAtts hintAtts,
CellFlags flags); CellFlags flags);
void DRAW_VTABLE_NAME(drawTrayDivider) (DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect,
CellFlags flags);
void DRAW_VTABLE_NAME(clearRect) (DrawCtx* dctx, XWEnv xwe, const XP_Rect* rect);
void DRAW_VTABLE_NAME(drawBoardArrow) (DrawCtx* dctx, XWEnv xwe,
const XP_Rect* rect,
XWBonusType bonus, XP_Bool vert,
HintAtts hintAtts,
CellFlags flags);
#ifdef XWFEATURE_MINIWIN #ifdef XWFEATURE_MINIWIN
const XP_UCHAR* DRAW_VTABLE_NAME(getMiniWText) ( DrawCtx* dctx, XWEnv xwe, const XP_UCHAR* DRAW_VTABLE_NAME(getMiniWText) (DrawCtx* dctx, XWEnv xwe,
XWMiniTextType textHint ); XWMiniTextType textHint);
void DRAW_VTABLE_NAME(measureMiniWText) ( DrawCtx* dctx, XWEnv xwe, const XP_UCHAR* textP, void DRAW_VTABLE_NAME(measureMiniWText) (DrawCtx* dctx, XWEnv xwe, const XP_UCHAR* textP,
XP_U16* width, XP_U16* height ); XP_U16* width, XP_U16* height);
void DRAW_VTABLE_NAME(drawMiniWindow)( DrawCtx* dctx, XWEnv xwe, const XP_UCHAR* text, void DRAW_VTABLE_NAME(drawMiniWindow)(DrawCtx* dctx, XWEnv xwe, const XP_UCHAR* text,
const XP_Rect* rect, void** closure ); const XP_Rect* rect, void** closure);
#endif #endif
#ifndef DRAW_LINK_DIRECT #ifndef DRAW_LINK_DIRECT
} DrawCtxVTable; /* */ } DrawCtxVTable; /* */
@ -230,122 +230,71 @@ struct DrawCtx {
}; };
/* Franklin's compiler is too old to support __VA_ARGS__... */ /* Franklin's compiler is too old to support __VA_ARGS__... */
#ifdef DRAW_LINK_DIRECT # define DRAW_CALL(name, dc, ...) ((dc)->vtable->m_draw_##name)((dc), __VA_ARGS__)
# define CALL_DRAW_NAME0(name,dc) linked##_draw_##name(dc)
# define CALL_DRAW_NAME1(name,dc,p1) linked##_draw_##name(dc,(p1))
# define CALL_DRAW_NAME2(name,dc,p1,p2) \
linked##_draw_##name(dc,(p1),(p2))
# define CALL_DRAW_NAME3(name,dc,p1,p2,p3) \
linked##_draw_##name(dc,(p1),(p2),(p3))
# define CALL_DRAW_NAME4(name,dc,p1,p2,p3,p4) \
linked##_draw_##name(dc,(p1),(p2),(p3),(p4))
# define CALL_DRAW_NAME5(name,dc,p1,p2,p3,p4,p5) \
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5))
# define CALL_DRAW_NAME6(name,dc,p1,p2,p3,p4,p5,p6) \
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5),(p6))
# define CALL_DRAW_NAME8(name,dc,p1,p2,p3,p4,p5,p6,p7,p8) \
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7),(p8))
# define CALL_DRAW_NAME9(name,dc,p1,p2,p3,p4,p5,p6,p7,p8,p9) \
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7),(p8),(p9))
# define CALL_DRAW_NAME10(name,dc,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10) \
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7),\
(p8),(p9),(p10))
#else
# define CALL_DRAW_NAME0(name,dc,e) ((dc)->vtable->m_draw_##name)((dc), (e))
# define CALL_DRAW_NAME1(name,dc,e,p1) ((dc)->vtable->m_draw_##name)((dc),(e),(p1))
# define CALL_DRAW_NAME2(name,dc,e,p1,p2) \
((dc)->vtable->m_draw_##name)(dc,(e),(p1),(p2))
# define CALL_DRAW_NAME3(name,dc,e,p1,p2,p3) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3))
# define CALL_DRAW_NAME4(name,dc,e,p1,p2,p3,p4) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3),(p4))
# define CALL_DRAW_NAME5(name,dc,e,p1,p2,p3,p4,p5) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3),(p4),(p5))
# define CALL_DRAW_NAME6(name,dc,e,p1,p2,p3,p4,p5,p6) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3),(p4),(p5),(p6))
# define CALL_DRAW_NAME8(name,dc,e,p1,p2,p3,p4,p5,p6,p7,p8) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3),(p4),(p5),(p6),(p7), \
(p8))
# define CALL_DRAW_NAME9(name,dc,e,p1,p2,p3,p4,p5,p6,p7,p8,p9) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3),(p4),(p5),(p6),(p7), \
(p8),(p9))
# define CALL_DRAW_NAME10(name,dc,e,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3),(p4),(p5),(p6),(p7), \
(p8),(p9),(p10))
#endif
#define draw_destroyCtxt(dc,e) CALL_DRAW_NAME0(destroyCtxt, (dc), (e)) #define draw_destroyCtxt(dc,...) DRAW_CALL(destroyCtxt, dc, __VA_ARGS__)
#define draw_dictChanged( dc, e, n, d ) CALL_DRAW_NAME2(dictChanged, (dc),(e),(n),(d)) #define draw_dictChanged(dc, ...) DRAW_CALL(dictChanged, dc,__VA_ARGS__)
#define draw_beginDraw( dc,e ) CALL_DRAW_NAME0(beginDraw, (dc), (e)) #define draw_beginDraw(dc,...) DRAW_CALL(beginDraw, dc, __VA_ARGS__)
#define draw_endDraw( dc,e ) CALL_DRAW_NAME0(endDraw, (dc), (e)) #define draw_endDraw(dc, ...) DRAW_CALL(endDraw, dc, __VA_ARGS__)
#define draw_boardBegin( dc,e,r,h,v,f,tvt ) CALL_DRAW_NAME5(boardBegin, (dc), (e), \ #define draw_boardBegin(dc, ...) DRAW_CALL(boardBegin, dc, __VA_ARGS__)
(r),(h),(v),(f), (tvt))
#define draw_objFinished( dc, e, t, r, d ) \ #define draw_objFinished(dc, ...) DRAW_CALL(objFinished, dc, __VA_ARGS__)
CALL_DRAW_NAME3(objFinished, (dc),(e), (t), (r), (d)) #define draw_trayBegin(dc, ...) DRAW_CALL(trayBegin, dc, __VA_ARGS__)
#define draw_trayBegin( dc, e, r, o, s, f ) \ #define draw_vertScrollBoard(dc, ...) DRAW_CALL(vertScrollBoard, (dc),__VA_ARGS__)
CALL_DRAW_NAME4(trayBegin, dc, e, r, o, s, f) #define draw_scoreBegin(dc, ...) DRAW_CALL(scoreBegin,(dc), __VA_ARGS__)
#define draw_vertScrollBoard( dc, e, r, d, f ) \
CALL_DRAW_NAME3(vertScrollBoard, (dc),(e),(r),(d),(f))
#define draw_scoreBegin( dc, e, r, t, s, c, f ) \
CALL_DRAW_NAME5( scoreBegin,(dc),(e), (r), (t), (s), (c), (f))
#ifdef XWFEATURE_SCOREONEPASS #ifdef XWFEATURE_SCOREONEPASS
# define draw_drawRemText( dc, e, nt, f, ro ) \ # define draw_drawRemText(dc, ...) DRAW_CALL(drawRemText, dc,__VA_ARGS__)
CALL_DRAW_NAME3(drawRemText, (dc),(e), (nt), (f), (ro) ) # define draw_score_drawPlayers(dc, ...) DRAW_CALL(score_drawPlayers, dc,__VA_ARGS__)
# define draw_score_drawPlayers( dc, e, r, np, pd, pr ) \
CALL_DRAW_NAME4(score_drawPlayers, (dc),(e), (r), (np), (pd), (pr) )
#else #else
# define draw_measureRemText( dc, e, r, n, wp, hp ) \ # define draw_measureRemText(dc, ...) \
CALL_DRAW_NAME4(measureRemText, (dc),(e), (r), (n), (wp), (hp) ) DRAW_CALL(measureRemText, (dc),__VA_ARGS__)
# define draw_drawRemText( dc, e, ri, ro, n, f ) \ # define draw_drawRemText(dc, ...) \
CALL_DRAW_NAME4(drawRemText, (dc),(e), (ri), (ro), (n), (f) ) DRAW_CALL(drawRemText, (dc),__VA_ARGS__)
# define draw_measureScoreText(dc, e, r, dsi, wp, hp) \ # define draw_measureScoreText(dc, ...) \
CALL_DRAW_NAME4(measureScoreText,(dc),(e),(r),(dsi),(wp),(hp)) DRAW_CALL(measureScoreText,(dc),__VA_ARGS__)
# define draw_score_drawPlayer(dc, e, ri, ro, gp, dsi) \ # define draw_score_drawPlayer(dc, ...) \
CALL_DRAW_NAME4(score_drawPlayer,(dc),(e),(ri),(ro),(gp),(dsi)) DRAW_CALL(score_drawPlayer,(dc),__VA_ARGS__)
#endif #endif
#define draw_score_pendingScore(dc, e, r, s, p, t, f ) \ #define draw_score_pendingScore(dc, ...) \
CALL_DRAW_NAME5(score_pendingScore,(dc),(e), (r), (s), (p), (t), (f)) DRAW_CALL(score_pendingScore,(dc),__VA_ARGS__)
#define draw_drawTimer( dc, e, r, plyr, sec, dm ) \ #define draw_drawTimer(dc, ...) \
CALL_DRAW_NAME4(drawTimer,(dc),(e),(r),(plyr),(sec), (dm)) DRAW_CALL(drawTimer,(dc),__VA_ARGS__)
#define draw_drawCell( dc, e, rect, txt, bmap, t, v,o, bon, hi, f ) \ #define draw_drawCell(dc, ...) DRAW_CALL(drawCell,(dc),__VA_ARGS__)
CALL_DRAW_NAME9(drawCell,(dc),(e),(rect),(txt),(bmap),(t),(v),(o),(bon),(hi), \ #define draw_invertCell(dc, ...) DRAW_CALL(invertCell,(dc),__VA_ARGS__)
(f)) #define draw_drawTile(dc, ...) \
#define draw_invertCell( dc, e, rect ) CALL_DRAW_NAME1(invertCell,(dc),(e),(rect)) DRAW_CALL(drawTile,(dc),__VA_ARGS__)
#define draw_drawTile( dc, e, rect, text, bmp, val, hil ) \
CALL_DRAW_NAME5(drawTile,(dc),(e),(rect),(text),(bmp),(val),(hil))
#ifdef POINTER_SUPPORT #ifdef POINTER_SUPPORT
#define draw_drawTileMidDrag( dc, e, rect, text, bmp, val, ownr, hil ) \ #define draw_drawTileMidDrag(dc, ...) \
CALL_DRAW_NAME6(drawTileMidDrag,(dc),(e),(rect),(text),(bmp),(val),(ownr),(hil)) DRAW_CALL(drawTileMidDrag,(dc),__VA_ARGS__)
#endif /* POINTER_SUPPORT */ #endif /* POINTER_SUPPORT */
#define draw_drawTileBack( dc, e, rect, f ) \ #define draw_drawTileBack(dc, ...) \
CALL_DRAW_NAME2(drawTileBack, (dc),(e), (rect), (f) ) DRAW_CALL(drawTileBack, (dc),__VA_ARGS__)
#define draw_drawTrayDivider( dc, e, rect, s ) \ #define draw_drawTrayDivider(dc, ...) \
CALL_DRAW_NAME2(drawTrayDivider,(dc),(e),(rect), (s)) DRAW_CALL(drawTrayDivider,(dc),__VA_ARGS__)
#define draw_clearRect( dc, e, rect ) CALL_DRAW_NAME1(clearRect,(dc),(e),(rect)) #define draw_clearRect(dc, ...) DRAW_CALL(clearRect,(dc),__VA_ARGS__)
#define draw_drawBoardArrow( dc, e, r, b, v, h, f ) \ #define draw_drawBoardArrow(dc, ...) \
CALL_DRAW_NAME5(drawBoardArrow,(dc),(e),(r),(b), (v), (h), (f)) DRAW_CALL(drawBoardArrow,(dc),__VA_ARGS__)
#ifdef XWFEATURE_MINIWIN #ifdef XWFEATURE_MINIWIN
# define draw_getMiniWText( dc, e, b ) CALL_DRAW_NAME1(getMiniWText, (dc),(e),(b) ) # define draw_getMiniWText(dc, e, b) CALL_DRAW_NAME1(getMiniWText, (dc),(e),(b))
# define draw_measureMiniWText( dc, e, t, wp, hp) \ # define draw_measureMiniWText(dc, e, t, wp, hp) \
CALL_DRAW_NAME3(measureMiniWText, (dc),(e),(t), (wp), (hp) ) CALL_DRAW_NAME3(measureMiniWText, (dc),(e),(t), (wp), (hp))
# define draw_drawMiniWindow( dc, e, t, r, c ) \ # define draw_drawMiniWindow(dc, e, t, r, c) \
CALL_DRAW_NAME3(drawMiniWindow, (dc),(e), (t), (r), (c) ) CALL_DRAW_NAME3(drawMiniWindow, (dc),(e), (t), (r), (c))
#endif #endif
#ifdef DRAW_WITH_PRIMITIVES #ifdef DRAW_WITH_PRIMITIVES
# define draw_setClip( dc, e, rn, ro ) CALL_DRAW_NAME2(setClip, (dc),(e), (rn), (ro)) # define draw_setClip(dc, e, rn, ro) CALL_DRAW_NAME2(setClip, (dc),(e), (rn), (ro))
# define draw_frameRect( dc, e, r ) CALL_DRAW_NAME1(frameRect, (dc),(e), (r) ) # define draw_frameRect(dc, e, r) CALL_DRAW_NAME1(frameRect, (dc),(e), (r))
# define draw_invertRect( dc, e, r ) CALL_DRAW_NAME1(invertCell, (dc),(e), (r) ) # define draw_invertRect(dc, e, r) CALL_DRAW_NAME1(invertCell, (dc),(e), (r))
# define draw_drawString( dc, e, s, x, y) \ # define draw_drawString(dc, e, s, x, y) \
CALL_DRAW_NAME3(drawString, (dc),(e), (s), (x), (y) ) CALL_DRAW_NAME3(drawString, (dc),(e), (s), (x), (y))
# define draw_drawBitmap( dc, e, bm, x, y ) \ # define draw_drawBitmap(dc, e, bm, x, y) \
CALL_DRAW_NAME3(drawBitmap, (dc),(e), (bm), (x), (y) ) CALL_DRAW_NAME3(drawBitmap, (dc),(e), (bm), (x), (y))
# define draw_measureText( dc, e, t, wp, hp ) \ # define draw_measureText(dc, e, t, wp, hp) \
CALL_DRAW_NAME3(measureText, (dc),(e), (t), (wp), (hp) ) CALL_DRAW_NAME3(measureText, (dc),(e), (t), (wp), (hp))
void InitDrawDefaults( DrawCtxVTable* vtable ); void InitDrawDefaults(DrawCtxVTable* vtable);
#endif /* DRAW_WITH_PRIMITIVES */ #endif /* DRAW_WITH_PRIMITIVES */
#endif #endif