diff options
author | Carl Hetherington <carl@carlh.net> | 2009-06-22 01:25:21 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2009-06-22 01:25:21 +0000 |
commit | 167929c25a4d2f839e078eeaa50ab40b8f544978 (patch) | |
tree | fc450839bd70e2ece8f2eee1de030408ae0b5639 /gtk2_ardour | |
parent | c9e37fcc1430a674328069d6a3a5ec7e4284f282 (diff) |
Use the same menu for the editor route group list and the editor group tabs.
git-svn-id: svn://localhost/ardour2/branches/3.0@5242 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 4 | ||||
-rw-r--r-- | gtk2_ardour/editor_edit_groups.cc | 22 | ||||
-rw-r--r-- | gtk2_ardour/editor_group_tabs.cc | 8 | ||||
-rw-r--r-- | gtk2_ardour/editor_group_tabs.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/group_tabs.cc | 25 | ||||
-rw-r--r-- | gtk2_ardour/group_tabs.h | 7 | ||||
-rw-r--r-- | gtk2_ardour/mixer_group_tabs.cc | 33 | ||||
-rw-r--r-- | gtk2_ardour/mixer_group_tabs.h | 5 |
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; }; |