DoLayout() public method

public DoLayout ( ) : void
return void
Beispiel #1
0
        public virtual void DoLayout()
        {
            Helpers = Staff.StaveGroup.Helpers.Helpers[Bar.Staff.Track.Index][Bar.Staff.Index][Bar.Index];

            for (int i = 0; i < Bar.Voices.Count; i++)
            {
                var voice = Bar.Voices[i];
                var c = new VoiceContainerGlyph(0, 0, voice);
                c.Renderer = this;
                _voiceContainers[Bar.Voices[i].Index] = c;
            }

            CreatePreBeatGlyphs();
            CreateBeatGlyphs();
            CreatePostBeatGlyphs();

            var postBeatStart = 0f;
            foreach (var voice in _voiceContainers)
            {
                var c = _voiceContainers[voice];
                c.X = BeatGlyphsStart;
                c.DoLayout();
                var x = c.X + c.Width;
                if (postBeatStart < x)
                {
                    postBeatStart = x;
                }
            }

            _postBeatGlyphs.X = postBeatStart;

            Width = _postBeatGlyphs.X + _postBeatGlyphs.Width;
        }