www.pudn.com > 1.rar > I2BaseCtrl.h
// I2BaseCtrl.h: interface for the CI2WBBaseCtrl class.
#ifndef _IASP2WHITEBOARDBASECONTROLINCLUDEFILE_H_
#define _IASP2WHITEBOARDBASECONTROLINCLUDEFILE_H_
#define IFC10_DLL
#include "i2.h"
//#include "iaspwb.h"
#define MAX_CTRLIDNAME 36
#define WB_PROP_CHANGE 1 //control data can change
typedef struct tagWB32CONTROLDATA
{
GUID csid; //control set id
INT cid; //control id
CHAR idname[MAX_CTRLIDNAME]; //control name,if "" means need a name
CHAR idgrpname[MAX_CTRLIDNAME]; //group name
//RECT rect;
I2Rect rect; //control rect
//I2Rect grprect; //group rect
DWORD len; //length of data
RECT grprect;
}WB32CONTROLDATA,*LPWB32CONTROLDATA;
typedef struct tagWB32FONT
{
DWORD size;
DWORD color;
DWORD style;
CHAR name[LF_FACESIZE];
}WB32FONT,*LPWB32FONT;
typedef struct tagWB32CONTROLATTRIB
{
INT m_linestyle;
INT m_linewidth;
COLORREF m_color;
COLORREF m_bkcolor;
WB32FONT m_font;
RECT m_rect;
}WB32CONTROLATTRIB,*LPWWB32CONTROLATTRIB;
class IASPAPI CI2WBBaseCtrl : public I2Object
{
#define CLASSNAME_CI2WBBASECTRL "CI2WBBaseCtrl"
public:
INT m_cid;
GUID m_csid;
char m_name[MAX_CTRLIDNAME];
char m_grpname[MAX_CTRLIDNAME];
RECT m_grprect;
DWORD m_state;
DWORD m_property;
virtual VOID readFromStream(I2MemoryFileStream *stm,INT len,const I2Rect& r)=0;
virtual VOID writeToStream(I2MemoryFileStream *stm,BOOL fdata)=0;
//virtual VOID writeToFile(I2StgIStream& stm,BOOL fdata)=0;
virtual VOID OnRButtonUp(DWORD fwKeys,SHORT x,SHORT y,HWND hwnd,INT* fend)=0;
virtual VOID OnRButtonDown(DWORD fwKeys,SHORT x,SHORT y,HWND hwnd,INT* fend)=0;
virtual BOOL OnLButtonUp(DWORD fwKeys,SHORT x,SHORT y,HWND hwnd,INT* fend)=0;
virtual VOID OnMouseMove(DWORD fwKeys,SHORT x,SHORT y,HWND hwnd,INT* fend)=0;
virtual VOID OnLButtonDown(DWORD fwKeys,SHORT x,SHORT y,HWND hwnd,INT* fend)=0;
virtual BOOL OnLButtonDBLCLK(DWORD fwKeys,SHORT x,SHORT y,HWND hwnd)=0;
virtual VOID moveTo(INT xoffset,INT yoffset)=0;
virtual VOID paintControl(HDC hdc)=0;
virtual VOID getControlRect(I2Rect& r)=0;
virtual VOID OnAttribChange(INT type,INT mask,BOOL flocal)=0;
virtual VOID OnInplaceEditorNeedText(LPWB32FONT pfont,LPSTR* ptext)=0;
virtual VOID OnInplaceEditorReturnText(POINT pos,LPSTR text)=0;
virtual VOID set_Font(WB32FONT* pfont,INT mask)=0;
virtual BOOL OnDragFile(LPSTR filename,POINT p,CHAR* ptr,HWND hwnd)=0;
virtual VOID OnChangeData(RECT& rect)=0;
CI2WBBaseCtrl(){};
CI2WBBaseCtrl(INT cid,VOID* wb);
~CI2WBBaseCtrl(){};
WB32CONTROLATTRIB cinfo;
VOID moveGroupTo(INT xoffset,INT yoffset)
{
m_grprect.left=m_grprect.left+xoffset;
m_grprect.right=m_grprect.right+xoffset;
m_grprect.top=m_grprect.top+yoffset;
m_grprect.bottom=m_grprect.bottom+yoffset;
}
VOID set_LineStyle(INT Value)
{
cinfo.m_linestyle=Value;
}
VOID get_LineStyle(INT *Value)
{
*Value=cinfo.m_linestyle;
}
VOID set_LineWidth(INT Value)
{
cinfo.m_linewidth=Value;
}
VOID get_LineWidth(INT *Value)
{
*Value=cinfo.m_linewidth;
}
VOID set_Color(COLORREF Value)
{
cinfo.m_color=Value;
}
VOID get_Color(COLORREF *Value)
{
*Value=cinfo.m_color;
}
VOID set_Bkcolor(COLORREF Value)
{
cinfo.m_bkcolor=Value;
}
VOID get_Bkcolor(COLORREF *Value)
{
*Value=cinfo.m_bkcolor;
}
VOID get_CID(INT *Value)
{
*Value=m_cid;
}
VOID get_State(DWORD *Value)
{
*Value=m_state;
}
VOID set_State(DWORD Value)
{
m_state=Value;
}
VOID get_Property(DWORD *Value)
{
*Value=m_property;
}
VOID set_Property(DWORD Value)
{
m_property=Value;
}
VOID set_Name(LPSTR buf)
{
lstrcpy(m_name,buf);
}
VOID get_Name(LPSTR buf)
{
lstrcpy(buf,m_name);
}
VOID set_GrpName(LPSTR buf)
{
lstrcpy(m_grpname,buf);
}
VOID get_GrpName(LPSTR buf)
{
lstrcpy(buf,m_grpname);
}
VOID set_GrpRect(RECT& rect)
{
m_grprect=rect;
}
VOID get_GrpRect(RECT *rect)
{
*rect=m_grprect;
}
//inherit from I2Object
EMPTY_I2OBJECT_IMPLEMENT(CI2WBBaseCtrl,CLASSNAME_CI2WBBASECTRL,I2Object)
char* toString(void)
{
return strdup("iasp2 white board base control object");
}
};
#endif