From f1ae16fe8f4febcf03eabf283eaea1305792b4a0 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 6 Aug 2017 22:48:38 +0200 Subject: [PATCH] VCA TimeAxis Context Menu NB. This calls for a vca_ui (alike route_ui) to consolidate common methods like choose_color, assign/drop slaves etc) --- gtk2_ardour/vca_time_axis.cc | 42 ++++++++++++++++++++++++++++++++++++ gtk2_ardour/vca_time_axis.h | 8 +++++++ 2 files changed, 50 insertions(+) diff --git a/gtk2_ardour/vca_time_axis.cc b/gtk2_ardour/vca_time_axis.cc index 31bcdf6222..efa1c3cdea 100644 --- a/gtk2_ardour/vca_time_axis.cc +++ b/gtk2_ardour/vca_time_axis.cc @@ -33,6 +33,7 @@ #include "gui_thread.h" #include "public_editor.h" +#include "mixer_ui.h" #include "ui_config.h" #include "vca_time_axis.h" @@ -437,6 +438,32 @@ VCATimeAxisView::create_automation_child (const Evoral::Parameter& param, bool s } } +void +VCATimeAxisView::build_display_menu () +{ + using namespace Menu_Helpers; + /* prepare it */ + TimeAxisView::build_display_menu (); + + MenuList& items = display_menu->items(); + items.push_back (MenuElem (_("Color..."), sigc::mem_fun (*this, &VCATimeAxisView::choose_color))); + if (_size_menu) { + detach_menu (*_size_menu); + } + build_size_menu (); + items.push_back (MenuElem (_("Height"), *_size_menu)); + items.push_back (SeparatorElem()); + + build_automation_action_menu (true); + items.push_back (MenuElem (_("Automation"), *automation_action_menu)); + + items.push_back (SeparatorElem()); + items.push_back (MenuElem (_("Drop All Slaves"), sigc::mem_fun (*this, &VCATimeAxisView::drop_all_slaves))); + items.push_back (SeparatorElem()); + items.push_back (MenuElem (_("Remove"), sigc::mem_fun(_editor, &PublicEditor::remove_tracks))); +} + + void VCATimeAxisView::build_automation_action_menu (bool for_selection) { @@ -518,3 +545,18 @@ VCATimeAxisView::hide_all_automation (bool apply_to_selection) no_redraw = false; request_redraw (); } + +void +VCATimeAxisView::drop_all_slaves () +{ + _vca->Drop (); /* EMIT SIGNAL */ + + if (Mixer_UI::instance()->showing_spill_for (_vca)) { + Mixer_UI::instance()->show_spill (boost::shared_ptr()); + } +} + +void +VCATimeAxisView::choose_color () { + _color_picker.popup (_vca); +} diff --git a/gtk2_ardour/vca_time_axis.h b/gtk2_ardour/vca_time_axis.h index e7ea4a52de..6d4cf5ffbd 100644 --- a/gtk2_ardour/vca_time_axis.h +++ b/gtk2_ardour/vca_time_axis.h @@ -22,6 +22,7 @@ #include "widgets/ardour_button.h" +#include "stripable_colorpicker.h" #include "stripable_time_axis.h" #include "gain_meter.h" @@ -75,6 +76,7 @@ protected: void create_automation_child (const Evoral::Parameter& param, bool show); virtual void build_automation_action_menu (bool); + void build_display_menu (); Gtk::Menu* automation_action_menu; bool name_entry_changed (std::string const&); @@ -91,6 +93,12 @@ protected: bool automation_click (GdkEventButton*); bool drop_release (GdkEventButton*); void self_delete (); + + void drop_all_slaves (); + void choose_color (); + +private: + StripableColorDialog _color_picker; }; #endif /* __ardour_vca_time_axis_h__ */ -- 2.30.2