108 lines
3.1 KiB
C++
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__
|