#ifndef VSlider_h
#define VSlider_h

#include "vmath.h"

/*! \brief VSlider: Klasse zur Repräsentation eines Sliders */
class VSlider
{
	/*! aktuelle Position des Sliders ([0,1])*/
	float value;
	/*! Anfangspunkt des Sliders */
	Vector2<float> begin;
	/*! Endpunkt des Sliders */
	Vector2<float> end;
	/*! Länge des Bedienelements */
	int offset;
	float * alpha;
	Vector3<float> color;
	/*! Anfangspunkt des Draggings */
	Vector2<float> fromPoint;
	
public:
	/*! Konstruktor
		\param initialvalue Anfangswert für Slidervalue
		\param x1,y1 Anfangspunkt
		\param x2,y2 Endpunkt
		\param alpha Pointer auf alpha Wert (für Blending)
	*/
	VSlider(float,int,int,int,int,float*);
	~VSlider(void);
	void render();
	bool isInside(int,int);

	void pressed(int,int);
	void drag(int,int);
	void released(int,int);
	
	/*! Liefert den Pointer auf den Slidervalue zurück */
	float * getValue();
	/*! Setzt einen neuen Slidervalue */
	void setValue(float);
};

#endif
