Accommodate newly introduced source(s) in our MSVC project (libardour)
[ardour.git] / gtk2_ardour / processor_box.h
index e9c174939df79a00383b489ad6c39f5600831016..5f0115529cfb1f7b0944976d7dc87f64652e8071 100644 (file)
@@ -242,17 +242,25 @@ private:
 
        class PluginDisplay : public Gtk::DrawingArea {
        public:
-               PluginDisplay(boost::shared_ptr<ARDOUR::Plugin>, uint32_t max_height = 80);
-               ~PluginDisplay();
+               PluginDisplay(ProcessorEntry&, boost::shared_ptr<ARDOUR::Plugin>, uint32_t max_height = 80);
+               virtual ~PluginDisplay();
        protected:
                bool on_expose_event (GdkEventExpose *);
                void on_size_request (Gtk::Requisition* req);
+               bool on_button_press_event (GdkEventButton *ev);
+               bool on_button_release_event (GdkEventButton *ev);
+
+               void plugin_going_away () {
+                       _qdraw_connection.disconnect ();
+               }
 
                void update_height_alloc (uint32_t inline_height);
                virtual uint32_t render_inline (cairo_t *, uint32_t width);
 
+               ProcessorEntry& _entry;
                boost::shared_ptr<ARDOUR::Plugin> _plug;
                PBD::ScopedConnection _qdraw_connection;
+               PBD::ScopedConnection _death_connection;
                cairo_surface_t* _surf;
                uint32_t _max_height;
                uint32_t _cur_height;
@@ -261,7 +269,7 @@ private:
 
        class LuaPluginDisplay : public PluginDisplay {
        public:
-               LuaPluginDisplay(boost::shared_ptr<ARDOUR::LuaProc>, uint32_t max_height = 80);
+               LuaPluginDisplay(ProcessorEntry&, boost::shared_ptr<ARDOUR::LuaProc>, uint32_t max_height = 80);
                ~LuaPluginDisplay();
        protected:
                virtual uint32_t render_inline (cairo_t *, uint32_t width);
@@ -446,6 +454,16 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        static Gtkmm2ext::Bindings* bindings;
        static void register_actions();
 
+       typedef std::vector<boost::shared_ptr<ARDOUR::Processor> > ProcSelection;
+
+       static ProcSelection current_processor_selection () {
+               ProcSelection ps;
+               if (_current_processor_box) {
+                       _current_processor_box->get_selected_processors (ps);
+               }
+               return ps;
+       }
+
 #ifndef NDEBUG
        static bool show_all_processors;
 #endif
@@ -527,8 +545,6 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
 
        void ab_plugins ();
 
-       typedef std::vector<boost::shared_ptr<ARDOUR::Processor> > ProcSelection;
-
        void cut_processors (const ProcSelection&);
        void copy_processors (const ProcSelection&);
        void delete_processors (const ProcSelection&);
@@ -551,6 +567,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        static Glib::RefPtr<Gtk::Action> paste_action;
        static Glib::RefPtr<Gtk::Action> rename_action;
        static Glib::RefPtr<Gtk::Action> delete_action;
+       static Glib::RefPtr<Gtk::Action> backspace_action;
        static Glib::RefPtr<Gtk::Action> manage_pins_action;
        static Glib::RefPtr<Gtk::Action> edit_action;
        static Glib::RefPtr<Gtk::Action> edit_generic_action;