diff options
-rw-r--r-- | gtk2_ardour/plugin_pin_dialog.cc | 147 | ||||
-rw-r--r-- | gtk2_ardour/plugin_pin_dialog.h | 2 |
2 files changed, 72 insertions, 77 deletions
diff --git a/gtk2_ardour/plugin_pin_dialog.cc b/gtk2_ardour/plugin_pin_dialog.cc index 5bc6da220c..9762903be9 100644 --- a/gtk2_ardour/plugin_pin_dialog.cc +++ b/gtk2_ardour/plugin_pin_dialog.cc @@ -18,6 +18,7 @@ */ #include <gtkmm/table.h> +#include <gtkmm/frame.h> #include <gtkmm/box.h> #include <gtkmm/label.h> @@ -46,8 +47,7 @@ using namespace Gtkmm2ext; PluginPinDialog::PluginPinDialog (boost::shared_ptr<ARDOUR::PluginInsert> pi) : ArdourWindow (string_compose (_("Pin Configuration: %1"), pi->name ())) - , _set_config (_("Custom"), ArdourButton::led_default_elements) - , _rst_mapping (_("Reset")) + , _set_config (_("Configure"), ArdourButton::led_default_elements) , _tgl_sidechain (_("Side Chain"), ArdourButton::led_default_elements) , _add_plugin (_("+")) , _del_plugin (_("-")) @@ -55,8 +55,8 @@ PluginPinDialog::PluginPinDialog (boost::shared_ptr<ARDOUR::PluginInsert> pi) , _del_output_audio (_("-")) , _add_output_midi (_("+")) , _del_output_midi (_("-")) - , _add_sc_audio (_("A+")) - , _add_sc_midi (_("M+")) + , _add_sc_audio (_("Audio")) + , _add_sc_midi (_("MIDI")) , _pi (pi) , _pin_box_size (10) , _width (0) @@ -93,6 +93,11 @@ PluginPinDialog::PluginPinDialog (boost::shared_ptr<ARDOUR::PluginInsert> pi) _tgl_sidechain.set_name ("pinrouting sidechain"); _set_config.set_name ("pinrouting custom"); + Menu_Helpers::MenuList& citems = reset_menu.items(); + reset_menu.set_name ("ArdourContextMenu"); + citems.clear(); + citems.push_back (Menu_Helpers::MenuElem (_("Reset"), sigc::mem_fun (*this, &PluginPinDialog::reset_mapping))); + _pm_size_group = SizeGroup::create (SIZE_GROUP_BOTH); _add_plugin.set_tweaks (ArdourButton::Square); _del_plugin.set_tweaks (ArdourButton::Square); @@ -103,86 +108,75 @@ PluginPinDialog::PluginPinDialog (boost::shared_ptr<ARDOUR::PluginInsert> pi) _pm_size_group->add_widget (_add_output_midi); _pm_size_group->add_widget (_del_output_midi); - _sc_size_group = SizeGroup::create (SIZE_GROUP_BOTH); - _sc_size_group->add_widget (_add_sc_audio); - _sc_size_group->add_widget (_add_sc_midi); - - Label* l; - Gtk::Separator *sep; - int r = 0; - Table* tl = manage (new Table (9, 2)); - tl->set_border_width (0); - tl->set_spacings (2); - - Table* tr = manage (new Table (4, 3)); - tr->set_border_width (0); - tr->set_spacings (2); - - /* left side table */ - l = manage (new Label (_("<b>Config</b>"), ALIGN_CENTER)); - l->set_use_markup (); - tl->attach (*l, 0, 2, r, r + 1, FILL, SHRINK); - ++r; - tl->attach (_set_config, 0, 2, r, r + 1, FILL, SHRINK); - ++r; - - sep = manage (new HSeparator ()); - tl->attach (*sep, 0, 2, r, r + 1, FILL|EXPAND, FILL|EXPAND, 0, 4); - ++r; - - l = manage (new Label (_("Instances"), ALIGN_CENTER)); - tl->attach (*l, 0, 2, r, r + 1, FILL, SHRINK); - ++r; - tl->attach (_add_plugin, 0, 1, r, r + 1, SHRINK, SHRINK); - tl->attach (_del_plugin, 1, 2, r, r + 1, SHRINK, SHRINK); - ++r; - - l = manage (new Label (_("Audio Out"), ALIGN_CENTER)); - tl->attach (*l, 0, 2, r, r + 1, FILL, SHRINK); - ++r; - tl->attach (_add_output_audio, 0, 1, r, r + 1, SHRINK, SHRINK); - tl->attach (_del_output_audio, 1, 2, r, r + 1, SHRINK, SHRINK); - ++r; - - l = manage (new Label (_("Midi Out"), ALIGN_CENTER)); - tl->attach (*l, 0, 2, r, r + 1, FILL, SHRINK); - ++r; - tl->attach (_add_output_midi, 0, 1, r, r + 1, SHRINK, SHRINK); - tl->attach (_del_output_midi, 1, 2, r, r + 1, SHRINK, SHRINK); - ++r; - - /* right side table */ - r = 0; - l = manage (new Label (_("<b>Connections</b>"), ALIGN_CENTER)); - l->set_use_markup (); - tr->attach (*l, 0, 2, r, r + 1, FILL, SHRINK); - ++r; - tr->attach (_rst_mapping, 0, 2, r, r + 1, FILL, SHRINK); - ++r; - - sep = manage (new HSeparator ()); - tr->attach (*sep, 0, 2, r, r + 1, FILL|EXPAND, SHRINK, 0, 4); - ++r; - - tr->attach (_tgl_sidechain, 0, 2, r, r + 1, FILL, SHRINK); - ++r; - + Box* box; + Frame *f; + + VBox* tl = manage (new VBox ()); + tl->set_border_width (2); + tl->set_spacing (2); + + VBox* tr = manage (new VBox ()); + tr->set_border_width (2); + tr->set_spacing (2); + + /* left side */ + tl->pack_start (_set_config, false, false); + tl->pack_start (*manage (new Label ("")), true, true); // invisible separator + + box = manage (new HBox ()); + box->set_border_width (2); + box->pack_start (_add_plugin, true, false); + box->pack_start (_del_plugin, true, false); + f = manage (new Frame()); + f->set_label (_("Instances")); + f->add (*box); + tl->pack_start (*f, false, false); + + box = manage (new HBox ()); + box->set_border_width (2); + box->pack_start (_add_output_audio, true, false); + box->pack_start (_del_output_audio, true, false); + f = manage (new Frame()); + f->set_label (_("Audio Out")); + f->add (*box); + tl->pack_start (*f, false, false); + + box = manage (new HBox ()); + box->set_border_width (2); + box->pack_start (_add_output_midi, true, false); + box->pack_start (_del_output_midi, true, false); + f = manage (new Frame()); + f->set_label (_("MIDI Out")); + f->add (*box); + tl->pack_start (*f, false, false); + + + /* right side */ _sidechain_tbl = manage (new Gtk::Table ()); _sidechain_tbl->set_spacings (2); - tr->attach (*_sidechain_tbl, 0, 2, r, r + 1, EXPAND|FILL, EXPAND|FILL, 0, 2); - ++r; - tr->attach (_add_sc_audio, 0, 1, r, r + 1, FILL, SHRINK); - tr->attach (_add_sc_midi, 1, 2, r, r + 1, FILL, SHRINK); - ++r; + tr->pack_start (_tgl_sidechain, false, false); + tr->pack_start (*_sidechain_tbl, true, true); + + box = manage (new VBox ()); + box->set_border_width (2); + box->set_spacing (2); + box->pack_start (_add_sc_audio, false, false); + box->pack_start (_add_sc_midi , false, false); + f = manage (new Frame()); + f->set_label (_("Add Port")); + f->add (*box); + + tr->pack_start (*f, false, false); - HBox* hbox = manage (new HBox); + /* global packing */ + HBox* hbox = manage (new HBox ()); hbox->set_spacing (4); hbox->pack_start (*tl, false, false); hbox->pack_start (darea, true, true); hbox->pack_start (*tr, false, false); - VBox* vbox = manage (new VBox); + VBox* vbox = manage (new VBox ()); vbox->pack_start (*hbox, true, true); set_border_width (4); add (*vbox); @@ -200,7 +194,6 @@ PluginPinDialog::PluginPinDialog (boost::shared_ptr<ARDOUR::PluginInsert> pi) _tgl_sidechain.signal_clicked.connect (sigc::mem_fun (*this, &PluginPinDialog::toggle_sidechain)); - _rst_mapping.signal_clicked.connect (sigc::mem_fun (*this, &PluginPinDialog::reset_mapping)); _set_config.signal_clicked.connect (sigc::mem_fun (*this, &PluginPinDialog::reset_configuration)); _add_plugin.signal_clicked.connect (sigc::bind (sigc::mem_fun (*this, &PluginPinDialog::add_remove_plugin_clicked), true)); _del_plugin.signal_clicked.connect (sigc::bind (sigc::mem_fun (*this, &PluginPinDialog::add_remove_plugin_clicked), false)); @@ -889,6 +882,8 @@ PluginPinDialog::darea_button_release_event (GdkEventButton* ev) _selection.reset (); } else if (_hover == _selection && _selection && ev->button == 3) { handle_disconnect (_selection); + } else if (!_hover) { + reset_menu.popup (1, ev->time); } _actor.reset (); darea.queue_draw (); diff --git a/gtk2_ardour/plugin_pin_dialog.h b/gtk2_ardour/plugin_pin_dialog.h index 2d3d65382c..c4d72c1e3f 100644 --- a/gtk2_ardour/plugin_pin_dialog.h +++ b/gtk2_ardour/plugin_pin_dialog.h @@ -79,7 +79,6 @@ private: Gtk::DrawingArea darea; ArdourButton _set_config; - ArdourButton _rst_mapping; ArdourButton _tgl_sidechain; ArdourButton _add_plugin; ArdourButton _del_plugin; @@ -90,6 +89,7 @@ private: ArdourButton _add_sc_audio; ArdourButton _add_sc_midi; + Gtk::Menu reset_menu; Gtk::Menu input_menu; Gtk::Table* _sidechain_tbl; Glib::RefPtr<Gtk::SizeGroup> _pm_size_group; |