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++
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;
|