DDNet documentation
Loading...
Searching...
No Matches
editor_history.h
Go to the documentation of this file.
1#ifndef GAME_EDITOR_EDITOR_HISTORY_H
2#define GAME_EDITOR_EDITOR_HISTORY_H
3
4#include "editor_action.h"
5
8
9#include <deque>
10#include <memory>
11#include <vector>
12
14{
15public:
16 explicit CEditorHistory(CEditorMap *pMap) :
17 CMapObject(pMap)
18 {
19 }
20
21 ~CEditorHistory() override
22 {
23 Clear();
24 }
25
26 void RecordAction(const std::shared_ptr<IEditorAction> &pAction);
27 void RecordAction(const std::shared_ptr<IEditorAction> &pAction, const char *pDisplay);
28 void Execute(const std::shared_ptr<IEditorAction> &pAction, const char *pDisplay = nullptr);
29
30 bool Undo();
31 bool Redo();
32
33 void Clear();
34 bool CanUndo() const { return !m_vpUndoActions.empty(); }
35 bool CanRedo() const { return !m_vpRedoActions.empty(); }
36
37 void BeginBulk();
38 void EndBulk(const char *pDisplay = nullptr);
39 void EndBulk(int DisplayToUse);
40
41 std::deque<std::shared_ptr<IEditorAction>> m_vpUndoActions;
42 std::deque<std::shared_ptr<IEditorAction>> m_vpRedoActions;
43
44private:
45 std::vector<std::shared_ptr<IEditorAction>> m_vpBulkActions;
46 bool m_IsBulk = false;
47};
48
55
66
67#endif
Definition editor_history.h:57
int m_aSelectedActionIndices[(int) EHistoryType::SERVER_SETTINGS+1]
Definition editor_history.h:61
const char m_aHistoryTypeButtonIds[(int) EHistoryType::SERVER_SETTINGS+1]
Definition editor_history.h:62
EHistoryType m_HistoryType
Definition editor_history.h:59
const char m_BaseActionButtonId
Definition editor_history.h:64
const char m_DeleteButtonId
Definition editor_history.h:63
CListBox m_aListBoxes[(int) EHistoryType::SERVER_SETTINGS+1]
Definition editor_history.h:60
void BeginBulk()
Definition editor_history.cpp:75
std::vector< std::shared_ptr< IEditorAction > > m_vpBulkActions
Definition editor_history.h:45
void Clear()
Definition editor_history.cpp:69
void Execute(const std::shared_ptr< IEditorAction > &pAction, const char *pDisplay=nullptr)
Definition editor_history.cpp:14
std::deque< std::shared_ptr< IEditorAction > > m_vpUndoActions
Definition editor_history.h:41
bool Undo()
Definition editor_history.cpp:41
std::deque< std::shared_ptr< IEditorAction > > m_vpRedoActions
Definition editor_history.h:42
bool CanRedo() const
Definition editor_history.h:35
void EndBulk(const char *pDisplay=nullptr)
Definition editor_history.cpp:81
~CEditorHistory() override
Definition editor_history.h:21
CEditorHistory(CEditorMap *pMap)
Definition editor_history.h:16
bool m_IsBulk
Definition editor_history.h:46
bool Redo()
Definition editor_history.cpp:55
void RecordAction(const std::shared_ptr< IEditorAction > &pAction)
Definition editor_history.cpp:9
bool CanUndo() const
Definition editor_history.h:34
Definition map.h:64
Definition ui_listbox.h:17
CMapObject(CEditorMap *pMap)
Definition map_object.cpp:6
EHistoryType
Definition editor_history.h:50
@ EDITOR
Definition editor_history.h:51
@ SERVER_SETTINGS
Definition editor_history.h:53
@ ENVELOPE
Definition editor_history.h:52