00001
00041 #ifndef _WTBOARD_H_
00042 #define _WTBOARD_H_
00043
00046 #define WTB_MAX_X 32000
00047
00049 #define WTB_MAX_Y 32000
00050
00052 #define WTB_THRESHOLD (WTB_MAX_X/3200)
00053
00055 #define WTB_TOOL_PEN 1
00056
00057 #define WTB_TOOL_ERASER 2
00058
00060 typedef struct __WTBOARDDATANODE
00061 {
00063 unsigned short PosX;
00065 unsigned short PosY;
00067 unsigned char Pressure;
00069 unsigned long TimeStamp;
00070 }WTBOARDDATANODE;
00071
00073 typedef struct __WTBOARDDATASTROKE
00074 {
00077 UINT nStrokeID;
00079 COLORREF StrokeColor;
00081 UINT nNodeCount;
00083 WTBOARDDATANODE* pNodes;
00085 struct __WTBOARDDATASTROKE* pPrevStroke;
00087 struct __WTBOARDDATASTROKE* pNextStroke;
00088 }WTBOARDDATASTROKE;
00089
00091 typedef struct __WTBOARDPAGE
00092 {
00094 UINT nPageID;
00096 UINT nStrokeIDCounter;
00098 WTBOARDDATASTROKE* pStrokeList;
00100 WTBOARDDATASTROKE* pLastStroke;
00102 struct __WTBOARDPAGE* pPrevPage;
00104 struct __WTBOARDPAGE* pNextPage;
00106 void* pDocument;
00107 }WTBOARDPAGE;
00108
00110 typedef struct __WTBOARDDOCUMENT
00111 {
00113 UINT nPageIDCounter;
00115 WTBOARDPAGE* pActivePage;
00117 WTBOARDPAGE* pPageList;
00119 WTBOARDPAGE* pLastPage;
00121 PVOID pParam;
00122 }WTBOARDDOCUMENT;
00123
00125 typedef struct __WTBOARDRECEIVER
00126 {
00128 HWND hwnd;
00130 HCTX hTab;
00132 WTBOARDDOCUMENT* pBoardDoc;
00133 }WTBOARDRECEIVER;
00134
00136 typedef struct __WTBOARDDATANODELIST
00137 {
00139 WTBOARDDATANODE node;
00141 struct __WTBOARDDATANODELIST* pNextNode;
00142 }WTBOARDDATANODELIST;
00143
00145 extern WTBOARDRECEIVER g_wtBoardReceiver;
00146
00148 typedef BOOL (*WTB_HookPtr)(UINT msg, DWORD dwParam1, DWORD dwParam2, DWORD dwSrcClass);
00149 void WTBSetCallback(WTB_HookPtr hook, DWORD dwSrcClass);
00150
00157 #define WTB_CALLBACK_STROKEGENERATED 11
00158
00160 #define WTB_CALLBACK_NEWDOCOPENED 12
00161
00165 #define WTB_CALLBACK_STROKEONCREATE 13
00166
00170 #define WTB_CALLBACK_STROKEONDELETE 14
00171
00173 #define WTB_CALLBACK_STROKEDELETED 15
00174
00176 #define WTB_CALLBACK_UPDATE_PEN_POS 16
00177
00179 #define WTB_CALLBACK_BROWSED_TOPAGE 17
00180
00182 BOOL WTBInitialize(HINSTANCE hInstance);
00184 BOOL WTBUninitialize();
00185
00186 void WTBLButtonDown(float* boardpos, int texture_size);
00187 void WTBMouseMove(float* boardpos, int texture_size);
00188 void WTBLButtonUp(float* boardpos, int texture_size);
00189
00190
00191 BOOL WTBIsReceiverVisible();
00192 void WTBShowReceiver(BOOL bShow);
00193
00194
00195
00196 WTBOARDDOCUMENT* WTBAttachDocToReceiver(WTBOARDDOCUMENT* pDoc);
00197 WTBOARDDOCUMENT* WTBDetachDocFromReceiver();
00198
00199
00200 WTBOARDDOCUMENT* WTBNewDocument();
00201 int WTBRemoveEmptyPages(WTBOARDDOCUMENT* pDoc);
00202 WTBOARDDOCUMENT* WTBLoadDocument(LPCSTR lpcsFileName);
00203 BOOL WTBSaveDocument(WTBOARDDOCUMENT* pDoc, LPCSTR lpcsFileName);
00204 void WTBCloseDocument(WTBOARDDOCUMENT* pDoc);
00205
00206
00207 WTBOARDPAGE* WTBInsPage(WTBOARDDOCUMENT* pDoc, BOOL bNotify);
00208 WTBOARDPAGE* WTBNewPage(WTBOARDDOCUMENT* pDoc, BOOL bNotify);
00209 WTBOARDPAGE* WTBFindPage(WTBOARDDOCUMENT* pDoc, UINT nPageID);
00210 BOOL WTBBrowseToPage(WTBOARDDOCUMENT* pDoc, WTBOARDPAGE* pPage, BOOL bNotify);
00211 BOOL WTBBrowseToNextPage(WTBOARDDOCUMENT* pDoc);
00212 BOOL WTBBrowseToPrevPage(WTBOARDDOCUMENT* pDoc);
00213 BOOL WTBClearPage(WTBOARDDOCUMENT* pDoc, WTBOARDPAGE* pPage);
00214 BOOL WTBDeletePage(WTBOARDDOCUMENT* pDoc, WTBOARDPAGE* pPage);
00215
00216
00217 WTBOARDDATASTROKE* WTBNewStroke(WTBOARDPAGE* pPage, WTBOARDDATANODELIST* pList,
00218 BOOL bNotify);
00219 WTBOARDDATASTROKE* WTBNewStrokeFromArray(WTBOARDPAGE* pPage, UINT nStrokeID,
00220 COLORREF StrokeColor, UINT nNodeCount,
00221 WTBOARDDATANODE* pNodeArray, BOOL bNotify);
00222 WTBOARDDATASTROKE* WTBFindStroke(WTBOARDPAGE* pPage, UINT nStrokeID);
00223 void WTBSetStrokeColor(WTBOARDDATASTROKE* pStroke, COLORREF clr);
00224 void WTBSetTool(short tool_id);
00225 COLORREF WTBGetStrokeColor(WTBOARDDATASTROKE* pStroke);
00226 BOOL WTBDeleteStroke(WTBOARDPAGE* pPage, WTBOARDDATASTROKE* pStroke, BOOL bNotify);
00227
00228
00229
00230 WTBOARDDATANODELIST* WTBAddNodeToList(WTBOARDDATANODELIST* pList,
00231 unsigned short x, unsigned short y, unsigned char p);
00232 void WTBDeleteNodeList(WTBOARDDATANODELIST* pList);
00233
00234 void WTBGenerateStrokeFromNodeList(WTBOARDDATASTROKE* pStroke, WTBOARDDATANODELIST* pList);
00235
00236 #endif // _WTBOARD_H_