summaryrefslogtreecommitdiff
path: root/gtk2_ardour/mixer_group_tabs.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/mixer_group_tabs.cc')
-rw-r--r--gtk2_ardour/mixer_group_tabs.cc33
1 files changed, 32 insertions, 1 deletions
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);
+}