diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-01-31 11:00:16 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-01-31 11:00:16 -0500 |
commit | 2b56dc17e3bc387c52bcd656e3487164ea8f6e06 (patch) | |
tree | ff5d82092e669ef4b7014ed95eb2e2102352d095 /libs/surfaces | |
parent | ef793d37629afe6cdb06b89e5f53a2198db200de (diff) |
mackie: add "clean" method to invoke GUI actions from button events, in code
Diffstat (limited to 'libs/surfaces')
-rw-r--r-- | libs/surfaces/mackie/gui.cc | 13 | ||||
-rw-r--r-- | libs/surfaces/mackie/mackie_control_protocol.h | 5 |
2 files changed, 18 insertions, 0 deletions
diff --git a/libs/surfaces/mackie/gui.cc b/libs/surfaces/mackie/gui.cc index 61ca6504cb..096543e112 100644 --- a/libs/surfaces/mackie/gui.cc +++ b/libs/surfaces/mackie/gui.cc @@ -915,3 +915,16 @@ MackieControlProtocolGUI::active_port_changed (Gtk::ComboBox* combo, boost::weak } } } + +/* special case: MackieControlProtocol object method that requires GUI headers */ + +void +MackieControlProtocol::gui_invoke (string const& action_name) +{ + Glib::RefPtr<Gtk::Action> act = ActionManager::get_action (action_name.c_str()); + if (act) { + act->activate (); + } else { + std::cerr << "no such action: " << action_name << std::endl; + } +} diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h index 61d5bf3811..09654230d6 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.h +++ b/libs/surfaces/mackie/mackie_control_protocol.h @@ -388,6 +388,11 @@ class MackieControlProtocol int set_device_info (const std::string& device_name); void update_configuration_state (); + /* accepts an Action name from the application GUI definitions, and + invokes it + */ + void gui_invoke (std::string const &); + /* MIDI port connection management */ PBD::ScopedConnection port_connection; |