Esempio n. 1
0
        public void Layout()
        {
            m_body.Layout(Vector2.Zero);

            Vector2 realSize = m_body.GetRealSize();

            bool scrollbarsVisible = m_size.Y - m_scrollbarSize.Y < realSize.Y && m_size.X - m_scrollbarSize.X < realSize.X;
            bool vScrollbarVisible = scrollbarsVisible || m_size.Y < realSize.Y;
            bool hScrollbarVisible = scrollbarsVisible || m_size.X < realSize.X;

            m_vScrollbar.BottomBorder = scrollbarsVisible;
            m_hScrollbar.RightBorder  = scrollbarsVisible;

            Vector2 bodySize = new Vector2(vScrollbarVisible ? m_size.X - m_scrollbarSize.X : m_size.X, hScrollbarVisible ? m_size.Y - m_scrollbarSize.Y : m_size.Y);

            m_vScrollbar.Visible = vScrollbarVisible;
            m_vScrollbar.Init(realSize.Y, bodySize.Y);
            m_vScrollbar.Layout(m_body.GetPosition() + new Vector2(m_scrollbarSize.X / 4f - 0.0024f, 0), m_body.GetSize(), new Vector2(m_scrollbarSize.X / 2f, m_scrollbarSize.Y), hScrollbarVisible);
            m_vScrollbar.BorderNormalizedOffset = new Vector2(-m_scrollbarSize.X / 2 - 0.001f, 0);

            m_hScrollbar.Visible = hScrollbarVisible;
            m_hScrollbar.Init(realSize.X, bodySize.X);
            m_hScrollbar.Layout(m_body.GetPosition(), m_body.GetSize(), m_scrollbarSize, vScrollbarVisible);

            m_body.SetSize(bodySize);
            m_body.Layout(new Vector2(m_hScrollbar.GetValue(), m_vScrollbar.GetValue()));
        }