summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-08-11 02:04:49 +0000
committerCarl Hetherington <carl@carlh.net>2010-08-11 02:04:49 +0000
commit3d3d6feaa43c2f429963b31ba4d7556b0a68a8ca (patch)
treeaea866eca2f225373e314c9610d6cfe9415399c5 /gtk2_ardour
parent12aa01660a20e9b5d923f5c7bb21ab3a3d6ba9cf (diff)
Add submenus for route group, playlist and automation to route context menu. Fixes #618.
git-svn-id: svn://localhost/ardour2/branches/3.0@7594 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/route_time_axis.cc38
-rw-r--r--gtk2_ardour/route_time_axis.h5
2 files changed, 24 insertions, 19 deletions
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index 7c7753ae31..8f4d0cedbb 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -148,7 +148,7 @@ RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session* sess, boost::sh
playlist_button.unset_flags (Gtk::CAN_FOCUS);
automation_button.unset_flags (Gtk::CAN_FOCUS);
- route_group_button.signal_button_release_event().connect (sigc::mem_fun(*this, &RouteTimeAxisView::edit_click), false);
+ route_group_button.signal_button_release_event().connect (sigc::mem_fun(*this, &RouteTimeAxisView::route_group_click), false);
playlist_button.signal_clicked().connect (sigc::mem_fun(*this, &RouteTimeAxisView::playlist_click));
automation_button.signal_clicked().connect (sigc::mem_fun(*this, &RouteTimeAxisView::automation_click));
@@ -277,7 +277,7 @@ RouteTimeAxisView::post_construct ()
}
gint
-RouteTimeAxisView::edit_click (GdkEventButton *ev)
+RouteTimeAxisView::route_group_click (GdkEventButton *ev)
{
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
if (_route->route_group()) {
@@ -342,15 +342,7 @@ RouteTimeAxisView::take_name_changed (void *src)
void
RouteTimeAxisView::playlist_click ()
{
- // always build a new action menu
-
- delete playlist_action_menu;
-
- playlist_action_menu = new Menu;
- playlist_action_menu->set_name ("ArdourContextMenu");
-
- build_playlist_menu (playlist_action_menu);
-
+ build_playlist_menu ();
conditionally_add_to_selection ();
playlist_action_menu->popup (1, gtk_get_current_event_time());
}
@@ -546,6 +538,17 @@ RouteTimeAxisView::build_display_menu ()
}
items.push_back (SeparatorElem());
+
+ build_playlist_menu ();
+ items.push_back (MenuElem (_("Playlist"), *playlist_action_menu));
+
+ route_group_menu->rebuild (_route->route_group ());
+ items.push_back (MenuElem (_("Route Group"), *route_group_menu));
+
+ build_automation_action_menu ();
+ items.push_back (MenuElem (_("Automation"), *automation_action_menu));
+
+ items.push_back (SeparatorElem());
}
items.push_back (CheckMenuElem (_("Active"), sigc::mem_fun(*this, &RouteUI::toggle_route_active)));
@@ -1402,21 +1405,24 @@ struct PlaylistSorter {
};
void
-RouteTimeAxisView::build_playlist_menu (Gtk::Menu * menu)
+RouteTimeAxisView::build_playlist_menu ()
{
using namespace Menu_Helpers;
- if (!menu || !is_track()) {
+ if (!is_track()) {
return;
}
- MenuList& playlist_items = menu->items();
- menu->set_name ("ArdourContextMenu");
+ delete playlist_action_menu;
+ playlist_action_menu = new Menu;
+ playlist_action_menu->set_name ("ArdourContextMenu");
+
+ MenuList& playlist_items = playlist_action_menu->items();
+ playlist_action_menu->set_name ("ArdourContextMenu");
playlist_items.clear();
delete playlist_menu;
-
vector<boost::shared_ptr<Playlist> > playlists, playlists_tr;
boost::shared_ptr<Track> tr = track();
RadioMenuItem::Group playlist_group;
diff --git a/gtk2_ardour/route_time_axis.h b/gtk2_ardour/route_time_axis.h
index 7d65fcc69a..840b18ed14 100644
--- a/gtk2_ardour/route_time_axis.h
+++ b/gtk2_ardour/route_time_axis.h
@@ -105,8 +105,7 @@ public:
/* group playlist name resolving */
std::string resolve_new_group_playlist_name(std::string &, std::vector<boost::shared_ptr<ARDOUR::Playlist> > const &);
-
- void build_playlist_menu (Gtk::Menu *);
+ void build_playlist_menu ();
void add_underlay (StreamView*, bool update_xml = true);
void remove_underlay (StreamView*);
@@ -172,7 +171,7 @@ protected:
void update_diskstream_display ();
- gint edit_click (GdkEventButton *);
+ gint route_group_click (GdkEventButton *);
void processors_changed (ARDOUR::RouteProcessorChange);