diff options
Diffstat (limited to 'src/gui/WindowFactory.hpp')
-rw-r--r-- | src/gui/WindowFactory.hpp | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/src/gui/WindowFactory.hpp b/src/gui/WindowFactory.hpp deleted file mode 100644 index ea8b909b..00000000 --- a/src/gui/WindowFactory.hpp +++ /dev/null @@ -1,99 +0,0 @@ -/* - This file is part of Ingen. - Copyright 2007-2015 David Robillard <http://drobilla.net/> - - Ingen is free software: you can redistribute it and/or modify it under the - terms of the GNU Affero General Public License as published by the Free - Software Foundation, either version 3 of the License, or any later version. - - Ingen 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 Affero General Public License for details. - - You should have received a copy of the GNU Affero General Public License - along with Ingen. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef INGEN_GUI_WINDOWFACTORY_HPP -#define INGEN_GUI_WINDOWFACTORY_HPP - -#include <map> - -#include "ingen/Node.hpp" -#include "ingen/types.hpp" - -namespace Ingen { - -namespace Client { -class BlockModel; -class ObjectModel; -class GraphModel; -} - -namespace GUI { - -class App; -class GraphBox; -class GraphView; -class GraphWindow; -class LoadGraphWindow; -class LoadPluginWindow; -class NewSubgraphWindow; -class PropertiesWindow; -class RenameWindow; - -/** Manager/Factory for all windows. - * - * This serves as a nice centralized spot for all window management issues, - * as well as an enumeration of all windows (the goal being to reduce that - * number as much as possible). - */ -class WindowFactory { -public: - explicit WindowFactory(App& app); - ~WindowFactory(); - - size_t num_open_graph_windows(); - - GraphBox* graph_box(SPtr<const Client::GraphModel> graph); - GraphWindow* graph_window(SPtr<const Client::GraphModel> graph); - GraphWindow* parent_graph_window(SPtr<const Client::BlockModel> block); - - void present_graph( - SPtr<const Client::GraphModel> graph, - GraphWindow* preferred = NULL, - SPtr<GraphView> view = SPtr<GraphView>()); - - void present_load_plugin(SPtr<const Client::GraphModel> graph, Properties data=Properties()); - void present_load_graph(SPtr<const Client::GraphModel> graph, Properties data=Properties()); - void present_load_subgraph(SPtr<const Client::GraphModel> graph, Properties data=Properties()); - void present_new_subgraph(SPtr<const Client::GraphModel> graph, Properties data=Properties()); - void present_rename(SPtr<const Client::ObjectModel> object); - void present_properties(SPtr<const Client::ObjectModel> object); - - bool remove_graph_window(GraphWindow* win, GdkEventAny* ignored = NULL); - - void set_main_box(GraphBox* box) { _main_box = box; } - - void clear(); - -private: - typedef std::map<Raul::Path, GraphWindow*> GraphWindowMap; - - GraphWindow* new_graph_window(SPtr<const Client::GraphModel> graph, - SPtr<GraphView> view); - - App& _app; - GraphBox* _main_box; - GraphWindowMap _graph_windows; - LoadPluginWindow* _load_plugin_win; - LoadGraphWindow* _load_graph_win; - NewSubgraphWindow* _new_subgraph_win; - PropertiesWindow* _properties_win; - RenameWindow* _rename_win; -}; - -} // namespace GUI -} // namespace Ingen - -#endif // INGEN_GUI_WINDOWFACTORY_HPP |