add self-removing Sends (remove on disconnect)
[ardour.git] / gtk2_ardour / ardour_window.h
index 0590234140bf7115532a48115f90462cb540de51..7ae9c3dbce205b52ddbd472e232710293d7d61b6 100644 (file)
 #include <gtkmm/window.h>
 #include <gtkmm/window.h>
 
+#include "gtkmm2ext/visibility_tracker.h"
+
 #include "ardour/session_handle.h"
 
+namespace WM {
+       class ProxyTemporary;
+}
+
 /**
  * This virtual parent class is so that each window uses the
  * same mechanism to declare its closing. It shares a common
  * method of connecting and disconnecting from a Session with
  * all other objects that have a handle on a Session.
  */
-class ArdourWindow : public Gtk::Window, public ARDOUR::SessionHandlePtr
+class ArdourWindow : public Gtk::Window, public ARDOUR::SessionHandlePtr, public Gtkmm2ext::VisibilityTracker
 {
   public:
        ArdourWindow (std::string title);
        ArdourWindow (Gtk::Window& parent, std::string title);
        ~ArdourWindow();
 
-       bool on_enter_notify_event (GdkEventCrossing*);
-       bool on_leave_notify_event (GdkEventCrossing*);
+       bool on_focus_in_event (GdkEventFocus*);
+       bool on_focus_out_event (GdkEventFocus*);
+        bool on_delete_event (GdkEventAny *);
+        bool on_key_press_event (GdkEventKey*);
        void on_unmap ();
 
   private:
-       void init ();
+    WM::ProxyTemporary* proxy;
+    void init ();
 };
 
 #endif // __ardour_window_h__