mhotpiece.h
00001
00002 #ifndef _MGNCS_HOT_PIECEC_H
00003 #define _MGNCS_HOT_PIECEC_H
00004
00005 #ifdef __cplusplus
00006 extern "C" {
00007 #endif
00008
00009 #include "piece-id.h"
00010
00011 typedef struct _mHotPieceClass mHotPieceClass;
00012 typedef struct _mHotPiece mHotPiece;
00013
00014 #define mHotPieceClassHeader(clss, superCls) \
00015 mObjectClassHeader(clss, superCls) \
00016 mHotPiece* (*hitTest)(clss *, int x, int y); \
00017 void (*paint)(clss *, HDC hdc, mObject * owner, DWORD add_data); \
00018 int (*processMessage)(clss *, int message, WPARAM, LPARAM, mObject *owner); \
00019 BOOL (*setProperty)(clss *, int id, DWORD value); \
00020 DWORD(*getProperty)(clss *, int id); \
00021 BOOL (*enable)(clss *, BOOL benable); \
00022 BOOL (*isEnabled)(clss *); \
00023 BOOL (*setRenderer)(clss *, const char* rdr_name); \
00024 BOOL (*setRect)(clss *, const RECT * prc); \
00025 BOOL (*getRect)(clss *, RECT * prc); \
00026 BOOL (*autoSize)(clss *, mObject *owner, const SIZE *pszMin, const SIZE *pszMax);
00027
00028 struct _mHotPieceClass
00029 {
00030 mHotPieceClassHeader(mHotPiece, mObject)
00031 };
00032
00033 MGNCS_EXPORT extern mHotPieceClass g_stmHotPieceCls;
00034
00035 #define mHotPieceHeader(clss) \
00036 mObjectHeader(clss)
00037
00038 struct _mHotPiece
00039 {
00040 mHotPieceHeader(mHotPiece)
00041 };
00042
00043 typedef void (*PHotPieceRdrFunc)(mHotPiece*, HDC hdc, mObject* owner, DWORD add_data);
00044
00045
00046 #define SET_BIT(flag, mask) ((flag)|=(mask))
00047 #define IS_BIT_SET(flag, mask) (((flag)&(mask)) == (mask))
00048 #define CLEAR_BIT(flag, mask) ((flag)&=~(mask))
00049
00050
00051 MGNCS_EXPORT mHotPiece * ncsNewPiece(mHotPieceClass *_class, DWORD add_data);
00052 #define NEWPIECEEX(Piece,add_data) (Piece*)(ncsNewPiece((mHotPieceClass*)((void *)&(Class(Piece))),(DWORD)(add_data)))
00053 #define NEWPIECE(Piece) NEWPIECEEX(Piece, 0)
00054 MGNCS_EXPORT void ncsDelPiece(mHotPiece* piece);
00055 #define DELPIECE(p) ncsDelPiece((mHotPiece*)p)
00056
00057
00058 MGNCS_EXPORT void mHotPiece_update(mHotPiece *self, mObject *onwer, BOOL bUpdate);
00059
00060
00061 #ifdef __cplusplus
00062 }
00063 #endif
00064
00065 #endif
00066
00067