#include "ardour/session.h"
#include "ardour/value_as_string.h"
-#include "ardour_ui.h"
#include "prompter.h"
#include "plugin_ui.h"
#include "gui_thread.h"
#include "automation_controller.h"
+#include "timers.h"
+#include "tooltips.h"
+#include "ui_config.h"
#include "i18n.h"
using namespace PBD;
using namespace Gtkmm2ext;
using namespace Gtk;
+using namespace ARDOUR_UI_UTILS;
GenericPluginUI::GenericPluginUI (boost::shared_ptr<PluginInsert> pi, bool scrollable)
: PlugUIBase (pi)
Label* combo_label = manage (new Label (_("<span size=\"large\">Presets</span>")));
combo_label->set_use_markup (true);
- latency_button.add (latency_label);
- latency_button.signal_clicked().connect (sigc::mem_fun (*this, &PlugUIBase::latency_button_clicked));
+ latency_button.signal_clicked.connect (sigc::mem_fun (*this, &PlugUIBase::latency_button_clicked));
set_latency_label ();
- smaller_hbox->pack_start (latency_button, false, false, 10);
+ smaller_hbox->pack_start (latency_button, false, false, 4);
smaller_hbox->pack_start (_preset_combo, false, false);
smaller_hbox->pack_start (_preset_modified, false, false);
smaller_hbox->pack_start (add_button, false, false);
smaller_hbox->pack_start (save_button, false, false);
smaller_hbox->pack_start (delete_button, false, false);
- smaller_hbox->pack_start (bypass_button, false, true);
+ smaller_hbox->pack_start (reset_button, false, false, 4);
+ smaller_hbox->pack_start (bypass_button, false, true, 4);
automation_manual_all_button.set_text(_("Manual"));
automation_manual_all_button.set_name (X_("generic button"));
const std::string param_docs = plugin->get_parameter_docs(i);
if (!param_docs.empty()) {
- ARDOUR_UI::instance()->set_tip(cui, param_docs.c_str());
+ set_tooltip(cui, param_docs.c_str());
}
control_uis.push_back(cui);
+ input_controls_with_automation.push_back (cui);
}
}
, file_button(NULL)
{
automate_button.set_name ("PluginAutomateButton");
- ARDOUR_UI::instance()->set_tip (automate_button, _("Automation control"));
+ set_tooltip (automate_button, _("Automation control"));
/* XXX translators: use a string here that will be at least as long
as the longest automation label (see ::automation_state_changed()
control_ui->file_button = manage(new Gtk::FileChooserButton(Gtk::FILE_CHOOSER_ACTION_OPEN));
control_ui->file_button->set_title(desc.label);
- control_ui->pack_start (control_ui->label, true, true);
+ control_ui->pack_start (control_ui->label, false, true);
control_ui->pack_start (*control_ui->file_button, true, true);
// Connect signals (TODO: do this via the Control)
Adjustment* adj = control_ui->controller->adjustment();
if (desc.integer_step) {
- control_ui->clickbox = new ClickBox (adj, "PluginUIClickBox", desc.enumeration);
+ control_ui->clickbox = new ClickBox (adj, "PluginUIClickBox", true);
Gtkmm2ext::set_size_request_to_display_given_text (*control_ui->clickbox, "g9999999", 2, 2);
if (desc.unit == ParameterDescriptor::MIDI_NOTE) {
control_ui->clickbox->set_printer (sigc::bind (sigc::mem_fun (*this, &GenericPluginUI::midinote_printer), control_ui));
control_ui->controller->set_size_request (200, req.height);
control_ui->controller->set_name (X_("ProcessorControlSlider"));
- control_ui->controller->StartGesture.connect (sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::start_touch), control_ui));
- control_ui->controller->StopGesture.connect (sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::stop_touch), control_ui));
-
}
adj->set_value (mcontrol->internal_to_interface(value));
automation_state_changed (control_ui);
- mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::ui_parameter_changed, this, control_ui), gui_context());
mcontrol->alist()->automation_state_changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::automation_state_changed, this, control_ui), gui_context());
input_controls.push_back (control_ui);
+ input_controls_with_automation.push_back (control_ui);
} else if (!is_input) {
0xcccc00ff, 0xcccc00ff,
0xffaa00ff, 0xffaa00ff,
0xff0000ff,
- ARDOUR_UI::config()->get_MeterBackgroundBot(),
- ARDOUR_UI::config()->get_MeterBackgroundTop()
+ UIConfiguration::instance().color ("meter background bottom"),
+ UIConfiguration::instance().color ("meter background top")
);
info->min_unbound = desc.min_unbound;
return control_ui;
}
-void
-GenericPluginUI::start_touch (GenericPluginUI::ControlUI* cui)
-{
- cui->control->start_touch (cui->control->session().transport_frame());
-}
-
-void
-GenericPluginUI::stop_touch (GenericPluginUI::ControlUI* cui)
-{
- cui->control->stop_touch (false, cui->control->session().transport_frame());
-}
-
void
GenericPluginUI::astate_clicked (ControlUI* cui)
{
void
GenericPluginUI::set_all_automation (AutoState as)
{
- for (vector<ControlUI*>::iterator i = input_controls.begin(); i != input_controls.end(); ++i) {
+ for (vector<ControlUI*>::iterator i = input_controls_with_automation.begin(); i != input_controls_with_automation.end(); ++i) {
if ((*i)->controller || (*i)->button) {
set_automation_state (as, (*i));
}
{
if (output_controls.size() > 0 ) {
screen_update_connection.disconnect();
- screen_update_connection = ARDOUR_UI::instance()->SuperRapidScreenUpdate.connect
- (sigc::mem_fun(*this, &GenericPluginUI::output_update));
+ screen_update_connection = Timers::super_rapid_connect (sigc::mem_fun(*this, &GenericPluginUI::output_update));
}
return false;
}