diff options
Diffstat (limited to 'src/libs/gui')
-rw-r--r-- | src/libs/gui/Configuration.cpp | 18 | ||||
-rw-r--r-- | src/libs/gui/Configuration.h | 9 | ||||
-rw-r--r-- | src/libs/gui/PatchCanvas.cpp | 8 | ||||
-rw-r--r-- | src/libs/gui/PatchCanvas.h | 2 | ||||
-rw-r--r-- | src/libs/gui/ingen_gui.glade | 932 |
5 files changed, 502 insertions, 467 deletions
diff --git a/src/libs/gui/Configuration.cpp b/src/libs/gui/Configuration.cpp index 663a813d..72ea5cb5 100644 --- a/src/libs/gui/Configuration.cpp +++ b/src/libs/gui/Configuration.cpp @@ -38,10 +38,12 @@ using namespace Ingen::Client; Configuration::Configuration() -: _patch_path("/usr/share/ingen/patches:/usr/local/share/ingen/patches"), - _audio_port_color( 0x394f66B0), - _control_port_color(0x396639B0), - _midi_port_color( 0x663939B0) + : _patch_path("/usr/share/ingen/patches:/usr/local/share/ingen/patches") + // Agave FTW + , _audio_port_color( 0x0D597FFF) + , _control_port_color(0x2F7F0DFF) + , _midi_port_color( 0x7F240DFF) + , _osc_port_color( 0x5D0D7FFF) { } @@ -140,7 +142,7 @@ Configuration::apply_settings() } -int +uint32_t Configuration::get_port_color(const PortModel* pi) { assert(pi != NULL); @@ -151,9 +153,13 @@ Configuration::get_port_color(const PortModel* pi) return _audio_port_color; } else if (pi->is_midi()) { return _midi_port_color; + } else if (pi->is_osc()) { + return _osc_port_color; } - cerr << "[Configuration] Unknown port type! Port will be bright red, this is an error." << endl; + cerr << "[Configuration] Unknown port type " << pi->type() << ", port will appear bright red." + << endl; + return 0xFF0000B0; } diff --git a/src/libs/gui/Configuration.h b/src/libs/gui/Configuration.h index b1a861cb..9f7cbb08 100644 --- a/src/libs/gui/Configuration.h +++ b/src/libs/gui/Configuration.h @@ -56,7 +56,7 @@ public: const string& patch_folder() { return _patch_folder; } void set_patch_folder(const string& f) { _patch_folder = f; } - int get_port_color(const PortModel* pi); + uint32_t get_port_color(const PortModel* pi); private: /** Search path for patch files. Colon delimited, as usual. */ @@ -65,9 +65,10 @@ private: /** Most recent patch folder shown in open dialog */ string _patch_folder; - int _audio_port_color; - int _control_port_color; - int _midi_port_color; + uint32_t _audio_port_color; + uint32_t _control_port_color; + uint32_t _midi_port_color; + uint32_t _osc_port_color; }; diff --git a/src/libs/gui/PatchCanvas.cpp b/src/libs/gui/PatchCanvas.cpp index 4808c288..f37b81c5 100644 --- a/src/libs/gui/PatchCanvas.cpp +++ b/src/libs/gui/PatchCanvas.cpp @@ -60,6 +60,8 @@ PatchCanvas::PatchCanvas(SharedPtr<PatchModel> patch, int width, int height) xml->get_widget("canvas_menu_add_control_output", _menu_add_control_output); xml->get_widget("canvas_menu_add_midi_input", _menu_add_midi_input); xml->get_widget("canvas_menu_add_midi_output", _menu_add_midi_output); + xml->get_widget("canvas_menu_add_osc_input", _menu_add_osc_input); + xml->get_widget("canvas_menu_add_osc_output", _menu_add_osc_output); xml->get_widget("canvas_menu_load_plugin", _menu_load_plugin); xml->get_widget("canvas_menu_load_patch", _menu_load_patch); xml->get_widget("canvas_menu_new_patch", _menu_new_patch); @@ -83,6 +85,12 @@ PatchCanvas::PatchCanvas(SharedPtr<PatchModel> patch, int width, int height) _menu_add_midi_output->signal_activate().connect( sigc::bind(sigc::mem_fun(this, &PatchCanvas::menu_add_port), "midi_output", "ingen:midi", true)); + _menu_add_osc_input->signal_activate().connect( + sigc::bind(sigc::mem_fun(this, &PatchCanvas::menu_add_port), + "osc_input", "ingen:osc", false)); + _menu_add_osc_output->signal_activate().connect( + sigc::bind(sigc::mem_fun(this, &PatchCanvas::menu_add_port), + "osc_output", "ingen:osc", true)); build_plugin_menu(); diff --git a/src/libs/gui/PatchCanvas.h b/src/libs/gui/PatchCanvas.h index 275d6209..da33142b 100644 --- a/src/libs/gui/PatchCanvas.h +++ b/src/libs/gui/PatchCanvas.h @@ -117,6 +117,8 @@ private: Gtk::MenuItem* _menu_add_control_output; Gtk::MenuItem* _menu_add_midi_input; Gtk::MenuItem* _menu_add_midi_output; + Gtk::MenuItem* _menu_add_osc_input; + Gtk::MenuItem* _menu_add_osc_output; Gtk::MenuItem* _menu_load_plugin; Gtk::MenuItem* _menu_load_patch; Gtk::MenuItem* _menu_new_patch; diff --git a/src/libs/gui/ingen_gui.glade b/src/libs/gui/ingen_gui.glade index e0777069..994f456a 100644 --- a/src/libs/gui/ingen_gui.glade +++ b/src/libs/gui/ingen_gui.glade @@ -481,53 +481,62 @@ <property name="n_columns">3</property> <property name="row_spacing">12</property> <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> </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="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="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> @@ -570,60 +579,51 @@ </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> - <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="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="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> @@ -654,61 +654,61 @@ <property name="n_rows">2</property> <property name="n_columns">2</property> <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> <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="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="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> </widget> @@ -810,63 +810,71 @@ <property name="column_spacing">12</property> <property name="row_spacing">4</property> <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> <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="x_options">GTK_FILL</property> - <property name="y_options"></property> - </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="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_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> @@ -917,19 +925,19 @@ </packing> </child> <child> - <widget class="GtkRadioButton" id="load_subpatch_poly_from_parent_radio"> + <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">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 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> - <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="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> @@ -937,55 +945,47 @@ </packing> </child> <child> - <widget class="GtkLabel" id="label104"> + <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"> <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="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> </widget> @@ -1047,54 +1047,6 @@ <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> @@ -1134,6 +1086,54 @@ <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> @@ -1197,46 +1197,22 @@ <placeholder/> </child> <child> - <widget class="GtkVBox" id="control_panel_vbox"> + <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"><b>Name</b></property> + <property name="use_markup">True</property> + <property name="single_line_mode">True</property> </widget> <packing> <property name="expand">False</property> @@ -1244,54 +1220,67 @@ </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> + <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"> @@ -1525,32 +1514,46 @@ </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="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"><b>Name</b></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> @@ -1558,57 +1561,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> </widget> </child> @@ -1698,51 +1698,51 @@ <property name="n_rows">2</property> <property name="n_columns">2</property> <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> </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="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="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> @@ -2118,7 +2118,7 @@ <property name="column_spacing">10</property> <property name="row_spacing">6</property> <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> @@ -2126,28 +2126,34 @@ <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="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="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> @@ -2155,14 +2161,12 @@ </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> @@ -2170,20 +2174,18 @@ </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_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> @@ -2191,8 +2193,6 @@ <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,64 +2347,33 @@ Contributors: <property name="n_columns">2</property> <property name="row_spacing">8</property> <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> - </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> + <property name="y_options"></property> </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> @@ -2427,35 +2396,66 @@ Contributors: </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> </child> <child> - <widget class="GtkLabel" id="label131"> + <widget class="GtkHBox" id="hbox67"> <property name="visible">True</property> - <property name="xalign">0</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="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> </packing> </child> </widget> @@ -2556,6 +2556,15 @@ Contributors: <signal name="activate" handler="on_canvas_menu_add_midi_input_activate"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="canvas_menu_add_osc_input"> + <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 an OSC input to this patch</property> + <property name="label" translatable="yes">OSC</property> + <property name="use_underline">True</property> + </widget> + </child> </widget> </child> <child internal-child="image"> @@ -2601,6 +2610,15 @@ Contributors: <signal name="activate" handler="on_canvas_menu_add_midi_output_activate"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="canvas_menu_add_osc_output"> + <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 an OSC output to this patch</property> + <property name="label" translatable="yes">OSC</property> + <property name="use_underline">True</property> + </widget> + </child> </widget> </child> <child internal-child="image"> @@ -2778,19 +2796,26 @@ Contributors: <property name="n_columns">2</property> <property name="row_spacing">8</property> <child> - <widget class="GtkEntry" id="upload_patch_symbol_entry"> + <widget class="GtkLabel" id="label136"> <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">Short Name: </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="label135"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Symbol: </property> + </widget> + <packing> + <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> @@ -2811,26 +2836,19 @@ The first character must be one of _, a-z or A-Z and subsequenct characters can </packing> </child> <child> - <widget class="GtkLabel" id="label135"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Symbol: </property> - </widget> - <packing> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="label136"> + <widget class="GtkEntry" id="upload_patch_symbol_entry"> <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Short Name: </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="top_attach">1</property> - <property name="bottom_attach">2</property> - <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> @@ -2976,17 +2994,26 @@ Thank you for contributing.</property> <property name="column_spacing">2</property> <property name="row_spacing">4</property> <child> - <widget class="GtkSpinButton" id="port_properties_min_spinner"> + <widget class="GtkLabel" id="label139"> <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">Maximum Value: </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="label138"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Minimum Value: </property> + </widget> + <packing> + <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> @@ -3008,26 +3035,17 @@ Thank you for contributing.</property> </packing> </child> <child> - <widget class="GtkLabel" id="label138"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Minimum Value: </property> - </widget> - <packing> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="label139"> + <widget class="GtkSpinButton" id="port_properties_min_spinner"> <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Maximum 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="top_attach">1</property> - <property name="bottom_attach">2</property> - <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> |