trigger_ui: convenience functions to set Color for a column or row

This commit is contained in:
Ben Loftis 2021-12-27 17:35:24 -06:00
parent 414f3611ee
commit 4736b8338c
4 changed files with 68 additions and 0 deletions

View file

@ -402,6 +402,8 @@ TriggerMaster::context_menu ()
items.push_back (MenuElem (_("Set All Launch Styles..."), *launch_menu));
items.push_back (MenuElem (_("Set All Quantizations..."), *quant_menu));
items.push_back (SeparatorElem());
items.push_back (MenuElem (_("Set All Colors..."), sigc::mem_fun (*this, &TriggerMaster::set_all_colors)));
items.push_back (SeparatorElem());
items.push_back (MenuElem (_("Clear All..."), sigc::mem_fun (*this, &TriggerMaster::clear_all_triggers)));
_context_menu->popup (1, gtk_get_current_event_time ());
@ -423,6 +425,34 @@ TriggerMaster::clear_all_triggers ()
_triggerbox->clear_all_triggers();
}
void
TriggerMaster::set_all_colors ()
{
_color_dialog.get_colorsel()->set_has_opacity_control (false);
_color_dialog.get_colorsel()->set_has_palette (true);
_color_dialog.get_ok_button()->signal_clicked().connect (sigc::bind (sigc::mem_fun (_color_dialog, &Gtk::Dialog::response), Gtk::RESPONSE_ACCEPT));
_color_dialog.get_cancel_button()->signal_clicked().connect (sigc::bind (sigc::mem_fun (_color_dialog, &Gtk::Dialog::response), Gtk::RESPONSE_CANCEL));
Gdk::Color c = ARDOUR_UI_UTILS::gdk_color_from_rgba(0xBEBEBEFF);
_color_dialog.get_colorsel()->set_previous_color (c);
_color_dialog.get_colorsel()->set_current_color (c);
switch (_color_dialog.run()) {
case Gtk::RESPONSE_ACCEPT: {
c = _color_dialog.get_colorsel()->get_current_color();
color_t ct = ARDOUR_UI_UTILS::gdk_color_to_rgba(c);
for (int n = 0; n< TriggerBox::default_triggers_per_box; n++) {
_triggerbox->trigger (n)->set_color(ct);
}
} break;
default:
break;
}
_color_dialog.hide ();
}
void
TriggerMaster::set_all_follow_action (Trigger::FollowAction fa)
{