gain-meter: use new PixFader API
authorRobin Gareus <robin@gareus.org>
Fri, 5 Sep 2014 00:38:24 +0000 (02:38 +0200)
committerRobin Gareus <robin@gareus.org>
Fri, 5 Sep 2014 00:38:24 +0000 (02:38 +0200)
gtk2_ardour/gain_meter.cc
gtk2_ardour/gain_meter.h

index 3a9f6692e1b41ba4b9f5a1d6b52c66ed841f89b6..8098131fe6a0fefb0889143bd8d952add4a91eb7 100644 (file)
@@ -89,8 +89,9 @@ GainMeterBase::GainMeterBase (Session* s, bool horizontal, int fader_length, int
        meter_metric_area.signal_button_press_event().connect (sigc::mem_fun (*this, &GainMeterBase::level_meter_button_press));
        meter_metric_area.add_events (Gdk::BUTTON_PRESS_MASK);
 
-       gain_slider->signal_button_press_event().connect (sigc::mem_fun(*this, &GainMeter::gain_slider_button_press), false);
-       gain_slider->signal_button_release_event().connect (sigc::mem_fun(*this, &GainMeter::gain_slider_button_release), false);
+       gain_slider->set_tweaks (PixFader::Tweaks(PixFader::NoButtonForward | PixFader::NoVerticalScroll));
+       gain_slider->StartGesture.connect (sigc::mem_fun (*this, &GainMeter::amp_start_touch));
+       gain_slider->StopGesture.connect (sigc::mem_fun (*this, &GainMeter::amp_stop_touch));
        gain_slider->set_name ("GainFader");
 
        gain_display.set_name ("MixerStripGainDisplay");
@@ -690,25 +691,16 @@ GainMeterBase::meter_point_clicked ()
        }
 }
 
-bool
-GainMeterBase::gain_slider_button_press (GdkEventButton* ev)
+void
+GainMeterBase::amp_start_touch ()
 {
-       switch (ev->type) {
-       case GDK_BUTTON_PRESS:
-               _amp->gain_control()->start_touch (_amp->session().transport_frame());
-               break;
-       default:
-               return false;
-       }
-
-       return false;
+       _amp->gain_control()->start_touch (_amp->session().transport_frame());
 }
 
-bool
-GainMeterBase::gain_slider_button_release (GdkEventButton*)
+void
+GainMeterBase::amp_stop_touch ()
 {
        _amp->gain_control()->stop_touch (false, _amp->session().transport_frame());
-       return false;
 }
 
 gint
index 38b89bb8a5a06df2ebe427f4f3edb2afe65a408a..4c4b0735d35d76448e6bdad9a5e399c31001c726 100644 (file)
@@ -168,8 +168,8 @@ class GainMeterBase : virtual public sigc::trackable, ARDOUR::SessionHandlePtr
        Gtk::Menu* meter_menu;
        void popup_meter_menu (GdkEventButton*);
 
-       bool gain_slider_button_press (GdkEventButton *);
-       bool gain_slider_button_release (GdkEventButton *);
+       void amp_stop_touch ();
+       void amp_start_touch ();
 
        void set_route_group_meter_point (ARDOUR::Route&, ARDOUR::MeterPoint);
        void set_meter_point (ARDOUR::Route&, ARDOUR::MeterPoint);