Пример #1
0
 public BarRendererBase(ScoreRenderer renderer, Bar bar)
 {
     Bar           = bar;
     ScoreRenderer = renderer;
     Helpers       = new BarHelpers(bar);
     CanWrap       = true;
 }
Пример #2
0
 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);
                    }
                }
            }
        }
Пример #4
0
 public override void DoLayout()
 {
     _helpers = Staff.StaveGroup.Helpers.Helpers[Bar.Staff.Track.Index][Bar.Staff.Index][Bar.Index];
     base.DoLayout();
     Height = LineOffset * (Bar.Staff.Track.Tuning.Length - 1) + (NumberOverflow * 2);
     if (Index == 0)
     {
         Staff.RegisterStaveTop(NumberOverflow);
         Staff.RegisterStaveBottom(Height - NumberOverflow);
     }
 }
Пример #5
0
        public override void DoLayout()
        {
            _helpers = Staff.StaveGroup.Helpers.Helpers[Bar.Staff.Track.Index][Bar.Staff.Index][Bar.Index];
            var res            = Resources;
            var numberOverflow = (res.TablatureFont.Size / 2) + (res.TablatureFont.Size * 0.2f);

            TopPadding    = numberOverflow;
            BottomPadding = numberOverflow;

            base.DoLayout();

            Height = LineOffset * (Bar.Staff.Track.Tuning.Length - 1) + (numberOverflow * 2);
            if (Index == 0)
            {
                Staff.RegisterStaveTop(TopOverflow);
                Staff.RegisterStaveBottom(Height - BottomOverflow);
            }
        }