Make range selection context menu work again.
[ardour.git] / gtk2_ardour / send_ui.h
index d1a49930eae9b24f40bd4fba90944b5cb59c3b55..0d6356970e78309f9bc1624d46fc555d2d19fbdf 100644 (file)
@@ -15,7 +15,6 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id$
 */
 
 #ifndef __ardour_gtk_send_ui_h__
 
 #include "gain_meter.h"
 #include "panner_ui.h"
+#include "ardour_dialog.h"
 
 namespace ARDOUR {
        class Send;
        class Session;
-       class Redirect;
+       class IOProcessor;
 }
 
 class IOSelector;
@@ -35,7 +35,7 @@ class IOSelector;
 class SendUI : public Gtk::HBox
 {
   public:
-       SendUI (ARDOUR::Send&, ARDOUR::Session&);
+       SendUI (boost::shared_ptr<ARDOUR::Send>, ARDOUR::Session&);
        ~SendUI();
 
        void update ();
@@ -43,8 +43,10 @@ class SendUI : public Gtk::HBox
 
        IOSelector* io;
 
+       boost::shared_ptr<ARDOUR::Send>& send() { return _send; }
+
   private:
-       ARDOUR::Send&    _send;
+       boost::shared_ptr<ARDOUR::Send> _send;
        ARDOUR::Session& _session;
        GainMeter gpm;
        PannerUI  panners;
@@ -54,24 +56,23 @@ class SendUI : public Gtk::HBox
        sigc::connection screen_update_connection;
        sigc::connection fast_screen_update_connection;
                
-       void send_going_away (ARDOUR::Redirect*);
        void ins_changed (ARDOUR::IOChange, void*);
        void outs_changed (ARDOUR::IOChange, void*);
 };
 
-class SendUIWindow : public Gtk::Window
+class SendUIWindow : public ArdourDialog
 {
   public:
-       SendUIWindow(ARDOUR::Send&, ARDOUR::Session&);
+       SendUIWindow(boost::shared_ptr<ARDOUR::Send>, ARDOUR::Session&);
        ~SendUIWindow();
 
        SendUI*     ui;
 
   private:
-       Gtk::VBox vpacker;
        Gtk::HBox hpacker;
 
-       void send_going_away (ARDOUR::Redirect*);
+       void send_going_away ();
+       sigc::connection going_away_connection;
 };
 
 #endif /* __ardour_gtk_send_ui_h__ */