public override void HandleInput(InputHandler input)
        {
            base.HandleInput(input);

            bool oldActive = Active;

            if (input.CurrentMouseState.LeftButton == ButtonState.Released)
            {
                Active = false;
            }

            if(rectangle.Contains(input.CurrentMouseState.X, input.CurrentMouseState.Y))
            {
                if (input.CurrentMouseState.LeftButton == ButtonState.Pressed && input.LastMouseState.LeftButton == ButtonState.Released)
                {
                    Active = true;
                }

                if(input.CurrentMouseState.LeftButton == ButtonState.Released && input.LastMouseState.LeftButton == ButtonState.Pressed && oldActive)
                {
                    if (OnClick != null)
                    {
                        OnClick(this, null);
                        Active = false;
                    }
                }
            }
        }
 public virtual void HandleInput(InputHandler input)
 {
     if (!Enabled)
     {
         Active = false;
         return;
     }
 }
        public override void HandleInput(InputHandler input)
        {
            base.HandleInput(input);

            if(input.CurrentMouseState.LeftButton == ButtonState.Released)
            {
                Active = false;
            }

            if (Rectangle.Contains(input.CurrentMouseState.X, input.CurrentMouseState.Y))
            {
                if (input.CurrentMouseState.LeftButton == ButtonState.Pressed && input.LastMouseState.LeftButton == ButtonState.Released)
                {
                    Active = true;
                }
            }

            if (Active)
            {
                float oldValue = Value;
                float temp = (input.CurrentMouseState.X - _position.X - handleWidth * 0.5f) / (Length - handleWidth) * (Max - Min) + Min;
                Value = (float)Math.Round(MathHelper.Clamp(temp, Min, Max), Precision);

                if (oldValue != Value)
                {
                    if (OnValueChanged != null)
                    {
                        OnValueChanged(this, null);
                    }
                }
            }
        }
        public void HandleInput(InputHandler inputHandler)
        {
            if (DisplayDebug)
            {
                guiElements.HandleInput(inputHandler);
            }

            if (inputHandler.IsKeyPressed(Keys.LeftShift))
            {
                drawUsingMarchingCubes = !drawUsingMarchingCubes;
            }

            if (inputHandler.IsKeyPressed(Keys.F1))
            {
                DisplayDebug = !DisplayDebug;
            }

            if (inputHandler.IsKeyPressed(Keys.Tab))
            {
                debugGrid.Visible = !debugGrid.Visible;
            }
        }