Changes in src/Actions/MakroAction.cpp [24a5e0:5b0b98]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/MakroAction.cpp
r24a5e0 r5b0b98 11 11 #include "Actions/Action.hpp" 12 12 #include "Actions/ActionSequence.hpp" 13 #include "Helpers/Assert.hpp" 13 14 14 15 using namespace std; 16 17 class MakroActionState : public ActionState{ 18 public: 19 MakroActionState(ActionSequence::stateSet _states) : 20 states(_states) 21 {} 22 virtual ~MakroActionState(){ 23 // All contained states are destroyed by the shared ptrs 24 } 25 26 ActionSequence::stateSet states; 27 }; 15 28 16 29 MakroAction::MakroAction(string _name,ActionSequence* _actions,bool _doRegister) : … … 30 43 31 44 32 void MakroAction::call(){ 33 actions->callAll(); 45 Action::state_ptr MakroAction::performCall(){ 46 ActionSequence::stateSet states = actions->callAll(); 47 return Action::state_ptr(new MakroActionState(states)); 34 48 } 35 49 36 void MakroAction::undo() { 37 actions->undoAll(); 50 Action::state_ptr MakroAction::performUndo(Action::state_ptr _state) { 51 MakroActionState *state = dynamic_cast<MakroActionState*>(_state.get()); 52 ASSERT(state,"Type mismatch for the state of the MakroAction"); 53 ActionSequence::stateSet states = actions->undoAll(state->states); 54 return Action::state_ptr(new MakroActionState(states)); 55 } 56 57 Action::state_ptr MakroAction::performRedo(Action::state_ptr _state){ 58 MakroActionState *state = dynamic_cast<MakroActionState*>(_state.get()); 59 ASSERT(state,"Type mismatch for the state of the MakroAction"); 60 ActionSequence::stateSet states = actions->redoAll(state->states); 61 return Action::state_ptr(new MakroActionState(states)); 38 62 } 39 63 … … 41 65 return actions->canUndo(); 42 66 } 67 68 bool MakroAction::shouldUndo() { 69 return actions->shouldUndo(); 70 }
Note:
See TracChangeset
for help on using the changeset viewer.