diff options
Diffstat (limited to 'src/gui/GraphView.cpp')
-rw-r--r-- | src/gui/GraphView.cpp | 63 |
1 files changed, 43 insertions, 20 deletions
diff --git a/src/gui/GraphView.cpp b/src/gui/GraphView.cpp index 36c6caed..8d1e1777 100644 --- a/src/gui/GraphView.cpp +++ b/src/gui/GraphView.cpp @@ -14,32 +14,49 @@ along with Ingen. If not, see <http://www.gnu.org/licenses/>. */ +#include "GraphView.hpp" + #include "App.hpp" -#include "LoadPluginWindow.hpp" -#include "NewSubgraphWindow.hpp" #include "GraphCanvas.hpp" -#include "GraphTreeWindow.hpp" -#include "GraphView.hpp" #include "WidgetFactory.hpp" -#include "ingen/Interface.hpp" -#include "ingen/client/GraphModel.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Properties.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/client/GraphModel.hpp> + +#include <glibmm/propertyproxy.h> +#include <glibmm/refptr.h> +#include <gtkmm/adjustment.h> +#include <gtkmm/builder.h> +#include <gtkmm/enums.h> +#include <gtkmm/layout.h> +#include <gtkmm/scrolledwindow.h> +#include <gtkmm/spinbutton.h> +#include <gtkmm/toggletoolbutton.h> +#include <gtkmm/toolbar.h> +#include <gtkmm/toolitem.h> +#include <sigc++/functors/mem_fun.h> +#include <sigc++/signal.h> #include <cassert> -#include <fstream> +#include <cstdint> +#include <map> +#include <memory> +#include <string> +#include <utility> namespace ingen { -using namespace client; +using client::GraphModel; namespace gui { GraphView::GraphView(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& xml) : Gtk::Box(cobject) - , _app(nullptr) - , _breadcrumb_container(nullptr) - , _enable_signal(true) { property_visible() = false; @@ -66,14 +83,14 @@ GraphView::init(App& app) } void -GraphView::set_graph(const SPtr<const GraphModel>& graph) +GraphView::set_graph(const std::shared_ptr<const GraphModel>& graph) { assert(!_canvas); // FIXME: remove assert(_breadcrumb_container); // ensure created _graph = graph; - _canvas = SPtr<GraphCanvas>(new GraphCanvas(*_app, graph, 1600*2, 1200*2)); + _canvas = std::make_shared<GraphCanvas>(*_app, graph, 1600*2, 1200*2); _canvas->build(); _canvas_scrolledwindow->add(_canvas->widget()); @@ -100,15 +117,21 @@ GraphView::set_graph(const SPtr<const GraphModel>& graph) _canvas->widget().grab_focus(); } -SPtr<GraphView> -GraphView::create(App& app, const SPtr<const GraphModel>& graph) +std::shared_ptr<GraphView> +GraphView::create(App& app, const std::shared_ptr<const GraphModel>& graph) { - GraphView* result = nullptr; - Glib::RefPtr<Gtk::Builder> xml = WidgetFactory::create("warehouse_win"); + GraphView* result = nullptr; + const Glib::RefPtr<Gtk::Builder> xml = + WidgetFactory::create("warehouse_win"); + xml->get_widget_derived("graph_view_box", result); + if (!result) { + return nullptr; + } + result->init(app); result->set_graph(graph); - return SPtr<GraphView>(result); + return std::shared_ptr<GraphView>(result); } void @@ -120,14 +143,14 @@ GraphView::process_toggled() _app->set_property(_graph->uri(), _app->uris().ingen_enabled, - _app->forge().make((bool)_process_but->get_active())); + _app->forge().make(_process_but->get_active())); } void GraphView::poly_changed() { const int poly = _poly_spin->get_value_as_int(); - if (_enable_signal && poly != (int)_graph->internal_poly()) { + if (_enable_signal && poly != static_cast<int>(_graph->internal_poly())) { _app->set_property(_graph->uri(), _app->uris().ingen_polyphony, _app->forge().make(poly)); |