Use the frame corresponding to the current mouse position when zoom dragging
[ardour.git] / gtk2_ardour / ardour_ui_dependents.cc
index 939c7d0eebd125956facfbf44b7ac8ec92a40c79..8490643487ccf6753c35b6909b7baf8f6c26a895 100644 (file)
@@ -37,6 +37,7 @@
 #include "ardour_ui.h"
 #include "public_editor.h"
 #include "meterbridge.h"
+#include "luawindow.h"
 #include "mixer_ui.h"
 #include "keyboard.h"
 #include "splash.h"
@@ -45,7 +46,7 @@
 #include "opts.h"
 #include "utils.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace Gtk;
 using namespace PBD;
@@ -119,6 +120,7 @@ ARDOUR_UI::connect_dependents_to_session (ARDOUR::Session *s)
        BootMessage (_("Setup Mixer"));
        mixer->set_session (s);
        meterbridge->set_session (s);
+       luawindow->set_session (s);
 
        /* its safe to do this now */
 
@@ -257,6 +259,11 @@ ARDOUR_UI::setup_windows ()
                return -1;
        }
 
+       if (create_luawindow ()) {
+               error << _("UI: cannot setup luawindow") << endmsg;
+               return -1;
+       }
+
        /* order of addition affects order seen in initial window display */
 
        rc_option_editor->add_to_notebook (_tabs, _("Preferences"));
@@ -296,6 +303,24 @@ ARDOUR_UI::setup_windows ()
        main_vpacker.pack_start (status_bar_hpacker, false, false);
 #endif
 
+       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());
+               assert (act);
+               action_script_call_btn[i].set_text (string_compose ("%1", i+1));
+               action_script_call_btn[i].set_related_action (act);
+               if (act->get_sensitive ()) {
+                       action_script_call_btn[i].set_visual_state (Gtkmm2ext::VisualState (action_script_call_btn[i].visual_state() & ~Gtkmm2ext::Insensitive));
+               } else {
+                       action_script_call_btn[i].set_visual_state (Gtkmm2ext::VisualState (action_script_call_btn[i].visual_state() | Gtkmm2ext::Insensitive));
+               }
+               const int row = i % 3;
+               const int col = i / 3;
+               action_script_table.attach (action_script_call_btn[i], col, col + 1, row, row + 1, EXPAND, EXPAND, 1, 1);
+               action_script_call_btn[i].set_no_show_all ();
+       }
+       action_script_table.show ();
+
        setup_transport();
        build_menu_bar ();
        setup_tooltips ();
@@ -311,7 +336,7 @@ ARDOUR_UI::setup_windows ()
        const XMLNode* mnode = main_window_settings ();
 
        if (mnode) {
-               const XMLProperty* prop;
+               XMLProperty const * prop;
                gint x = -1;
                gint y = -1;
                gint w = -1;