Blob Blame Raw


#ifndef TNZ_COLORSQUARE_INCLUDED
#define TNZ_COLORSQUARE_INCLUDED

#include "tw/tw.h"
#include "tw/colorslider.h"

//===================================================================
//
// Color square (si comporta come un color slider)
//   setAction(), set/getColorValue(), setType()
//   click&drag --> m_action->notify(col, dragging)
//
//===================================================================

class ColorSquare : public TWidget
{
	TRaster32P m_raster;
	TColorSlider::Type m_type;
	TColorSlider::Color m_color;
	TColorSlider::Action *m_action;
	TPoint m_currentPos;
	TPoint m_oldMousePos;

public:
	ColorSquare(TWidget *parent, string name = "colorSquare");

	~ColorSquare();

	void setAction(TColorSlider::Action *action);
	void setColorValue(const TColorSlider::Color &color);

	TColorSlider::Color getColorValue() const;

	void setType(TColorSlider::Type type);

	void configureNotify(const TDimension &d);

	void update();
	void repaint();

	void pick(const TPoint &p, bool dragging);

	void leftButtonDown(const TMouseEvent &e);
	void leftButtonDrag(const TMouseEvent &e);
	void leftButtonUp(const TMouseEvent &e);
};

#endif