TazGraph Project v0.1.0
Loading...
Searching...
No Matches
Command.h
1#pragma once
2
3#include "pch.h"
4
5class Command {
6public:
7 using Callback = std::function<void()>;
8
9 Command(const std::string& name, Callback executeFunc, Callback undoFunc = nullptr)
10 : _name(name), _executeFunc(executeFunc), _undoFunc(undoFunc) {
11 }
12
13 void execute() {
14 if (_executeFunc) {
15 _executeFunc();
16 }
17 }
18
19 void undo() {
20 if (_undoFunc) {
21 _undoFunc();
22 }
23 }
24
25 const std::string& getName() const { return _name; }
26 bool canUndo() const { return _undoFunc != nullptr; }
27
28private:
29 std::string _name;
30 Callback _executeFunc;
31 Callback _undoFunc;
32};
Definition Command.h:5