From c58f17efff27f959147dfd231a8b059950d06e69 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 27 Nov 2008 22:50:32 +0000 Subject: MIDI learn for control node. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@1806 a436a847-0d15-0410-975c-d299462d15a1 --- src/gui/NodeMenu.cpp | 11 +++++++++++ src/gui/NodeMenu.hpp | 1 + src/gui/ingen_gui.glade | 14 ++++++++++++++ 3 files changed, 26 insertions(+) (limited to 'src/gui') diff --git a/src/gui/NodeMenu.cpp b/src/gui/NodeMenu.cpp index 43c0bf75..accf8ef1 100644 --- a/src/gui/NodeMenu.cpp +++ b/src/gui/NodeMenu.cpp @@ -36,11 +36,13 @@ NodeMenu::NodeMenu(BaseObjectType* cobject, const Glib::RefPtrget_widget("node_menu", node_menu); + xml->get_widget("node_learn_menuitem", _learn_menuitem); xml->get_widget("node_controls_menuitem", _controls_menuitem); xml->get_widget("node_popup_gui_menuitem", _popup_gui_menuitem); xml->get_widget("node_embed_gui_menuitem", _embed_gui_menuitem); xml->get_widget("node_randomize_menuitem", _randomize_menuitem); + node_menu->remove(*_learn_menuitem); node_menu->remove(*_controls_menuitem); node_menu->remove(*_popup_gui_menuitem); node_menu->remove(*_embed_gui_menuitem); @@ -51,6 +53,7 @@ NodeMenu::NodeMenu(BaseObjectType* cobject, const Glib::RefPtr node) { ObjectMenu::init(node); + _learn_menuitem->signal_activate().connect(sigc::mem_fun(this, + &NodeMenu::on_menu_learn)); + _controls_menuitem->signal_activate().connect(sigc::bind( sigc::mem_fun(App::instance().window_factory(), &WindowFactory::present_controls), node)); @@ -84,6 +90,11 @@ NodeMenu::init(SharedPtr node) else _randomize_menuitem->hide(); + if (plugin->uri() == "http://drobilla.net/ns/ingen#control_node") + _learn_menuitem->show(); + else + _learn_menuitem->hide(); + _enable_signal = true; } diff --git a/src/gui/NodeMenu.hpp b/src/gui/NodeMenu.hpp index d31aded2..c37dc415 100644 --- a/src/gui/NodeMenu.hpp +++ b/src/gui/NodeMenu.hpp @@ -60,6 +60,7 @@ protected: void on_menu_embed_gui(); void on_menu_randomize(); + Gtk::MenuItem* _learn_menuitem; Gtk::MenuItem* _controls_menuitem; Gtk::MenuItem* _popup_gui_menuitem; Gtk::CheckMenuItem* _embed_gui_menuitem; diff --git a/src/gui/ingen_gui.glade b/src/gui/ingen_gui.glade index cabf3377..402e5466 100644 --- a/src/gui/ingen_gui.glade +++ b/src/gui/ingen_gui.glade @@ -3266,6 +3266,20 @@ Thank you for contributing. True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Learn from the next received event + _Learn + True + + + gtk-media-record + + + + True -- cgit v1.2.1