private void FillContextMenuToMoveToOtherVoice(ContextMenuPopupControl contextMenu, List <Note> selectedNotes) { bool canMoveToVoice1 = moveNotesToOtherVoiceAction.CanMoveNotesToVoice(selectedNotes, Voice.soloVoiceName, Voice.firstVoiceName); bool canMoveToVoice2 = moveNotesToOtherVoiceAction.CanMoveNotesToVoice(selectedNotes, Voice.secondVoiceName); if (canMoveToVoice1) { contextMenu.AddSeparator(); contextMenu.AddItem("Move to player 1", () => moveNotesToOtherVoiceAction.MoveNotesToVoiceAndNotify(songMeta, selectedNotes, Voice.firstVoiceName)); } if (!canMoveToVoice1 && canMoveToVoice2) { contextMenu.AddSeparator(); } if (canMoveToVoice2) { contextMenu.AddItem("Move to player 2", () => moveNotesToOtherVoiceAction.MoveNotesToVoiceAndNotify(songMeta, selectedNotes, Voice.secondVoiceName)); } if (moveNoteToOwnSentenceAction.CanMoveToOwnSentence(selectedNotes)) { contextMenu.AddItem("Move to own sentence", () => moveNoteToOwnSentenceAction.MoveToOwnSentenceAndNotify(selectedNotes)); } }
private void FillContextMenu(ContextMenuPopupControl contextMenu) { int beat = (int)noteAreaControl.GetHorizontalMousePositionInBeats(); int midiNote = noteAreaControl.GetVerticalMousePositionInMidiNote(); contextMenu.AddItem("Fit vertical", () => noteAreaControl.FitViewportVerticalToNotes()); Sentence sentenceAtBeat = SongMetaUtils.GetSentencesAtBeat(songMeta, beat).FirstOrDefault(); if (sentenceAtBeat != null) { int minBeat = sentenceAtBeat.MinBeat - 1; int maxBeat = sentenceAtBeat.ExtendedMaxBeat + 1; contextMenu.AddItem("Fit horizontal to sentence ", () => noteAreaControl.FitViewportHorizontal(minBeat, maxBeat)); } List <Note> selectedNotes = selectionControl.GetSelectedNotes(); if (selectedNotes.Count > 0) { int minBeat = selectedNotes.Select(it => it.StartBeat).Min() - 1; int maxBeat = selectedNotes.Select(it => it.EndBeat).Max() + 1; contextMenu.AddItem("Fit horizontal to selection", () => noteAreaControl.FitViewportHorizontal(minBeat, maxBeat)); } if (selectedNotes.Count > 0 || songEditorCopyPasteManager.CopiedNotes.Count > 0) { contextMenu.AddSeparator(); if (selectedNotes.Count > 0) { contextMenu.AddItem("Copy notes", () => songEditorCopyPasteManager.CopySelectedNotes()); } if (songEditorCopyPasteManager.CopiedNotes.Count > 0) { contextMenu.AddItem("Paste notes", () => songEditorCopyPasteManager.PasteCopiedNotes()); } } contextMenu.AddSeparator(); contextMenu.AddItem("Add note", () => addNoteAction.ExecuteAndNotify(songMeta, beat, midiNote)); if (selectedNotes.Count == 0) { contextMenu.AddSeparator(); contextMenu.AddItem("Set Gap to playback position", () => setMusicGapAction.ExecuteAndNotify()); } }
private void FillContextMenuToSetNoteType(ContextMenuPopupControl contextMenu, List <Note> selectedNotes) { contextMenu.AddSeparator(); if (setNoteTypeAction.CanExecute(selectedNotes, ENoteType.Golden)) { contextMenu.AddItem("Make golden", () => setNoteTypeAction.ExecuteAndNotify(selectedNotes, ENoteType.Golden)); } if (setNoteTypeAction.CanExecute(selectedNotes, ENoteType.Freestyle)) { contextMenu.AddItem("Make freestyle", () => setNoteTypeAction.ExecuteAndNotify(selectedNotes, ENoteType.Freestyle)); } if (setNoteTypeAction.CanExecute(selectedNotes, ENoteType.Rap)) { contextMenu.AddItem("Make rap", () => setNoteTypeAction.ExecuteAndNotify(selectedNotes, ENoteType.Rap)); } if (setNoteTypeAction.CanExecute(selectedNotes, ENoteType.RapGolden)) { contextMenu.AddItem("Make rap-golden", () => setNoteTypeAction.ExecuteAndNotify(selectedNotes, ENoteType.RapGolden)); } if (setNoteTypeAction.CanExecute(selectedNotes, ENoteType.Normal)) { contextMenu.AddItem("Make normal", () => setNoteTypeAction.ExecuteAndNotify(selectedNotes, ENoteType.Normal)); } }
private void FillContextMenu(ContextMenuPopupControl contextMenu) { List <Sentence> selectedSentences = new() { sentenceControl.Sentence }; contextMenu.AddItem("Fit to notes", () => sentenceFitToNoteAction.ExecuteAndNotify(selectedSentences)); contextMenu.AddItem("Fit to notes (all phrases)", () => sentenceFitToNoteAction.ExecuteAndNotify(SongMetaUtils.GetAllSentences(songMeta))); contextMenu.AddSeparator(); contextMenu.AddItem("Delete", () => deleteSentencesAction.ExecuteAndNotify(selectedSentences)); }
private void FillContextMenuToMergeSentences(ContextMenuPopupControl contextMenu, List <Note> selectedNotes) { if (mergeSentencesAction.CanExecute(selectedNotes)) { contextMenu.AddSeparator(); contextMenu.AddItem("Merge sentences", () => mergeSentencesAction.ExecuteAndNotify(selectedNotes, noteControl.Note)); } }
private void FillContextMenuToMoveToOtherSentence(ContextMenuPopupControl contextMenu, List <Note> selectedNotes) { bool canMoveToPreviousSentence = moveNoteToAdjacentSentenceAction.CanMoveToPreviousSentence(selectedNotes, noteControl.Note); bool canMoveToNextSentence = moveNoteToAdjacentSentenceAction.CanMoveToNextSentence(selectedNotes, noteControl.Note); if (canMoveToPreviousSentence) { contextMenu.AddSeparator(); contextMenu.AddItem("Move to previous sentence", () => moveNoteToAdjacentSentenceAction.MoveToPreviousSentenceAndNotify(noteControl.Note)); } if (!canMoveToPreviousSentence && canMoveToNextSentence) { contextMenu.AddSeparator(); } if (canMoveToNextSentence) { contextMenu.AddItem("Move to next sentence", () => moveNoteToAdjacentSentenceAction.MoveToNextSentenceAndNotify(noteControl.Note)); } }
private void FillContextMenuToDeleteNotes(ContextMenuPopupControl contextMenu, List <Note> selectedNotes) { contextMenu.AddSeparator(); contextMenu.AddItem("Delete", () => deleteNotesAction.ExecuteAndNotify(selectedNotes)); }
private void FillContextMenuToAddSpaceBetweenNotes(ContextMenuPopupControl contextMenu) { contextMenu.AddSeparator(); contextMenu.AddItem("Add space between notes", () => CreateAddSpaceBetweenNotesDialog()); }