DragonNest/Third/XTToolkitPro/Samples/PropertyGrid/DrawClient/drawtool.h
2024-12-19 09:48:26 +08:00

108 lines
3.1 KiB
C++

// drawtool.h - interface for CDrawTool and derivatives
//
// This file is a part of the XTREME TOOLKIT PRO MFC class library.
// (c)1998-2008 Codejock Software, All Rights Reserved.
//
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
// CONSENT OF CODEJOCK SOFTWARE.
//
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
// SINGLE COMPUTER.
//
// CONTACT INFORMATION:
// support@codejock.com
// http://www.codejock.com
//
/////////////////////////////////////////////////////////////////////////////
#ifndef __DRAWTOOL_H__
#define __DRAWTOOL_H__
#include "drawobj.h"
class CDrawView;
enum DrawShape
{
selection,
line,
rect,
roundRect,
ellipse,
poly
};
class CDrawTool
{
// Constructors
public:
CDrawTool(DrawShape nDrawShape);
// Overridables
virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnEditProperties(CDrawView* pView);
virtual void OnCancel();
// Attributes
DrawShape m_drawShape;
static CDrawTool* FindTool(DrawShape drawShape);
static CPtrList c_tools;
static CPoint c_down;
static UINT c_nDownFlags;
static CPoint c_last;
static DrawShape c_drawShape;
};
class CSelectTool : public CDrawTool
{
// Constructors
public:
CSelectTool();
// Implementation
virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnEditProperties(CDrawView* pView);
};
class CRectTool : public CDrawTool
{
// Constructors
public:
CRectTool(DrawShape drawShape);
// Implementation
virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
};
class CPolyTool : public CDrawTool
{
// Constructors
public:
CPolyTool();
// Implementation
virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
virtual void OnCancel();
CDrawPoly* m_pDrawObj;
};
////////////////////////////////////////////////////////////////////////////
#endif // __DRAWTOOL_H__