+void
+Editor::build_range_marker_menu (bool loop_or_punch)
+{
+ using namespace Menu_Helpers;
+
+ Menu *markerMenu = new Menu;
+ if (loop_or_punch) {
+ transport_marker_menu = markerMenu;
+ } else {
+ range_marker_menu = markerMenu;
+ }
+ MenuList& items = markerMenu->items();
+ markerMenu->set_name ("ArdourContextMenu");
+
+ items.push_back (MenuElem (_("Play Range"), mem_fun(*this, &Editor::marker_menu_play_range)));
+ items.push_back (MenuElem (_("Locate to Range Mark"), mem_fun(*this, &Editor::marker_menu_set_playhead)));
+ items.push_back (MenuElem (_("Play from Range Mark"), mem_fun(*this, &Editor::marker_menu_play_from)));
+ if (! loop_or_punch) {
+ items.push_back (MenuElem (_("Loop Range"), mem_fun(*this, &Editor::marker_menu_loop_range)));
+ }
+ items.push_back (MenuElem (_("Set Range Mark from Playhead"), mem_fun(*this, &Editor::marker_menu_set_from_playhead)));
+ if (!Profile->get_sae()) {
+ items.push_back (MenuElem (_("Set Range from Range Selection"), mem_fun(*this, &Editor::marker_menu_set_from_selection)));
+ }
+
+ items.push_back (SeparatorElem());
+ items.push_back (MenuElem (_("Export Range"), mem_fun(*this, &Editor::export_range)));
+ items.push_back (SeparatorElem());
+
+ if (!loop_or_punch) {
+ items.push_back (MenuElem (_("Hide Range"), mem_fun(*this, &Editor::marker_menu_hide)));
+ items.push_back (MenuElem (_("Rename Range"), mem_fun(*this, &Editor::marker_menu_rename)));
+ items.push_back (MenuElem (_("Remove Range"), mem_fun(*this, &Editor::marker_menu_remove)));
+ }
+
+ items.push_back (SeparatorElem());
+
+ items.push_back (MenuElem (_("Separate Regions in Range"), mem_fun(*this, &Editor::marker_menu_separate_regions_using_location)));
+ items.push_back (MenuElem (_("Select All in Range"), mem_fun(*this, &Editor::marker_menu_select_all_selectables_using_range)));
+ if (!Profile->get_sae()) {
+ items.push_back (MenuElem (_("Select Range"), mem_fun(*this, &Editor::marker_menu_select_using_range)));
+ }
+}
+