Use the same menu for the editor route group list and the editor group tabs.
authorCarl Hetherington <carl@carlh.net>
Mon, 22 Jun 2009 01:25:21 +0000 (01:25 +0000)
committerCarl Hetherington <carl@carlh.net>
Mon, 22 Jun 2009 01:25:21 +0000 (01:25 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@5242 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor.cc
gtk2_ardour/editor.h
gtk2_ardour/editor_edit_groups.cc
gtk2_ardour/editor_group_tabs.cc
gtk2_ardour/editor_group_tabs.h
gtk2_ardour/group_tabs.cc
gtk2_ardour/group_tabs.h
gtk2_ardour/mixer_group_tabs.cc
gtk2_ardour/mixer_group_tabs.h

index ef8d704d82ba9f741544b208931e656b75bcea56..4e77e0d4235f54679adee9b8fe6e8e5da544c06f 100644 (file)
@@ -312,7 +312,7 @@ Editor::Editor ()
        _xfade_visibility = true;
        editor_ruler_menu = 0;
        no_ruler_shown_update = false;
-       route_group_list_menu = 0;
+       route_group_menu = 0;
        route_list_menu = 0;
        region_list_menu = 0;
        marker_menu = 0;
index 20e9927823a6a2dbac0d1a37de4285851413f289..10895dc5a6daaacc952fe20f886e263d75d26b7b 100644 (file)
@@ -1858,9 +1858,9 @@ public:
 
        Gtk::TreeView          route_group_display;
        Gtk::ScrolledWindow    route_group_display_scroller;
-       Gtk::Menu*             route_group_list_menu;
+       Gtk::Menu*             route_group_menu;
 
-       void build_route_group_list_menu (ARDOUR::RouteGroup *);
+       void build_route_group_menu (ARDOUR::RouteGroup *);
        void activate_all_route_groups ();
        void disable_all_route_groups ();
 
index 272a400f6d73e129c455fb5a1ae631eedc4b6c29..d0d450f1209f80a25418265b6b174381fb63fc29 100644 (file)
@@ -45,11 +45,11 @@ using namespace PBD;
 using namespace Gtk;
 
 void
-Editor::build_route_group_list_menu (RouteGroup* g)
+Editor::build_route_group_menu (RouteGroup* g)
 {
        using namespace Gtk::Menu_Helpers;
 
-       delete route_group_list_menu;
+       delete route_group_menu;
 
        Menu* new_from = new Menu;
        MenuList& f = new_from->items ();
@@ -57,15 +57,15 @@ Editor::build_route_group_list_menu (RouteGroup* g)
        f.push_back (MenuElem (_("Record Enabled..."), mem_fun (*this, &Editor::new_route_group_from_rec_enabled)));
        f.push_back (MenuElem (_("Soloed..."), mem_fun (*this, &Editor::new_route_group_from_soloed)));
 
-       route_group_list_menu = new Menu;
-       route_group_list_menu->set_name ("ArdourContextMenu");
-       MenuList& items = route_group_list_menu->items();
+       route_group_menu = new Menu;
+       route_group_menu->set_name ("ArdourContextMenu");
+       MenuList& items = route_group_menu->items();
 
-       items.push_back (MenuElem (_("New Group..."), mem_fun(*this, &Editor::new_route_group)));
-       items.push_back (MenuElem (_("New Group From"), *new_from));
+       items.push_back (MenuElem (_("New..."), mem_fun(*this, &Editor::new_route_group)));
+       items.push_back (MenuElem (_("New From"), *new_from));
        if (g) {
-               items.push_back (MenuElem (_("Edit Group..."), bind (mem_fun (*this, &Editor::edit_route_group), g)));
-               items.push_back (MenuElem (_("Fit Group to Window"), bind (mem_fun (*this, &Editor::fit_route_group), g)));
+               items.push_back (MenuElem (_("Edit..."), bind (mem_fun (*this, &Editor::edit_route_group), g)));
+               items.push_back (MenuElem (_("Fit to Window"), bind (mem_fun (*this, &Editor::fit_route_group), g)));
        }
        items.push_back (SeparatorElem());
        items.push_back (MenuElem (_("Activate All"), mem_fun(*this, &Editor::activate_all_route_groups)));
@@ -233,8 +233,8 @@ Editor::route_group_list_button_press_event (GdkEventButton* ev)
        }
 
        if (Keyboard::is_context_menu_event (ev)) {
-               build_route_group_list_menu (group);
-               route_group_list_menu->popup (1, ev->time);
+               build_route_group_menu (group);
+               route_group_menu->popup (1, ev->time);
                return true;
        }
 
index fdd4954012b3d29d6b66a0f02e29861f4ce24998..ec279e2bc6f2da502b6b7891be4a95b09b96aa4a 100644 (file)
@@ -152,3 +152,11 @@ EditorGroupTabs::reflect_tabs (list<Tab> const & tabs)
                y += (*i)->effective_height ();
        }
 }
+
+
+Gtk::Menu*
+EditorGroupTabs::get_menu (RouteGroup *g)
+{
+       _editor->build_route_group_menu (g);
+       return _editor->route_group_menu;
+}
index 0b0ea9f65d94f4336b94c84938a37f5093dc4d82..a0ea2183f04390f34d49320af349723dae6d6649 100644 (file)
@@ -35,6 +35,7 @@ private:
        double extent () const {
                return _height;
        }
