aboutsummaryrefslogtreecommitdiffstats
path: root/src/jalv_gtk.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-08-02 22:13:57 +0000
committerDavid Robillard <d@drobilla.net>2012-08-02 22:13:57 +0000
commit551ba602e3123a4efdf2fb32d0e32a0c5506503a (patch)
treee7602b5bb8ecfe14ad2d1d5c9cac0377c937e5b5 /src/jalv_gtk.c
parent1fbd23858f60929f1e361aab518d9064029b9d5d (diff)
downloadjalv-551ba602e3123a4efdf2fb32d0e32a0c5506503a.tar.gz
jalv-551ba602e3123a4efdf2fb32d0e32a0c5506503a.tar.bz2
jalv-551ba602e3123a4efdf2fb32d0e32a0c5506503a.zip
Pass parent widget to suil_instance_new.
git-svn-id: http://svn.drobilla.net/lad/trunk/jalv@4600 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/jalv_gtk.c')
-rw-r--r--src/jalv_gtk.c30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/jalv_gtk.c b/src/jalv_gtk.c
index f385efa..32d361c 100644
--- a/src/jalv_gtk.c
+++ b/src/jalv_gtk.c
@@ -94,15 +94,13 @@ jalv_init(int* argc, char*** argv, JalvOptions* opts)
return !err;
}
-LilvNode*
+const char*
jalv_native_ui_type(Jalv* jalv)
{
#if GTK_MAJOR_VERSION == 2
- return lilv_new_uri(jalv->world,
- "http://lv2plug.in/ns/extensions/ui#GtkUI");
+ return "http://lv2plug.in/ns/extensions/ui#GtkUI";
#elif GTK_MAJOR_VERSION == 3
- return lilv_new_uri(jalv->world,
- "http://lv2plug.in/ns/extensions/ui#Gtk3UI");
+ return "http://lv2plug.in/ns/extensions/ui#Gtk3UI";
#else
return NULL;
#endif
@@ -544,8 +542,7 @@ build_control_widget(Jalv* jalv, GtkWidget* window)
}
int
-jalv_open_ui(Jalv* jalv,
- SuilInstance* instance)
+jalv_open_ui(Jalv* jalv)
{
GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
jalv->window = window;
@@ -597,11 +594,20 @@ jalv_open_ui(Jalv* jalv,
g_signal_connect(G_OBJECT(save_preset), "activate",
G_CALLBACK(on_save_preset_activate), jalv);
- if (instance && !jalv->opts.generic_ui) {
- GtkWidget* alignment = gtk_alignment_new(0.5, 0.5, 1.0, 1.0);
- GtkWidget* widget = (GtkWidget*)suil_instance_get_widget(instance);
+ /* Create/show alignment to contain UI (whether custom or generic) */
+ GtkWidget* alignment = gtk_alignment_new(0.5, 0.5, 1.0, 1.0);
+ gtk_box_pack_start(GTK_BOX(vbox), alignment, TRUE, TRUE, 0);
+ gtk_widget_show(alignment);
+
+ /* Attempt to instantiate custom UI if necessary */
+ if (jalv->ui && !jalv->opts.generic_ui) {
+ jalv_ui_instantiate(jalv, jalv_native_ui_type(jalv), alignment);
+ }
+
+ if (jalv->ui_instance) {
+ GtkWidget* widget = (GtkWidget*)suil_instance_get_widget(
+ jalv->ui_instance);
- gtk_box_pack_start(GTK_BOX(vbox), alignment, TRUE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(alignment), widget);
gtk_window_set_resizable(GTK_WINDOW(window), jalv_ui_is_resizable(jalv));
gtk_widget_show_all(vbox);
@@ -613,7 +619,7 @@ jalv_open_ui(Jalv* jalv,
gtk_scrolled_window_set_policy(
GTK_SCROLLED_WINDOW(scroll_win),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_box_pack_start(GTK_BOX(vbox), scroll_win, TRUE, TRUE, 0);
+ gtk_container_add(GTK_CONTAINER(alignment), scroll_win);
gtk_widget_show_all(vbox);
GtkRequisition controls_size, box_size;