protected StaveGroup CreateEmptyStaveGroup()
{
var group = new StaveGroup();
group.Layout = this;
var isFirstTrack = true;
for (var trackIndex = 0; trackIndex < Renderer.Tracks.Length; trackIndex++)
{
var track = Renderer.Tracks[trackIndex];
for (int staveIndex = 0; staveIndex < track.Staves.Count; staveIndex++)
{
for (var renderStaveIndex = 0; renderStaveIndex < Renderer.Settings.Staves.Count; renderStaveIndex++)
{
var s = Renderer.Settings.Staves[renderStaveIndex];
if (Environment.StaveFactories.ContainsKey(s.Id))
{
var factory = Environment.StaveFactories[s.Id](this);
if (factory.CanCreate(track) && (isFirstTrack || !factory.HideOnMultiTrack) && (staveIndex == 0 || !factory.HideOnMultiTrack))
{
group.AddStave(track, new Staff(track.Staves[staveIndex], s.Id, factory, s.AdditionalSettings));
}
}
}
}
isFirstTrack = false;
}
return group;
}