public SpecialNotePointer AddSpecialNote(ScoreBar scoreBar, ScoreBarHitTestInfo info, bool isFromPrevBar, NoteType type) { if (!info.IsInNextBar) { var row = info.Row; if (isFromPrevBar && row < 0) { row = 0; } return(AddSpecialNote(scoreBar, row, type)); } if (isFromPrevBar) { return(null); } var nextBar = ScoreBars.FirstOrDefault(b => b.Bar.Index > scoreBar.Bar.Index); if (nextBar == null) { return(null); } var point = scoreBar.TranslatePoint(info.HitPoint, nextBar); return(AddSpecialNote(nextBar, nextBar.HitTest(point), true, type)); }
private ScoreNote AddScoreNote(ScoreBar scoreBar, ScoreBarHitTestInfo info, bool isFromPrevBar, Note dataTemplate) { if (info.IsInNextBar) { if (isFromPrevBar) { return(null); } var nextBar = ScoreBars.FirstOrDefault(b => b.Bar.Index > scoreBar.Bar.Index); if (nextBar == null) { return(null); } var point = scoreBar.TranslatePoint(info.HitPoint, nextBar); return(AddScoreNote(nextBar, nextBar.HitTest(point), true, dataTemplate)); } var row = info.Row; if (isFromPrevBar && row < 0) { row = 0; } if (!info.IsValid || row < 0 || info.Column < 0) { return(null); } return(AddScoreNote(scoreBar, row, info.Column, dataTemplate)); }
public SpecialNotePointer AddSpecialNote(ScoreBar scoreBar, ScoreBarHitTestInfo info, NoteType type) { if (!info.IsInNextBar) { return(AddSpecialNote(scoreBar, info.Row, type)); } var nextBar = ScoreBars.FirstOrDefault(b => b.Bar.Index > scoreBar.Bar.Index); if (nextBar == null) { return(null); } var point = scoreBar.TranslatePoint(info.HitPoint, nextBar); return(AddSpecialNote(nextBar, nextBar.HitTest(point), type)); }