diff options
author | David Robillard <d@drobilla.net> | 2007-12-05 07:31:01 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-12-05 07:31:01 +0000 |
commit | f673a148c7104b3aaee4b1332a3631ac15f5f769 (patch) | |
tree | 1939bcee973cc8a1feabccda4730d9ee379e7d0d /src/gui/MachinaGUI.cpp | |
parent | 8e6c991346fbe7d578b02722fbe7f292c9747187 (diff) | |
download | machina-f673a148c7104b3aaee4b1332a3631ac15f5f769.tar.gz machina-f673a148c7104b3aaee4b1332a3631ac15f5f769.tar.bz2 machina-f673a148c7104b3aaee4b1332a3631ac15f5f769.zip |
Add preliminary mutation to machina (only random edge probability mutation so far).
git-svn-id: http://svn.drobilla.net/lad/machina@951 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/gui/MachinaGUI.cpp')
-rw-r--r-- | src/gui/MachinaGUI.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/gui/MachinaGUI.cpp b/src/gui/MachinaGUI.cpp index 2e383ec..6c94211 100644 --- a/src/gui/MachinaGUI.cpp +++ b/src/gui/MachinaGUI.cpp @@ -24,6 +24,7 @@ #include <libglademm/xml.h> #include <redlandmm/Model.hpp> #include <machina/Machine.hpp> +#include <machina/MachineMutation.hpp> #include <machina/SMFDriver.hpp> #include "GladeXml.hpp" #include "MachinaGUI.hpp" @@ -31,6 +32,8 @@ #include "NodeView.hpp" #include "EdgeView.hpp" +using namespace Machina; + MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) : _refresh(false), @@ -69,6 +72,9 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) xml->get_widget("zoom_normal_but", _zoom_normal_button); xml->get_widget("zoom_full_but", _zoom_full_button); xml->get_widget("arrange_but", _arrange_button); + xml->get_widget("add_edge_but", _add_edge_button); + xml->get_widget("remove_edge_but", _remove_edge_button); + xml->get_widget("adjust_edge_but", _adjust_edge_button); _canvas_scrolledwindow->add(*_canvas); _canvas_scrolledwindow->signal_event().connect(sigc::mem_fun(this, @@ -121,6 +127,13 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) sigc::mem_fun(this, &MachinaGUI::quantize_changed)); _quantize_spinbutton->signal_changed().connect( sigc::mem_fun(this, &MachinaGUI::quantize_changed)); + + _add_edge_button->signal_clicked().connect( + sigc::mem_fun(this, &MachinaGUI::add_edge)); + _remove_edge_button->signal_clicked().connect( + sigc::mem_fun(this, &MachinaGUI::remove_edge)); + _adjust_edge_button->signal_clicked().connect( + sigc::mem_fun(this, &MachinaGUI::adjust_edge)); connect_widgets(); @@ -198,6 +211,28 @@ MachinaGUI::arrange() _canvas->arrange(_menu_view_time_edges->get_active()); } + +void +MachinaGUI::add_edge() +{ + Mutation::AddEdge::mutate(*_engine->machine().get()); +} + + +void +MachinaGUI::remove_edge() +{ + Mutation::RemoveEdge::mutate(*_engine->machine().get()); +} + + +void +MachinaGUI::adjust_edge() +{ + Mutation::AdjustEdge::mutate(*_engine->machine().get()); + _canvas->update_edges(); +} + void MachinaGUI::update_toolbar() |