summaryrefslogtreecommitdiffstats
path: root/src/libs/gui/NodeModule.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-09-22 19:43:11 +0000
committerDavid Robillard <d@drobilla.net>2007-09-22 19:43:11 +0000
commit4bd53e016b8bb912e48d77e756720516d876d5c2 (patch)
treef8d9790c5b4d7d615431c8f0fade26ae8e3ca414 /src/libs/gui/NodeModule.cpp
parentd348e467cd87bda8a75337b16fb00ea37c627bcf (diff)
downloadingen-4bd53e016b8bb912e48d77e756720516d876d5c2.tar.gz
ingen-4bd53e016b8bb912e48d77e756720516d876d5c2.tar.bz2
ingen-4bd53e016b8bb912e48d77e756720516d876d5c2.zip
LV2 UI extension updates.
LV2 GUI support in ingen. git-svn-id: http://svn.drobilla.net/lad/ingen@763 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/gui/NodeModule.cpp')
-rw-r--r--src/libs/gui/NodeModule.cpp30
1 files changed, 22 insertions, 8 deletions
diff --git a/src/libs/gui/NodeModule.cpp b/src/libs/gui/NodeModule.cpp
index e1839f37..25cc4aa1 100644
--- a/src/libs/gui/NodeModule.cpp
+++ b/src/libs/gui/NodeModule.cpp
@@ -51,9 +51,7 @@ NodeModule::NodeModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeMode
node->signal_metadata.connect(sigc::mem_fun(this, &NodeModule::set_metadata));
node->signal_polyphonic.connect(sigc::mem_fun(this, &NodeModule::set_stacked_border));
node->signal_renamed.connect(sigc::mem_fun(this, &NodeModule::rename));
-
- signal_clicked.connect(sigc::mem_fun(this, &NodeModule::on_click));
-
+
set_stacked_border(node->polyphonic());
}
@@ -123,15 +121,31 @@ NodeModule::show_control_window()
{
#ifdef HAVE_SLV2
if (_node->plugin()->type() == PluginModel::LV2) {
- GtkWidget* gui = (GtkWidget*)_node->plugin()->gui();
- if (gui) {
- cerr << "GUI!\n";
+ // FIXME: check type
+
+ SLV2UIInstance ui = _node->plugin()->ui();
+ if (ui) {
+ cerr << "Showing LV2 GUI" << endl;
+ // FIXME: leak
+ GtkWidget* c_widget = (GtkWidget*)slv2_ui_instance_get_widget(_node->plugin()->ui());
+ Gtk::Window* win = new Gtk::Window();
+ Gtk::Widget* widget = Glib::wrap(c_widget);
+ win->add(*widget);
+ widget->show_all();
+ win->show_all();
+ win->present();
+ widget->show_all();
+ win->show_all();
} else {
- cerr << "No gui :(\n";
+ cerr << "No LV2 GUI, showing builtin controls" << endl;
+ App::instance().window_factory()->present_controls(_node);
}
+ } else {
+ App::instance().window_factory()->present_controls(_node);
}
-#endif
+#else
App::instance().window_factory()->present_controls(_node);
+#endif
}