|
|
#pragma once
|
|
|
#include "ItemSelect.h"
|
|
|
#include "ActionItem.h"
|
|
|
#include "WellPoleLib/WellBaseObj.h"
|
|
|
namespace NItem
|
|
|
{
|
|
|
class CItemNestBase : public CItemSelect
|
|
|
{
|
|
|
public:
|
|
|
CItemNestBase(CSigmaDoc* ppDoc);
|
|
|
virtual ~CItemNestBase(void);
|
|
|
|
|
|
|
|
|
public:
|
|
|
enum ESelectMode
|
|
|
{
|
|
|
selnone,
|
|
|
netSelect,
|
|
|
move,
|
|
|
size,
|
|
|
border,
|
|
|
};
|
|
|
ESelectMode selectMode;
|
|
|
|
|
|
virtual void SetDrawObj(CWellBaseObj* pObj) = 0;
|
|
|
virtual CWellBaseObj* GetDrawObj() = 0;
|
|
|
void SetSelectMode(ESelectMode mode) { selectMode = mode; }
|
|
|
|
|
|
//virtual BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
|
|
|
virtual BOOL OnSetCursor(CPoint pt, int& handle);
|
|
|
|
|
|
virtual void SetItem(CItem* pItem);
|
|
|
virtual CItem* GetItem(void);
|
|
|
virtual void DeleteItem(void);
|
|
|
virtual int DeleteSelection(void) { return 0; }
|
|
|
virtual void Redo(void);
|
|
|
virtual void Undo(void);
|
|
|
|
|
|
virtual void DrawFocusRect(CRect rect, CDC *pInDC = NULL);//传入的rect是mm_text 时的坐标值,在mapMode == MM_ANISOTROPIC时认为是Doc的数据
|
|
|
|
|
|
//撤销恢复操作时,整体备份
|
|
|
virtual void SetReUnDoAction(BOOL bNoSaveData = FALSE, UINT actionType = IDS_STRING_ACTION_MOVE,int actionItemType = 1);
|
|
|
|
|
|
BOOL EndEdit() { return TRUE; }
|
|
|
|
|
|
virtual CItem* GetSelectedItem() { return m_pItemSelected; }
|
|
|
CItem* m_pItemSelected;///< 子操作对象
|
|
|
|
|
|
protected:
|
|
|
virtual void DrawHandle(CXyDC *pDC);///< 画当前图元选中状态
|
|
|
virtual void DrawHandle(CXyDC *pDC, const CPoint2D &point);
|
|
|
void MoveHandle(int nHandle, CPoint point, CRect& rect);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
BOOL m_bLDown; ///< 鼠标左键按下
|
|
|
BOOL m_bDrag; ///< 是否拖拽
|
|
|
|
|
|
CPoint m_downPoint; ///< 鼠标按下的点
|
|
|
CPoint m_firstPoint; ///< 鼠标开始移动的点
|
|
|
CPoint m_lastPoint; ///< 鼠标移动后的点
|
|
|
|
|
|
BOOL m_bInEdit; //是否内部编辑
|
|
|
};
|
|
|
};
|