diff options
author | Robin Gareus <robin@gareus.org> | 2017-02-17 18:56:18 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-02-17 18:58:11 +0100 |
commit | 472f14c80350455cd492c867104941e884f74034 (patch) | |
tree | 0c220e93db24a0e972960252f80c8f59acea4b9b /gtk2_ardour/ardour_ui_dependents.cc | |
parent | 149634c2cf61a4ecaef4b86b84f8531ce0ce51a0 (diff) |
Allow Lua action scripts to provide a button icon
Diffstat (limited to 'gtk2_ardour/ardour_ui_dependents.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui_dependents.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc index 6c0083291b..c39a44c451 100644 --- a/gtk2_ardour/ardour_ui_dependents.cc +++ b/gtk2_ardour/ardour_ui_dependents.cc @@ -304,6 +304,8 @@ ARDOUR_UI::setup_windows () main_vpacker.pack_start (status_bar_hpacker, false, false); #endif + LuaInstance::instance()->ActionChanged.connect (sigc::mem_fun (*this, &ARDOUR_UI::update_action_script_btn)); + for (int i = 0; i < 9; ++i) { std::string const a = string_compose (X_("script-action-%1"), i + 1); Glib::RefPtr<Action> act = ActionManager::get_action(X_("Editor"), a.c_str()); @@ -411,3 +413,14 @@ ARDOUR_UI::bind_lua_action_script (GdkEventButton*ev, int i) li->interactive_add (LuaScriptInfo::EditorAction, i); return true; } + +void +ARDOUR_UI::update_action_script_btn (int i, const std::string&) +{ + if (LuaInstance::instance()->lua_action_has_icon (i)) { + uintptr_t ii = i; + action_script_call_btn[i].set_icon (&LuaInstance::render_action_icon, (void*)ii); + } else { + action_script_call_btn[i].set_icon (0, 0); + } +} |