+public:
+ static Manager& instance();
+
+ void register_window (ProxyBase*);
+ void remove (const ProxyBase*);
+ void toggle_window (ProxyBase*);
+ void show_visible () const;
+ void set_session (ARDOUR::Session*);
+ void add_state (XMLNode&) const;
+
+ /* HACK HACK HACK */
+ void set_transient_for (Gtk::Window*);
+ Gtk::Window* transient_parent() const { return current_transient_parent; }
+
+private:
+ typedef std::list<ProxyBase*> Windows;
+ Windows _windows;
+ Glib::RefPtr<Gtk::ActionGroup> window_actions;
+ Gtk::Window* current_transient_parent;
+
+ Manager();
+ ~Manager();
+
+ static Manager* _instance;
+private:
+ void window_proxy_was_mapped (ProxyBase*);
+ void window_proxy_was_unmapped (ProxyBase*);
+};