////////////////

        public override void OnInitializeMe()
        {
            this.InitializeHeader();

            ////

            var modListPanel = new UIPanel();

            modListPanel.Top.Set(24f, 0f);
            modListPanel.Width.Set(0f, 1f);
            modListPanel.Height.Set(480f, 0f);
            modListPanel.HAlign = 0f;
            modListPanel.SetPadding(4f);
            //modListPanel.PaddingTop = 0.0f;
            modListPanel.BackgroundColor = this.Theme.ListBgColor;
            modListPanel.BorderColor     = this.Theme.ListEdgeColor;
            this.Append((UIElement)modListPanel);

            this.PlayerStatList = new UIList();
            this.PlayerStatList.Width.Set(-25f, 1f);
            this.PlayerStatList.Height.Set(0f, 1f);
            this.PlayerStatList.HAlign      = 0f;
            this.PlayerStatList.ListPadding = 4f;
            this.PlayerStatList.SetPadding(0f);
            modListPanel.Append((UIElement)this.PlayerStatList);

            this.Scrollbar = new UIHideableScrollbar(this.PlayerStatList, true);
            this.Scrollbar.Top.Set(8f, 0f);
            this.Scrollbar.Height.Set(-16f, 1f);
            this.Scrollbar.SetView(100f, 1000f);
            this.Scrollbar.HAlign = 1f;
            modListPanel.Append((UIElement)this.Scrollbar);
            this.PlayerStatList.SetScrollbar(this.Scrollbar);
        }
        ////////////////

        public override void Draw(SpriteBatch spriteBatch)
        {
            bool listChanged;

            try {
                this.Scrollbar.IsHidden = UIHideableScrollbar.IsScrollbarHidden(this.PlayerCount, this.PlayerStatList.Parent);

                if (this.Scrollbar.IsHidden)
                {
                    listChanged = this.PlayerStatList.Width.Pixels != 0;
                    this.PlayerStatList.Width.Pixels = 0;
                }
                else
                {
                    listChanged = this.PlayerStatList.Width.Pixels != -25;
                    this.PlayerStatList.Width.Pixels = -25;
                }

                if (listChanged)
                {
                    this.Recalculate();
                    this.PlayerStatList.Recalculate();
                }
            } catch { }

            base.Draw(spriteBatch);
        }