| 54 | } |
| 55 | |
| 56 | void TimeTrackMenuTable::OnSetTimeTrackRange(wxCommandEvent & /*event*/) |
| 57 | { |
| 58 | auto &track = static_cast<TimeTrack&>(mpData->track); |
| 59 | long lower = (long)(track.GetRangeLower() * 100.0 + 0.5); |
| 60 | long upper = (long)(track.GetRangeUpper() * 100.0 + 0.5); |
| 61 | |
| 62 | // MB: these lower/upper limits match the maximum allowed range of the time track |
| 63 | // envelope, but this is not strictly required |
| 64 | |
| 65 | wxDialogWrapper dlg(mpData->pParent, wxID_ANY, XO("Change Speed Limits")); |
| 66 | dlg.SetName(); |
| 67 | ShuttleGui S(&dlg, eIsCreating); |
| 68 | wxSpinCtrl *scLower; |
| 69 | wxSpinCtrl *scUpper; |
| 70 | |
| 71 | S.StartVerticalLay(true); |
| 72 | { |
| 73 | S.StartStatic(XO("Change speed limit (%) to:"),1); |
| 74 | { |
| 75 | S.StartMultiColumn(2, wxEXPAND); |
| 76 | { |
| 77 | |
| 78 | S.SetStretchyCol(1); |
| 79 | |
| 80 | S.AddPrompt(XXO("Lower Speed Limit")); |
| 81 | scLower = safenew wxSpinCtrl(S.GetParent(), wxID_ANY, |
| 82 | wxT(""), |
| 83 | wxDefaultPosition, |
| 84 | wxDefaultSize, |
| 85 | wxSP_ARROW_KEYS, |
| 86 | TimeTrackControls::kRangeMin, TimeTrackControls::kRangeMax, lower); |
| 87 | S |
| 88 | .Name(XO("Lower Speed Limit")) |
| 89 | .Position( wxALIGN_LEFT | wxALL ) |
| 90 | .AddWindow(scLower); |
| 91 | |
| 92 | S.AddPrompt(XXO("Upper Speed Limit")); |
| 93 | scUpper = safenew wxSpinCtrl(S.GetParent(), wxID_ANY, |
| 94 | wxT(""), |
| 95 | wxDefaultPosition, |
| 96 | wxDefaultSize, |
| 97 | wxSP_ARROW_KEYS, |
| 98 | TimeTrackControls::kRangeMin, TimeTrackControls::kRangeMax, upper); |
| 99 | S |
| 100 | .Name(XO("Upper Speed Limit")) |
| 101 | .Position( wxALIGN_LEFT | wxALL ) |
| 102 | .AddWindow(scUpper); |
| 103 | |
| 104 | } |
| 105 | S.EndMultiColumn(); |
| 106 | } |
| 107 | S.EndStatic(); |
| 108 | S.AddStandardButtons(); |
| 109 | } |
| 110 | S.EndVerticalLay(); |
| 111 | |
| 112 | dlg.Layout(); |
| 113 | dlg.Fit(); |
nothing calls this directly
no test coverage detected