diff options
author | David Robillard <d@drobilla.net> | 2008-10-11 21:02:10 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-10-11 21:02:10 +0000 |
commit | a18022d4243de7b2093507c574689c7a17c82bb9 (patch) | |
tree | f0d53178b87c955bd2ae254ef5bed999a4bee0b2 /src | |
parent | 3b6aa464ffeef786ad09cafe478ac45979f45e70 (diff) | |
download | ingen-a18022d4243de7b2093507c574689c7a17c82bb9.tar.gz ingen-a18022d4243de7b2093507c574689c7a17c82bb9.tar.bz2 ingen-a18022d4243de7b2093507c574689c7a17c82bb9.zip |
Add control randomize feature (node context menu).
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@1648 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src')
-rw-r--r-- | src/client/NodeModel.cpp | 2 | ||||
-rw-r--r-- | src/client/NodeModel.hpp | 10 | ||||
-rw-r--r-- | src/gui/NodeMenu.cpp | 57 | ||||
-rw-r--r-- | src/gui/NodeMenu.hpp | 3 | ||||
-rw-r--r-- | src/gui/NodeModule.cpp | 1 | ||||
-rw-r--r-- | src/gui/NodeModule.hpp | 2 | ||||
-rw-r--r-- | src/gui/ingen_gui.glade | 965 |
7 files changed, 524 insertions, 516 deletions
diff --git a/src/client/NodeModel.cpp b/src/client/NodeModel.cpp index af1f959e..ad04892f 100644 --- a/src/client/NodeModel.cpp +++ b/src/client/NodeModel.cpp @@ -171,7 +171,7 @@ NodeModel::port(uint32_t index) const void -NodeModel::port_value_range(SharedPtr<PortModel> port, float& min, float& max) +NodeModel::port_value_range(SharedPtr<PortModel> port, float& min, float& max) const { assert(port->parent().get() == this); diff --git a/src/client/NodeModel.hpp b/src/client/NodeModel.hpp index 03afc17c..9b6efde8 100644 --- a/src/client/NodeModel.hpp +++ b/src/client/NodeModel.hpp @@ -62,7 +62,7 @@ public: uint32_t num_ports() const { return _ports.size(); } const Ports& ports() const { return _ports; } - void port_value_range(SharedPtr<PortModel> port, float& min, float& max); + void port_value_range(SharedPtr<PortModel> port, float& min, float& max) const; // Signals sigc::signal<void, SharedPtr<PortModel> > signal_new_port; @@ -89,9 +89,11 @@ protected: Ports _ports; ///< Vector of ports (not a Table to preserve order) string _plugin_uri; ///< Plugin URI (if PluginModel is unknown) SharedPtr<PluginModel> _plugin; ///< The plugin this node is an instance of - uint32_t _num_values; ///< Size of _min_values and _max_values - float* _min_values; ///< Port min values (cached for LV2) - float* _max_values; ///< Port max values (cached for LV2) + +private: + mutable uint32_t _num_values; ///< Size of _min_values and _max_values + mutable float* _min_values; ///< Port min values (cached for LV2) + mutable float* _max_values; ///< Port max values (cached for LV2) }; diff --git a/src/gui/NodeMenu.cpp b/src/gui/NodeMenu.cpp index 529eb52c..43c0bf75 100644 --- a/src/gui/NodeMenu.cpp +++ b/src/gui/NodeMenu.cpp @@ -39,10 +39,14 @@ NodeMenu::NodeMenu(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml xml->get_widget("node_controls_menuitem", _controls_menuitem); xml->get_widget("node_popup_gui_menuitem", _popup_gui_menuitem); xml->get_widget("node_embed_gui_menuitem", _embed_gui_menuitem); + xml->get_widget("node_randomize_menuitem", _randomize_menuitem); node_menu->remove(*_controls_menuitem); node_menu->remove(*_popup_gui_menuitem); node_menu->remove(*_embed_gui_menuitem); + node_menu->remove(*_randomize_menuitem); + + insert(*_randomize_menuitem, 0); items().push_front(Gtk::Menu_Helpers::SeparatorElem()); insert(*_controls_menuitem, 0); insert(*_popup_gui_menuitem, 0); @@ -63,6 +67,8 @@ NodeMenu::init(SharedPtr<NodeModel> node) &sigc::signal<void>::emit)); _embed_gui_menuitem->signal_toggled().connect(sigc::mem_fun(this, &NodeMenu::on_menu_embed_gui)); + _randomize_menuitem->signal_activate().connect(sigc::mem_fun(this, + &NodeMenu::on_menu_randomize)); const PluginModel* plugin = dynamic_cast<const PluginModel*>(node->plugin()); if (plugin && plugin->type() == PluginModel::LV2 && plugin->has_ui()) { @@ -73,6 +79,11 @@ NodeMenu::init(SharedPtr<NodeModel> node) _embed_gui_menuitem->hide(); } + if (has_control_inputs()) + _randomize_menuitem->show(); + else + _randomize_menuitem->hide(); + _enable_signal = true; } @@ -85,41 +96,21 @@ NodeMenu::on_menu_embed_gui() void -NodeMenu::on_menu_clone() +NodeMenu::on_menu_randomize() { - cerr << "[NodeMenu] FIXME: clone broken\n"; - /* - assert(_node); - //assert(_parent != NULL); - //assert(_parent->model() != NULL); - - string clone_name = _node->name(); - int i = 2; // postfix number (ie oldname_2) - - // Check if name already has a number postfix - if (clone_name.find_last_of("_") != string::npos) { - string name_postfix = clone_name.substr(clone_name.find_last_of("_")+1); - clone_name = clone_name.substr(0, clone_name.find_last_of("_")); - if (sscanf(name_postfix.c_str(), "%d", &i)) - ++i; - } - - char clone_postfix[4]; - for ( ; i < 100; ++i) { - snprintf(clone_postfix, 4, "_%d", i); - if (_node->parent_patch()->get_node(clone_name + clone_postfix) == NULL) - break; + App::instance().engine()->bundle_begin(); + + const NodeModel* const nm = (NodeModel*)_object.get(); + for (NodeModel::Ports::const_iterator i = nm->ports().begin(); i != nm->ports().end(); ++i) { + if ((*i)->is_input() && (*i)->type().is_control()) { + float min = 0.0f, max = 1.0f; + nm->port_value_range(*i, min, max); + const float val = ((rand() / (float)RAND_MAX) * (max - min) + min); + App::instance().engine()->set_port_value((*i)->path(), val); + } } - - clone_name = clone_name + clone_postfix; - - const string path = _node->parent_patch()->base() + clone_name; - NodeModel* nm = new NodeModel(_node->plugin(), path); - nm->polyphonic(_node->polyphonic()); - nm->x(_node->x() + 20); - nm->y(_node->y() + 20); - App::instance().engine()->create_node_from_model(nm); - */ + + App::instance().engine()->bundle_end(); } diff --git a/src/gui/NodeMenu.hpp b/src/gui/NodeMenu.hpp index 2a10e473..67bed69a 100644 --- a/src/gui/NodeMenu.hpp +++ b/src/gui/NodeMenu.hpp @@ -56,13 +56,14 @@ protected: virtual void disable_controls_menuitem(); void on_menu_disconnect(); - void on_menu_clone(); void on_menu_learn(); void on_menu_embed_gui(); + void on_menu_randomize(); Gtk::MenuItem* _controls_menuitem; Gtk::MenuItem* _popup_gui_menuitem; Gtk::CheckMenuItem* _embed_gui_menuitem; + Gtk::MenuItem* _randomize_menuitem; }; diff --git a/src/gui/NodeModule.cpp b/src/gui/NodeModule.cpp index ee6b61d9..7f891a51 100644 --- a/src/gui/NodeModule.cpp +++ b/src/gui/NodeModule.cpp @@ -32,6 +32,7 @@ #include "SubpatchModule.hpp" #include "WindowFactory.hpp" #include "Configuration.hpp" +#include "NodeMenu.hpp" using namespace std; diff --git a/src/gui/NodeModule.hpp b/src/gui/NodeModule.hpp index de9556fd..5747bf30 100644 --- a/src/gui/NodeModule.hpp +++ b/src/gui/NodeModule.hpp @@ -22,7 +22,6 @@ #include <flowcanvas/Module.hpp> #include <raul/SharedPtr.hpp> #include "Port.hpp" -#include "NodeMenu.hpp" class Atom; @@ -37,6 +36,7 @@ namespace GUI { class PatchCanvas; class Port; +class NodeMenu; /** A module in a patch. diff --git a/src/gui/ingen_gui.glade b/src/gui/ingen_gui.glade index aa0680ea..a86a4b4a 100644 --- a/src/gui/ingen_gui.glade +++ b/src/gui/ingen_gui.glade @@ -497,62 +497,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> @@ -595,51 +586,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> @@ -670,61 +670,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> @@ -826,71 +826,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"><b>Name: </b></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"><b>Polyphony: </b></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> @@ -941,19 +933,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> @@ -961,47 +953,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"><b>Polyphony: </b></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"><b>Name: </b></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> @@ -1063,6 +1063,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"><b>Polyphony: </b></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> @@ -1102,54 +1150,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"><b>Polyphony: </b></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> @@ -1216,15 +1216,15 @@ <placeholder/> </child> <child> - <widget class="GtkVBox" id="control_strip"> + <widget class="GtkVBox" id="toggle_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> <child> - <widget class="GtkHBox" id="hbox1"> + <widget class="GtkHBox" id="hbox2"> <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="GtkLabel" id="control_strip_name_label"> + <widget class="GtkLabel" id="toggle_control_name_label"> <property name="visible">True</property> <property name="xalign">0</property> <property name="yalign">1</property> @@ -1239,7 +1239,7 @@ </packing> </child> <child> - <widget class="GtkAlignment" id="alignment3"> + <widget class="GtkAlignment" id="alignment7"> <property name="visible">True</property> <property name="yalign">1</property> <property name="yscale">0</property> @@ -1247,7 +1247,7 @@ <property name="left_padding">1</property> <property name="right_padding">4</property> <child> - <widget class="GtkHSeparator" id="hseparator6"> + <widget class="GtkHSeparator" id="hseparator7"> <property name="visible">True</property> </widget> </child> @@ -1257,14 +1257,11 @@ </packing> </child> <child> - <widget class="GtkSpinButton" id="control_strip_spinner"> + <widget class="GtkCheckButton" id="toggle_control_check"> <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="numeric">True</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> </widget> <packing> <property name="expand">False</property> @@ -1277,36 +1274,110 @@ <property name="fill">False</property> </packing> </child> + </widget> + <packing> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="y_padding">8</property> + </packing> + </child> + <child> + <widget class="GtkVBox" id="control_panel_vbox"> + <property name="visible">True</property> <child> - <widget class="GtkHScale" id="control_strip_slider"> + <widget class="GtkAlignment" id="alignment6"> <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">9.0923076923076922e+136 -1e+113 1e+137 0 0 0</property> - <property name="digits">63</property> - <property name="draw_value">False</property> + <property name="yalign">0</property> + <child> + <widget class="GtkScrolledWindow" id="scrolledwin1"> + <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="visible">True</property> + <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> + <property name="fill">False</property> + </packing> + </child> + <child> + <widget class="GtkHBox" id="hbox32"> + <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> + <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="padding">5</property> <property name="position">1</property> </packing> </child> </widget> - <packing> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - <property name="y_padding">8</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"> @@ -1569,113 +1640,25 @@ </packing> </child> <child> - <widget class="GtkVBox" id="control_panel_vbox"> + <widget class="GtkHSeparator" id="hseparator5"> <property name="visible">True</property> - <child> - <widget class="GtkAlignment" id="alignment6"> - <property name="visible">True</property> - <property name="yalign">0</property> - <child> - <widget class="GtkScrolledWindow" id="scrolledwin1"> - <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="visible">True</property> - <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> - <property name="fill">False</property> - </packing> - </child> - <child> - <widget class="GtkHBox" id="hbox32"> - <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> - <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="padding">5</property> - <property name="position">1</property> - </packing> - </child> </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="toggle_control"> + <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="GtkHBox" id="hbox2"> + <widget class="GtkHBox" id="hbox1"> <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="GtkLabel" id="toggle_control_name_label"> + <widget class="GtkLabel" id="control_strip_name_label"> <property name="visible">True</property> <property name="xalign">0</property> <property name="yalign">1</property> @@ -1690,7 +1673,7 @@ </packing> </child> <child> - <widget class="GtkAlignment" id="alignment7"> + <widget class="GtkAlignment" id="alignment3"> <property name="visible">True</property> <property name="yalign">1</property> <property name="yscale">0</property> @@ -1698,7 +1681,7 @@ <property name="left_padding">1</property> <property name="right_padding">4</property> <child> - <widget class="GtkHSeparator" id="hseparator7"> + <widget class="GtkHSeparator" id="hseparator6"> <property name="visible">True</property> </widget> </child> @@ -1708,11 +1691,14 @@ </packing> </child> <child> - <widget class="GtkCheckButton" id="toggle_control_check"> + <widget class="GtkSpinButton" id="control_strip_spinner"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="response_id">0</property> - <property name="draw_indicator">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="numeric">True</property> </widget> <packing> <property name="expand">False</property> @@ -1725,10 +1711,24 @@ <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">9.0923076923076922e+136 -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">4</property> - <property name="bottom_attach">5</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> <property name="y_padding">8</property> </packing> </child> @@ -1820,51 +1820,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"><b>Patch Search Path: </b></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"><i>Example: /foo/bar:/home/john/patches:/usr/share/om/patches</i></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"><i>Example: /foo/bar:/home/john/patches:/usr/share/om/patches</i></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"><b>Patch Search Path: </b></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> @@ -2241,7 +2241,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> @@ -2249,34 +2249,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> @@ -2284,12 +2278,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> @@ -2297,18 +2293,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> @@ -2316,6 +2314,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> @@ -2468,33 +2468,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> @@ -2517,66 +2548,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> @@ -2935,26 +2935,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> @@ -2975,19 +2968,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> @@ -3130,26 +3130,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> @@ -3171,17 +3162,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> @@ -3333,5 +3333,18 @@ Thank you for contributing.</property> <property name="use_underline">True</property> </widget> </child> + <child> + <widget class="GtkImageMenuItem" id="node_randomize_menuitem"> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">Set all controls on this node to random values</property> + <property name="label" translatable="yes">Randomize</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="menu-item-image23"> + <property name="stock">gtk-dialog-warning</property> + </widget> + </child> + </widget> + </child> </widget> </glade-interface> |