- if (!Profile->get_sae()) {
- items.push_back (MenuElem (_("Hide all crossfades"), mem_fun(*this, &AudioTimeAxisView::hide_all_xfades)));
- items.push_back (MenuElem (_("Show all crossfades"), mem_fun(*this, &AudioTimeAxisView::show_all_xfades)));
- }
-
- // waveform menu
- Menu *waveform_menu = manage(new Menu);
- MenuList& waveform_items = waveform_menu->items();
- waveform_menu->set_name ("ArdourContextMenu");
-
- waveform_items.push_back (CheckMenuElem (_("Show waveforms"), mem_fun(*this, &AudioTimeAxisView::toggle_waveforms)));
- waveform_item = static_cast<CheckMenuItem *> (&waveform_items.back());
- ignore_toggle = true;
- waveform_item->set_active (_editor.show_waveforms());
- ignore_toggle = false;
-
- waveform_items.push_back (SeparatorElem());
-
- RadioMenuItem::Group group;
-
- waveform_items.push_back (RadioMenuElem (group, _("Traditional"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Traditional)));
- traditional_item = static_cast<RadioMenuItem *> (&waveform_items.back());
-
- if (!Profile->get_sae()) {
- waveform_items.push_back (RadioMenuElem (group, _("Rectified"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Rectified)));
- rectified_item = static_cast<RadioMenuItem *> (&waveform_items.back());
- } else {
- rectified_item = 0;
- }
-
- waveform_items.push_back (SeparatorElem());
-
- RadioMenuItem::Group group2;
-
- waveform_items.push_back (RadioMenuElem (group2, _("Linear"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_scale), LinearWaveform)));
- linearscale_item = static_cast<RadioMenuItem *> (&waveform_items.back());
-
- waveform_items.push_back (RadioMenuElem (group2, _("Logarithmic"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_scale), LogWaveform)));
- logscale_item = static_cast<RadioMenuItem *> (&waveform_items.back());
-
- // setting initial item state
- AudioStreamView* asv = audio_view();
- if (asv) {
- ignore_toggle = true;
- if (asv->get_waveform_shape() == Rectified && rectified_item) {
- rectified_item->set_active(true);
- } else {
- traditional_item->set_active(true);
- }
-
- if (asv->get_waveform_scale() == LogWaveform)
- logscale_item->set_active(true);
- else linearscale_item->set_active(true);
- ignore_toggle = false;
- }
-
- items.push_back (MenuElem (_("Waveform"), *waveform_menu));
-
-}
-
-Gtk::Menu*
-AudioTimeAxisView::build_mode_menu()
-{
- using namespace Menu_Helpers;
-
- Menu* mode_menu = manage (new Menu);
- MenuList& items = mode_menu->items();
- mode_menu->set_name ("ArdourContextMenu");
-
- RadioMenuItem::Group mode_group;
- items.push_back (RadioMenuElem (mode_group, _("Normal"),
- bind (mem_fun (*this, &AudioTimeAxisView::set_track_mode), ARDOUR::Normal)));
- normal_track_mode_item = dynamic_cast<RadioMenuItem*>(&items.back());
- items.push_back (RadioMenuElem (mode_group, _("Tape"),
- bind (mem_fun (*this, &AudioTimeAxisView::set_track_mode), ARDOUR::Destructive)));
- destructive_track_mode_item = dynamic_cast<RadioMenuItem*>(&items.back());
-
- switch (track()->mode()) {
- case ARDOUR::Destructive:
- destructive_track_mode_item->set_active ();
- break;
- case ARDOUR::Normal:
- normal_track_mode_item->set_active ();
- break;
- }
-
- return mode_menu;
-}
-
-void
-AudioTimeAxisView::toggle_waveforms ()
-{
- AudioStreamView* asv = audio_view();
- assert(asv);
-
- if (asv && waveform_item && !ignore_toggle) {
- asv->set_show_waveforms (waveform_item->get_active());