first compilable version of tabbable design.
[ardour.git] / libs / gtkmm2ext / gtkmm2ext / window_proxy.h
index 3ec208092800e5b45e1ad9e5ef78c324ef433e7c..01f53826bd436cb900d5f614bbf3d7b6c1d55b37 100644 (file)
 */
 
 #ifndef __gtkmm2ext_window_proxy_h__
+#define __gtkmm2ext_window_proxy_h__
 
 #include <string>
 #include <gdkmm/event.h>
 #include <glibmm/refptr.h>
 #include <sigc++/trackable.h>
 
-class XMLNode;
+#include "pbd/statefuldestructible.h"
 
 #include "gtkmm2ext/visibility.h"
 
@@ -37,9 +38,10 @@ namespace Gtkmm2ext {
 
 class VisibilityTracker;
 
-class LIBGTKMM2EXT_API WindowProxy : public virtual sigc::trackable
+class LIBGTKMM2EXT_API WindowProxy : public PBD::StatefulDestructible, public virtual sigc::trackable
 {
   public:
+       WindowProxy (const std::string& name);
        WindowProxy (const std::string& name, const std::string& menu_name);
        WindowProxy (const std::string& name, const std::string& menu_name, const XMLNode&);
        virtual ~WindowProxy();
@@ -51,6 +53,7 @@ class LIBGTKMM2EXT_API WindowProxy : public virtual sigc::trackable
        void maybe_show ();
     
        bool visible() const { return _visible; }
+       bool not_visible() const { return !_visible; }
        const std::string& name() const { return _name; }
        const std::string& menu_name() const { return _menu_name; }
     
@@ -65,8 +68,8 @@ class LIBGTKMM2EXT_API WindowProxy : public virtual sigc::trackable
     
        virtual void toggle ();
     
-       virtual void set_state (const XMLNode&);
-       virtual XMLNode& get_state () const;
+       virtual int set_state (const XMLNode&, int version);
+       virtual XMLNode& get_state ();
     
        operator bool() const { return _window != 0; }