X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fautomation_controller.h;h=12b31f6d86a067cafa4b7f937b53189dd3685062;hb=2e9fcceb1e389aad4a3771c357f8504f27a49470;hp=c5d64c16c7d67c02aaae5a89d72a894be77c1e19;hpb=48bb90eb88202c683f3bb78f7ddf11da6114c1ab;p=ardour.git diff --git a/gtk2_ardour/automation_controller.h b/gtk2_ardour/automation_controller.h index c5d64c16c7..12b31f6d86 100644 --- a/gtk2_ardour/automation_controller.h +++ b/gtk2_ardour/automation_controller.h @@ -29,39 +29,42 @@ #endif #include -#include -#include "gtkmm2ext/barcontroller.h" +#include + #include "pbd/signals.h" #include "evoral/Parameter.hpp" +#include "widgets/barcontroller.h" namespace ARDOUR { class Session; class AutomationList; class AutomationControl; - class Automatable; } -class AutomationBarController : public Gtkmm2ext::BarController { +namespace Gtk { + class Adjustment; + class Widget; +} + +class AutomationBarController : public ArdourWidgets::BarController { public: - AutomationBarController(boost::shared_ptr printer, - boost::shared_ptr ac, + AutomationBarController(boost::shared_ptr ac, Gtk::Adjustment* adj); ~AutomationBarController(); private: std::string get_label (double&); - boost::shared_ptr _printer; boost::shared_ptr _controllable; }; /** A BarController which displays the value and allows control of an AutomationControl */ class AutomationController : public Gtk::Alignment { public: - static boost::shared_ptr create( - boost::shared_ptr parent, + static boost::shared_ptr create ( const Evoral::Parameter& param, const ARDOUR::ParameterDescriptor& desc, - boost::shared_ptr ac); + boost::shared_ptr ac, + bool use_knob = false); ~AutomationController(); @@ -72,36 +75,32 @@ public: Gtk::Adjustment* adjustment() { return _adjustment; } Gtk::Widget* widget() { return _widget; } - void display_effective_value(); + void display_effective_value (); + void automation_state_changed (); void value_adjusted(); void stop_updating (); - sigc::signal StartGesture; - sigc::signal StopGesture; - private: - AutomationController (boost::shared_ptr printer, - boost::shared_ptr ac, - Gtk::Adjustment* adj); + AutomationController (boost::shared_ptr ac, + Gtk::Adjustment* adj, + bool use_knob); void start_touch(); void end_touch(); - void toggled(); + bool button_press(GdkEventButton*); + bool button_release(GdkEventButton*); void run_note_select_dialog(); void set_ratio(double ratio); void set_freq_beats(double beats); bool on_button_release(GdkEventButton* ev); - void value_changed(); - Gtk::Widget* _widget; - boost::shared_ptr _printer; boost::shared_ptr _controllable; Gtk::Adjustment* _adjustment; sigc::connection _screen_update_connection; - PBD::ScopedConnection _changed_connection; + PBD::ScopedConnectionList _changed_connections; bool _ignore_change; };