/// <summary> /// </summary> private void HandleAddRemoveButtons() { if (ImGui.Button("Add")) { var tp = new TimingPointInfo() { StartTime = (int)AudioEngine.Track.Time, Bpm = 0 }; var game = GameBase.Game as QuaverGame; var screen = game?.CurrentScreen as EditorScreen; screen?.Ruleset.ActionManager.Perform(new EditorActionAddTimingPoint(WorkingMap, tp)); SelectedTimingPoints.Clear(); SelectedTimingPoints.Add(tp); NeedsToScroll = true; TextTime = tp.StartTime.ToString(CultureInfo.InvariantCulture); TextBpm = $"{tp.Bpm:0.00}"; } ImGui.SameLine(); if (ImGui.Button("Remove")) { if (SelectedTimingPoints.Count == 0) { return; } var game = GameBase.Game as QuaverGame; var screen = game?.CurrentScreen as EditorScreen; var lastTp = SelectedTimingPoints.Last(); screen?.Ruleset.ActionManager.Perform(new EditorActionRemoveTimingPoints(WorkingMap, new List <TimingPointInfo>(SelectedTimingPoints))); SelectedTimingPoints.Clear(); if (WorkingMap.TimingPoints.Count != 0) { var sv = WorkingMap.TimingPoints.FindLast(x => x.StartTime <= lastTp.StartTime); if (sv != null) { TextTime = sv.StartTime.ToString(CultureInfo.InvariantCulture); TextBpm = $"{sv.Bpm:0.00}"; SelectedTimingPoints.Add(sv); } else { TextTime = ""; TextBpm = $""; } } else { TextTime = ""; TextBpm = $""; } NeedsToScroll = true; } }