summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/gui/PatchCanvas.cpp25
-rw-r--r--src/libs/gui/PatchCanvas.hpp6
-rw-r--r--src/libs/gui/ingen_gui.glade952
-rw-r--r--src/libs/module/Makefile.am4
4 files changed, 528 insertions, 459 deletions
diff --git a/src/libs/gui/PatchCanvas.cpp b/src/libs/gui/PatchCanvas.cpp
index ae18e0f2..44ee72e6 100644
--- a/src/libs/gui/PatchCanvas.cpp
+++ b/src/libs/gui/PatchCanvas.cpp
@@ -15,10 +15,12 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "../../../config/config.h"
#include "module/module.h"
#include <cassert>
#include <flowcanvas/Canvas.hpp>
+#include <flowcanvas/Ellipse.hpp>
#include "interface/EngineInterface.hpp"
#include "client/PluginModel.hpp"
#include "client/PatchModel.hpp"
@@ -55,6 +57,8 @@ PatchCanvas::PatchCanvas(SharedPtr<PatchModel> patch, int width, int height)
Glib::RefPtr<Gnome::Glade::Xml> xml = GladeFactory::new_glade_reference();
xml->get_widget("canvas_menu", _menu);
+ xml->get_widget("canvas_menu_add_number_control", _menu_add_number_control);
+ xml->get_widget("canvas_menu_add_button_control", _menu_add_button_control);
xml->get_widget("canvas_menu_add_audio_input", _menu_add_audio_input);
xml->get_widget("canvas_menu_add_audio_output", _menu_add_audio_output);
xml->get_widget("canvas_menu_add_control_input", _menu_add_control_input);
@@ -67,6 +71,12 @@ PatchCanvas::PatchCanvas(SharedPtr<PatchModel> patch, int width, int height)
xml->get_widget("canvas_menu_load_patch", _menu_load_patch);
xml->get_widget("canvas_menu_new_patch", _menu_new_patch);
+ // Add control menu items
+ _menu_add_number_control->signal_activate().connect(
+ sigc::bind(sigc::mem_fun(this, &PatchCanvas::menu_add_control), NUMBER));
+ _menu_add_button_control->signal_activate().connect(
+ sigc::bind(sigc::mem_fun(this, &PatchCanvas::menu_add_control), BUTTON));
+
// Add port menu items
_menu_add_audio_input->signal_activate().connect(
sigc::bind(sigc::mem_fun(this, &PatchCanvas::menu_add_port),
@@ -471,10 +481,25 @@ PatchCanvas::generate_port_name(const string& base) {
return name;
}
+void
+PatchCanvas::menu_add_control(ControlType type)
+{
+ // FIXME: bundleify
+
+ MetadataMap data = get_initial_data();
+ float x = data["ingenuity:canvas-x"].get_float();
+ float y = data["ingenuity:canvas-y"].get_float();
+
+ cerr << "ADD CONTROL: " << (unsigned)type << " @ " << x << ", " << y << endl;
+
+ add_item(boost::shared_ptr<FlowCanvas::Item>(
+ new FlowCanvas::Ellipse(shared_from_this(), "control", x, y, 20, 20, true)));
+}
void
PatchCanvas::menu_add_port(const string& name, const string& type, bool is_output)
{
+ // FIXME: bundleify
const Path& path = _patch->path().base() + generate_port_name(name);
App::instance().engine()->create_port(path, type, is_output);
MetadataMap data = get_initial_data();
diff --git a/src/libs/gui/PatchCanvas.hpp b/src/libs/gui/PatchCanvas.hpp
index 6eba024a..d0df1505 100644
--- a/src/libs/gui/PatchCanvas.hpp
+++ b/src/libs/gui/PatchCanvas.hpp
@@ -82,8 +82,12 @@ public:
{ _menu->popup(event->button.button, event->button.time); }
private:
+ enum ControlType { NUMBER, BUTTON };
+ void menu_add_control(ControlType type);
+
string generate_port_name(const string& base);
void menu_add_port(const string& name, const string& type, bool is_output);
+
void menu_load_plugin();
void menu_new_patch();
void menu_load_patch();
@@ -116,6 +120,8 @@ private:
int _last_click_y;
Gtk::Menu* _menu;
+ Gtk::MenuItem* _menu_add_number_control;
+ Gtk::MenuItem* _menu_add_button_control;
Gtk::MenuItem* _menu_add_audio_input;
Gtk::MenuItem* _menu_add_audio_output;
Gtk::MenuItem* _menu_add_control_input;
diff --git a/src/libs/gui/ingen_gui.glade b/src/libs/gui/ingen_gui.glade
index 994f456a..6294791c 100644
--- a/src/libs/gui/ingen_gui.glade
+++ b/src/libs/gui/ingen_gui.glade
@@ -481,62 +481,53 @@
<property name="n_columns">3</property>
<property name="row_spacing">12</property>
<child>
- <widget class="GtkButton" id="load_plugin_clear_button">
+ <widget class="GtkLabel" id="label66">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Clear filter text (show all plugins)</property>
- <property name="label">gtk-clear</property>
- <property name="use_stock">True</property>
- <property name="response_id">0</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">Node Name:</property>
+ <property name="use_markup">True</property>
</widget>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkComboBox" id="load_plugin_filter_combo">
+ <widget class="GtkHSeparator" id="hseparator1">
<property name="visible">True</property>
- <property name="items" translatable="yes">Name contains: </property>
</widget>
<packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkEntry" id="load_plugin_search_entry">
+ <widget class="GtkHSeparator" id="hseparator2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_focus">True</property>
- <property name="tooltip" translatable="yes">Search string to filter plugin list</property>
- <property name="invisible_char">*</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_padding">6</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
- <widget class="GtkButton" id="load_plugin_add_button">
+ <widget class="GtkHSeparator" id="hseparator3">
<property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Add selected plugin to patch</property>
- <property name="label">gtk-add</property>
- <property name="use_stock">True</property>
- <property name="response_id">0</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
+ <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
@@ -579,51 +570,60 @@
</packing>
</child>
<child>
- <widget class="GtkHSeparator" id="hseparator3">
+ <widget class="GtkButton" id="load_plugin_add_button">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip" translatable="yes">Add selected plugin to patch</property>
+ <property name="label">gtk-add</property>
+ <property name="use_stock">True</property>
+ <property name="response_id">0</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkHSeparator" id="hseparator2">
+ <widget class="GtkEntry" id="load_plugin_search_entry">
<property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="tooltip" translatable="yes">Search string to filter plugin list</property>
+ <property name="invisible_char">*</property>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="x_padding">6</property>
</packing>
</child>
<child>
- <widget class="GtkHSeparator" id="hseparator1">
+ <widget class="GtkComboBox" id="load_plugin_filter_combo">
<property name="visible">True</property>
+ <property name="items" translatable="yes">Name contains: </property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label66">
+ <widget class="GtkButton" id="load_plugin_clear_button">
<property name="visible">True</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Node Name:</property>
- <property name="use_markup">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip" translatable="yes">Clear filter text (show all plugins)</property>
+ <property name="label">gtk-clear</property>
+ <property name="use_stock">True</property>
+ <property name="response_id">0</property>
</widget>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
@@ -654,61 +654,61 @@
<property name="n_rows">2</property>
<property name="n_columns">2</property>
<child>
- <widget class="GtkEntry" id="new_subpatch_name_entry">
+ <widget class="GtkLabel" id="label8">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_focus">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Name: </property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="y_options"></property>
- <property name="y_padding">4</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_EXPAND</property>
+ <property name="x_padding">5</property>
</packing>
</child>
<child>
- <widget class="GtkSpinButton" id="new_subpatch_polyphony_spinbutton">
+ <widget class="GtkLabel" id="label9">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">1 0 100 1 10 10</property>
- <property name="climb_rate">1</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Polyphony: </property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- <property name="y_padding">4</property>
+ <property name="y_options">GTK_EXPAND</property>
+ <property name="x_padding">5</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label9">
+ <widget class="GtkSpinButton" id="new_subpatch_polyphony_spinbutton">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Polyphony: </property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">1 0 100 1 10 10</property>
+ <property name="climb_rate">1</property>
</widget>
<packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_EXPAND</property>
- <property name="x_padding">5</property>
+ <property name="y_options"></property>
+ <property name="y_padding">4</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label8">
+ <widget class="GtkEntry" id="new_subpatch_name_entry">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Name: </property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">True</property>
</widget>
<packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_EXPAND</property>
- <property name="x_padding">5</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="y_options"></property>
+ <property name="y_padding">4</property>
</packing>
</child>
</widget>
@@ -810,71 +810,63 @@
<property name="column_spacing">12</property>
<property name="row_spacing">4</property>
<child>
- <widget class="GtkHBox" id="hbox45">
+ <widget class="GtkLabel" id="label79">
<property name="visible">True</property>
- <child>
- <widget class="GtkRadioButton" id="load_subpatch_name_from_user_radio">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Specify the name for the new patch</property>
- <property name="label" translatable="yes">Specify: </property>
- <property name="use_underline">True</property>
- <property name="response_id">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">load_subpatch_name_from_file_radio</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkEntry" id="load_subpatch_name_entry">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Specify the name for the new patch</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;b&gt;Name: &lt;/b&gt;</property>
+ <property name="use_markup">True</property>
</widget>
<packing>
- <property name="left_attach">3</property>
- <property name="right_attach">4</property>
- <property name="y_options">GTK_FILL</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label104">
+ <widget class="GtkLabel" id="label80">
<property name="visible">True</property>
<property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;b&gt;Polyphony: &lt;/b&gt;</property>
+ <property name="use_markup">True</property>
</widget>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkRadioButton" id="load_subpatch_poly_from_parent_radio">
+ <widget class="GtkRadioButton" id="load_subpatch_name_from_file_radio">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Set polyphony to the same value as the parent (containing) patch</property>
- <property name="label" translatable="yes">Same as parent (?)</property>
+ <property name="tooltip" translatable="yes">Use the name stored in the patch file</property>
+ <property name="label" translatable="yes">Load from file</property>
<property name="use_underline">True</property>
<property name="response_id">0</property>
+ <property name="active">True</property>
<property name="draw_indicator">True</property>
- <property name="group">load_subpatch_poly_from_file_radio</property>
</widget>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkRadioButton" id="load_subpatch_poly_from_file_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip" translatable="yes">Use the polyphony value stored in the patch file</property>
+ <property name="label" translatable="yes">Load from file</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
@@ -925,19 +917,19 @@
</packing>
</child>
<child>
- <widget class="GtkRadioButton" id="load_subpatch_poly_from_file_radio">
+ <widget class="GtkRadioButton" id="load_subpatch_poly_from_parent_radio">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Use the polyphony value stored in the patch file</property>
- <property name="label" translatable="yes">Load from file</property>
+ <property name="tooltip" translatable="yes">Set polyphony to the same value as the parent (containing) patch</property>
+ <property name="label" translatable="yes">Same as parent (?)</property>
<property name="use_underline">True</property>
<property name="response_id">0</property>
- <property name="active">True</property>
<property name="draw_indicator">True</property>
+ <property name="group">load_subpatch_poly_from_file_radio</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
@@ -945,47 +937,55 @@
</packing>
</child>
<child>
- <widget class="GtkRadioButton" id="load_subpatch_name_from_file_radio">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Use the name stored in the patch file</property>
- <property name="label" translatable="yes">Load from file</property>
- <property name="use_underline">True</property>
- <property name="response_id">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label80">
+ <widget class="GtkLabel" id="label104">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">&lt;b&gt;Polyphony: &lt;/b&gt;</property>
- <property name="use_markup">True</property>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label79">
+ <widget class="GtkHBox" id="hbox45">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">&lt;b&gt;Name: &lt;/b&gt;</property>
- <property name="use_markup">True</property>
+ <child>
+ <widget class="GtkRadioButton" id="load_subpatch_name_from_user_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip" translatable="yes">Specify the name for the new patch</property>
+ <property name="label" translatable="yes">Specify: </property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">load_subpatch_name_from_file_radio</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="load_subpatch_name_entry">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip" translatable="yes">Specify the name for the new patch</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</widget>
<packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
+ <property name="left_attach">3</property>
+ <property name="right_attach">4</property>
+ <property name="y_options">GTK_FILL</property>
</packing>
</child>
</widget>
@@ -1047,6 +1047,54 @@
<property name="column_spacing">12</property>
<property name="row_spacing">4</property>
<child>
+ <widget class="GtkLabel" id="label123">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;b&gt;Polyphony: &lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkRadioButton" id="load_patch_poly_from_current_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip" translatable="yes">Use the same polyphony as the current patch</property>
+ <property name="label" translatable="yes">Keep current</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkRadioButton" id="load_patch_poly_from_file_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip" translatable="yes">Use the polyphony value stored in the patch file</property>
+ <property name="label" translatable="yes">Load from file</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">load_patch_poly_from_current_radio</property>
+ </widget>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
<widget class="GtkHBox" id="hbox58">
<property name="visible">True</property>
<child>
@@ -1086,54 +1134,6 @@
<property name="y_options">GTK_FILL</property>
</packing>
</child>
- <child>
- <widget class="GtkRadioButton" id="load_patch_poly_from_file_radio">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Use the polyphony value stored in the patch file</property>
- <property name="label" translatable="yes">Load from file</property>
- <property name="use_underline">True</property>
- <property name="response_id">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">load_patch_poly_from_current_radio</property>
- </widget>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkRadioButton" id="load_patch_poly_from_current_radio">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Use the same polyphony as the current patch</property>
- <property name="label" translatable="yes">Keep current</property>
- <property name="use_underline">True</property>
- <property name="response_id">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label123">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">&lt;b&gt;Polyphony: &lt;/b&gt;</property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -1197,22 +1197,46 @@
<placeholder/>
</child>
<child>
- <widget class="GtkVBox" id="control_strip">
+ <widget class="GtkVBox" id="control_panel_vbox">
<property name="visible">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
- <widget class="GtkHBox" id="hbox1">
+ <widget class="GtkAlignment" id="alignment6">
<property name="visible">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="yalign">0</property>
<child>
- <widget class="GtkLabel" id="control_strip_name_label">
+ <widget class="GtkScrolledWindow" id="scrolledwin1">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="xpad">4</property>
- <property name="ypad">4</property>
- <property name="label" translatable="yes">&lt;b&gt;Name&lt;/b&gt;</property>
- <property name="use_markup">True</property>
- <property name="single_line_mode">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <child>
+ <widget class="GtkViewport" id="viewport1">
+ <property name="visible">True</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkVBox" id="control_panel_controls_box">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="control_panel_voice_controls_box">
+ <property name="visible">True</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <widget class="GtkRadioButton" id="control_panel_all_voices_radio">
+ <property name="can_focus">True</property>
+ <property name="tooltip" translatable="yes">Apply changed controls to all voices</property>
+ <property name="label" translatable="yes">All Voices</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -1220,67 +1244,54 @@
</packing>
</child>
<child>
- <widget class="GtkAlignment" id="alignment3">
+ <widget class="GtkHBox" id="hbox32">
<property name="visible">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="xalign">1</property>
- <property name="yalign">1</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">2</property>
- <property name="left_padding">2</property>
- <property name="right_padding">2</property>
+ <property name="spacing">5</property>
<child>
- <widget class="GtkSpinButton" id="control_strip_spinner">
+ <widget class="GtkRadioButton" id="control_panel_specific_voice_radio">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="width_chars">12</property>
- <property name="adjustment">0 -9.9999999999999999e+45 1.0000000000000001e+63 1 10 10</property>
- <property name="digits">4</property>
+ <property name="tooltip" translatable="yes">Apply changed controls to one voice only</property>
+ <property name="label" translatable="yes">Specific Voice:</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">control_panel_all_voices_radio</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="control_panel_voice_spinbutton">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip" translatable="yes">Voice control changes are applied to</property>
+ <property name="adjustment">1 1 100 1 10 10</property>
+ <property name="climb_rate">1</property>
<property name="numeric">True</property>
</widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
</child>
</widget>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</widget>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="control_strip_slider">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="adjustment">0 -1e+113 1e+137 0 0 0</property>
- <property name="digits">63</property>
- <property name="draw_value">False</property>
- </widget>
- <packing>
- <property name="expand">False</property>
+ <property name="padding">5</property>
<property name="position">1</property>
</packing>
</child>
</widget>
- <packing>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHSeparator" id="hseparator5">
- <property name="visible">True</property>
- </widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- </packing>
</child>
<child>
<widget class="GtkVBox" id="patch_view_box">
@@ -1514,46 +1525,32 @@
</packing>
</child>
<child>
- <widget class="GtkVBox" id="control_panel_vbox">
+ <widget class="GtkHSeparator" id="hseparator5">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="control_strip">
<property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
- <widget class="GtkAlignment" id="alignment6">
+ <widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
- <property name="yalign">0</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwin1">
+ <widget class="GtkLabel" id="control_strip_name_label">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <child>
- <widget class="GtkViewport" id="viewport1">
- <property name="visible">True</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkVBox" id="control_panel_controls_box">
- <property name="visible">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="GtkHBox" id="control_panel_voice_controls_box">
- <property name="visible">True</property>
- <property name="homogeneous">True</property>
- <child>
- <widget class="GtkRadioButton" id="control_panel_all_voices_radio">
- <property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Apply changed controls to all voices</property>
- <property name="label" translatable="yes">All Voices</property>
- <property name="use_underline">True</property>
- <property name="response_id">0</property>
- <property name="draw_indicator">True</property>
+ <property name="xalign">0</property>
+ <property name="xpad">4</property>
+ <property name="ypad">4</property>
+ <property name="label" translatable="yes">&lt;b&gt;Name&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+ <property name="single_line_mode">True</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -1561,54 +1558,57 @@
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox32">
+ <widget class="GtkAlignment" id="alignment3">
<property name="visible">True</property>
- <property name="spacing">5</property>
- <child>
- <widget class="GtkRadioButton" id="control_panel_specific_voice_radio">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Apply changed controls to one voice only</property>
- <property name="label" translatable="yes">Specific Voice:</property>
- <property name="use_underline">True</property>
- <property name="response_id">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">control_panel_all_voices_radio</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="xalign">1</property>
+ <property name="yalign">1</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">2</property>
+ <property name="left_padding">2</property>
+ <property name="right_padding">2</property>
<child>
- <widget class="GtkSpinButton" id="control_panel_voice_spinbutton">
+ <widget class="GtkSpinButton" id="control_strip_spinner">
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Voice control changes are applied to</property>
- <property name="adjustment">1 1 100 1 10 10</property>
- <property name="climb_rate">1</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="width_chars">12</property>
+ <property name="adjustment">0 -9.9999999999999999e+45 1.0000000000000001e+63 1 10 10</property>
+ <property name="digits">4</property>
<property name="numeric">True</property>
</widget>
- <packing>
- <property name="position">1</property>
- </packing>
</child>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</widget>
<packing>
<property name="expand">False</property>
- <property name="padding">5</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHScale" id="control_strip_slider">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="adjustment">0 -1e+113 1e+137 0 0 0</property>
+ <property name="digits">63</property>
+ <property name="draw_value">False</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
</widget>
+ <packing>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ </packing>
</child>
</widget>
</child>
@@ -1698,51 +1698,51 @@
<property name="n_rows">2</property>
<property name="n_columns">2</property>
<child>
- <widget class="GtkLabel" id="label103">
+ <widget class="GtkLabel" id="label90">
<property name="visible">True</property>
- <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;b&gt;Patch Search Path: &lt;/b&gt;</property>
+ <property name="use_markup">True</property>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label91">
+ <widget class="GtkEntry" id="config_path_entry">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;i&gt;Example: /foo/bar:/home/john/patches:/usr/share/om/patches&lt;/i&gt;</property>
- <property name="use_markup">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">*</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkEntry" id="config_path_entry">
+ <widget class="GtkLabel" id="label91">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">*</property>
+ <property name="label" translatable="yes">&lt;i&gt;Example: /foo/bar:/home/john/patches:/usr/share/om/patches&lt;/i&gt;</property>
+ <property name="use_markup">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label90">
+ <widget class="GtkLabel" id="label103">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Patch Search Path: &lt;/b&gt;</property>
- <property name="use_markup">True</property>
+ <property name="xalign">0</property>
</widget>
<packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
@@ -2118,7 +2118,7 @@
<property name="column_spacing">10</property>
<property name="row_spacing">6</property>
<child>
- <widget class="GtkLabel" id="node_properties_plugin_name_label">
+ <widget class="GtkLabel" id="node_properties_plugin_type_label">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">-</property>
@@ -2126,34 +2126,28 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label116">
+ <widget class="GtkLabel" id="label114">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Name: </property>
+ <property name="label" translatable="yes">Type: </property>
</widget>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="node_properties_plugin_uri_label">
+ <widget class="GtkLabel" id="label120">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">-</property>
+ <property name="label" translatable="yes">URI: </property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
@@ -2161,12 +2155,14 @@
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label120">
+ <widget class="GtkLabel" id="node_properties_plugin_uri_label">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">URI: </property>
+ <property name="label" translatable="yes">-</property>
</widget>
<packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
@@ -2174,18 +2170,20 @@
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label114">
+ <widget class="GtkLabel" id="label116">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Type: </property>
+ <property name="label" translatable="yes">Name: </property>
</widget>
<packing>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="node_properties_plugin_type_label">
+ <widget class="GtkLabel" id="node_properties_plugin_name_label">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">-</property>
@@ -2193,6 +2191,8 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
@@ -2347,33 +2347,64 @@ Contributors:
<property name="n_columns">2</property>
<property name="row_spacing">8</property>
<child>
- <widget class="GtkLabel" id="label131">
+ <widget class="GtkHBox" id="hbox64">
<property name="visible">True</property>
- <property name="xalign">0</property>
+ <child>
+ <widget class="GtkSpinButton" id="connect_port_spinbutton">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">16180 1 65535 1 10 10</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options">GTK_FILL</property>
+ <property name="x_padding">8</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox67">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkEntry" id="connect_url_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">True</property>
+ <property name="width_chars">28</property>
+ <property name="text" translatable="yes">osc.udp://localhost:16180</property>
+ </widget>
+ </child>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
+ <property name="y_options">GTK_FILL</property>
+ <property name="x_padding">8</property>
</packing>
</child>
<child>
- <widget class="GtkRadioButton" id="connect_internal_radiobutton">
+ <widget class="GtkRadioButton" id="connect_server_radiobutton">
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Use internal engine</property>
+ <property name="label" translatable="yes">Connect to running server at: </property>
<property name="use_underline">True</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property>
- <property name="group">connect_server_radiobutton</property>
</widget>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
@@ -2396,66 +2427,35 @@ Contributors:
</packing>
</child>
<child>
- <widget class="GtkRadioButton" id="connect_server_radiobutton">
+ <widget class="GtkRadioButton" id="connect_internal_radiobutton">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Connect to running server at: </property>
+ <property name="label" translatable="yes">Use internal engine</property>
<property name="use_underline">True</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property>
+ <property name="group">connect_server_radiobutton</property>
</widget>
<packing>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox67">
+ <widget class="GtkLabel" id="label131">
<property name="visible">True</property>
- <child>
- <widget class="GtkEntry" id="connect_url_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">True</property>
- <property name="width_chars">28</property>
- <property name="text" translatable="yes">osc.udp://localhost:16180</property>
- </widget>
- </child>
+ <property name="xalign">0</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
- <property name="x_padding">8</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="hbox64">
- <property name="visible">True</property>
- <child>
- <widget class="GtkSpinButton" id="connect_port_spinbutton">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="adjustment">16180 1 65535 1 10 10</property>
- <property name="climb_rate">1</property>
- <property name="numeric">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options">GTK_FILL</property>
- <property name="x_padding">8</property>
+ <property name="y_options"></property>
</packing>
</child>
</widget>
@@ -2523,6 +2523,44 @@ Contributors:
<widget class="GtkMenu" id="canvas_menu">
<property name="visible">True</property>
<child>
+ <widget class="GtkImageMenuItem" id="menuitem1">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="tooltip" translatable="yes">Add a controller widget to the canvas</property>
+ <property name="label" translatable="yes">Control</property>
+ <property name="use_underline">True</property>
+ <child>
+ <widget class="GtkMenu" id="menu1">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkMenuItem" id="canvas_menu_add_number_control">
+ <property name="visible">True</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">Number</property>
+ <property name="use_underline">True</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkMenuItem" id="canvas_menu_add_button_control">
+ <property name="visible">True</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">Button</property>
+ <property name="use_underline">True</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child internal-child="image">
+ <widget class="GtkImage" id="menu-item-image20">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="stock">gtk-edit</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
<widget class="GtkImageMenuItem" id="input1">
<property name="visible">True</property>
<property name="label" translatable="yes">Input</property>
@@ -2796,26 +2834,19 @@ Contributors:
<property name="n_columns">2</property>
<property name="row_spacing">8</property>
<child>
- <widget class="GtkLabel" id="label136">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Short Name: </property>
- </widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label135">
+ <widget class="GtkEntry" id="upload_patch_symbol_entry">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Symbol: </property>
+ <property name="can_focus">True</property>
+ <property name="tooltip" translatable="yes">Enter a short name suitable for use as an identifier or filename.
+
+The first character must be one of _, a-z or A-Z and subsequenct characters can be from _, a-z, A-Z or 0-9.
+</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">True</property>
</widget>
<packing>
- <property name="x_options">GTK_FILL</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
@@ -2836,19 +2867,26 @@ Contributors:
</packing>
</child>
<child>
- <widget class="GtkEntry" id="upload_patch_symbol_entry">
+ <widget class="GtkLabel" id="label135">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Enter a short name suitable for use as an identifier or filename.
-
-The first character must be one of _, a-z or A-Z and subsequenct characters can be from _, a-z, A-Z or 0-9.
-</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Symbol: </property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label136">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Short Name: </property>
+ </widget>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
@@ -2994,26 +3032,17 @@ Thank you for contributing.</property>
<property name="column_spacing">2</property>
<property name="row_spacing">4</property>
<child>
- <widget class="GtkLabel" id="label139">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Maximum Value: </property>
- </widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label138">
+ <widget class="GtkSpinButton" id="port_properties_min_spinner">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Minimum Value: </property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">0 -100000000 100000000 1 10 10</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">5</property>
+ <property name="numeric">True</property>
</widget>
<packing>
- <property name="x_options">GTK_FILL</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
@@ -3035,17 +3064,26 @@ Thank you for contributing.</property>
</packing>
</child>
<child>
- <widget class="GtkSpinButton" id="port_properties_min_spinner">
+ <widget class="GtkLabel" id="label138">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">0 -100000000 100000000 1 10 10</property>
- <property name="climb_rate">1</property>
- <property name="digits">5</property>
- <property name="numeric">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Minimum Value: </property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label139">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Maximum Value: </property>
+ </widget>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
diff --git a/src/libs/module/Makefile.am b/src/libs/module/Makefile.am
index 17e2c5fb..803c17ac 100644
--- a/src/libs/module/Makefile.am
+++ b/src/libs/module/Makefile.am
@@ -1,8 +1,8 @@
noinst_LTLIBRARIES = libingen_module.la
-libingen_module_la_CXXFLAGS = -I$(top_srcdir)/raul -DINGEN_MODULE_DIR=\"$(libdir)/ingen\" @GLIBMM_CFLAGS@
+libingen_module_la_CXXFLAGS = -I$(top_srcdir)/raul -I$(top_srcdir)/slv2 -DINGEN_MODULE_DIR=\"$(libdir)/ingen\" @GLIBMM_CFLAGS@
-libingen_module_la_LIBADD = @RAUL_LIBS@ @GLIBMM_LIBS@
+libingen_module_la_LIBADD = @RAUL_LIBS@ @GLIBMM_LIBS@ @SLV2_LIBS@
libingen_module_la_SOURCES = \
module.h \