Add GUI to instantiate session-scripts
[ardour.git] / gtk2_ardour / ardour_ui_ed.cc
index 16e1edd68e2825d22ac53ea5eb33afa3e609a43a..03ad92e183d1cef619e3f0debbbd69b927fda5df 100644 (file)
@@ -51,6 +51,7 @@
 #include "editor.h"
 #include "actions.h"
 #include "meterbridge.h"
+#include "luawindow.h"
 #include "mixer_ui.h"
 #include "startup.h"
 #include "window_manager.h"
@@ -88,7 +89,21 @@ ARDOUR_UI::create_editor ()
                return -1;
        }
 
-        editor->signal_event().connect (sigc::bind (sigc::ptr_fun (&Keyboard::catch_user_event_for_pre_dialog_focus), editor));
+       // editor->signal_event().connect (sigc::bind (sigc::ptr_fun (&Keyboard::catch_user_event_for_pre_dialog_focus), editor));
+
+       return 0;
+}
+
+int
+ARDOUR_UI::create_luawindow ()
+
+{
+       try {
+               luawindow = LuaWindow::instance ();
+       }
+       catch (failed_constructor& err) {
+               return -1;
+       }
 
        return 0;
 }
@@ -148,6 +163,17 @@ ARDOUR_UI::install_actions ()
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::write_sensitive_actions.push_back (act);
 
+       act = global_actions.register_action (main_actions, X_("Scripting"), S_("Session|Scripting"));
+       ActionManager::session_sensitive_actions.push_back (act);
+
+       act = global_actions.register_action (main_actions, X_("AddLuaScript"), _("Add Lua Script"),
+                     sigc::mem_fun (*this, &ARDOUR_UI::add_lua_script));
+       ActionManager::session_sensitive_actions.push_back (act);
+
+       act = global_actions.register_action (main_actions, X_("RemoveLuaScript"), _("Remove Lua Script"),
+                     sigc::mem_fun (*this, &ARDOUR_UI::remove_lua_script));
+       ActionManager::session_sensitive_actions.push_back (act);
+
        act = global_actions.register_action (main_actions, X_("OpenVideo"), _("Open Video"),
                                              sigc::bind (sigc::mem_fun(*this, &ARDOUR_UI::add_video), (Gtk::Window*) 0));
        ActionManager::session_sensitive_actions.push_back (act);
@@ -273,6 +299,7 @@ ARDOUR_UI::install_actions ()
                global_actions.register_action (common_actions, X_("show-ui-prefs"), _("Show more UI preferences"), sigc::mem_fun (*this, &ARDOUR_UI::show_ui_prefs));
        }
 
+       global_actions.register_action (common_actions, X_("toggle-luawindow"), S_("Window|Scripting"),  sigc::mem_fun(*this, &ARDOUR_UI::toggle_luawindow));
        global_actions.register_action (common_actions, X_("toggle-meterbridge"), S_("Window|Meterbridge"),  sigc::mem_fun(*this, &ARDOUR_UI::toggle_meterbridge));
 
        act = global_actions.register_action (common_actions, X_("NewMIDITracer"), _("MIDI Tracer"), sigc::mem_fun(*this, &ARDOUR_UI::new_midi_tracer_window));