summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/editor.cc2
-rw-r--r--gtk2_ardour/editor.h4
-rw-r--r--gtk2_ardour/editor_edit_groups.cc22
-rw-r--r--gtk2_ardour/editor_group_tabs.cc8
-rw-r--r--gtk2_ardour/editor_group_tabs.h1
-rw-r--r--gtk2_ardour/group_tabs.cc25
-rw-r--r--gtk2_ardour/group_tabs.h7
-rw-r--r--gtk2_ardour/mixer_group_tabs.cc33
-rw-r--r--gtk2_ardour/mixer_group_tabs.h5
9 files changed, 65 insertions, 42 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index ef8d704d82..4e77e0d423 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -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;
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 20e9927823..10895dc5a6 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -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 ();
diff --git a/gtk2_ardour/editor_edit_groups.cc b/gtk2_ardour/editor_edit_groups.cc
index 272a400f6d..d0d450f120 100644
--- a/gtk2_ardour/editor_edit_groups.cc
+++ b/gtk2_ardour/editor_edit_groups.cc
@@ -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;
}
diff --git a/gtk2_ardour/editor_group_tabs.cc b/gtk2_ardour/editor_group_tabs.cc
index fdd4954012..ec279e2bc6 100644
--- a/gtk2_ardour/editor_group_tabs.cc
+++ b/gtk2_ardour/editor_group_tabs.cc
@@ -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;
+}
diff --git a/gtk2_ardour/editor_group_tabs.h b/gtk2_ardour/editor_group_tabs.h
index 0b0ea9f65d..a0ea2183f0 100644
--- a/gtk2_ardour/editor_group_tabs.h
+++ b/gtk2_ardour/editor_group_tabs.h
@@ -35,6 +35,7 @@ private:
double extent () const {
return _height;
}
+ Gtk::Menu* get_menu (ARDOUR::RouteGroup* g);
Editor* _editor;
};
diff --git a/gtk2_ardour/group_tabs.cc b/gtk2_ardour/group_tabs.cc
index 57d2ebbd99..7abd0d8965 100644
--- a/gtk2_ardour/group_tabs.cc
+++ b/gtk2_ardour/group_tabs.cc
@@ -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)
{
diff --git a/gtk2_ardour/group_tabs.h b/gtk2_ardour/group_tabs.h
index 43b00670e0..0ba4b7bdbb 100644
--- a/gtk2_ardour/group_tabs.h
+++ b/gtk2_ardour/group_tabs.h
@@ -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;
diff --git a/gtk2_ardour/mixer_group_tabs.cc b/gtk2_ardour/mixer_group_tabs.cc
index 7ab162d3c8..08dab5a589 100644
--- a/gtk2_ardour/mixer_group_tabs.cc
+++ b/gtk2_ardour/mixer_group_tabs.cc
@@ -23,12 +23,16 @@
#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);
+}
diff --git a/gtk2_ardour/mixer_group_tabs.h b/gtk2_ardour/mixer_group_tabs.h
index f0fba2932f..7caf981944 100644
--- a/gtk2_ardour/mixer_group_tabs.h
+++ b/gtk2_ardour/mixer_group_tabs.h
@@ -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;
};