diff options
author | Julien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr> | 2016-07-28 14:25:40 +0200 |
---|---|---|
committer | Julien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr> | 2016-07-28 23:18:47 +0200 |
commit | 1d173bc84fb36f73be2bc9d58251ac110e4148eb (patch) | |
tree | 91257a3735d82fdd137716f804d07fdc01511f68 | |
parent | 7c5a8dea7c3c22ab1e59460584ed27263461675c (diff) |
GenericUI: replace ComboBoxText by ArdourDropdown
-rw-r--r-- | gtk2_ardour/generic_pluginui.cc | 31 | ||||
-rw-r--r-- | gtk2_ardour/plugin_ui.h | 5 |
2 files changed, 15 insertions, 21 deletions
diff --git a/gtk2_ardour/generic_pluginui.cc b/gtk2_ardour/generic_pluginui.cc index 637eca0bbf..316c7a1f0f 100644 --- a/gtk2_ardour/generic_pluginui.cc +++ b/gtk2_ardour/generic_pluginui.cc @@ -670,21 +670,17 @@ GenericPluginUI::build_control_ui (const Evoral::Parameter& param, * b) This port is marked as being an enumeration. */ - std::vector<std::string> labels; - for ( - ARDOUR::ScalePoints::const_iterator i = control_ui->scale_points->begin(); - i != control_ui->scale_points->end(); - ++i) { - - labels.push_back(i->first); + control_ui->combo = new ArdourDropdown(); + for (ARDOUR::ScalePoints::const_iterator i = control_ui->scale_points->begin(); + i != control_ui->scale_points->end(); + ++i) { + control_ui->combo->AddMenuElem(Menu_Helpers::MenuElem( + i->first, + sigc::bind(sigc::mem_fun(*this, &GenericPluginUI::control_combo_changed), + control_ui, + i->second))); } - // TODO use ArdourDropDown - control_ui->combo = new Gtk::ComboBoxText(); - set_popdown_strings(*control_ui->combo, labels); - control_ui->combo->signal_changed().connect( - sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::control_combo_changed), - control_ui)); mcontrol->Changed.connect(control_connections, invalidator(*this), boost::bind(&GenericPluginUI::ui_parameter_changed, this, control_ui), @@ -982,7 +978,7 @@ GenericPluginUI::update_control_display (ControlUI* cui) if (cui->combo && cui->scale_points) { for (ARDOUR::ScalePoints::iterator it = cui->scale_points->begin(); it != cui->scale_points->end(); ++it) { if (it->second == val) { - cui->combo->set_active_text(it->first); + cui->combo->set_text(it->first); break; } } @@ -1006,11 +1002,10 @@ GenericPluginUI::update_control_display (ControlUI* cui) } void -GenericPluginUI::control_combo_changed (ControlUI* cui) +GenericPluginUI::control_combo_changed (ControlUI* cui, float value) { - if (!cui->ignore_change && cui->scale_points) { - string value = cui->combo->get_active_text(); - insert->automation_control (cui->parameter())->set_value ((*cui->scale_points)[value], Controllable::NoGroup); + if (!cui->ignore_change) { + insert->automation_control (cui->parameter())->set_value (value, Controllable::NoGroup); } } diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h index 895d8681ab..721289ac0b 100644 --- a/gtk2_ardour/plugin_ui.h +++ b/gtk2_ardour/plugin_ui.h @@ -42,7 +42,6 @@ #include <gtkmm/adjustment.h> #include <gtkmm/togglebutton.h> #include <gtkmm/socket.h> -#include <gtkmm/comboboxtext.h> #include <gtkmm/socket.h> #include "ardour/types.h" @@ -235,7 +234,7 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox ArdourButton automate_button; Gtk::Label label; - Gtk::ComboBoxText* combo; + ArdourDropdown* combo; Gtkmm2ext::ClickBox* clickbox; Gtk::FileChooserButton* file_button; ArdourSpinner* spin_box; @@ -280,7 +279,7 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox void ui_parameter_changed (ControlUI* cui); void update_control_display (ControlUI* cui); - void control_combo_changed (ControlUI* cui); + void control_combo_changed (ControlUI* cui, float value); void astate_clicked (ControlUI*); void automation_state_changed (ControlUI*); |