LibreCAD
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
undomanagerimpl.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <stack>
4 #include <vector>
5 
6 #include "cad/const.h"
7 
12 
13 namespace lc {
19  class UndoManagerImpl: public UndoManager {
20  public:
21  UndoManagerImpl(unsigned int maximumUndoLevels);
22 
29  virtual void redo();
36  virtual void undo();
37 
45  virtual bool canUndo() const;
53  virtual bool canRedo() const;
54 
62  virtual void removeUndoables();
63 
64  private:
65  std::vector<operation::Undoable_SPtr> _unDoables;
66  std::stack<operation::Undoable_SPtr> _reDoables;
67  const unsigned int _maximumUndoLevels;
69  public:
71  };
72 
74 }
virtual bool canRedo() const
Check if redo can be done.
virtual void redo()
redo an operation.
std::vector< operation::Undoable_SPtr > _unDoables
Undo list.
virtual void undo()
undo an operation.
DECLARE_SHORT_SHARED_PTR(Document)
virtual void removeUndoables()
Clears the Undo/Redo stack.
Definition: cadentity.h:12
const unsigned int _maximumUndoLevels
Maximum undo level.
std::stack< operation::Undoable_SPtr > _reDoables
Redo stack.
UndoManagerImpl(unsigned int maximumUndoLevels)
void on_CommitProcessEvent(const lc::CommitProcessEvent &event)
virtual bool canUndo() const
Check if undo can be done.