+       Gtk::Menu* get_menu (ARDOUR::RouteGroup* g);
        
        Editor* _editor;
 };
index 57d2ebbd998209516330f355d739b3db87d7ab1b..7abd0d896535fa5ab1dc016a0aeba8116991cb8d 100644 (file)
@@ -30,7 +30,6 @@ using namespace ARDOUR;
 
 GroupTabs::GroupTabs ()
        : _session (0),
-         _menu (0),
          _dragging (0)
 {
 
@@ -86,14 +85,8 @@ GroupTabs::on_button_press_event (GdkEventButton* ev)
 
        } else if (ev->button == 3) {
 
-               delete _menu;
-               _menu = new Menu;
-               MenuList& items = _menu->items ();
-               items.push_back (MenuElem (_("Edit..."), bind (mem_fun (*this, &GroupTabs::edit_group), t->group)));
-               items.push_back (MenuElem (_("Remove"), bind (mem_fun (*this, &GroupTabs::remove_group), t->group)));
-
-               _menu->popup (ev->button, ev->time);
-
+               get_menu(t->group)->popup (ev->button, ev->time);
+               
        }
 
        return true;
@@ -173,20 +166,6 @@ GroupTabs::on_button_release_event (GdkEventButton* ev)
        return true;
 }
 
-
-void
-GroupTabs::edit_group (RouteGroup* g)
-{
-       RouteGroupDialog d (g, Gtk::Stock::APPLY);
-       d.do_run ();
-}
-
-void
-GroupTabs::remove_group (RouteGroup *g)
-{
-       _session->remove_route_group (*g);
-}
-
 void
 GroupTabs::render (cairo_t* cr)
 {
index 43b00670e0fa0e19ec77b198bfe17318b79133a1..0ba4b7bdbb8f4b23ecba3bca83b7f5da30e7541a 100644 (file)
@@ -45,12 +45,15 @@ protected:
                double last_ui_size;
        };
 
+       ARDOUR::Session* _session;
+
 private:
        virtual std::list<Tab> compute_tabs () const = 0;
        virtual void draw_tab (cairo_t *, Tab const &) const = 0;
        virtual double primary_coordinate (double, double) const = 0;
        virtual void reflect_tabs (std::list<Tab> const &) = 0;
        virtual double extent () const = 0;
+       virtual Gtk::Menu* get_menu (ARDOUR::RouteGroup *) = 0;
 
        void render (cairo_t *);
        void on_size_request (Gtk::Requisition *);
@@ -59,11 +62,7 @@ private:
        bool on_button_release_event (GdkEventButton *);
 
        Tab * click_to_tab (double, Tab**, Tab**);
-       void edit_group (ARDOUR::RouteGroup *);
-       void remove_group (ARDOUR::RouteGroup *);
 
-       ARDOUR::Session* _session;
-       Gtk::Menu* _menu;
        std::list<Tab> _tabs;
        Tab* _dragging;
        bool _drag_moved;
index 7ab162d3c862677a600e67d9938cc5872550d906..08dab5a589bd2e5a53d6fdb9967e4e71608436bf 100644 (file)
 #include "mixer_strip.h"
 #include "mixer_ui.h"
 #include "utils.h"
+#include "i18n.h"
+#include "route_group_dialog.h"
 
 using namespace std;
+using namespace Gtk;
 using namespace ARDOUR;
 
 MixerGroupTabs::MixerGroupTabs (Mixer_UI* m)
-       : _mixer (m)
+       : _mixer (m),
+         _menu (0)
 {
        
 }
@@ -149,3 +153,30 @@ MixerGroupTabs::reflect_tabs (list<Tab> const & tabs)
        }
 }
 
+Gtk::Menu*
+MixerGroupTabs::get_menu (RouteGroup* g)
+{
+       using namespace Menu_Helpers;
+       
+       delete _menu;
+       _menu = new Menu;
+       
+       MenuList& items = _menu->items ();
+       items.push_back (MenuElem (_("Edit..."), bind (mem_fun (*this, &MixerGroupTabs::edit_group), g)));
+       items.push_back (MenuElem (_("Remove"), bind (mem_fun (*this, &MixerGroupTabs::remove_group), g)));
+
+       return _menu;
+}
+
+void
+MixerGroupTabs::edit_group (RouteGroup* g)
+{
+       RouteGroupDialog d (g, Gtk::Stock::APPLY);
+       d.do_run ();
+}
+
+void
+MixerGroupTabs::remove_group (RouteGroup *g)
+{
+       _session->remove_route_group (*g);
+}
index f0fba2932f43c1e1899390f676f77d640e1e06bb..7caf9819447321a8f24dba8a47c82ef38e3217ff 100644 (file)
@@ -34,6 +34,11 @@ private:
        double extent () const {
                return _width;
        }
+       Gtk::Menu* get_menu (ARDOUR::RouteGroup* g);
+
+       void edit_group (ARDOUR::RouteGroup *);
+       void remove_group (ARDOUR::RouteGroup *);
        
        Mixer_UI* _mixer;
+       Gtk::Menu* _menu;
 };