// Copyright 2007-2021 David Robillard // SPDX-License-Identifier: GPL-3.0-or-later #ifndef PATCHAGE_ACTION_HPP #define PATCHAGE_ACTION_HPP #include "ClientID.hpp" #include "PortID.hpp" #include "Setting.hpp" #include "SignalDirection.hpp" #include namespace patchage { namespace action { struct ChangeSetting { Setting setting; }; struct ConnectPorts { PortID tail; PortID head; }; struct DecreaseFontSize {}; struct DisconnectClient { ClientID client; SignalDirection direction; }; struct DisconnectPort { PortID port; }; struct DisconnectPorts { PortID tail; PortID head; }; struct IncreaseFontSize {}; struct MoveModule { ClientID client; SignalDirection direction; double x; double y; }; struct Refresh {}; struct ResetFontSize {}; struct SplitModule { ClientID client; }; struct UnsplitModule { ClientID client; }; struct ZoomFull {}; struct ZoomIn {}; struct ZoomNormal {}; struct ZoomOut {}; } // namespace action /// A high-level action from the user using Action = std::variant; } // namespace patchage #endif // PATCHAGE_ACTION_HPP