Ejemplo n.º 1
0
        private void RecalculateScrollBar()
        {
            float realHeight = m_label.GetSize().Y;

            bool vScrollbarVisible = Size.Y < realHeight;

            m_scrollbar.Visible = vScrollbarVisible;
            m_scrollbar.Init(realHeight, Size.Y);
            m_scrollbar.Layout(new Vector2(0.5f * Size.X - m_scrollbar.Size.X, -0.5f * Size.Y), Size.Y);

            if (!m_drawScrollbar)
            {
                if (TextAlign == MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM ||
                    TextAlign == MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_BOTTOM ||
                    TextAlign == MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM)
                {
                    //m_scrollbar.Value = realHeight;
                    m_scrollbar.Value = 0;
                }
                else
                if (TextAlign == MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP ||
                    TextAlign == MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_TOP ||
                    TextAlign == MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP)
                {
                    //m_scrollbar.Value = 0;
                    m_scrollbar.Value = realHeight;
                }
            }
        }
        private void RefreshScrollbar()
        {
            if (ScrolledControl != null)
            {
                if (m_scrollbarV != null)
                {
                    m_scrollbarV.Visible = m_scrolledArea.Size.Y < ScrolledControl.Size.Y;
                    if (m_scrollbarV.Visible)
                    {
                        m_scrollbarV.Init(ScrolledControl.Size.Y, m_scrolledArea.Size.Y);
                        var posTopRight = Size * new Vector2(0.5f, -0.5f);
                        var position    = new Vector2(posTopRight.X - m_scrollbarV.Size.X,
                                                      posTopRight.Y);
                        m_scrollbarV.Layout(position + new Vector2(0.0f, m_scrolledAreaPadding.Top), m_scrolledArea.Size.Y);
                    }
                    else
                    {
                        m_scrollbarV.Value = 0f;
                    }
                }

                if (m_scrollbarH != null)
                {
                    m_scrollbarH.Visible = m_scrolledArea.Size.X < ScrolledControl.Size.X;
                    if (m_scrollbarH.Visible)
                    {
                        m_scrollbarH.Init(ScrolledControl.Size.X, m_scrolledArea.Size.X);
                        var posBottomLeft = Size * new Vector2(-0.5f, 0.5f);
                        var position      = new Vector2(posBottomLeft.X,
                                                        posBottomLeft.Y - m_scrollbarH.Size.Y + ScrollBarOffset.Y);
                        m_scrollbarH.Layout(position + new Vector2(m_scrolledAreaPadding.Left), m_scrolledArea.Size.X);
                    }
                    else
                    {
                        m_scrollbarH.Value = 0f;
                    }
                }
            }
            else
            {
                if (m_scrollbarV != null)
                {
                    m_scrollbarV.Visible = false;
                }
                if (m_scrollbarH != null)
                {
                    m_scrollbarH.Visible = false;
                }
            }

            RefreshScrolledControlPosition();
        }
Ejemplo n.º 3
0
        private void RefreshScrollBar()
        {
            int visibleItems = 0;

            foreach (var item in Items)
            {
                if (item.Visible)
                {
                    visibleItems++;
                }
            }

            m_scrollBar.Visible = visibleItems > VisibleRowsCount;
            m_scrollBar.Init((float)visibleItems, (float)VisibleRowsCount);

            var posTopRight = Size * new Vector2(0.5f, -0.5f);
            var margin      = m_styleDef.ScrollbarMargin;
            var position    = new Vector2(posTopRight.X - (margin.Right + m_scrollBar.Size.X),
                                          posTopRight.Y + margin.Top);

            m_scrollBar.Layout(position, Size.Y - margin.VerticalSum);
        }