From 451c902616cb5b831448a108bef84a3a7445b025 Mon Sep 17 00:00:00 2001 From: Valeriy Kamyshniy Date: Mon, 2 Jun 2014 06:37:18 -0500 Subject: [PATCH] [Summary] Progressing TRACKs like mixer [git-p4: depot-paths = "//Abdaw/dev_main/tracks/": change = 465076] --- gtk2_ardour/gain_meter.cc | 13 ++++++------- gtk2_ardour/gain_meter.h | 6 +++--- libs/gtkmm2ext/gtkmm2ext/fader.h | 10 +++++++++- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index dcb09ba6aa..23aed19786 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -78,12 +78,11 @@ GainMeterBase::GainMeterBase (Session* s, bool horizontal, int fader_length, int next_release_selects = false; _width = Wide; - if (horizontal) { - gain_slider = manage (new HSliderController (&gain_adjustment, fader_length, fader_girth, false)); - } else { - gain_slider = manage (new VSliderController (&gain_adjustment, fader_length, fader_girth, false)); - gain_slider->set_image(::get_icon("fader_handle")); - } + gain_slider = manage (new Fader (gain_adjustment, + "slider_controller_fader.png", + "slider_controller_fader_handle.png", + "slider_controller_fader_handle.png", + 10, 187, 10, 0)); level_meter = new LevelMeterHBox(_session); @@ -555,7 +554,7 @@ void GainMeterBase::update_gain_sensitive () { bool x = !(_amp->gain_control()->alist()->automation_state() & Play); - static_cast(gain_slider)->set_sensitive (x); + gain_slider->set_sensitive (x); } static MeterPoint diff --git a/gtk2_ardour/gain_meter.h b/gtk2_ardour/gain_meter.h index b71469b4c6..b3eeea920c 100644 --- a/gtk2_ardour/gain_meter.h +++ b/gtk2_ardour/gain_meter.h @@ -42,7 +42,7 @@ #include "gtkmm2ext/click_box.h" #include "gtkmm2ext/focus_entry.h" -#include "gtkmm2ext/slider_controller.h" +#include "gtkmm2ext/fader.h" #include "enums.h" #include "level_meter.h" @@ -90,7 +90,7 @@ class GainMeterBase : virtual public sigc::trackable, ARDOUR::SessionHandlePtr boost::shared_ptr get_controllable(); LevelMeterHBox& get_level_meter() const { return *level_meter; } - Gtkmm2ext::SliderController& get_gain_slider() const { return *gain_slider; } + Gtkmm2ext::Fader& get_gain_slider() const { return *gain_slider; } /** Emitted in the GUI thread when a button is pressed over the level meter; * return true if the event is handled. @@ -111,7 +111,7 @@ class GainMeterBase : virtual public sigc::trackable, ARDOUR::SessionHandlePtr bool ignore_toggle; bool next_release_selects; - Gtkmm2ext::SliderController *gain_slider; + Gtkmm2ext::Fader *gain_slider; Gtk::Adjustment gain_adjustment; Gtkmm2ext::FocusEntry gain_display; Gtk::Button peak_display; diff --git a/libs/gtkmm2ext/gtkmm2ext/fader.h b/libs/gtkmm2ext/gtkmm2ext/fader.h index 2eeed75de5..5627e3efb1 100755 --- a/libs/gtkmm2ext/gtkmm2ext/fader.h +++ b/libs/gtkmm2ext/gtkmm2ext/fader.h @@ -26,6 +26,9 @@ #include #include #include +#include + +#include #include "gtkmm2ext/visibility.h" @@ -45,6 +48,8 @@ class LIBGTKMM2EXT_API Fader : public Gtk::DrawingArea virtual ~Fader (); + void set_controllable (boost::shared_ptr c) { binding_proxy.set_controllable (c); } + void set_default_value (float); protected: @@ -61,11 +66,14 @@ class LIBGTKMM2EXT_API Fader : public Gtk::DrawingArea bool on_enter_notify_event (GdkEventCrossing* ev); bool on_leave_notify_event (GdkEventCrossing* ev); + protected: + Gtk::Adjustment& adjustment; + BindingProxy binding_proxy; + private: Glib::RefPtr _handle_pixbuf; Glib::RefPtr _active_handle_pixbuf; Glib::RefPtr _face_pixbuf; - Gtk::Adjustment& adjustment; int _min_pos_x; int _min_pos_y; int _max_pos_x;