From 397667bfaffdb622dfcf5bbbf64c49fd6a729f7e Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 25 Jul 2007 22:37:39 +0000 Subject: Build against local SLV2 too. Better configure summary output. Some trivial initial work towards on-canvas controllers. git-svn-id: http://svn.drobilla.net/lad/ingen@628 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/gui/PatchCanvas.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/libs/gui/PatchCanvas.cpp') diff --git a/src/libs/gui/PatchCanvas.cpp b/src/libs/gui/PatchCanvas.cpp index ae18e0f2..44ee72e6 100644 --- a/src/libs/gui/PatchCanvas.cpp +++ b/src/libs/gui/PatchCanvas.cpp @@ -15,10 +15,12 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "../../../config/config.h" #include "module/module.h" #include #include +#include #include "interface/EngineInterface.hpp" #include "client/PluginModel.hpp" #include "client/PatchModel.hpp" @@ -55,6 +57,8 @@ PatchCanvas::PatchCanvas(SharedPtr patch, int width, int height) Glib::RefPtr xml = GladeFactory::new_glade_reference(); xml->get_widget("canvas_menu", _menu); + xml->get_widget("canvas_menu_add_number_control", _menu_add_number_control); + xml->get_widget("canvas_menu_add_button_control", _menu_add_button_control); xml->get_widget("canvas_menu_add_audio_input", _menu_add_audio_input); xml->get_widget("canvas_menu_add_audio_output", _menu_add_audio_output); xml->get_widget("canvas_menu_add_control_input", _menu_add_control_input); @@ -67,6 +71,12 @@ PatchCanvas::PatchCanvas(SharedPtr patch, int width, int height) xml->get_widget("canvas_menu_load_patch", _menu_load_patch); xml->get_widget("canvas_menu_new_patch", _menu_new_patch); + // Add control menu items + _menu_add_number_control->signal_activate().connect( + sigc::bind(sigc::mem_fun(this, &PatchCanvas::menu_add_control), NUMBER)); + _menu_add_button_control->signal_activate().connect( + sigc::bind(sigc::mem_fun(this, &PatchCanvas::menu_add_control), BUTTON)); + // Add port menu items _menu_add_audio_input->signal_activate().connect( sigc::bind(sigc::mem_fun(this, &PatchCanvas::menu_add_port), @@ -471,10 +481,25 @@ PatchCanvas::generate_port_name(const string& base) { return name; } +void +PatchCanvas::menu_add_control(ControlType type) +{ + // FIXME: bundleify + + MetadataMap data = get_initial_data(); + float x = data["ingenuity:canvas-x"].get_float(); + float y = data["ingenuity:canvas-y"].get_float(); + + cerr << "ADD CONTROL: " << (unsigned)type << " @ " << x << ", " << y << endl; + + add_item(boost::shared_ptr( + new FlowCanvas::Ellipse(shared_from_this(), "control", x, y, 20, 20, true))); +} void PatchCanvas::menu_add_port(const string& name, const string& type, bool is_output) { + // FIXME: bundleify const Path& path = _patch->path().base() + generate_port_name(name); App::instance().engine()->create_port(path, type, is_output); MetadataMap data = get_initial_data(); -- cgit v1.2.1