You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.2 KiB
C++

//////////////////////////////////////////////////////////////////////////////
//文件 ActionItem.h
//主要功能:
//
//程序编写: 2006-12-07
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include "UndoManager\action.h"
class CSigmaDoc;
class CSigmaView;
namespace NAction
{
//所有Undo与Redo的操作基类void *pActionTarget
class CActionItem :
public CAction
{
public:
CActionItem(CSigmaDoc * ppDoc, UINT actionType);
virtual ~CActionItem(void);
public:
virtual void Undo(void);
virtual void Redo(void);
virtual void Do(void);
CSigmaDoc* GetDoc(void);
CSigmaView* GetView(void);
/**
* 标记究竟是否持有 value 里面的 COne 对象,所有权归属问题
*
* \return
*/
virtual bool IsOwnCOnes() const
{
return false;
}
friend class BlobSerializer;
protected:
void Remember(const CPositionList& list);
BOOL RemoveAt(COne* pOne); //从当前文档中移走该元素,但并不将其从内存中清除
BOOL RemoveAtNoClear(const std::vector<COne*> &pOnes); //从当前文档中移走该元素,但并不将其从内存中清除
void Clear(CPtrList& value);
void Invalidate(CRect8& range);
CPtrList value;
public:
void ReflashLayer(void);
BOOL ReflashMarkLibrary(void);
};
};
using namespace NAction;