X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fplugin_ui.cc;h=262b830d8a56b699d83f8a8c68fa881a22930771;hb=b1a99f89da52018d3995592eb821f8e4a3c89a28;hp=d92f76bd4f5c0b29a7dd5b8a8420563620f057a3;hpb=c38fdbc64c73c686f9f55729b352f8d0f4c09070;p=ardour.git diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc index d92f76bd4f..262b830d8a 100644 --- a/gtk2_ardour/plugin_ui.cc +++ b/gtk2_ardour/plugin_ui.cc @@ -94,8 +94,8 @@ PluginUIWindow::PluginUIWindow (AudioEngine &engine, PluginInsert& insert, bool _pluginui = pu; add (*pu); - map_event.connect (mem_fun (*pu, &PluginUI::start_updating)); - unmap_event.connect (mem_fun (*pu, &PluginUI::stop_updating)); + signal_map_event().connect (mem_fun (*pu, &PluginUI::start_updating)); + signal_unmap_event().connect (mem_fun (*pu, &PluginUI::stop_updating)); } set_position (Gtk::WIN_POS_MOUSE); @@ -121,6 +121,9 @@ PluginUI::PluginUI (AudioEngine &engine, PluginInsert& pi, bool scrollable) engine(engine), button_table (initial_button_rows, initial_button_cols), output_table (initial_output_rows, initial_output_cols), + hAdjustment(0.0, 0.0, 0.0), + vAdjustment(0.0, 0.0, 0.0), + scroller_view(hAdjustment, vAdjustment), automation_menu (0), is_scrollable(scrollable) { @@ -473,11 +476,11 @@ PluginUI::build_control_ui (AudioEngine &engine, guint32 port_index, MIDI::Contr if (defaults && defaults->count > 0) { - control_ui->combo = new Gtk::Combo; - control_ui->combo->set_value_in_list(true, false); + control_ui->combo = new Gtk::ComboBoxText; + //control_ui->combo->set_value_in_list(true, false); set_popdown_strings (*control_ui->combo, setup_scale_values(port_index, control_ui)); - control_ui->combo->get_popwin()->signal_unmap_event(), mem_fun(*this, &PluginUI::control_combo_changed), control_ui)); - plugin.ParameterChanged.connect (bind (mem_fun(*this, &PluginUI::parameter_changed), control_ui)); + control_ui->combo->signal_changed().connect (bind (mem_fun(*this, &PluginUI::control_combo_changed), control_ui)); + plugin.ParameterChanged.connect (bind (mem_fun (*this, &PluginUI::parameter_changed), control_ui)); control_ui->pack_start(control_ui->label, true, true); control_ui->pack_start(*control_ui->combo, false, true); @@ -550,9 +553,6 @@ PluginUI::build_control_ui (AudioEngine &engine, guint32 port_index, MIDI::Contr control_ui->control->set_style (BarController::LeftToRight); control_ui->control->set_use_parent (true); - control_ui->control->get_spin_button().signal_focus_in_event().connect (mem_fun(*this, &PluginUI::entry_focus_event)); - control_ui->control->get_spin_button().signal_focus_out_event().connect (mem_fun(*this, &PluginUI::entry_focus_event)); - control_ui->control->StartGesture.connect (bind (mem_fun(*this, &PluginUI::start_touch), control_ui)); control_ui->control->StopGesture.connect (bind (mem_fun(*this, &PluginUI::stop_touch), control_ui)); @@ -715,7 +715,7 @@ PluginUI::update_control_display (ControlUI* cui) std::map::iterator it; for (it = cui->combo_map->begin(); it != cui->combo_map->end(); ++it) { if (it->second == val) { - cui->combo->get_entry()->set_text(it->first); + cui->combo->set_active_text(it->first); break; } } @@ -746,16 +746,15 @@ PluginUI::control_port_toggled (ControlUI* cui) } } -gint -PluginUI::control_combo_changed (GdkEventAny* ignored, ControlUI* cui) +void +PluginUI::control_combo_changed (ControlUI* cui) { if (!cui->ignore_change) { - string value = cui->combo->get_entry()->get_text(); + string value = cui->combo->get_active_text(); std::map mapping = *cui->combo_map; insert.set_parameter (cui->port_index, mapping[value]); } - return FALSE; } void @@ -767,17 +766,6 @@ PluginUIWindow::plugin_going_away (ARDOUR::Redirect* ignored) delete_when_idle (this); } -gint -PluginUI::entry_focus_event (GdkEventFocus* ev) -{ - if (ev->in) { - ARDOUR_UI::instance()->allow_focus (true); - } else { - ARDOUR_UI::instance()->allow_focus (false); - } - return TRUE; -} - void PluginUI::redirect_active_changed (Redirect* r, void* src) { @@ -786,24 +774,24 @@ PluginUI::redirect_active_changed (Redirect* r, void* src) bypass_button.set_active (!r->active()); } -gint -PluginUI::start_updating (GdkEventAny *ev) +bool +PluginUI::start_updating (GdkEventAny* ignored) { if (output_controls.size() > 0 ) { screen_update_connection.disconnect(); screen_update_connection = ARDOUR_UI::instance()->RapidScreenUpdate.connect (mem_fun(*this, &PluginUI::output_update)); } - return FALSE; + return false; } -gint -PluginUI::stop_updating (GdkEventAny *ev) +bool +PluginUI::stop_updating (GdkEventAny* ignored) { if (output_controls.size() > 0 ) { screen_update_connection.disconnect(); } - return FALSE; + return false; } void @@ -840,10 +828,10 @@ PluginUI::output_update () } } -list +vector PluginUI::setup_scale_values(guint32 port_index, ControlUI* cui) { - list enums; + vector enums; LadspaPlugin* lp = dynamic_cast (&plugin); cui->combo_map = new std::map; @@ -869,12 +857,10 @@ PlugUIBase::PlugUIBase (PluginInsert& pi) save_button(_("save")), bypass_button (_("bypass")) { - combo.set_value_in_list(true,true); - combo.set_use_arrows(true); - combo.set_use_arrows_always(true); + //combo.set_use_arrows_always(true); set_popdown_strings (combo, plugin.get_presets()); combo.set_active_text (""); - combo.get_popwin()->signal_unmap_event().connect(mem_fun(*this, &PlugUIBase::setting_selected)); + combo.signal_changed().connect(mem_fun(*this, &PlugUIBase::setting_selected)); save_button.set_name ("PluginSaveButton"); save_button.signal_clicked().connect(mem_fun(*this, &PlugUIBase::save_plugin_setting)); @@ -883,17 +869,15 @@ PlugUIBase::PlugUIBase (PluginInsert& pi) bypass_button.signal_toggled().connect (mem_fun(*this, &PlugUIBase::bypass_toggled)); } -gint -PlugUIBase::setting_selected(GdkEventAny* ignored) +void +PlugUIBase::setting_selected() { - Entry* entry = combo.get_entry(); - if (entry->get_text().length() > 0) { - if (!plugin.load_preset(entry->get_text())) { - warning << string_compose(_("Plugin preset %1 not found"), entry->get_text()) << endmsg; + if (combo.get_active_text().length() > 0) { + if (!plugin.load_preset(combo.get_active_text())) { + warning << string_compose(_("Plugin preset %1 not found"), combo.get_active_text()) << endmsg; } } - return FALSE; } void @@ -903,11 +887,10 @@ PlugUIBase::save_plugin_setting () prompter.set_prompt(_("Name for plugin settings:")); prompter.show_all(); - prompter.done.connect(Main::quit.slot()); - Main::run(); + switch (prompter.run ()) { + case Gtk::RESPONSE_ACCEPT: - if (prompter.status == Gtkmm2ext::Prompter::entered) { string name; prompter.get_result(name); @@ -918,6 +901,7 @@ PlugUIBase::save_plugin_setting () combo.set_active_text (name); } } + break; } }