fix jack transport return value
[ardour.git] / libs / gtkmm2ext / barcontroller.cc
index 6c4c59e12e3563e2f35910f555e0698070810b25..5ac58212051ef109e9754a3cdd0e43c615c73ad6 100644 (file)
@@ -40,7 +40,6 @@ using namespace Gtkmm2ext;
 BarController::BarController (Gtk::Adjustment& adj,
                boost::shared_ptr<PBD::Controllable> mc)
        : _slider (&adj, 60, 16)
-       , _logarithmic (false)
        , _switching (false)
        , _switch_on_release (false)
 {
@@ -49,16 +48,16 @@ BarController::BarController (Gtk::Adjustment& adj,
        set (.5, .5, 1.0, 1.0);
        set_border_width (0);
        _slider.set_controllable (mc);
+       _slider.set_tweaks (PixFader::NoShowUnityLine);
 
        _slider.StartGesture.connect (sigc::mem_fun(*this, &BarController::passtrhu_gesture_start));
        _slider.StopGesture.connect (sigc::mem_fun(*this, &BarController::passtrhu_gesture_stop));
        _slider.OnExpose.connect (sigc::mem_fun(*this, &BarController::before_expose));
+       _slider.set_name (get_name());
 
        Gtk::SpinButton& spinner = _slider.get_spin_button();
        spinner.signal_activate().connect (mem_fun (*this, &BarController::entry_activated));
        spinner.signal_focus_out_event().connect (mem_fun (*this, &BarController::entry_focus_out));
-       spinner.signal_input().connect (mem_fun (*this, &BarController::entry_input));
-       spinner.signal_output().connect (mem_fun (*this, &BarController::entry_output));
        spinner.set_digits (9);
        spinner.set_numeric (true);
        spinner.set_name ("BarControlSpinner");
@@ -98,6 +97,12 @@ BarController::on_button_release_event (GdkEventButton* ev)
        return false;
 }
 
+void
+BarController::on_style_changed (const Glib::RefPtr<Gtk::Style>&)
+{
+       _slider.set_name (get_name());
+}
+
 gint
 BarController::switch_to_bar ()
 {
@@ -162,81 +167,3 @@ BarController::set_sensitive (bool yn)
        Alignment::set_sensitive (yn);
        _slider.set_sensitive (yn);
 }
-
-/* 
-    This is called when we need to update the adjustment with the value
-    from the spinner's text entry.
-    
-    We need to use Gtk::Entry::get_text to avoid recursive nastiness :)
-    
-    If we're not in logarithmic mode we can return false to use the 
-    default conversion.
-    
-    In theory we should check for conversion errors but set numeric
-    mode to true on the spinner prevents invalid input.
-*/
-int
-BarController::entry_input (double* new_value)
-{
-       if (!_logarithmic) {
-               return false;
-       }
-
-       // extract a double from the string and take its log
-       Gtk::SpinButton& spinner = _slider.get_spin_button();
-       Entry *entry = dynamic_cast<Entry *>(&spinner);
-       double value;
-
-       {
-               // Switch to user's preferred locale so that
-               // if they use different LC_NUMERIC conventions,
-               // we will honor them.
-
-               PBD::LocaleGuard lg ("");
-               sscanf (entry->get_text().c_str(), "%lf", &value);
-       }
-
-       *new_value = log(value);
-
-       return true;
-}
-
-/* 
-    This is called when we need to update the spinner's text entry 
-    with the value of the adjustment.
-    
-    We need to use Gtk::Entry::set_text to avoid recursive nastiness :)
-    
-    If we're not in logarithmic mode we can return false to use the 
-    default conversion.
-*/
-bool
-BarController::entry_output ()
-{
-       if (!_logarithmic) {
-               return false;
-       }
-
-       char buf[128];
-       Gtk::SpinButton& spinner = _slider.get_spin_button();
-
-       // generate the exponential and turn it into a string
-       // convert to correct locale. 
-       
-       stringstream stream;
-       string str;
-
-       {
-               // Switch to user's preferred locale so that
-               // if they use different LC_NUMERIC conventions,
-               // we will honor them.
-               
-               PBD::LocaleGuard lg ("");
-               snprintf (buf, sizeof (buf), "%g", exp (spinner.get_adjustment()->get_value()));
-       }
-
-       Entry *entry = dynamic_cast<Entry *>(&spinner);
-       entry->set_text(buf);
-       
-       return true;
-}