do not reset paths for sources that are still outside the session after save-as
[ardour.git] / gtk2_ardour / panner_ui.cc
index d20d719b14cb4e3d4e338378bce5843c5a966d69..02f1dd46a2d55f0a542f71a591ce89b4a405e462 100644 (file)
@@ -19,7 +19,6 @@
 #include <limits.h>
 
 #include <gtkmm2ext/utils.h>
-#include <gtkmm2ext/barcontroller.h>
 
 #include "pbd/fastlog.h"
 
@@ -31,9 +30,9 @@
 #include "ardour_ui.h"
 #include "panner_ui.h"
 #include "panner2d.h"
-#include "utils.h"
 #include "gui_thread.h"
 #include "stereo_panner.h"
+#include "timers.h"
 #include "mono_panner.h"
 
 #include "i18n.h"
@@ -50,6 +49,7 @@ PannerUI::PannerUI (Session* s)
        : _current_nouts (-1)
        , _current_nins (-1)
        , _current_uri ("")
+       , _send_mode (false)
        , pan_automation_style_button ("")
        , pan_automation_state_button ("")
        , _panner_list()
@@ -251,6 +251,7 @@ PannerUI::setup_pan ()
 
                _stereo_panner = new StereoPanner (_panshell);
                _stereo_panner->set_size_request (-1, pan_bar_height);
+               _stereo_panner->set_send_drawing_mode (_send_mode);
                pan_vbox.pack_start (*_stereo_panner, false, false);
 
                boost::shared_ptr<AutomationControl> ac;
@@ -286,6 +287,7 @@ PannerUI::setup_pan ()
                _mono_panner->signal_button_release_event().connect (sigc::mem_fun(*this, &PannerUI::pan_button_event));
 
                _mono_panner->set_size_request (-1, pan_bar_height);
+               _mono_panner->set_send_drawing_mode (_send_mode);
 
                update_pan_sensitive ();
                pan_vbox.pack_start (*_mono_panner, false, false);
@@ -305,6 +307,7 @@ PannerUI::setup_pan ()
                        big_window->reset (nins);
                }
                twod_panner->set_size_request (-1, 61);
+               twod_panner->set_send_drawing_mode (_send_mode);
 
                /* and finally, add it to the panner frame */
 
@@ -323,6 +326,19 @@ PannerUI::setup_pan ()
        pan_vbox.show_all ();
 }
 
+void
+PannerUI::set_send_drawing_mode (bool onoff)
+{
+       if (_stereo_panner) {
+               _stereo_panner->set_send_drawing_mode (onoff);
+       } else if (_mono_panner) {
+               _mono_panner->set_send_drawing_mode (onoff);
+       } else if (twod_panner) {
+               twod_panner->set_send_drawing_mode (onoff);
+       }
+       _send_mode = onoff;
+}
+
 void
 PannerUI::start_touch (boost::weak_ptr<AutomationControl> wac)
 {
@@ -561,7 +577,7 @@ PannerUI::pan_automation_state_changed ()
        pan_watching.disconnect();
 
        if (x) {
-               pan_watching = ARDOUR_UI::RapidScreenUpdate.connect (sigc::mem_fun (*this, &PannerUI::effective_pan_display));
+               pan_watching = Timers::rapid_connect (sigc::mem_fun (*this, &PannerUI::effective_pan_display));
        }
 }
 
@@ -584,16 +600,16 @@ PannerUI::_astate_string (AutoState state, bool shrt)
 
        switch (state) {
        case ARDOUR::Off:
-               sstr = (shrt ? "M" : _("M"));
+               sstr = (shrt ? "M" : S_("Manual|M"));
                break;
        case Play:
-               sstr = (shrt ? "P" : _("P"));
+               sstr = (shrt ? "P" : S_("Play|P"));
                break;
        case Touch:
-               sstr = (shrt ? "T" : _("T"));
+               sstr = (shrt ? "T" : S_("Touch|T"));
                break;
        case Write:
-               sstr = (shrt ? "W" : _("W"));
+               sstr = (shrt ? "W" : S_("Write|W"));
                break;
        }