aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS3
-rw-r--r--src/jalv_gtk.c47
-rw-r--r--src/jalv_internal.h1
3 files changed, 32 insertions, 19 deletions
diff --git a/NEWS b/NEWS
index 63a9b49..c369739 100644
--- a/NEWS
+++ b/NEWS
@@ -4,8 +4,9 @@ jalv (1.4.3) unstable;
(based on patch from Robin Gareus)
* Support ui:portMap feature to allow UIs to avoid hard-coded port indices
(useful for compatibility and separately distributed UIs)
+ * Add --no-menu option for jalv.gtk
- -- David Robillard <d@drobilla.net> Fri, 01 Nov 2013 18:20:19 -0400
+ -- David Robillard <d@drobilla.net> Wed, 18 Dec 2013 22:54:27 -0500
jalv (1.4.2) stable;
diff --git a/src/jalv_gtk.c b/src/jalv_gtk.c
index 29df231..e35a9a2 100644
--- a/src/jalv_gtk.c
+++ b/src/jalv_gtk.c
@@ -89,6 +89,8 @@ jalv_init(int* argc, char*** argv, JalvOptions* opts)
"Dump plugin <=> UI communication", NULL },
{ "show-hidden", 's', 0, G_OPTION_ARG_NONE, &opts->show_hidden,
"Show controls for ports with notOnGUI property on generic UI", NULL },
+ { "no-menu", 'n', 0, G_OPTION_ARG_NONE, &opts->no_menu,
+ "Do not show Jalv menu on window", NULL },
{ "generic-ui", 'g', 0, G_OPTION_ARG_NONE, &opts->generic_ui,
"Use Jalv generic UI and not the plugin UI", NULL},
{ "buffer-size", 'b', 0, G_OPTION_ARG_INT, &opts->buffer_size,
@@ -757,21 +759,9 @@ build_control_widget(Jalv* jalv, GtkWidget* window)
}
}
-int
-jalv_open_ui(Jalv* jalv)
+static void
+build_menu(Jalv* jalv, GtkWidget* window, GtkWidget* vbox)
{
- GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- jalv->window = window;
- jalv->has_ui = TRUE;
-
- g_signal_connect(window, "destroy",
- G_CALLBACK(on_window_destroy), jalv);
-
- LilvNode* name = lilv_plugin_get_name(jalv->plugin);
- gtk_window_set_title(GTK_WINDOW(window), lilv_node_as_string(name));
- lilv_node_free(name);
-
- GtkWidget* vbox = new_box(false, 0);
GtkWidget* menu_bar = gtk_menu_bar_new();
GtkWidget* file = gtk_menu_item_new_with_mnemonic("_File");
GtkWidget* file_menu = gtk_menu_new();
@@ -799,10 +789,6 @@ jalv_open_ui(Jalv* jalv)
jalv_load_presets(jalv, add_preset_to_menu, presets_menu);
- gtk_window_set_role(GTK_WINDOW(window), "plugin_ui");
- gtk_container_add(GTK_CONTAINER(window), vbox);
- gtk_box_pack_start(GTK_BOX(vbox), menu_bar, FALSE, FALSE, 0);
-
g_signal_connect(G_OBJECT(quit), "activate",
G_CALLBACK(on_quit_activate), window);
@@ -812,6 +798,31 @@ jalv_open_ui(Jalv* jalv)
g_signal_connect(G_OBJECT(save_preset), "activate",
G_CALLBACK(on_save_preset_activate), jalv);
+ gtk_box_pack_start(GTK_BOX(vbox), menu_bar, FALSE, FALSE, 0);
+}
+
+int
+jalv_open_ui(Jalv* jalv)
+{
+ GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ jalv->window = window;
+ jalv->has_ui = TRUE;
+
+ g_signal_connect(window, "destroy",
+ G_CALLBACK(on_window_destroy), jalv);
+
+ LilvNode* name = lilv_plugin_get_name(jalv->plugin);
+ gtk_window_set_title(GTK_WINDOW(window), lilv_node_as_string(name));
+ lilv_node_free(name);
+
+ GtkWidget* vbox = new_box(false, 0);
+ gtk_window_set_role(GTK_WINDOW(window), "plugin_ui");
+ gtk_container_add(GTK_CONTAINER(window), vbox);
+
+ if (!jalv->opts.no_menu) {
+ build_menu(jalv, window, vbox);
+ }
+
/* 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);
diff --git a/src/jalv_internal.h b/src/jalv_internal.h
index 5bcb175..4952d4f 100644
--- a/src/jalv_internal.h
+++ b/src/jalv_internal.h
@@ -92,6 +92,7 @@ typedef struct {
int dump; ///< Dump communication iff true
int generic_ui; ///< Use generic UI iff true
int show_hidden; ///< Show controls for notOnGUI ports
+ int no_menu; ///< Hide menu iff true
} JalvOptions;
typedef struct {