Exemplo n.º 1
0
        private static void UpdateScrollBar()
        {
            if (slotFocus >= 0)
            {
                scrollBarFocus = false;
                return;
            }
            Rectangle dim       = scrollBar.GetClippingRectangle(Main.spriteBatch);
            Vector2   boxPos    = new Vector2(dim.X, dim.Y + dim.Height * (scrollBar.ViewPosition / scrollBarMaxViewSize));
            float     boxWidth  = 20f * Main.UIScale;
            float     boxHeight = dim.Height * (scrollBarViewSize / scrollBarMaxViewSize);

            if (scrollBarFocus)
            {
                if (curMouse.LeftButton == ButtonState.Released)
                {
                    scrollBarFocus = false;
                }
                else
                {
                    int difference = curMouse.Y - scrollBarFocusMouseStart;
                    scrollBar.ViewPosition = scrollBarFocusPositionStart + (float)difference / boxHeight;
                }
            }
            else if (MouseClicked)
            {
                if (curMouse.X > boxPos.X && curMouse.X < boxPos.X + boxWidth && curMouse.Y > boxPos.Y - 3f && curMouse.Y < boxPos.Y + boxHeight + 4f)
                {
                    scrollBarFocus              = true;
                    scrollBarFocusMouseStart    = curMouse.Y;
                    scrollBarFocusPositionStart = scrollBar.ViewPosition;
                }
            }
            if (!scrollBarFocus)
            {
                int difference = oldMouse.ScrollWheelValue / 250 - curMouse.ScrollWheelValue / 250;
                scrollBar.ViewPosition += difference;
            }
        }