summaryrefslogtreecommitdiff
path: root/gtk2_ardour/window_proxy.h
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/window_proxy.h')
-rwxr-xr-xgtk2_ardour/window_proxy.h143
1 files changed, 0 insertions, 143 deletions
diff --git a/gtk2_ardour/window_proxy.h b/gtk2_ardour/window_proxy.h
deleted file mode 100755
index 10ff25ced6..0000000000
--- a/gtk2_ardour/window_proxy.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- Copyright (C) 2010 Paul Davis
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-#ifndef __ardour_window_proxy_h__
-#define __ardour_window_proxy_h__
-
-#include <gtkmm/action.h>
-#include <gtkmm/toggleaction.h>
-#include "actions.h"
-
-class XMLNode;
-
-/** A class to proxy for a window that may not have been created yet.
- * It allows the management of visibility, position and size state
- * so that it can be saved and restored across session loads.
- *
- * Subclasses of WindowProxy handle windows that are created in different
- * ways.
- */
-
-class WindowProxyBase
-{
-public:
- WindowProxyBase (std::string const &, XMLNode const *);
- virtual ~WindowProxyBase () {}
-
- std::string name () const {
- return _name;
- }
-
- void maybe_show ();
- XMLNode* get_state () const;
- void setup ();
-
- /** Show this window */
- virtual void show () = 0;
-
- /** @return true if the configuration for this window should be
- * global (ie across all sessions), otherwise false if it should
- * be session-specific.
- */
- virtual bool rc_configured () const = 0;
-
- virtual Gtk::Window* get_gtk_window () const = 0;
-
-private:
- XMLNode* state_node (bool, int, int, int, int) const;
-
- std::string _name; ///< internal unique name for this window
- bool _visible; ///< true if the window should be visible on startup
- int _x_off; ///< x position
- int _y_off; ///< y position
- int _width; ///< width
- int _height; ///< height
-};
-
-/** Templated WindowProxy which contains a pointer to the window that is proxying for */
-template <class T>
-class WindowProxy : public WindowProxyBase
-{
-public:
- WindowProxy (std::string const & name, XMLNode const * node)
- : WindowProxyBase (name, node)
- , _window (0)
- {
-
- }
-
- Gtk::Window* get_gtk_window () const {
- return _window;
- }
-
- T* get () const {
- return _window;
- }
-
- /** Set the window and maybe set it up. To be used after initial window creation */
- void set (T* w, bool s = true) {
- _window = w;
- if (s) {
- setup ();
- }
- }
-
-private:
- T* _window;
-};
-
-/** WindowProxy for windows that are created in response to a GTK Action being set active.
- * Templated on the type of the window.
- */
-template <class T>
-class ActionWindowProxy : public WindowProxy<T>
-{
-public:
- /** ActionWindowProxy constructor.
- * @param name Unique internal name for this window.
- * @param node <UI> node containing <Window> children, the appropriate one of which is used
- * to set up this object.
- * @param action Name of the ToggleAction that controls this window's visibility.
- */
- ActionWindowProxy (std::string const & name, XMLNode const * node, std::string const & action)
- : WindowProxy<T> (name, node)
- , _action (action)
- {
-
- }
-
- void show () {
- /* Set the appropriate action active so that the window gets shown */
- Glib::RefPtr<Gtk::Action> act = ActionManager::get_action ("Common", _action.c_str());
- if (act) {
- Glib::RefPtr<Gtk::ToggleAction> tact = Glib::RefPtr<Gtk::ToggleAction>::cast_dynamic (act);
- assert (tact);
- tact->set_active (true);
- }
- }
-
- bool rc_configured () const {
- return true;
- }
-
-private:
- std::string _action;
-};
-
-#endif