//
import java.awt.*;

public class Slider extends Widget
{
   public String label = "SLIDER";
   private double value = 0;

//---------------- OBJECT CONSTRUCTOR

   public Slider(int x, int y, int width, int height) {
      super(x, y, width, height);
   }

//---------------- SET AND GET VALUE

   public void setValue(double value) {
      this.value = Math.max(0, Math.min(1, value));
   }
   public double getValue() { return value; }

//---------------- HANDLING DRAG EVENT

   public boolean drag(int x, int y) {
      if (super.drag(x, y)) {
         setValue((double)(x - this.x) / width);
	 return true;
      }
      return false;
   }

//---------------- RENDERING THE SLIDER

   public void render(Graphics g) {

      g.setColor(bgColor);         // RENDER FRAME AND SLIDE
      g.fill3DRect(x,  y,   width,                    height,  false);
      g.fill3DRect(x+1,y+1, (int)((width-2) * value), height-2,true);

      g.setColor(fgColor);         // RENDER TEXT NAME
      g.drawString(label, x + 2, y + 12);
   }
}