diff options
Diffstat (limited to 'src/Reactor.hpp')
-rw-r--r-- | src/Reactor.hpp | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/src/Reactor.hpp b/src/Reactor.hpp index 9317b0a..17c20ce 100644 --- a/src/Reactor.hpp +++ b/src/Reactor.hpp @@ -20,16 +20,19 @@ #include "Action.hpp" #include "SignalDirection.hpp" +#include <string> + namespace patchage { struct PortID; +class Canvas; class CanvasModule; class CanvasPort; class ClientID; +class Configuration; class Drivers; class ILog; -class Patchage; /// Reacts to actions from the user class Reactor @@ -37,7 +40,10 @@ class Reactor public: using result_type = void; ///< For boost::apply_visitor - explicit Reactor(Patchage& patchage); + explicit Reactor(Configuration& conf, + Drivers& drivers, + Canvas& canvas, + ILog& log); Reactor(const Reactor&) = delete; Reactor& operator=(const Reactor&) = delete; @@ -48,22 +54,33 @@ public: ~Reactor() = default; void operator()(const action::ConnectPorts& action); + void operator()(const action::DecreaseFontSize& action); void operator()(const action::DisconnectClient& action); void operator()(const action::DisconnectPort& action); void operator()(const action::DisconnectPorts& action); + void operator()(const action::IncreaseFontSize& action); void operator()(const action::MoveModule& action); + void operator()(const action::Refresh& action); + void operator()(const action::ResetFontSize& action); void operator()(const action::SplitModule& action); void operator()(const action::UnsplitModule& action); + void operator()(const action::ZoomFull& action); + void operator()(const action::ZoomIn& action); + void operator()(const action::ZoomNormal& action); + void operator()(const action::ZoomOut& action); void operator()(const Action& action); private: + std::string module_name(const ClientID& client); + CanvasModule* find_module(const ClientID& client, SignalDirection type); CanvasPort* find_port(const PortID& port); - Patchage& _patchage; - ILog& _log; - Drivers& _drivers; + Configuration& _conf; + Drivers& _drivers; + Canvas& _canvas; + ILog& _log; }; } // namespace patchage |