+
+ bool _dragging;
+ double _drag_x, _drag_y;
+
+ class Control: public sigc::trackable {
+ public:
+ Control (boost::shared_ptr<ARDOUR::AutomationControl>, std::string const &);
+ ~Control ();
+ Gtk::Alignment box;
+ private:
+ void slider_adjusted ();
+ void control_changed ();
+ void set_tooltip ();
+
+ boost::weak_ptr<ARDOUR::AutomationControl> _control;
+ Gtk::Adjustment _adjustment;
+ Gtkmm2ext::HSliderController _slider;
+ Gtkmm2ext::PersistentTooltip _slider_persistant_tooltip;
+
+ bool _ignore_ui_adjustment;
+ sigc::connection timer_connection;
+ std::string _name;
+ };
+ std::list<Control*> _controls;
+};
+
+
+class PluginPinDialog : public ArdourWindow
+{
+public:
+ PluginPinDialog (boost::shared_ptr<ARDOUR::PluginInsert>);
+ PluginPinDialog (boost::shared_ptr<ARDOUR::Route>);
+
+ void set_session (ARDOUR::Session *);
+private:
+ Gtk::ScrolledWindow* scroller;
+ Gtk::VBox *vbox;
+ typedef boost::shared_ptr<PluginPinWidget> PluginPinWidgetPtr;
+ typedef std::vector<PluginPinWidgetPtr> PluginPinWidgetList;
+
+ void route_going_away ();
+ void route_processors_changed (ARDOUR::RouteProcessorChange);
+ void add_processor (boost::weak_ptr<ARDOUR::Processor>);
+ void map_height (Gtk::Allocation&);
+
+ boost::shared_ptr<ARDOUR::Route> _route;
+ PluginPinWidgetList ppw;
+ PBD::ScopedConnectionList _route_connections;
+ bool _height_mapped;