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);
     }
 }
        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();
        }