+class ProcessorEntry : public Gtkmm2ext::DnDVBoxChild, public sigc::trackable
+{
+public:
+ ProcessorEntry (boost::shared_ptr<ARDOUR::Processor>, Width);
+
+ Gtk::EventBox& action_widget ();
+ Gtk::Widget& widget ();
+ std::string drag_text () const;
+ boost::shared_ptr<ARDOUR::Processor> processor () const;
+ void set_enum_width (Width);
+ virtual void set_pixel_width (int) {}
+
+protected:
+
+ Gtk::VBox _vbox;
+
+private:
+
+ void active_toggled ();
+ void processor_active_changed ();
+ void processor_property_changed (const PBD::PropertyChange&);
+ std::string name () const;
+
+ Gtk::EventBox _event_box;
+ Gtk::Label _name;
+ Gtk::HBox _hbox;
+ Gtk::CheckButton _active;
+ boost::shared_ptr<ARDOUR::Processor> _processor;
+ Width _width;
+ PBD::ScopedConnection active_connection;
+ PBD::ScopedConnection name_connection;
+};
+
+class SendProcessorEntry : public ProcessorEntry
+{
+public:
+ SendProcessorEntry (boost::shared_ptr<ARDOUR::Send>, Width);
+
+ static void setup_slider_pix ();
+
+ void set_enum_width (Width, int);
+ void set_pixel_width (int);
+
+private:
+ void show_gain ();
+ void gain_adjusted ();
+
+ boost::shared_ptr<ARDOUR::Send> _send;
+ Gtk::Adjustment _adjustment;
+ Gtkmm2ext::HSliderController _fader;
+ bool _ignore_gain_change;
+ PBD::ScopedConnection send_gain_connection;
+
+ static Glib::RefPtr<Gdk::Pixbuf> _slider;
+};
+
+class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARDOUR::SessionHandlePtr