summaryrefslogtreecommitdiff
path: root/gtk2_ardour/vca_master_strip.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-03-08 22:08:51 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:40 -0400
commit9f66fe1ebbb506b646f2e20c5530d895e4a5f092 (patch)
treea420b3bffccf2e6beb1ff5bf0eea8191f2dd5923 /gtk2_ardour/vca_master_strip.cc
parent567fb50aad1d31a622b5bcceb457438e05ef4f73 (diff)
start adding a context menu for VCA strips
Diffstat (limited to 'gtk2_ardour/vca_master_strip.cc')
-rw-r--r--gtk2_ardour/vca_master_strip.cc22
1 files changed, 21 insertions, 1 deletions
diff --git a/gtk2_ardour/vca_master_strip.cc b/gtk2_ardour/vca_master_strip.cc
index 8b8cc4eb61..d7c1856d7d 100644
--- a/gtk2_ardour/vca_master_strip.cc
+++ b/gtk2_ardour/vca_master_strip.cc
@@ -23,6 +23,8 @@
#include "ardour/vca.h"
#include "ardour/vca_manager.h"
+#include "gtkmm2ext/keyboard.h"
+
#include "gui_thread.h"
#include "floating_text_entry.h"
#include "tooltips.h"
@@ -41,6 +43,7 @@ VCAMasterStrip::VCAMasterStrip (Session* s, boost::shared_ptr<VCA> v)
: AxisView (s)
, _vca (v)
, gain_meter (s, 250)
+ , context_menu (0)
{
gain_meter.set_controls (boost::shared_ptr<Route>(),
boost::shared_ptr<PeakMeter>(),
@@ -318,7 +321,7 @@ VCAMasterStrip::vca_button_release (GdkEventButton* ev)
bool
VCAMasterStrip::name_button_press (GdkEventButton* ev)
{
- if (ev->type == GDK_2BUTTON_PRESS) {
+ if (ev->button == 1 && ev->type == GDK_2BUTTON_PRESS) {
Gtk::Window* win = dynamic_cast<Gtk::Window*>(get_toplevel());
FloatingTextEntry* fte = new FloatingTextEntry (win, _vca->name());
fte->use_text.connect (sigc::mem_fun (*this, &VCAMasterStrip::finish_name_edit));
@@ -326,6 +329,14 @@ VCAMasterStrip::name_button_press (GdkEventButton* ev)
return true;
}
+ if (Keyboard::is_context_menu_event (ev)) {
+ if (!context_menu) {
+ build_context_menu ();
+ }
+ context_menu->popup (1, ev->time);
+ return true;
+ }
+
return false;
}
@@ -348,3 +359,12 @@ VCAMasterStrip::update_vca_name ()
{
name_button.set_text (short_version (_vca->name(), 8));
}
+
+void
+VCAMasterStrip::build_context_menu ()
+{
+ using namespace Gtk::Menu_Helpers;
+ context_menu = new Menu;
+ MenuList& items = context_menu->items();
+ items.push_back (MenuElem (_("Remove")));
+}