////////////////////////////////////////////////////////////////////////////// //文件 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 &pOnes); //从当前文档中移走该元素,但并不将其从内存中清除 void Clear(CPtrList& value); void Invalidate(CRect8& range); CPtrList value; public: void ReflashLayer(void); BOOL ReflashMarkLibrary(void); }; }; using namespace NAction;