GUI options to select FLAC as media format
[ardour.git] / gtk2_ardour / window_manager.h
index 5ee9d16f9925afd663a1ce2a0444a45f51fd15e8..a5a9714cc8c376cc5fd116f31496544b7a1d90c0 100644 (file)
@@ -27,6 +27,7 @@
 #include <glibmm/refptr.h>
 #include <sigc++/trackable.h>
 
+#include "gtkmm2ext/bindings.h"
 #include "gtkmm2ext/window_proxy.h"
 
 class XMLNode;
@@ -37,12 +38,12 @@ class Action;
 }
 
 namespace Gtkmm2ext {
-class VisibilityTracker;
+       class VisibilityTracker;
 }
 
 namespace ARDOUR {
-class Session;
-class SessionHandlePtr;
+       class Session;
+       class SessionHandlePtr;
 }
 
 namespace WM {
@@ -51,7 +52,7 @@ class ProxyBase;
 
 class Manager : public ARDOUR::SessionHandlePtr
 {
-  public:
+public:
        static Manager& instance();
 
        void register_window (ProxyBase*);
@@ -65,7 +66,7 @@ class Manager : public ARDOUR::SessionHandlePtr
        void set_transient_for (Gtk::Window*);
        Gtk::Window* transient_parent() const { return current_transient_parent; }
 
-                                        private:
+private:
        typedef std::list<ProxyBase*> Windows;
        Windows _windows;
        Glib::RefPtr<Gtk::ActionGroup> window_actions;
@@ -75,32 +76,35 @@ class Manager : public ARDOUR::SessionHandlePtr
        ~Manager();
 
        static Manager* _instance;
+private:
+       void window_proxy_was_mapped (ProxyBase*);
+       void window_proxy_was_unmapped (ProxyBase*);
 };
-       
+
 class ProxyBase : public ARDOUR::SessionHandlePtr, public Gtkmm2ext::WindowProxy
 {
-  public:
+public:
        ProxyBase (const std::string& name, const std::string& menu_name);
        ProxyBase (const std::string& name, const std::string& menu_name, const XMLNode&);
-       
+
        virtual ARDOUR::SessionHandlePtr* session_handle () = 0;
 
-  protected:
+protected:
        void setup ();
 };
-       
+
 class ProxyTemporary: public ProxyBase
 {
-  public:
+public:
        ProxyTemporary (const std::string& name, Gtk::Window* win);
        ~ProxyTemporary();
-    
-       Gtk::Window* get (bool create = false) { 
+
+       Gtk::Window* get (bool create = false) {
                (void) create;
                return _window;
        }
-    
-       Gtk::Window* operator->() { 
+
+       Gtk::Window* operator->() {
                return _window;
        }
 
@@ -110,14 +114,14 @@ class ProxyTemporary: public ProxyBase
 template<typename T>
 class ProxyWithConstructor: public ProxyBase
 {
-  public:
+public:
        ProxyWithConstructor (const std::string& name, const std::string& menu_name, const boost::function<T*()>& c)
                : ProxyBase (name, menu_name) , creator (c) {}
-       
+
        ProxyWithConstructor (const std::string& name, const std::string& menu_name, const boost::function<T*()>& c, const XMLNode* node)
                : ProxyBase (name, menu_name, *node) , creator (c) {}
-       
-       Gtk::Window* get (bool create = false) { 
+
+       Gtk::Window* get (bool create = false) {
                if (!_window) {
                        if (!create) {
                                return 0;
@@ -127,13 +131,13 @@ class ProxyWithConstructor: public ProxyBase
 
                        if (_window) {
                                setup ();
-                       }       
+                       }
                }
 
                return _window;
        }
 
-       T* operator->() { 
+       T* operator->() {
                return dynamic_cast<T*> (get (true));
        }
 
@@ -151,21 +155,21 @@ class ProxyWithConstructor: public ProxyBase
                }
        }
 
-                                        private:
+private:
        boost::function<T*()>   creator;
 };
 
 template<typename T>
 class Proxy : public ProxyBase
 {
-  public:
+public:
        Proxy (const std::string& name, const std::string& menu_name)
                : ProxyBase (name, menu_name) {}
 
        Proxy (const std::string& name, const std::string& menu_name, const XMLNode* node)
                : ProxyBase (name, menu_name, *node)  {}
-       
-       Gtk::Window* get (bool create = false) { 
+
+       Gtk::Window* get (bool create = false) {
                if (!_window) {
                        if (!create) {
                                return 0;
@@ -175,13 +179,13 @@ class Proxy : public ProxyBase
 
                        if (_window) {
                                setup ();
-                       }       
+                       }
                }
 
                return _window;
        }
 
-       T* operator->() { 
+       T* operator->() {
                return dynamic_cast<T*> (get(true));
        }
 
@@ -189,7 +193,7 @@ class Proxy : public ProxyBase
                /* may return null */
                return dynamic_cast<T*> (_window);
        }
-       
+
        void set_session(ARDOUR::Session *s) {
                SessionHandlePtr::set_session (s);
                ARDOUR::SessionHandlePtr* sp = session_handle ();
@@ -198,8 +202,8 @@ class Proxy : public ProxyBase
                        dynamic_cast<T*>(_window)->set_session(s);
                }
        }
-       
-  private:
+
+private:
        boost::function<T*()>   creator;
 };