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.
43 lines
880 B
C++
43 lines
880 B
C++
#pragma once
|
|
#include "actionitem.h"
|
|
|
|
namespace NAction
|
|
{
|
|
class CActionAddItem :
|
|
public CActionItem
|
|
{
|
|
public:
|
|
CActionAddItem();
|
|
CActionAddItem(CSigmaDoc * ppDoc, UINT actionType, const CPositionList& list);
|
|
CActionAddItem(CSigmaDoc * ppDoc, UINT actionType, COne* pOne);
|
|
virtual ~CActionAddItem(void);
|
|
|
|
std::string GetActionName() const override
|
|
{
|
|
return typeid(*this).name();
|
|
}
|
|
|
|
bool IsOwnCOnes() const override
|
|
{
|
|
return true;
|
|
}
|
|
|
|
virtual void Undo(void);
|
|
virtual void Redo(void);
|
|
virtual void Finish();
|
|
|
|
void accept(CActionVisitor& visitor) override;
|
|
|
|
// FIXME: 这是一种丑陋的访问成员变量的方式,不过暂时想不到更好的办法
|
|
friend class BlobSerializer;
|
|
|
|
protected:
|
|
std::vector<long> m_pos;
|
|
bool m_bAdded;
|
|
virtual void PerformOperation();
|
|
void AddOperation(void);
|
|
void RemoveOperation(void);
|
|
int CreatePos(void); //为了在REDO时可以正确插入到合适位置
|
|
};
|
|
|
|
}; |