drawobj.h
上传用户:ywlong9188
上传日期:2022-05-31
资源大小:2656k
文件大小:15k
源码类别:

远程控制编程

开发平台:

C/C++

  1. #ifndef __DRAWOBJ_H__
  2. #define __DRAWOBJ_H__
  3. #define  __UXL_GRAPH_CONFIG__
  4. //#include "insdtchk.h" // check the user's input
  5. class CProjView;
  6. class CProjDoc;
  7. class CDrawObj;
  8. typedef CTypedPtrList <CObList, CDrawObj*> CDrawObjList;
  9. /////////////////////////////////////////////////////////////////////////////
  10. // CDrawObj - base class for all 'drawable objects'
  11. class CDrawObj : public CObject
  12. {
  13. protected:
  14. DECLARE_SERIAL(CDrawObj);
  15. CDrawObj();
  16. // Attributes
  17. public:
  18. // for the object's name
  19. CString m_name;
  20. static int c_identify;
  21. // Constructors
  22. public:
  23. CDrawObj(const CRect& position);
  24. // Attributes
  25. CRect m_position;
  26. CProjDoc* m_pDocument;
  27. virtual int GetHandleCount();
  28. virtual CPoint GetHandle(int nHandle);
  29. CRect GetHandleRect(int nHandleID, CProjView* pView);
  30. virtual HCURSOR GetHandleCursor(int nHandle);
  31. virtual void SetLineColor(COLORREF color);
  32. virtual void SetFillColor(COLORREF color);
  33. virtual void ReConsist();
  34. virtual void SetActive(BOOL bActive);
  35. // Operations
  36. virtual void Draw(CDC* pDC);
  37. enum TrackerState { normal, selected, active };
  38. virtual void DrawTracker(CDC* pDC, TrackerState state);
  39. virtual void MoveTo(const CRect& positon, CProjView* pView = NULL);
  40. virtual int HitTest(CPoint point, CProjView* pView, BOOL bSelected);
  41. virtual BOOL Intersects(const CRect& rect);
  42. virtual void MoveHandleTo(int nHandle, CPoint point, CProjView* pView = NULL);
  43. virtual void OnOpen(CProjView* pView);
  44. virtual void OnEditProperties();
  45. virtual CDrawObj* Clone(CProjDoc* pDoc = NULL);
  46. virtual void Remove();
  47. void Invalidate();
  48. void  CustomRect(CRect& rect);
  49. virtual void SendData( int nParam = 0);
  50. virtual void ResetData( int nParam = 0);
  51. virtual BOOL GetActiveObj(CDrawObjList& list);
  52. virtual void AlignToTop(const CRect& rect);
  53. virtual void AlignToLeft(const CRect& rect);
  54. virtual void AlignToRight(const CRect& rect);
  55. virtual void AlignToBottom(const CRect& rect);
  56. virtual void GetTypeInfo(CString& sParam,CString& sNumber,BOOL& bInt);
  57. virtual void Resize(const CRect& preRect,const CRect& nextRect,CProjView* pView);
  58. virtual void OriginalRect(CRect& rect1,CRect rect2);
  59. virtual void SetFlag(BOOL bFlag=TRUE);
  60. virtual void SetAlone(BOOL bAlone=TRUE);
  61. // Implementation
  62. public:
  63. virtual ~CDrawObj();
  64. virtual void Serialize(CArchive& ar);
  65. #ifdef _DEBUG
  66. void AssertValid();
  67. #endif
  68. // implementation data
  69. public:
  70.  
  71.  CString m_sParam;
  72.  CString m_sNumber;
  73.  BOOL m_bActive;
  74.  BOOL m_bFlag;
  75.  BOOL m_bIsAlone;
  76. // CString m_sTrick;
  77. //CDrawObjList m_activeObj;
  78. };
  79. // special 'list' class for this application (requires afxtempl.h)
  80. //typedef CTypedPtrList <CObList, CDrawObj*> CDrawObjList;
  81. ////////////////////////////////////////////////////////////////////////
  82. // draw rectangle
  83. class CDrawRect : public CDrawObj
  84. {
  85. protected:
  86. DECLARE_SERIAL(CDrawRect);
  87. CDrawRect();
  88. public:
  89. CDrawRect(const CRect& position);
  90. // Implementation
  91. public:
  92. virtual void Serialize(CArchive& ar);
  93. virtual void Draw(CDC* pDC);
  94. virtual int GetHandleCount();
  95. virtual CPoint GetHandle(int nHandle);
  96. virtual HCURSOR GetHandleCursor(int nHandle);
  97. virtual void MoveHandleTo(int nHandle, CPoint point, CProjView* pView = NULL);
  98. virtual BOOL Intersects(const CRect& rect);
  99. virtual void OnOpen(CProjView* pView);
  100. virtual void OnEditProperties();
  101. virtual CDrawObj* Clone(CProjDoc* pDoc);
  102. public:
  103. static int c_nStyle;
  104. static COLORREF c_cLine;
  105. static COLORREF c_cFace;
  106. static COLORREF c_cHighLight;
  107.     static COLORREF c_cShadow;
  108. static BOOL c_bPen;
  109. static UINT c_nDeep;
  110. int m_nStyle;
  111. COLORREF m_cLine;
  112. COLORREF m_cFace;
  113. COLORREF m_cHighLight;
  114. COLORREF m_cShadow;
  115. BOOL m_bPen;
  116. UINT m_nDeep;
  117. friend class CRectTool;
  118. };
  119. /////////////////////////////////////////////////////////////////////////////
  120. class CDrawPoly;
  121. class CDrawPoly : public CDrawObj
  122. {
  123. protected:
  124. DECLARE_SERIAL(CDrawPoly);
  125. CDrawPoly();
  126. public:
  127. void HappyRect(CRect& rect,CRect position);
  128. void ReLayout(CPoint& point,CRect position,int i);
  129. CDrawPoly(const CRect& position);
  130. // Operations
  131. void AddPoint(const CPoint& point, CProjView* pView = NULL);
  132. BOOL RecalcBounds(CProjView* pView = NULL);
  133. // Implementation
  134. public:
  135. virtual ~CDrawPoly();
  136. virtual void Serialize(CArchive& ar);
  137. virtual void Draw(CDC* pDC);
  138. virtual void MoveTo(const CRect& position, CProjView* pView = NULL);
  139. virtual int GetHandleCount();
  140. virtual CPoint GetHandle(int nHandle);
  141. virtual HCURSOR GetHandleCursor(int nHandle);
  142. virtual void MoveHandleTo(int nHandle, CPoint point, CProjView* pView = NULL);
  143. virtual BOOL Intersects(const CRect& rect);
  144. virtual CDrawObj* Clone(CProjDoc* pDoc);
  145. virtual void OnEditProperties();
  146. virtual void AlignToTop(const CRect& rect);
  147. virtual void AlignToLeft(const CRect& rect);
  148. virtual void AlignToRight(const CRect& rect);
  149. virtual void AlignToBottom(const CRect& rect);
  150. protected:
  151. int m_nPoints;
  152. int m_nAllocPoints;
  153. CPoint* m_points;
  154. CDrawPoly* m_pDrawObj;
  155. double* m_pXRate; 
  156. double* m_pYRate; 
  157. int m_nAttr;
  158. int m_nStyle;
  159. int m_nWidth;
  160. COLORREF m_cLine;
  161. COLORREF m_cFill;
  162. BOOL m_bPen;
  163. BOOL m_bBrush;
  164. LOGPEN m_logpen;
  165. LOGBRUSH m_logbrush;
  166. friend class CPolyTool;
  167. };
  168. ////////////////////////////////////////////////////////
  169. class CDrawText : public CDrawObj
  170. {
  171. protected:
  172. DECLARE_SERIAL(CDrawText);
  173. CDrawText();
  174. ~CDrawText();
  175. public:
  176. CDrawText(const CRect& position);
  177. void RecalRect(CProjView* pView = NULL);
  178. // Implementation
  179. public:
  180. virtual void Serialize(CArchive& ar);
  181. virtual void Draw(CDC* pDC);
  182. virtual int GetHandleCount();
  183. //virtual CPoint GetHandle(int nHandle);
  184. //virtual HCURSOR GetHandleCursor(int nHandle);
  185. virtual void MoveTo(const CRect& positon, CProjView* pView = NULL);
  186. virtual void MoveHandleTo(int nHandle, CPoint point, CProjView* pView = NULL);
  187. virtual BOOL Intersects(const CRect& rect);
  188. virtual void OnOpen(CProjView* pView);
  189. virtual void OnEditProperties(CProjView* pView);
  190. virtual CDrawObj* Clone(CProjDoc* pDoc);
  191. protected:
  192. BOOL m_bRate;
  193. public:
  194. CString m_text;
  195. LOGFONT m_logFont;
  196. CFont m_font;
  197. CSize m_td;
  198. int m_nAttr;
  199. COLORREF m_cColor;
  200. CString m_sFaceName;
  201. int m_nSize;
  202. private:
  203. friend class CTextTool;
  204. };
  205. ////////////////////////////////////////////////////////////////////////
  206. // The Draw Bar Objects
  207. class CDrawBar : public CDrawObj
  208. {
  209. protected:
  210. DECLARE_SERIAL(CDrawBar);
  211. CDrawBar();
  212. public:
  213. CDrawBar(const CRect& position);
  214. // Implementation
  215. public:
  216. virtual void Serialize(CArchive& ar);
  217. virtual void Draw(CDC* pDC);
  218. virtual int GetHandleCount();
  219. virtual CPoint GetHandle(int nHandle);
  220. virtual HCURSOR GetHandleCursor(int nHandle);
  221. virtual void MoveHandleTo(int nHandle, CPoint point, CProjView* pView = NULL);
  222. virtual BOOL Intersects(const CRect& rect);
  223. virtual void OnOpen(CProjView* pView);
  224. virtual void OnEditProperties();
  225. virtual CDrawObj* Clone(CProjDoc* pDoc);
  226. virtual void SendData( int nParam = 0);
  227. virtual void ResetData( int nParam = 0);
  228. virtual BOOL GetActiveObj(CDrawObjList& list);
  229. public:
  230. static int c_nDirection;
  231. static int c_nOne;
  232. static int c_nTwo;
  233. static COLORREF c_cBar;
  234. static COLORREF c_cOne;
  235. static COLORREF c_cTwo;
  236. int m_nDirection;
  237. int m_nOne;
  238. int m_nTwo;
  239. // CString m_sNumber;
  240. // CString m_sParam;
  241. // CString m_sComment;
  242. COLORREF m_cBar;
  243. COLORREF m_cOne;
  244. COLORREF m_cTwo;
  245. BOOL m_bDesign;
  246. int m_nCurrent;
  247. friend class CBarTool;
  248. };
  249. ///////////////////////////////////////////////////////////
  250. // Draw Line Object
  251. class CDrawLine : public CDrawObj
  252. {
  253. protected:
  254. DECLARE_SERIAL(CDrawLine);
  255. CDrawLine();
  256. public:
  257. CDrawLine(const CRect& position);
  258. // Implementation
  259. public:
  260. virtual void Serialize(CArchive& ar);
  261. virtual void Draw(CDC* pDC);
  262. virtual int GetHandleCount();
  263. virtual CPoint GetHandle(int nHandle);
  264. virtual HCURSOR GetHandleCursor(int nHandle);
  265. virtual void MoveHandleTo(int nHandle, CPoint point, CProjView* pView = NULL);
  266. virtual BOOL Intersects(const CRect& rect);
  267. virtual void OnOpen(CProjView* pView);
  268. virtual void OnEditProperties();
  269. virtual CDrawObj* Clone(CProjDoc* pDoc);
  270. public:
  271.  int m_nStyle;
  272.  int m_nWidth;
  273.  COLORREF m_cLine;
  274. //  LOGPEN m_logpen;
  275.  static int c_style;
  276.  static int c_width;
  277.  static COLORREF c_color;
  278. friend class CLineTool;
  279. };
  280. ////////////////////////////////////////////////////////////////////////
  281. // draw ellipse
  282. class CDrawEllipse : public CDrawObj
  283. {
  284. protected:
  285. DECLARE_SERIAL(CDrawEllipse);
  286. CDrawEllipse();
  287. public:
  288. CDrawEllipse(const CRect& position);
  289. // Implementation
  290. public:
  291. virtual void Serialize(CArchive& ar);
  292. virtual void Draw(CDC* pDC);
  293. virtual int GetHandleCount();
  294. virtual CPoint GetHandle(int nHandle);
  295. virtual HCURSOR GetHandleCursor(int nHandle);
  296. virtual void MoveHandleTo(int nHandle, CPoint point, CProjView* pView = NULL);
  297. virtual BOOL Intersects(const CRect& rect);
  298. virtual void OnOpen(CProjView* pView);
  299. virtual void OnEditProperties();
  300. virtual CDrawObj* Clone(CProjDoc* pDoc);
  301. virtual void SendData( int nParam = 0);
  302. public:
  303. static int c_nStyle;
  304. static int c_nAttr;
  305. static int c_nStartAngle;
  306. static int c_nEndAngle;
  307. static int c_nWidth;
  308. static COLORREF c_cLine;
  309. static COLORREF c_cFill;
  310. int m_nStyle;
  311. int m_nAttr;
  312. int m_nStartAngle;
  313. int m_nEndAngle;
  314. int m_nWidth;
  315. COLORREF m_cLine;
  316. COLORREF m_cFill;
  317. friend class CEllipseTool;
  318. };
  319. ////////////////////////////////////////////////////////
  320. class CDrawAnimateTag : public CDrawText
  321. {
  322. protected:
  323. DECLARE_SERIAL(CDrawAnimateTag);
  324. CDrawAnimateTag();
  325. public:
  326. CDrawAnimateTag(const CRect& position);
  327. // CString m_sParam;
  328. // CString m_sNumber;
  329. // Implementation
  330. public:
  331. virtual void Serialize(CArchive& ar);
  332. virtual CDrawObj* Clone(CProjDoc* pDoc);
  333.     virtual void SendData( int nParam = 0 );
  334. virtual void ResetData( int nParam = 0 ); 
  335. virtual BOOL GetActiveObj(CDrawObjList& list);
  336.     virtual void OnOpen(CProjView* pView);
  337. virtual void OnEditProperties(CProjView* pView);
  338. virtual void Draw( CDC* pDC );
  339. public:
  340. friend class CAnimateTagTool;
  341. };
  342. ////////////////////////////////////////////////////////////////////////
  343. // draw cursor
  344. class CDrawCursor : public CDrawObj
  345. {
  346. protected:
  347. DECLARE_SERIAL(CDrawCursor);
  348. CDrawCursor();
  349. public:
  350. CDrawCursor(const CRect& position);
  351. // Implementation
  352. public:
  353. virtual void Serialize(CArchive& ar);
  354. virtual void Draw(CDC* pDC);
  355. virtual int GetHandleCount();
  356. virtual CPoint GetHandle(int nHandle);
  357. virtual HCURSOR GetHandleCursor(int nHandle);
  358. virtual void MoveHandleTo(int nHandle, CPoint point, CProjView* pView = NULL);
  359. virtual BOOL Intersects(const CRect& rect);
  360. virtual void OnOpen(CProjView* pView);
  361. virtual void OnEditProperties();
  362. virtual CDrawObj* Clone(CProjDoc* pDoc);
  363. virtual void SendData( int nParam );
  364. virtual BOOL GetActiveObj(CDrawObjList& list);
  365. virtual void ResetData( int nParam );
  366. public:
  367. static int c_nStyle;
  368. static int c_nSegment;
  369. static BOOL c_bCursor;
  370. static BOOL c_bRuler;
  371. static BOOL c_bReverse;
  372. static COLORREF c_color;
  373. static COLORREF c_cruler;
  374. int m_nStyle;
  375. int m_nSegment;
  376. int m_nCurrent;
  377. BOOL m_bCursor;
  378. BOOL m_bRuler;
  379. BOOL m_bReverse;
  380. COLORREF m_color;
  381. COLORREF m_cruler;
  382. // CString m_sParam;
  383. // CString m_sNumber;
  384. friend class CCursorTool;
  385. };
  386. ////////////////////////////////////////////////////////////////////////
  387. // draw ISA symbols
  388. class CDrawISA : public CDrawAnimateTag
  389. {
  390. protected:
  391. DECLARE_SERIAL(CDrawISA);
  392. CDrawISA();
  393. public:
  394. CDrawISA(const CRect& position);
  395. // Implementation
  396. public:
  397. virtual void Serialize(CArchive& ar);
  398. virtual void Draw(CDC* pDC);
  399. virtual void OnOpen(CProjView* pView);
  400. virtual void OnEditProperties(CProjView* pView);
  401. virtual CDrawObj* Clone(CProjDoc* pDoc);
  402. //Member methods
  403. public:
  404. // Member properties
  405. public:
  406. static CString m_isa[53];
  407. int m_nIndex;
  408. int m_nRotate;
  409. int m_nWidth;
  410. COLORREF m_color;
  411. static int c_nIndex;
  412. friend class CISATool;
  413. };
  414. ////////////////////////////////////////////////////////////////////////
  415. // draw LOOP controls
  416. class CDrawLoop : public CDrawObj
  417. {
  418. protected:
  419. DECLARE_SERIAL(CDrawLoop);
  420. CDrawLoop();
  421. ~CDrawLoop();
  422. public:
  423. CDrawLoop(const CRect& position);
  424. // Implementation
  425. public:
  426. virtual void Serialize(CArchive& ar);
  427. virtual void Draw(CDC* pDC);
  428. virtual int GetHandleCount();
  429. virtual CPoint GetHandle(int nHandle);
  430. virtual HCURSOR GetHandleCursor(int nHandle);
  431. virtual void MoveHandleTo(int nHandle, CPoint point, CProjView* pView = NULL);
  432. virtual BOOL Intersects(const CRect& rect);
  433. virtual void OnOpen(CProjView* pView);
  434. virtual void OnEditProperties();
  435. virtual CDrawObj* Clone(CProjDoc* pDoc);
  436. virtual void MoveTo(const CRect& positon, CProjView* pView = NULL);
  437. virtual int HitTest(CPoint point, CProjView* pView, BOOL bSelected);
  438. virtual BOOL GetActiveObj(CDrawObjList& list);
  439. virtual void SendData( int nParam );
  440. virtual void AlignToTop(const CRect& rect);
  441. virtual void AlignToLeft(const CRect& rect);
  442. virtual void AlignToRight(const CRect& rect);
  443. virtual void AlignToBottom(const CRect& rect);
  444. // Member function
  445. public:
  446. // CString m_sNumber;
  447. BOOL m_bB1up;
  448. BOOL m_bB2up;
  449. BOOL m_bB3up;
  450. friend class CLoopTool;
  451. };
  452. ////////////////////////////////////////////////////////////////////////
  453. // draw Merge Object
  454. class CMergeObj : public CDrawObj
  455. {
  456. protected:
  457. DECLARE_SERIAL(CMergeObj);
  458. CMergeObj();
  459. ~CMergeObj();
  460. public:
  461. CMergeObj(const CRect& position);
  462. // Implementation
  463. public:
  464. virtual void Serialize(CArchive& ar);
  465. virtual void Draw(CDC* pDC);
  466. virtual int GetHandleCount();
  467. virtual CPoint GetHandle(int nHandle);
  468. virtual HCURSOR GetHandleCursor(int nHandle);
  469. virtual void MoveHandleTo(int nHandle, CPoint point, CProjView* pView = NULL);
  470. virtual BOOL Intersects(const CRect& rect);
  471. virtual void OnOpen(CProjView* pView);
  472. virtual void OnEditProperties();
  473. virtual CDrawObj* Clone(CProjDoc* pDoc);
  474. virtual void MoveTo(const CRect& positon, CProjView* pView = NULL);
  475. // virtual int HitTest(CPoint point, CProjView* pView, BOOL bSelected);
  476. virtual BOOL GetActiveObj(CDrawObjList& list);
  477. // virtual void SendData( int nParam );
  478. virtual void AlignToTop(const CRect& rect);
  479. virtual void AlignToLeft(const CRect& rect);
  480. virtual void AlignToRight(const CRect& rect);
  481. virtual void AlignToBottom(const CRect& rect);
  482. virtual void SetAlone(BOOL bAlone);
  483. // self-definition method
  484. public:
  485. void SetList(CDrawObjList& list);
  486. void ResetDoc();
  487. void ReRect();
  488. void RightRect(CRect& rect);
  489. public:
  490. CDrawObjList m_consist;
  491. CRect m_constRect;
  492. CObList m_rateList;
  493. private:
  494. void ZoomRect(CRect& rect,CRect postRect,double topRate,double bottomRate,double leftRate,double rightRate);
  495. };
  496. ////////////////////////////////////////////////////////////////////////
  497. // draw button object
  498. class CDrawButton : public CDrawRect
  499. {
  500. protected:
  501. DECLARE_SERIAL(CDrawButton)
  502. CDrawButton();
  503. public:
  504. CDrawButton(const CRect& position);
  505. public:
  506. virtual void OnOpen(CProjView* pView);
  507. virtual void OnEditProperties();
  508. virtual CDrawObj* Clone(CProjDoc* pDoc);
  509. public:
  510. virtual void Serialize(CArchive& ar);
  511. virtual void Draw(CDC* pDC);
  512. public:
  513. public:
  514. CString m_caption;
  515. LOGFONT m_logFont;
  516. COLORREF m_color;
  517. BOOL m_bType;
  518. int m_nState;
  519. friend class CButtonTool;
  520. };
  521. #endif // __DRAWOBJ_H__