public override void DoLayout() { _helpers = Stave.StaveGroup.Helpers.Helpers[Bar.Track.Index][Bar.Index]; base.DoLayout(); Height = Stave.GetSetting("rhythm-height", 24) * Scale; IsEmpty = false; }
public override void DoLayout() { _helpers = Stave.StaveGroup.Helpers.Helpers[Bar.Track.Index][Bar.Index]; base.DoLayout(); Height = (LineOffset * 4) + TopPadding + BottomPadding; if (Index == 0) { Stave.RegisterStaveTop(GlyphOverflow); Stave.RegisterStaveBottom(Height - GlyphOverflow); } var top = GetScoreY(0); var bottom = GetScoreY(8); for (int i = 0, j = _helpers.BeamHelpers.Count; i < j; i++) { var v = _helpers.BeamHelpers[i]; for (int k = 0, l = v.Count; k < l; k++) { var h = v[k]; // // max note (highest) -> top overflow // var maxNoteY = GetScoreY(GetNoteLine(h.MaxNote)); if (h.Direction == BeamDirection.Up) { maxNoteY -= GetStemSize(h.MaxDuration); maxNoteY -= h.FingeringCount * Resources.GraceFont.Size; if (h.HasTuplet) { maxNoteY -= Resources.EffectFont.Size * 2; } } if (maxNoteY < top) { RegisterOverflowTop(Math.Abs(maxNoteY)); } // // min note (lowest) -> bottom overflow //t var minNoteY = GetScoreY(GetNoteLine(h.MinNote)); if (h.Direction == BeamDirection.Down) { minNoteY += GetStemSize(h.MaxDuration); minNoteY += h.FingeringCount * Resources.GraceFont.Size; } if (minNoteY > bottom) { RegisterOverflowBottom(Math.Abs(minNoteY) - bottom); } } } }
public override void DoLayout() { _helpers = Stave.StaveGroup.Helpers.Helpers[Bar.Track.Index][Bar.Index]; base.DoLayout(); Height = LineOffset * (Bar.Track.Tuning.Length - 1) + (NumberOverflow * 2); if (Index == 0) { Stave.RegisterStaveTop(NumberOverflow); Stave.RegisterStaveBottom(Height - NumberOverflow); } }
private void PaintBeamHelper(float cx, float cy, ICanvas canvas, BeamingHelper h) { if (h.Beats[0].GraceType != GraceType.None) { return; } var useBeams = Stave.GetSetting("use-beams", false); // check if we need to paint simple footer if (useBeams && h.Beats.Count == 1) { PaintFooter(cx, cy, canvas, h); } else { PaintBar(cx, cy, canvas, h); } }
public void AddStave(Track track, Stave stave) { var group = GetStaveTrackGroup(track); if (group == null) { group = new StaveTrackGroup(this, track); Staves.Add(group); } stave.StaveTrackGroup = group; stave.StaveGroup = this; stave.Index = _allStaves.Count; _allStaves.Add(stave); group.Staves.Add(stave); if (stave.IsInAccolade) { if (_firstStaveInAccolade == null) { _firstStaveInAccolade = stave; stave.IsFirstInAccolade = true; } if (group.FirstStaveInAccolade == null) { group.FirstStaveInAccolade = stave; } if (_lastStaveInAccolade == null) { _lastStaveInAccolade = stave; stave.IsLastInAccolade = true; } if (_lastStaveInAccolade != null) { _lastStaveInAccolade.IsLastInAccolade = false; } _lastStaveInAccolade = stave; _lastStaveInAccolade.IsLastInAccolade = true; group.LastStaveInAccolade = stave; } }