code consolidation
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 18 May 2016 18:15:39 +0000 (14:15 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 31 May 2016 19:30:43 +0000 (15:30 -0400)
gtk2_ardour/vca_master_strip.cc
gtk2_ardour/vca_master_strip.h

index 7468b1b0d4ded99d9ea9ffdd318249d62e8e4619..5ceb0162758d9734b4cffc89d4b7465c1f7f4f53 100644 (file)
@@ -425,17 +425,31 @@ VCAMasterStrip::vca_button_release (GdkEventButton* ev)
 bool
 VCAMasterStrip::vertical_box_press (GdkEventButton* ev)
 {
-       return name_button_press (ev);
+       if (ev->button == 1 && ev->type == GDK_2BUTTON_PRESS) {
+               start_name_edit ();
+               return true;
+       }
+
+       if (Keyboard::is_context_menu_event (ev)) {
+               if (!context_menu) {
+                       build_context_menu ();
+               }
+               context_menu->popup (1, ev->time);
+               return true;
+       }
+
+       if (ev->button == 1) {
+               // spill ();
+       }
+
+       return true;
 }
 
 bool
 VCAMasterStrip::name_button_press (GdkEventButton* ev)
 {
        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));
-               fte->present ();
+               start_name_edit ();
                return true;
        }
 
@@ -450,6 +464,15 @@ VCAMasterStrip::name_button_press (GdkEventButton* ev)
        return false;
 }
 
+void
+VCAMasterStrip::start_name_edit ()
+{
+       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));
+       fte->present ();
+}
+
 void
 VCAMasterStrip::finish_name_edit (std::string str)
 {
@@ -476,5 +499,6 @@ VCAMasterStrip::build_context_menu ()
        using namespace Gtk::Menu_Helpers;
        context_menu = new Menu;
        MenuList& items = context_menu->items();
+       items.push_back (MenuElem (_("Rename"), sigc::mem_fun (*this, &VCAMasterStrip::start_name_edit)));
        items.push_back (MenuElem (_("Remove")));
 }
index a79c648b8aa661b7a7885414cb13b55e16c85796..70591fbc8c940de8bb5da46eb8ad88ff38248820 100644 (file)
@@ -85,6 +85,7 @@ class VCAMasterStrip : public AxisView, public Gtk::EventBox
        void unassign ();
        bool vca_button_release (GdkEventButton*);
        void update_vca_display ();
+       void start_name_edit ();
        void finish_name_edit (std::string);
        bool name_button_press (GdkEventButton*);
        bool vertical_box_press (GdkEventButton*);