diff options
author | David Robillard <d@drobilla.net> | 2013-01-12 23:38:03 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-01-12 23:38:03 +0000 |
commit | 1dad5b5aaa139993fe19e266d08dfc55844e6804 (patch) | |
tree | fd2bed5971853b429f1b74369a778a4d608e6925 /src/gui | |
parent | 8f048287d06afd7d3c2e90f4a503d7666a9cb6fa (diff) | |
download | machina-1dad5b5aaa139993fe19e266d08dfc55844e6804.tar.gz machina-1dad5b5aaa139993fe19e266d08dfc55844e6804.tar.bz2 machina-1dad5b5aaa139993fe19e266d08dfc55844e6804.zip |
Remove Raul::SharedPtr and switch to std::shared_ptr.
Use project local short type aliases for shared_ptr and friends.
Move Raul::Disposable and Raul::Manageable into Raul::Maid.
Use sets to store machina nodes and edges to avoid O(n) searches.
git-svn-id: http://svn.drobilla.net/lad/trunk/machina@4939 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/EdgeView.cpp | 14 | ||||
-rw-r--r-- | src/gui/EdgeView.hpp | 16 | ||||
-rw-r--r-- | src/gui/MachinaCanvas.cpp | 56 | ||||
-rw-r--r-- | src/gui/MachinaCanvas.hpp | 41 | ||||
-rw-r--r-- | src/gui/MachinaGUI.cpp | 75 | ||||
-rw-r--r-- | src/gui/MachinaGUI.hpp | 46 | ||||
-rw-r--r-- | src/gui/NodePropertiesWindow.cpp | 19 | ||||
-rw-r--r-- | src/gui/NodePropertiesWindow.hpp | 21 | ||||
-rw-r--r-- | src/gui/NodeView.cpp | 17 | ||||
-rw-r--r-- | src/gui/NodeView.hpp | 30 | ||||
-rw-r--r-- | src/gui/WidgetFactory.hpp | 6 | ||||
-rw-r--r-- | src/gui/main.cpp | 13 |
12 files changed, 204 insertions, 150 deletions
diff --git a/src/gui/EdgeView.cpp b/src/gui/EdgeView.cpp index afa8cfd..dd28a41 100644 --- a/src/gui/EdgeView.cpp +++ b/src/gui/EdgeView.cpp @@ -25,7 +25,8 @@ #include "MachinaGUI.hpp" #include "NodeView.hpp" -using Machina::URIs; +namespace Machina { +namespace GUI { /* probability colour stuff */ @@ -63,10 +64,10 @@ inline static uint32_t edge_color(float prob) using namespace Ganv; -EdgeView::EdgeView(Canvas& canvas, - SharedPtr<NodeView> src, - SharedPtr<NodeView> dst, - SharedPtr<Machina::Client::ClientObject> edge) +EdgeView::EdgeView(Canvas& canvas, + SPtr<NodeView> src, + SPtr<NodeView> dst, + SPtr<Machina::Client::ClientObject> edge) : Ganv::Edge(canvas, src.get(), dst.get(), 0x9FA0A0F4, true, false) , _edge(edge) { @@ -132,3 +133,6 @@ EdgeView::on_property(Machina::URIInt key, const Raul::Atom& value) set_color(edge_color(value.get_float())); } } + +} // namespace Machina +} // namespace GUI diff --git a/src/gui/EdgeView.hpp b/src/gui/EdgeView.hpp index b532071..bafcb6b 100644 --- a/src/gui/EdgeView.hpp +++ b/src/gui/EdgeView.hpp @@ -24,6 +24,9 @@ #include "machina/types.hpp" +namespace Machina { +namespace GUI { + class NodeView; class EdgeView @@ -31,10 +34,10 @@ class EdgeView , public Machina::Client::ClientObject::View { public: - EdgeView(Ganv::Canvas& canvas, - SharedPtr<NodeView> src, - SharedPtr<NodeView> dst, - SharedPtr<Machina::Client::ClientObject> edge); + EdgeView(Ganv::Canvas& canvas, + SPtr<NodeView> src, + SPtr<NodeView> dst, + SPtr<Machina::Client::ClientObject> edge); void show_label(bool show); @@ -46,7 +49,10 @@ private: float probability() const; - SharedPtr<Machina::Client::ClientObject> _edge; + SPtr<Machina::Client::ClientObject> _edge; }; +} // namespace Machina +} // namespace GUI + #endif // MACHINA_EDGEVIEW_HPP diff --git a/src/gui/MachinaCanvas.cpp b/src/gui/MachinaCanvas.cpp index 2501cec..95a3f14 100644 --- a/src/gui/MachinaCanvas.cpp +++ b/src/gui/MachinaCanvas.cpp @@ -17,13 +17,13 @@ #include <map> -#include "raul/SharedPtr.hpp" #include "raul/TimeStamp.hpp" -#include "machina/Engine.hpp" -#include "machina/Controller.hpp" -#include "client/ClientObject.hpp" #include "client/ClientModel.hpp" +#include "client/ClientObject.hpp" +#include "machina/Controller.hpp" +#include "machina/Engine.hpp" +#include "machina/types.hpp" #include "EdgeView.hpp" #include "MachinaCanvas.hpp" @@ -32,7 +32,9 @@ using namespace Raul; using namespace Ganv; -using namespace Machina; + +namespace Machina { +namespace GUI { MachinaCanvas::MachinaCanvas(MachinaGUI* app, int width, int height) : Canvas(width, height) @@ -45,9 +47,9 @@ MachinaCanvas::MachinaCanvas(MachinaGUI* app, int width, int height) } bool -MachinaCanvas::node_clicked(WeakPtr<NodeView> item, GdkEventButton* event) +MachinaCanvas::node_clicked(WPtr<NodeView> item, GdkEventButton* event) { - SharedPtr<NodeView> node = PtrCast<NodeView>(item.lock()); + SPtr<NodeView> node = dynamic_ptr_cast<NodeView>(item.lock()); if (!node) { return false; } @@ -63,7 +65,7 @@ MachinaCanvas::node_clicked(WeakPtr<NodeView> item, GdkEventButton* event) } else if (event->button == 1) { // Left click: connect/disconnect - SharedPtr<NodeView> last = _last_clicked.lock(); + SPtr<NodeView> last = _last_clicked.lock(); if (last) { if (node != last) { @@ -101,7 +103,7 @@ MachinaCanvas::on_event(GdkEvent* event) } void -MachinaCanvas::on_new_object(SharedPtr<Client::ClientObject> object) +MachinaCanvas::on_new_object(SPtr<Client::ClientObject> object) { const Machina::URIs& uris = URIs::instance(); const Raul::Atom& type = object->get(uris.rdf_type); @@ -110,7 +112,7 @@ MachinaCanvas::on_new_object(SharedPtr<Client::ClientObject> object) } if (type.get<URIInt>() == uris.machina_Node) { - SharedPtr<NodeView> view( + SPtr<NodeView> view( new NodeView(_app->window(), *this, object, object->get(uris.machina_canvas_x).get_float(), object->get(uris.machina_canvas_y).get_float())); @@ -120,28 +122,25 @@ MachinaCanvas::on_new_object(SharedPtr<Client::ClientObject> object) view->signal_clicked().connect( sigc::bind<0>(sigc::mem_fun(this, &MachinaCanvas::node_clicked), - WeakPtr<NodeView>(view))); + WPtr<NodeView>(view))); object->set_view(view); } else if (type.get<URIInt>() == uris.machina_Edge) { - SharedPtr<Machina::Client::ClientObject> tail - = _app->client_model()->find( - object->get(uris.machina_tail_id).get_int32()); - SharedPtr<Machina::Client::ClientObject> head - = _app->client_model()->find( - object->get(uris.machina_head_id).get_int32()); + SPtr<Machina::Client::ClientObject> tail = _app->client_model()->find( + object->get(uris.machina_tail_id).get_int32()); + SPtr<Machina::Client::ClientObject> head = _app->client_model()->find( + object->get(uris.machina_head_id).get_int32()); if (!tail || !head) { std::cerr << "Invalid arc" << std::endl; return; } - SharedPtr<NodeView> tail_view = PtrCast<NodeView>(tail->view()); - SharedPtr<NodeView> head_view = PtrCast<NodeView>(head->view()); + SPtr<NodeView> tail_view = dynamic_ptr_cast<NodeView>(tail->view()); + SPtr<NodeView> head_view = dynamic_ptr_cast<NodeView>(head->view()); - SharedPtr<EdgeView> view( - new EdgeView(*this, tail_view, head_view, object)); + SPtr<EdgeView> view(new EdgeView(*this, tail_view, head_view, object)); object->set_view(view); @@ -151,13 +150,13 @@ MachinaCanvas::on_new_object(SharedPtr<Client::ClientObject> object) } void -MachinaCanvas::on_erase_object(SharedPtr<Client::ClientObject> object) +MachinaCanvas::on_erase_object(SPtr<Client::ClientObject> object) { const Raul::Atom& type = object->get(URIs::instance().rdf_type); if (type.get<URIInt>() == URIs::instance().machina_Node) { // Destruction of the view will remove from the canvas } else if (type.get<URIInt>() == URIs::instance().machina_Edge) { - object->set_view(SharedPtr<Client::ClientObject::View>()); + object->set_view(SPtr<Client::ClientObject::View>()); } else { std::cerr << "Unknown object type" << std::endl; } @@ -176,15 +175,18 @@ MachinaCanvas::action_create_node(double x, double y) } void -MachinaCanvas::action_connect(boost::shared_ptr<NodeView> src, - boost::shared_ptr<NodeView> head) +MachinaCanvas::action_connect(SPtr<NodeView> src, + SPtr<NodeView> head) { _app->controller()->connect(src->node()->id(), head->node()->id()); } void -MachinaCanvas::action_disconnect(boost::shared_ptr<NodeView> src, - boost::shared_ptr<NodeView> head) +MachinaCanvas::action_disconnect(SPtr<NodeView> src, + SPtr<NodeView> head) { _app->controller()->disconnect(src->node()->id(), head->node()->id()); } + +} // namespace Machina +} // namespace GUI diff --git a/src/gui/MachinaCanvas.hpp b/src/gui/MachinaCanvas.hpp index 4f190fd..a9ca5b9 100644 --- a/src/gui/MachinaCanvas.hpp +++ b/src/gui/MachinaCanvas.hpp @@ -19,53 +19,56 @@ #define MACHINA_CANVAS_HPP_HPP #include <string> -#include "raul/SharedPtr.hpp" -#include "raul/WeakPtr.hpp" + #include "ganv/Canvas.hpp" +#include "machina/types.hpp" using namespace Ganv; +namespace Machina { + +namespace Client { class ClientObject; } + +namespace GUI { + class MachinaGUI; class NodeView; -namespace Machina { -namespace Client { -class ClientObject; -} -} - class MachinaCanvas : public Canvas { public: MachinaCanvas(MachinaGUI* app, int width, int height); - //void build(SharedPtr<const Machina::Machine> machine, bool show_labels); + //void build(SPtr<const Machina::Machine> machine, bool show_labels); //void update_edges(); - void on_new_object(SharedPtr<Machina::Client::ClientObject> object); - void on_erase_object(SharedPtr<Machina::Client::ClientObject> object); + void on_new_object(SPtr<Machina::Client::ClientObject> object); + void on_erase_object(SPtr<Machina::Client::ClientObject> object); MachinaGUI* app() { return _app; } protected: bool on_event(GdkEvent* event); - bool node_clicked(WeakPtr<NodeView> item, GdkEventButton* ev); + bool node_clicked(WPtr<NodeView> item, GdkEventButton* ev); private: - //SharedPtr<NodeView> create_node_view(SharedPtr<Machina::Node> node); + //SPtr<NodeView> create_node_view(SPtr<Machina::Node> node); void action_create_node(double x, double y); - void action_connect(SharedPtr<NodeView> port1, - SharedPtr<NodeView> port2); + void action_connect(SPtr<NodeView> port1, + SPtr<NodeView> port2); - void action_disconnect(SharedPtr<NodeView> port1, - SharedPtr<NodeView> port2); + void action_disconnect(SPtr<NodeView> port1, + SPtr<NodeView> port2); - MachinaGUI* _app; - WeakPtr<NodeView> _last_clicked; + MachinaGUI* _app; + WPtr<NodeView> _last_clicked; }; +} // namespace Machina +} // namespace GUI + #endif // MACHINA_CANVAS_HPP_HPP diff --git a/src/gui/MachinaGUI.cpp b/src/gui/MachinaGUI.cpp index 6e3b188..f162ebd 100644 --- a/src/gui/MachinaGUI.cpp +++ b/src/gui/MachinaGUI.cpp @@ -38,9 +38,10 @@ #include "machina/Evolver.hpp" #endif -using namespace Machina; +namespace Machina { +namespace GUI { -MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) +MachinaGUI::MachinaGUI(SPtr<Machina::Engine> engine) : _refresh(false) , _evolve(false) , _unit(TimeUnit::BEATS, 19200) @@ -49,8 +50,7 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) , _controller(new Machina::Controller(_engine, *_client_model.get())) , _maid(new Raul::Maid()) { - _canvas = boost::shared_ptr<MachinaCanvas>( - new MachinaCanvas(this, 1600*2, 1200*2)); + _canvas = SPtr<MachinaCanvas>(new MachinaCanvas(this, 1600*2, 1200*2)); Glib::RefPtr<Gtk::Builder> xml = WidgetFactory::create(); @@ -146,23 +146,30 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) _quantize_spinbutton->signal_changed().connect( sigc::mem_fun(this, &MachinaGUI::quantize_changed)); - _mutate_button->signal_clicked().connect(sigc::bind( - sigc::mem_fun(this, &MachinaGUI::random_mutation), - SharedPtr<Machine>())); - _compress_button->signal_clicked().connect(sigc::hide_return(sigc::bind( - sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 0))); - _add_node_button->signal_clicked().connect(sigc::bind( - sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 1)); - _remove_node_button->signal_clicked().connect(sigc::bind( - sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 2)); - _adjust_node_button->signal_clicked().connect(sigc::bind( - sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 3)); - _add_edge_button->signal_clicked().connect(sigc::bind( - sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 4)); - _remove_edge_button->signal_clicked().connect(sigc::bind( - sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 5)); - _adjust_edge_button->signal_clicked().connect(sigc::bind( - sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 6)); + _mutate_button->signal_clicked().connect( + sigc::bind(sigc::mem_fun(this, &MachinaGUI::random_mutation), + SPtr<Machine>())); + _compress_button->signal_clicked().connect( + sigc::hide_return(sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate), + SPtr<Machine>(), 0))); + _add_node_button->signal_clicked().connect( + sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate), + SPtr<Machine>(), 1)); + _remove_node_button->signal_clicked().connect( + sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate), + SPtr<Machine>(), 2)); + _adjust_node_button->signal_clicked().connect( + sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate), + SPtr<Machine>(), 3)); + _add_edge_button->signal_clicked().connect( + sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate), + SPtr<Machine>(), 4)); + _remove_edge_button->signal_clicked().connect( + sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate), + SPtr<Machine>(), 5)); + _adjust_edge_button->signal_clicked().connect( + sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate), + SPtr<Machine>(), 6)); connect_widgets(); @@ -177,9 +184,8 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) // Idle callback to drive the maid (collect garbage) Glib::signal_timeout().connect( - sigc::bind_return( - sigc::mem_fun(_maid.get(), &Raul::Maid::cleanup), - true), + sigc::bind_return(sigc::mem_fun(_maid.get(), &Raul::Maid::cleanup), + true), 1000); // Idle callback to update node states @@ -289,16 +295,16 @@ void MachinaGUI::evolve_toggled() { if (_evolve_button->get_active()) { - _evolver = SharedPtr<Evolver>( + _evolver = SPtr<Evolver>( new Evolver(_unit, _target_filename, _engine->machine())); _evolve = true; stop_clicked(); - _engine->driver()->set_machine(SharedPtr<Machine>()); + _engine->driver()->set_machine(SPtr<Machine>()); _evolver->start(); } else { _evolver->stop(); _evolve = false; - SharedPtr<Machine> new_machine = SharedPtr<Machine>( + SPtr<Machine> new_machine = SPtr<Machine>( new Machine(*_evolver->best())); _engine->driver()->set_machine(new_machine); _canvas->build(new_machine, _menu_view_labels->get_active()); @@ -309,7 +315,7 @@ MachinaGUI::evolve_toggled() #endif void -MachinaGUI::random_mutation(SharedPtr<Machine> machine) +MachinaGUI::random_mutation(SPtr<Machine> machine) { if (!machine) machine = _engine->machine(); @@ -318,7 +324,7 @@ MachinaGUI::random_mutation(SharedPtr<Machine> machine) } void -MachinaGUI::mutate(SharedPtr<Machine> machine, unsigned mutation) +MachinaGUI::mutate(SPtr<Machine> machine, unsigned mutation) { #if 0 if (!machine) @@ -423,7 +429,7 @@ MachinaGUI::menu_file_open() const int result = dialog.run(); if (result == Gtk::RESPONSE_OK) { - SharedPtr<Machina::Machine> new_machine = _engine->load_machine(dialog.get_uri()); + SPtr<Machina::Machine> new_machine = _engine->load_machine(dialog.get_uri()); if (new_machine) { _canvas->destroy(); _controller->announce(new_machine); @@ -530,7 +536,7 @@ MachinaGUI::menu_import_midi() const double length_dbl = length_sb->get_value_as_int(); const Raul::TimeStamp length(_unit, length_dbl); - SharedPtr<Machina::Machine> machine = _engine->load_machine_midi( + SPtr<Machina::Machine> machine = _engine->load_machine_midi( dialog.get_filename(), 0.0, length); if (machine) { @@ -689,13 +695,16 @@ MachinaGUI::play_toggled() } void -MachinaGUI::on_new_object(SharedPtr<Client::ClientObject> object) +MachinaGUI::on_new_object(SPtr<Client::ClientObject> object) { _canvas->on_new_object(object); } void -MachinaGUI::on_erase_object(SharedPtr<Client::ClientObject> object) +MachinaGUI::on_erase_object(SPtr<Client::ClientObject> object) { _canvas->on_erase_object(object); } + +} // namespace Machina +} // namespace GUI diff --git a/src/gui/MachinaGUI.hpp b/src/gui/MachinaGUI.hpp index c48ac93..f9b0857 100644 --- a/src/gui/MachinaGUI.hpp +++ b/src/gui/MachinaGUI.hpp @@ -22,52 +22,55 @@ #include <gtkmm.h> -#include "raul/Maid.hpp" -#include "raul/SharedPtr.hpp" #include "raul/TimeStamp.hpp" +#include "machina/types.hpp" #include "machina_config.h" using namespace std; namespace Machina { + class Machine; class Engine; class Evolver; class Controller; + namespace Client { -class ClientModel; class ClientObject; -} +class ClientModel; +class ClientObject; } +namespace GUI { + class MachinaCanvas; class MachinaGUI { public: - MachinaGUI(SharedPtr<Machina::Engine> engine); + MachinaGUI(SPtr<Machina::Engine> engine); ~MachinaGUI(); - boost::shared_ptr<MachinaCanvas> canvas() { return _canvas; } - boost::shared_ptr<Machina::Engine> engine() { return _engine; } + SPtr<MachinaCanvas> canvas() { return _canvas; } + SPtr<Machina::Engine> engine() { return _engine; } Raul::Forge& forge() { return _forge; } - SharedPtr<Raul::Maid> maid() { return _maid; } + SPtr<Raul::Maid> maid() { return _maid; } Gtk::Window* window() { return _main_window; } void attach(); void quit() { _main_window->hide(); } - SharedPtr<Machina::Controller> controller() { return _controller; } + SPtr<Machina::Controller> controller() { return _controller; } inline void queue_refresh() { _refresh = true; } - void on_new_object(SharedPtr<Machina::Client::ClientObject> object); - void on_erase_object(SharedPtr<Machina::Client::ClientObject> object); + void on_new_object(SPtr<Machina::Client::ClientObject> object); + void on_erase_object(SPtr<Machina::Client::ClientObject> object); - SharedPtr<Machina::Client::ClientModel> client_model() { + SPtr<Machina::Client::ClientModel> client_model() { return _client_model; } @@ -88,8 +91,8 @@ protected: void arrange(); void load_target_clicked(); - void random_mutation(SharedPtr<Machina::Machine> machine); - void mutate(SharedPtr<Machina::Machine> machine, unsigned mutation); + void random_mutation(SPtr<Machina::Machine> machine); + void mutate(SPtr<Machina::Machine> machine, unsigned mutation); void zoom(double z); void update_toolbar(); @@ -116,13 +119,13 @@ protected: Raul::TimeUnit _unit; - SharedPtr<MachinaCanvas> _canvas; - SharedPtr<Machina::Engine> _engine; - SharedPtr<Machina::Client::ClientModel> _client_model; - SharedPtr<Machina::Controller> _controller; + SPtr<MachinaCanvas> _canvas; + SPtr<Machina::Engine> _engine; + SPtr<Machina::Client::ClientModel> _client_model; + SPtr<Machina::Controller> _controller; - SharedPtr<Raul::Maid> _maid; - SharedPtr<Machina::Evolver> _evolver; + SPtr<Raul::Maid> _maid; + SPtr<Machina::Evolver> _evolver; Raul::Forge _forge; @@ -171,4 +174,7 @@ protected: Gtk::ToolButton* _adjust_edge_button; }; +} // namespace Machina +} // namespace GUI + #endif // MACHINA_GUI_HPP diff --git a/src/gui/NodePropertiesWindow.cpp b/src/gui/NodePropertiesWindow.cpp index 9a76420..a58d649 100644 --- a/src/gui/NodePropertiesWindow.cpp +++ b/src/gui/NodePropertiesWindow.cpp @@ -20,7 +20,9 @@ #include "WidgetFactory.hpp" using namespace std; -using namespace Machina; + +namespace Machina { +namespace GUI { NodePropertiesWindow* NodePropertiesWindow::_instance = NULL; @@ -57,9 +59,9 @@ NodePropertiesWindow::apply_clicked() _node->set_enter_action(ActionFactory::note_on(note)); _node->set_exit_action(ActionFactory::note_off(note)); } else { - SharedPtr<MidiAction> action = PtrCast<MidiAction>(_node->enter_action()); + SPtr<MidiAction> action = dynamic_ptr_cast<MidiAction>(_node->enter_action()); action->event()[1] = note; - action = PtrCast<MidiAction>(_node->exit_action()); + action = dynamic_ptr_cast<MidiAction>(_node->exit_action()); action->event()[1] = note; } @@ -86,11 +88,11 @@ NodePropertiesWindow::ok_clicked() } void -NodePropertiesWindow::set_node(SharedPtr<Machina::Client::ClientObject> node) +NodePropertiesWindow::set_node(SPtr<Machina::Client::ClientObject> node) { _node = node; #if 0 - SharedPtr<MidiAction> enter_action = PtrCast<MidiAction>(node->enter_action()); + SPtr<MidiAction> enter_action = dynamic_ptr_cast<MidiAction>(node->enter_action()); if (enter_action && ( enter_action->event_size() > 1) && ( (enter_action->event()[0] & 0xF0) == 0x90) ) { _note_spinbutton->set_value(enter_action->event()[1]); @@ -106,8 +108,8 @@ NodePropertiesWindow::set_node(SharedPtr<Machina::Client::ClientObject> node) } void -NodePropertiesWindow::present(Gtk::Window* parent, - SharedPtr<Machina::Client::ClientObject> node) +NodePropertiesWindow::present(Gtk::Window* parent, + SPtr<Machina::Client::ClientObject> node) { if (!_instance) { Glib::RefPtr<Gtk::Builder> xml = WidgetFactory::create(); @@ -122,3 +124,6 @@ NodePropertiesWindow::present(Gtk::Window* parent, _instance->set_node(node); _instance->show(); } + +} // namespace Machina +} // namespace GUI diff --git a/src/gui/NodePropertiesWindow.hpp b/src/gui/NodePropertiesWindow.hpp index 7d395c9..78a5285 100644 --- a/src/gui/NodePropertiesWindow.hpp +++ b/src/gui/NodePropertiesWindow.hpp @@ -20,13 +20,13 @@ #include <gtkmm.h> -#include "raul/SharedPtr.hpp" +#include "machina/types.hpp" namespace Machina { -namespace Client { -class ClientObject; -} -} + +namespace Client { class ClientObject; } + +namespace GUI { class NodePropertiesWindow : public Gtk::Dialog @@ -37,11 +37,11 @@ public: ~NodePropertiesWindow(); - static void present(Gtk::Window* parent, - SharedPtr<Machina::Client::ClientObject> node); + static void present(Gtk::Window* parent, + SPtr<Machina::Client::ClientObject> node); private: - void set_node(SharedPtr<Machina::Client::ClientObject> node); + void set_node(SPtr<Machina::Client::ClientObject> node); void apply_clicked(); void cancel_clicked(); @@ -49,7 +49,7 @@ private: static NodePropertiesWindow* _instance; - SharedPtr<Machina::Client::ClientObject> _node; + SPtr<Machina::Client::ClientObject> _node; Gtk::SpinButton* _note_spinbutton; Gtk::SpinButton* _duration_spinbutton; @@ -58,4 +58,7 @@ private: Gtk::Button* _ok_button; }; +} // namespace Machina +} // namespace GUI + #endif // NODEPROPERTIESWINDOW_HPP diff --git a/src/gui/NodeView.cpp b/src/gui/NodeView.cpp index fc5377e..79258cd 100644 --- a/src/gui/NodeView.cpp +++ b/src/gui/NodeView.cpp @@ -27,13 +27,15 @@ #include "NodeView.hpp" using namespace std; -using Machina::URIs; -NodeView::NodeView(Gtk::Window* window, - Ganv::Canvas& canvas, - SharedPtr<Machina::Client::ClientObject> node, - double x, - double y) +namespace Machina { +namespace GUI { + +NodeView::NodeView(Gtk::Window* window, + Ganv::Canvas& canvas, + SPtr<Machina::Client::ClientObject> node, + double x, + double y) : Ganv::Circle(canvas, "", x, y, 20, false) , _window(window) , _node(node) @@ -172,3 +174,6 @@ NodeView::set_default_colors() set_fill_color(_default_fill_color); set_border_color(_default_border_color); } + +} // namespace Machina +} // namespace GUI diff --git a/src/gui/NodeView.hpp b/src/gui/NodeView.hpp index b0c0da4..5507a75 100644 --- a/src/gui/NodeView.hpp +++ b/src/gui/NodeView.hpp @@ -24,18 +24,21 @@ #include "machina/types.hpp" +namespace Machina { +namespace GUI { + class NodeView : public Ganv::Circle , public Machina::Client::ClientObject::View { public: - NodeView(Gtk::Window* window, - Canvas& canvas, - SharedPtr<Machina::Client::ClientObject> node, - double x, - double y); + NodeView(Gtk::Window* window, + Canvas& canvas, + SPtr<Machina::Client::ClientObject> node, + double x, + double y); - SharedPtr<Machina::Client::ClientObject> node() { return _node; } + SPtr<Machina::Client::ClientObject> node() { return _node; } void show_label(bool show); @@ -55,15 +58,18 @@ private: bool node_is(Raul::Forge& forge, Machina::URIInt key); - Gtk::Window* _window; - SharedPtr<Machina::Client::ClientObject> _node; - uint32_t _default_border_color; - uint32_t _default_fill_color; + Gtk::Window* _window; + SPtr<Machina::Client::ClientObject> _node; + uint32_t _default_border_color; + uint32_t _default_fill_color; - SharedPtr<Machina::Client::ClientObject> _enter_action; - sigc::connection _enter_action_connection; + SPtr<Machina::Client::ClientObject> _enter_action; + sigc::connection _enter_action_connection; sigc::signal<bool, GdkEventButton*> _signal_clicked; }; +} // namespace Machina +} // namespace GUI + #endif // MACHINA_NODEVIEW_HPP diff --git a/src/gui/WidgetFactory.hpp b/src/gui/WidgetFactory.hpp index 41e8200..4f54998 100644 --- a/src/gui/WidgetFactory.hpp +++ b/src/gui/WidgetFactory.hpp @@ -23,6 +23,9 @@ #include "machina_config.h" +namespace Machina { +namespace GUI { + class WidgetFactory { public: @@ -58,3 +61,6 @@ public: } }; + +} // namespace Machina +} // namespace GUI diff --git a/src/gui/main.cpp b/src/gui/main.cpp index e87e29d..25b1254 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -40,14 +40,14 @@ main(int argc, char** argv) Machina::URIs::init(); - SharedPtr<Machina::Machine> machine; + SPtr<Machina::Machine> machine; // Load machine, if given #if 0 if (argc >= 2) { const string filename = argv[1]; cout << "Building machine from MIDI file " << filename << endl; - SharedPtr<Machina::SMFDriver> file_driver(new Machina::SMFDriver()); + SPtr<Machina::SMFDriver> file_driver(new Machina::SMFDriver()); if (argc >= 3) { float q = strtof(argv[2], NULL); @@ -68,8 +68,7 @@ main(int argc, char** argv) Raul::Forge forge; if (!machine) { - machine = SharedPtr<Machine>( - new Machine(TimeUnit(TimeUnit::BEATS, 19200))); + machine = SPtr<Machine>(new Machine(TimeUnit(TimeUnit::BEATS, 19200))); } std::string driver_name = "smf"; @@ -78,13 +77,13 @@ main(int argc, char** argv) #endif // Build engine - SharedPtr<Driver> driver(Engine::new_driver(forge, driver_name, machine)); - SharedPtr<Engine> engine(new Engine(forge, driver, rdf_world)); + SPtr<Driver> driver(Engine::new_driver(forge, driver_name, machine)); + SPtr<Engine> engine(new Engine(forge, driver, rdf_world)); Gtk::Main app(argc, argv); driver->activate(); - MachinaGUI gui(engine); + GUI::MachinaGUI gui(engine); app.run(*gui.window()); |