mirror of
https://github.com/ddnet/ddnet.git
synced 2024-10-20 15:58:18 +00:00
38 lines
805 B
C++
38 lines
805 B
C++
#ifndef GAME_EDITOR_EDITOR_HISTORY_H
|
|
#define GAME_EDITOR_EDITOR_HISTORY_H
|
|
|
|
#include "editor_action.h"
|
|
|
|
#include <queue>
|
|
|
|
class CEditorHistory
|
|
{
|
|
public:
|
|
CEditorHistory()
|
|
{
|
|
m_pEditor = nullptr;
|
|
}
|
|
|
|
~CEditorHistory()
|
|
{
|
|
Clear();
|
|
}
|
|
|
|
void RecordAction(const std::shared_ptr<IEditorAction> &pAction);
|
|
void RecordAction(const std::shared_ptr<IEditorAction> &pAction, const char *pDisplay);
|
|
void Execute(const std::shared_ptr<IEditorAction> &pAction, const char *pDisplay = nullptr);
|
|
|
|
bool Undo();
|
|
bool Redo();
|
|
|
|
void Clear();
|
|
bool CanUndo() const { return !m_vpUndoActions.empty(); }
|
|
bool CanRedo() const { return !m_vpRedoActions.empty(); }
|
|
|
|
CEditor *m_pEditor;
|
|
std::deque<std::shared_ptr<IEditorAction>> m_vpUndoActions;
|
|
std::deque<std::shared_ptr<IEditorAction>> m_vpRedoActions;
|
|
};
|
|
|
|
#endif
|