the endless quest to plug memory leaks -- episode 379
[ardour.git] / gtk2_ardour / processor_box.h
index e9c174939df79a00383b489ad6c39f5600831016..5dd7483be4b3dae84867f1eb440875496828ef71 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);
@@ -551,6 +559,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;