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

    // given "value" bet 0 and 1 uses it, given "value" > 1 uses 1,
    // less than 0 - uses 0.
    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);
    }
}

