Main Page   Compound List   File List   Compound Members   File Members  

wtboard.h

Go to the documentation of this file.
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 // Show or hide the receiver window
00191 BOOL WTBIsReceiverVisible();
00192 void WTBShowReceiver(BOOL bShow);
00193 
00194 // Attach a WTBOARDDOCUMENT to the receiver
00195 // Return the current attached WTBOARDDOCUMENT
00196 WTBOARDDOCUMENT* WTBAttachDocToReceiver(WTBOARDDOCUMENT* pDoc);
00197 WTBOARDDOCUMENT* WTBDetachDocFromReceiver();
00198 
00199 // Functions for editing the document
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 // Functions for editing pages in a document
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 // Functions for editing the strokes in a page
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 // Input pList can be null, then a new list will be generated
00229 // Else return the last item
00230 WTBOARDDATANODELIST* WTBAddNodeToList(WTBOARDDATANODELIST* pList, 
00231                                       unsigned short x, unsigned short y, unsigned char p);
00232 void WTBDeleteNodeList(WTBOARDDATANODELIST* pList);
00233 // apply the node list to the stroke array
00234 void WTBGenerateStrokeFromNodeList(WTBOARDDATASTROKE* pStroke, WTBOARDDATANODELIST* pList);
00235 
00236 #endif // _WTBOARD_H_

Generated on Mon Sep 9 21:01:17 2002 for vpiWhiteboard by doxygen1.2.17