summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/NodeMenu.cpp14
-rw-r--r--src/gui/NodeMenu.hpp2
-rw-r--r--src/gui/NodeModule.cpp6
-rw-r--r--src/gui/ingen_gui.ui10
4 files changed, 32 insertions, 0 deletions
diff --git a/src/gui/NodeMenu.cpp b/src/gui/NodeMenu.cpp
index 5434f6be..08524ade 100644
--- a/src/gui/NodeMenu.cpp
+++ b/src/gui/NodeMenu.cpp
@@ -46,6 +46,7 @@ NodeMenu::NodeMenu(BaseObjectType* cobject,
{
xml->get_widget("node_popup_gui_menuitem", _popup_gui_menuitem);
xml->get_widget("node_embed_gui_menuitem", _embed_gui_menuitem);
+ xml->get_widget("node_enabled_menuitem", _enabled_menuitem);
xml->get_widget("node_randomize_menuitem", _randomize_menuitem);
}
@@ -60,6 +61,8 @@ NodeMenu::init(App& app, SPtr<const Client::BlockModel> block)
sigc::mem_fun(signal_popup_gui, &sigc::signal<void>::emit));
_embed_gui_menuitem->signal_toggled().connect(
sigc::mem_fun(this, &NodeMenu::on_menu_embed_gui));
+ _enabled_menuitem->signal_toggled().connect(
+ sigc::mem_fun(this, &NodeMenu::on_menu_enabled));
_randomize_menuitem->signal_activate().connect(
sigc::mem_fun(this, &NodeMenu::on_menu_randomize));
@@ -76,6 +79,9 @@ NodeMenu::init(App& app, SPtr<const Client::BlockModel> block)
_embed_gui_menuitem->hide();
}
+ const Atom& enabled = block->get_property(_app->uris().ingen_enabled);
+ _enabled_menuitem->set_active(!enabled.is_valid() || enabled.get<int32_t>());
+
if (plugin && plugin->type() == PluginModel::LV2) {
LilvNode* pset_Preset = lilv_new_uri(plugin->lilv_world(),
@@ -159,6 +165,14 @@ NodeMenu::on_menu_embed_gui()
}
void
+NodeMenu::on_menu_enabled()
+{
+ _app->set_property(_object->uri(),
+ _app->uris().ingen_enabled,
+ _app->forge().make(bool(_enabled_menuitem->get_active())));
+}
+
+void
NodeMenu::on_menu_randomize()
{
_app->interface()->bundle_begin();
diff --git a/src/gui/NodeMenu.hpp b/src/gui/NodeMenu.hpp
index 969afecf..d84bc84f 100644
--- a/src/gui/NodeMenu.hpp
+++ b/src/gui/NodeMenu.hpp
@@ -50,12 +50,14 @@ public:
protected:
void on_menu_disconnect();
void on_menu_embed_gui();
+ void on_menu_enabled();
void on_menu_randomize();
void on_preset_activated(const std::string& uri);
bool on_preset_clicked(const std::string& uri, GdkEventButton* ev);
Gtk::MenuItem* _popup_gui_menuitem;
Gtk::CheckMenuItem* _embed_gui_menuitem;
+ Gtk::CheckMenuItem* _enabled_menuitem;
Gtk::MenuItem* _randomize_menuitem;
Gtk::Menu* _presets_menu;
};
diff --git a/src/gui/NodeModule.cpp b/src/gui/NodeModule.cpp
index 722cfa83..40303ad7 100644
--- a/src/gui/NodeModule.cpp
+++ b/src/gui/NodeModule.cpp
@@ -438,6 +438,12 @@ NodeModule::property_changed(const Raul::URI& key, const Atom& value)
} else if (!value.get<int32_t>() && _gui_widget) {
embed_gui(false);
}
+ } else if (key == uris.ingen_enabled) {
+ if (value.get<int32_t>()) {
+ set_dash_length(0.0);
+ } else {
+ set_dash_length(5.0);
+ }
}
} else if (value.type() == uris.forge.String) {
if (key == uris.lv2_name
diff --git a/src/gui/ingen_gui.ui b/src/gui/ingen_gui.ui
index eb3f2684..2b711ce0 100644
--- a/src/gui/ingen_gui.ui
+++ b/src/gui/ingen_gui.ui
@@ -2082,6 +2082,16 @@ Contributors:
</object>
</child>
<child>
+ <object class="GtkCheckMenuItem" id="node_enabled_menuitem">
+ <property name="visible">True</property>
+ <property name="use_action_appearance">False</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">Enabled</property>
+ <property name="active">True</property>
+ </object>
+ </child>
+ <child>
<object class="GtkImageMenuItem" id="node_randomize_menuitem">
<property name="label" translatable="yes">Randomi_ze</property>
<property name="use_action_appearance">False</property>