summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-08-06 22:48:38 +0200
committerRobin Gareus <robin@gareus.org>2017-08-06 22:48:38 +0200
commitf1ae16fe8f4febcf03eabf283eaea1305792b4a0 (patch)
tree78596a0a9e258ba8cd97589202093555e804dfcc /gtk2_ardour
parentfff9a3cc7f3f2d09be1fd7aed547c5e9c1fe4528 (diff)
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)
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/vca_time_axis.cc42
-rw-r--r--gtk2_ardour/vca_time_axis.h8
2 files changed, 50 insertions, 0 deletions
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"
@@ -438,6 +439,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)
{
using namespace Menu_Helpers;
@@ -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<Stripable>());
+ }
+}
+
+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__ */