public override void DoLayout()
{
var w = 0f;
for (int i = 0, j = _notes.Count; i < j; i++)
{
var g = _notes[i];
g.Renderer = Renderer;
g.DoLayout();
if (g.Width > w)
{
w = g.Width;
}
}
var tabHeight = Renderer.Resources.TablatureFont.Size;
var effectY = GetNoteY(_minNote) + tabHeight / 2;
// TODO: take care of actual glyph height
var effectSpacing = 7 * Scale;
foreach (var beatEffectKey in BeatEffects)
{
var g = BeatEffects[beatEffectKey];
g.Y += effectY;
g.X += Width / 2;
g.Renderer = Renderer;
effectY += effectSpacing;
g.DoLayout();
}
_centerX = 0;
Width = w;
}