From bef1c2ea010da638ffbb437c37a6d32ddc99b568 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 11 Jan 2013 21:07:26 +0000 Subject: Bring Machina back into the fold (fix #844). git-svn-id: http://svn.drobilla.net/lad/trunk/machina@4921 a436a847-0d15-0410-975c-d299462d15a1 --- src/gui/MachinaCanvas.cpp | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'src/gui/MachinaCanvas.cpp') diff --git a/src/gui/MachinaCanvas.cpp b/src/gui/MachinaCanvas.cpp index da03cd9..57cffc9 100644 --- a/src/gui/MachinaCanvas.cpp +++ b/src/gui/MachinaCanvas.cpp @@ -17,7 +17,6 @@ #include -#include "raul/log.hpp" #include "raul/SharedPtr.hpp" #include "raul/TimeStamp.hpp" @@ -40,6 +39,9 @@ MachinaCanvas::MachinaCanvas(MachinaGUI* app, int width, int height) , _app(app) { widget().grab_focus(); + + signal_event.connect( + sigc::mem_fun(this, &MachinaCanvas::on_event)); } bool @@ -56,7 +58,7 @@ MachinaCanvas::node_clicked(WeakPtr item, GdkEventButton* event) _app->controller()->learn(_app->maid(), node->node()->id()); return false; - } else if (event->button == 3) { // Right click: connect/disconnect + } else if (event->button == 1) { // Left click: connect/disconnect SharedPtr last = _last_clicked.lock(); if (last) { @@ -72,7 +74,6 @@ MachinaCanvas::node_clicked(WeakPtr item, GdkEventButton* event) } else { _last_clicked = node; - node->set_fill_color(0xFF0000FF); } return true; @@ -99,7 +100,7 @@ MachinaCanvas::on_new_object(SharedPtr object) { const Machina::URIs& uris = URIs::instance(); const Raul::Atom& type = object->get(uris.rdf_type); - if (type == "machina:Node") { + if (type.get() == uris.machina_Node) { SharedPtr view( new NodeView(_app->window(), *this, object, object->get(uris.machina_canvas_x).get_float(), @@ -108,13 +109,13 @@ MachinaCanvas::on_new_object(SharedPtr object) //if ( ! node->enter_action() && ! node->exit_action() ) // view->set_base_color(0x101010FF); - view->signal_click().connect( + view->signal_clicked().connect( sigc::bind<0>(sigc::mem_fun(this, &MachinaCanvas::node_clicked), WeakPtr(view))); object->set_view(view); - } else if (type == "machina:Edge") { + } else if (type.get() == uris.machina_Edge) { SharedPtr tail = _app->client_model()->find( object->get(uris.machina_tail_id).get_int32()); SharedPtr head = _app->client_model()->find( @@ -129,7 +130,7 @@ MachinaCanvas::on_new_object(SharedPtr object) object->set_view(view); } else { - Raul::error << "Unknown object type " << type << std::endl; + std::cerr << "Unknown object type" << std::endl; } } @@ -137,12 +138,12 @@ void MachinaCanvas::on_erase_object(SharedPtr object) { const Raul::Atom& type = object->get(URIs::instance().rdf_type); - if (type == "machina:Node") { + if (type.get() == URIs::instance().machina_Node) { // Destruction of the view will remove from the canvas - } else if (type == "machina:Edge") { + } else if (type.get() == URIs::instance().machina_Edge) { object->set_view(SharedPtr()); } else { - Raul::error << "Unknown object type " << type << std::endl; + std::cerr << "Unknown object type" << std::endl; } } @@ -150,10 +151,11 @@ void MachinaCanvas::action_create_node(double x, double y) { Machina::Client::ClientObject obj(0); - obj.set(URIs::instance().rdf_type, "machina:Node"); - obj.set(URIs::instance().machina_canvas_x, Raul::Atom((float)x)); - obj.set(URIs::instance().machina_canvas_y, Raul::Atom((float)y)); - obj.set(URIs::instance().machina_duration, Raul::Atom((float)1.0)); + obj.set(URIs::instance().rdf_type, + _app->forge().make_urid(URIs::instance().machina_Node)); + obj.set(URIs::instance().machina_canvas_x, _app->forge().make((float)x)); + obj.set(URIs::instance().machina_canvas_y, _app->forge().make((float)y)); + obj.set(URIs::instance().machina_duration, _app->forge().make(1.0f)); _app->controller()->create(obj); } -- cgit v1.2.1