diff options
Diffstat (limited to 'src/gui/App.hpp')
-rw-r--r-- | src/gui/App.hpp | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/src/gui/App.hpp b/src/gui/App.hpp deleted file mode 100644 index 75661449..00000000 --- a/src/gui/App.hpp +++ /dev/null @@ -1,196 +0,0 @@ -/* - This file is part of Ingen. - Copyright 2007-2017 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_APP_HPP -#define INGEN_GUI_APP_HPP - -#include <unordered_map> -#include <string> - -#include <gtkmm/aboutdialog.h> -#include <gtkmm/main.h> -#include <gtkmm/window.h> - -#include "ingen/Atom.hpp" -#include "ingen/Message.hpp" -#include "ingen/Resource.hpp" -#include "ingen/Status.hpp" -#include "ingen/World.hpp" -#include "ingen/ingen.h" -#include "ingen/types.hpp" -#include "lilv/lilv.h" -#include "raul/Deletable.hpp" - -namespace Ingen { - -class Interface; -class Log; -class Port; -class Serialiser; -class StreamWriter; -class World; - -namespace Client { - -class ClientStore; -class GraphModel; -class PluginModel; -class PortModel; -class SigClientInterface; - -} - -namespace GUI { - -class ConnectWindow; -class GraphCanvas; -class GraphTreeView; -class GraphTreeWindow; -class MessagesWindow; -class Port; -class Style; -class ThreadedLoader; -class WindowFactory; - -/** Ingen Gtk Application. - * \ingroup GUI - */ -class INGEN_API App -{ -public: - ~App(); - - void error_message(const std::string& str); - - void attach(SPtr<Ingen::Interface> client); - - void detach(); - - void request_plugins_if_necessary(); - - void register_callbacks(); - bool gtk_main_iteration(); - - void show_about(); - bool quit(Gtk::Window* dialog_parent); - - void port_activity(Port* port); - void activity_port_destroyed(Port* port); - bool can_control(const Client::PortModel* port) const; - - bool signal() const { return _enable_signal; } - void enable_signals(bool b) { _enable_signal = b; } - bool disable_signals() { - bool old = _enable_signal; - _enable_signal = false; - return old; - } - - void set_property(const URI& subject, - const URI& key, - const Atom& value, - Resource::Graph ctx = Resource::Graph::DEFAULT); - - /** Set the tooltip for a widget from its RDF documentation. */ - void set_tooltip(Gtk::Widget* widget, const LilvNode* node); - - uint32_t sample_rate() const; - - bool is_plugin() const { return _is_plugin; } - void set_is_plugin(bool b) { _is_plugin = b; } - - ConnectWindow* connect_window() const { return _connect_window; } - MessagesWindow* messages_dialog() const { return _messages_window; } - GraphTreeWindow* graph_tree() const { return _graph_tree_window; } - Style* style() const { return _style; } - WindowFactory* window_factory() const { return _window_factory; } - - Ingen::Forge& forge() const { return _world->forge(); } - SPtr<Ingen::Interface> interface() const { return _world->interface(); } - SPtr<Ingen::Interface> client() const { return _client; } - SPtr<Client::ClientStore> store() const { return _store; } - SPtr<ThreadedLoader> loader() const { return _loader; } - - SPtr<Client::SigClientInterface> sig_client(); - - SPtr<Serialiser> serialiser(); - - static SPtr<App> create(Ingen::World* world); - - void run(); - - std::string status_text() const; - - sigc::signal<void, const std::string&> signal_status_text_changed; - - inline Ingen::World* world() const { return _world; } - inline Ingen::URIs& uris() const { return _world->uris(); } - inline Ingen::Log& log() const { return _world->log(); } - -protected: - explicit App(Ingen::World* world); - - void message(const Ingen::Message& msg); - - bool animate(); - void response(int32_t id, Ingen::Status status, const std::string& subject); - - void put(const URI& uri, - const Properties& properties, - Resource::Graph ctx); - - void property_change(const URI& subject, - const URI& key, - const Atom& value, - Resource::Graph ctx = Resource::Graph::DEFAULT); - - static Gtk::Main* _main; - - SPtr<Ingen::Interface> _client; - SPtr<Client::ClientStore> _store; - SPtr<ThreadedLoader> _loader; - SPtr<StreamWriter> _dumper; - - Style* _style; - - ConnectWindow* _connect_window; - MessagesWindow* _messages_window; - GraphTreeWindow* _graph_tree_window; - Gtk::AboutDialog* _about_dialog; - WindowFactory* _window_factory; - - Ingen::World* _world; - - int32_t _sample_rate; - int32_t _block_length; - int32_t _n_threads; - float _mean_run_load; - float _min_run_load; - float _max_run_load; - std::string _status_text; - - typedef std::unordered_map<Port*, bool> ActivityPorts; - ActivityPorts _activity_ports; - - bool _enable_signal; - bool _requested_plugins; - bool _is_plugin; -}; - -} // namespace GUI -} // namespace Ingen - -#endif // INGEN_GUI_APP_HPP |