#ifndef VColorChooser_h
#define VColorChooser_h

#include "VTexture.h"

/*! \brief VColorChooser: Klasse zur Repräsentation des Farbwahlelements.
	\sa VTransferFunctionElement.h
*/
class VColorChooser
{
	VTexture * tex;
	int x;
	int y;
	int width;
	int height;
	int func_x;
	int func_y;
	int func_width;
	int func_height;
	/*! Speicher die Ausrichtung des Elements.
	0 = links oben, 1=rechts oben, 2=links unten, 3=rechts unten
	*/
	int position;
	bool active;
	float* alpha;
public:
	/*! Konstruktor
		\param alpha aktueller alpha Wert (für Blending)
		\param fx x Position der Transferfunktion
		\param fy y Position der Transferfunktion
		\param fwidth Breite der Transferfunktion
		\param fheight Höhe der Transferfunktion
	*/
	VColorChooser(float*,int,int,int,int);
	/*! Zeichnet das Farbwahlelement (Ausrichtung anhand der Position) */
	void draw();
	bool isInside(int,int);
	/*! Gibt die ausgewählte Farbe zurück
	\param x x Koordinate der Maus
	\param y y Koordinate der Maus
	\param pixels Puffer zur Speicherung der Farbe
	*/
	void getColor(int,int,float*);
	bool isActive();
	/*! Aktiviert/Deaktiviert das Element und setzt die Position fest.
	*/
	void setActive(bool,int,int);
	~VColorChooser(void);
};

#endif
