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.

79 lines
1.9 KiB
C

1 month ago
#pragma once
#include "ActionItem.h"
namespace NAction
{
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Action<EFBFBD><EFBFBD>֧<EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Action <EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>԰<EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD> CActionComboItem<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CActionListItem :
public CActionItem
{
public:
CActionListItem();
CActionListItem(CSigmaDoc * ppDoc, UINT actionType);
virtual ~CActionListItem(void);
std::string GetActionName() const override
{
return typeid(*this).name();
}
virtual void Undo(void);
virtual void Redo(void);
virtual void Finish(void);
void accept(CActionVisitor& visitor) override;
POSITION AddLayerAddItem(CLayer* pAddedLayer, const CString curLayerName);
POSITION AddChangeLayerItem(CPositionList& list, CString strOldLayer, CString strNewLayer);
friend class BlobSerializer;
protected:
CPtrList ActionList;
POSITION AddItem(CActionItem* pItem);
public:
void Clear();
int GetCount(void);
POSITION AddTailItem(CActionItem* pItem);
POSITION AddHeadItem(CActionItem* pItem);
POSITION AddAddItem(const CPositionList& AddList);
POSITION AddAddItem(COne* pOne);
POSITION AddDeleteItem(const CPositionList& DelList, BOOL bPerformOperation=FALSE);
POSITION AddDeleteItem(POSITION posElement);
/**
* ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĵ<EFBFBD> CActionModifiedItem <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> api <EFBFBD>Ѿ<EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* \param list
* \return
*/
POSITION AddModifiedItem(const CPositionList& list);
/**
* ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĵ<EFBFBD> CActionModifiedItem <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> api <EFBFBD>Ѿ<EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* \param posElement
* \param pOne
* \return
*/
POSITION AddModifiedItem(POSITION posElement, COne* pOne);
POSITION AddBackupItem(const CPositionList& bakList);
POSITION AddBackupItem(POSITION pos);
POSITION AddBackupItem(COne* pOne);
POSITION AddMarkAddItem(CXy* pxy);
POSITION AddMarkDeleteItem(CXy* pxy);
POSITION AddChangeNameItem(POSITION pos, CString oldName, CString newName);
};
};