summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui_dependents.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-02-17 18:56:18 +0100
committerRobin Gareus <robin@gareus.org>2017-02-17 18:58:11 +0100
commit472f14c80350455cd492c867104941e884f74034 (patch)
tree0c220e93db24a0e972960252f80c8f59acea4b9b /gtk2_ardour/ardour_ui_dependents.cc
parent149634c2cf61a4ecaef4b86b84f8531ce0ce51a0 (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.cc13
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);
+ }
+}