From 9f66fe1ebbb506b646f2e20c5530d895e4a5f092 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 8 Mar 2016 22:08:51 -0500 Subject: start adding a context menu for VCA strips --- gtk2_ardour/vca_master_strip.cc | 22 +++++++++++++++++++++- gtk2_ardour/vca_master_strip.h | 3 ++- 2 files changed, 23 insertions(+), 2 deletions(-) (limited to 'gtk2_ardour') 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 v) : AxisView (s) , _vca (v) , gain_meter (s, 250) + , context_menu (0) { gain_meter.set_controls (boost::shared_ptr(), boost::shared_ptr(), @@ -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(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"))); +} diff --git a/gtk2_ardour/vca_master_strip.h b/gtk2_ardour/vca_master_strip.h index 2df0d5bfab..1e71866310 100644 --- a/gtk2_ardour/vca_master_strip.h +++ b/gtk2_ardour/vca_master_strip.h @@ -63,7 +63,7 @@ class VCAMasterStrip : public AxisView, public Gtk::EventBox ArdourButton solo_button; ArdourButton mute_button; ArdourButton assign_button; - bool wide; + Gtk::Menu* context_menu; PBD::ScopedConnectionList vca_connections; void hide_clicked(); @@ -83,6 +83,7 @@ class VCAMasterStrip : public AxisView, public Gtk::EventBox bool name_button_press (GdkEventButton*); void vca_property_changed (PBD::PropertyChange const & what_changed); void update_vca_name (); + void build_context_menu (); }; -- cgit v1.2.3