public void ApplySizes(BarSizeInfo sizes)
        {
            float size;
            float diff;

            size       = sizes.GetPreNoteSize(Beat.Start);
            diff       = size - PreNotes.Width;
            PreNotes.X = 0;
            if (diff > 0)
            {
                PreNotes.ApplyGlyphSpacing(diff);
            }

            size      = sizes.GetOnNoteSize(Beat.Start);
            diff      = size - OnNotes.Width;
            OnNotes.X = PreNotes.X + PreNotes.Width;
            if (diff > 0)
            {
                OnNotes.ApplyGlyphSpacing(diff);
            }

            size        = sizes.GetPostNoteSize(Beat.Start);
            diff        = size - PostNotes.Width;
            PostNotes.X = OnNotes.X + OnNotes.Width;
            if (diff > 0)
            {
                PostNotes.ApplyGlyphSpacing(diff);
            }

            Width = CalculateWidth();
        }
 public void RegisterMaxSizes(BarSizeInfo sizes)
 {
     if (sizes.GetPreNoteSize(Beat.Start) < PreNotes.Width)
     {
         sizes.SetPreNoteSize(Beat.Start, PreNotes.Width);
     }
     if (sizes.GetOnNoteSize(Beat.Start) < OnNotes.Width)
     {
         sizes.SetOnNoteSize(Beat.Start, OnNotes.Width);
     }
     if (sizes.GetPostNoteSize(Beat.Start) < PostNotes.Width)
     {
         sizes.SetPostNoteSize(Beat.Start, PostNotes.Width);
     }
 }