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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
#include "ActionItem.h"
namespace NAction
{
/**
* 组合 Action支持将多个 Action 组装成一个,它还包含一些易用性包装,建议使用 CActionComboItem它更加简单易用容易理解
*/
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);
/**
* 注意:曲线修改的 CActionModifiedItem 工作原理已经变为备份原始副本和新副本, 这个 api 已经无法正常工作,不要再使用它
*
* \param list
* \return
*/
POSITION AddModifiedItem(const CPositionList& list);
/**
* 注意:曲线修改的 CActionModifiedItem 工作原理已经变为备份原始副本和新副本, 这个 api 已经无法正常工作,不要再使用它
*
* \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);
};
};