diff options
-rw-r--r-- | src/libs/gui/NodeMenu.cpp | 20 | ||||
-rw-r--r-- | src/libs/gui/NodeMenu.hpp | 10 | ||||
-rw-r--r-- | src/libs/gui/NodeModule.cpp | 55 | ||||
-rw-r--r-- | src/libs/gui/NodeModule.hpp | 8 | ||||
-rw-r--r-- | src/libs/gui/ingen_gui.glade | 931 |
5 files changed, 550 insertions, 474 deletions
diff --git a/src/libs/gui/NodeMenu.cpp b/src/libs/gui/NodeMenu.cpp index 6e4cb1d2..93c76cc6 100644 --- a/src/libs/gui/NodeMenu.cpp +++ b/src/libs/gui/NodeMenu.cpp @@ -37,13 +37,16 @@ NodeMenu::NodeMenu(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml Gtk::Menu* node_menu = NULL; xml->get_widget("node_menu", node_menu); xml->get_widget("node_controls_menuitem", _controls_menuitem); - xml->get_widget("node_gui_menuitem", _gui_menuitem); + xml->get_widget("node_popup_gui_menuitem", _popup_gui_menuitem); + xml->get_widget("node_embed_gui_menuitem", _embed_gui_menuitem); node_menu->remove(*_controls_menuitem); - node_menu->remove(*_gui_menuitem); + node_menu->remove(*_popup_gui_menuitem); + node_menu->remove(*_embed_gui_menuitem); items().push_front(Gtk::Menu_Helpers::SeparatorElem()); insert(*_controls_menuitem, 0); - insert(*_gui_menuitem, 0); + insert(*_popup_gui_menuitem, 0); + insert(*_embed_gui_menuitem, 0); } @@ -56,8 +59,11 @@ NodeMenu::init(SharedPtr<NodeModel> node) sigc::mem_fun(App::instance().window_factory(), &WindowFactory::present_controls), node)); - if (node->plugin()->ui(App::instance().engine().get(), node.get())) - _gui_menuitem->signal_activate().connect(sigc::mem_fun(this, &NodeMenu::show_gui)); + //if (node->plugin()->ui(App::instance().engine().get(), node.get())) + _popup_gui_menuitem->signal_activate().connect(sigc::mem_fun(signal_popup_gui, + &sigc::signal<void>::emit)); + _embed_gui_menuitem->signal_toggled().connect(sigc::mem_fun(this, + &NodeMenu::on_menu_embed_gui)); //else // _gui_menuitem->hide(); @@ -66,9 +72,9 @@ NodeMenu::init(SharedPtr<NodeModel> node) void -NodeMenu::show_gui() +NodeMenu::on_menu_embed_gui() { - cerr << "SHOW GUI" << endl; + signal_embed_gui.emit(_embed_gui_menuitem->get_active()); } diff --git a/src/libs/gui/NodeMenu.hpp b/src/libs/gui/NodeMenu.hpp index 50226837..f0d30f4c 100644 --- a/src/libs/gui/NodeMenu.hpp +++ b/src/libs/gui/NodeMenu.hpp @@ -51,17 +51,21 @@ public: bool has_control_inputs(); + sigc::signal<void> signal_popup_gui; + sigc::signal<void, bool> signal_embed_gui; + protected: virtual void enable_controls_menuitem(); virtual void disable_controls_menuitem(); - void show_gui(); void on_menu_clone(); void on_menu_learn(); + void on_menu_embed_gui(); - Gtk::MenuItem* _controls_menuitem; - Gtk::MenuItem* _gui_menuitem; + Gtk::MenuItem* _controls_menuitem; + Gtk::MenuItem* _popup_gui_menuitem; + Gtk::CheckMenuItem* _embed_gui_menuitem; }; diff --git a/src/libs/gui/NodeModule.cpp b/src/libs/gui/NodeModule.cpp index d271dd2f..4d7770ba 100644 --- a/src/libs/gui/NodeModule.cpp +++ b/src/libs/gui/NodeModule.cpp @@ -38,6 +38,8 @@ namespace GUI { NodeModule::NodeModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeModel> node) : FlowCanvas::Module(canvas, node->path().name()) , _node(node) + , _gui(NULL) + , _gui_item(NULL) { assert(_node); @@ -51,6 +53,8 @@ NodeModule::NodeModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeMode node->signal_metadata.connect(sigc::mem_fun(this, &NodeModule::set_metadata)); node->signal_polyphonic.connect(sigc::mem_fun(this, &NodeModule::set_stacked_border)); node->signal_renamed.connect(sigc::mem_fun(this, &NodeModule::rename)); + + _menu->signal_embed_gui.connect(sigc::mem_fun(this, &NodeModule::embed_gui)); set_stacked_border(node->polyphonic()); } @@ -91,6 +95,54 @@ NodeModule::create(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeModel> n void +NodeModule::embed_gui(bool embed) +{ + if (embed) { + if (!_gui_item) { + cerr << "Embedding LV2 GUI" << endl; + // FIXME: leaks? + SLV2UIInstance ui = _node->plugin()->ui(App::instance().engine().get(), _node.get()); + if (ui) { + cerr << "Found UI" << endl; + GtkWidget* c_widget = (GtkWidget*)slv2_ui_instance_get_widget(ui); + _gui = Glib::wrap(c_widget); + assert(_gui); + const double y = 4 + _canvas_title.property_text_height(); + _gui_item = new Gnome::Canvas::Widget(/**_canvas.lock()->root()*/*this, 2.0, y, *_gui); + } + } + + if (_gui_item) { + assert(_gui); + cerr << "Created canvas item" << endl; + _gui->show(); + _gui->show_all(); + _gui_item->show(); + Gtk::Requisition r = _gui->size_request(); + cerr << "Size request: " << r.width << "x" << r.height << endl; + _width = max(_width, (double)r.width); + _height = max(_height, (double)r.height); + _gui_item->property_width() = _width; + _gui_item->property_height() = _height; + _gui_item->raise_to_top(); + _ports_y_offset = _height + 2; + set_width(_width); + } else { + cerr << "*** Failed to create canvas item" << endl; + } + + } else { + if (_gui_item) + _gui_item->hide(); + + _ports_y_offset = 0; + } + + resize(); +} + + +void NodeModule::rename() { set_name(_node->path().name()); @@ -128,8 +180,9 @@ NodeModule::show_control_window() cerr << "Showing LV2 GUI" << endl; // FIXME: leak GtkWidget* c_widget = (GtkWidget*)slv2_ui_instance_get_widget(ui); - Gtk::Window* win = new Gtk::Window(); Gtk::Widget* widget = Glib::wrap(c_widget); + + Gtk::Window* win = new Gtk::Window(); win->add(*widget); widget->show_all(); win->show_all(); diff --git a/src/libs/gui/NodeModule.hpp b/src/libs/gui/NodeModule.hpp index e34b289f..d414ca9a 100644 --- a/src/libs/gui/NodeModule.hpp +++ b/src/libs/gui/NodeModule.hpp @@ -76,9 +76,13 @@ protected: void add_port(SharedPtr<PortModel> port, bool resize=true); void remove_port(SharedPtr<PortModel> port); + + void embed_gui(bool embed); - SharedPtr<NodeModel> _node; - NodeMenu* _menu; + SharedPtr<NodeModel> _node; + NodeMenu* _menu; + Gtk::Widget* _gui; + Gnome::Canvas::Widget* _gui_item; }; diff --git a/src/libs/gui/ingen_gui.glade b/src/libs/gui/ingen_gui.glade index 65c2ffdd..cad82a9d 100644 --- a/src/libs/gui/ingen_gui.glade +++ b/src/libs/gui/ingen_gui.glade @@ -460,53 +460,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> @@ -549,60 +558,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> @@ -633,61 +633,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> @@ -789,63 +789,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> @@ -896,19 +904,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> @@ -916,55 +924,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> @@ -1026,54 +1026,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> @@ -1113,6 +1065,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> @@ -1176,47 +1176,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"> - <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"> + <widget class="GtkHBox" id="hbox1"> <property name="visible">True</property> - <property name="homogeneous">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="GtkRadioButton" id="control_panel_all_voices_radio"> + <widget class="GtkLabel" id="control_strip_name_label"> <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> + <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> @@ -1224,54 +1199,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"> @@ -1536,32 +1524,47 @@ Hold <Ctrl> to play controls in either mode.</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="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="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> @@ -1569,57 +1572,54 @@ Hold <Ctrl> to play controls in either mode.</property> </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> @@ -1709,51 +1709,51 @@ Hold <Ctrl> to play controls in either mode.</property> <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> @@ -2129,7 +2129,7 @@ Hold <Ctrl> to play controls in either mode.</property> <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> @@ -2137,28 +2137,34 @@ Hold <Ctrl> to play controls in either mode.</property> <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> @@ -2166,14 +2172,12 @@ Hold <Ctrl> to play controls in either mode.</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> @@ -2181,20 +2185,18 @@ Hold <Ctrl> to play controls in either mode.</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_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> @@ -2202,8 +2204,6 @@ Hold <Ctrl> to play controls in either mode.</property> <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> @@ -2358,64 +2358,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> @@ -2438,35 +2407,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> @@ -2807,19 +2807,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> @@ -2840,26 +2847,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> @@ -3005,17 +3005,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> @@ -3037,26 +3046,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> @@ -3169,11 +3169,11 @@ Thank you for contributing.</property> </widget> </child> <child> - <widget class="GtkImageMenuItem" id="node_gui_menuitem"> + <widget class="GtkImageMenuItem" id="node_popup_gui_menuitem"> <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">Show this node's custom graphical interface</property> - <property name="label" translatable="yes">GUI</property> + <property name="tooltip" translatable="yes">Show this node's custom graphical interface in a separate window</property> + <property name="label" translatable="yes">GUI...</property> <property name="use_underline">True</property> <child internal-child="image"> <widget class="GtkImage" id="menu-item-image22"> @@ -3184,5 +3184,14 @@ Thank you for contributing.</property> </child> </widget> </child> + <child> + <widget class="GtkCheckMenuItem" id="node_embed_gui_menuitem"> + <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">Embed the custom GUI for this plugin in the patch canvas</property> + <property name="label" translatable="yes">Embed GUI</property> + <property name="use_underline">True</property> + </widget> + </child> </widget> </glade-interface> |