Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef TNZ_COLORSQUARE_INCLUDED
Toshihiro Shimizu 890ddd
#define TNZ_COLORSQUARE_INCLUDED
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "tw/tw.h"
Toshihiro Shimizu 890ddd
#include "tw/colorslider.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//===================================================================
Toshihiro Shimizu 890ddd
//
Toshihiro Shimizu 890ddd
// Color square (si comporta come un color slider)
Toshihiro Shimizu 890ddd
//   setAction(), set/getColorValue(), setType()
Toshihiro Shimizu 890ddd
//   click&drag --> m_action->notify(col, dragging)
Toshihiro Shimizu 890ddd
//
Toshihiro Shimizu 890ddd
//===================================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class ColorSquare : public TWidget
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	TRaster32P m_raster;
Toshihiro Shimizu 890ddd
	TColorSlider::Type m_type;
Toshihiro Shimizu 890ddd
	TColorSlider::Color m_color;
Toshihiro Shimizu 890ddd
	TColorSlider::Action *m_action;
Toshihiro Shimizu 890ddd
	TPoint m_currentPos;
Toshihiro Shimizu 890ddd
	TPoint m_oldMousePos;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	ColorSquare(TWidget *parent, string name = "colorSquare");
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	~ColorSquare();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void setAction(TColorSlider::Action *action);
Toshihiro Shimizu 890ddd
	void setColorValue(const TColorSlider::Color &color);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	TColorSlider::Color getColorValue() const;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void setType(TColorSlider::Type type);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void configureNotify(const TDimension &d);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void update();
Toshihiro Shimizu 890ddd
	void repaint();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void pick(const TPoint &p, bool dragging);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void leftButtonDown(const TMouseEvent &e);
Toshihiro Shimizu 890ddd
	void leftButtonDrag(const TMouseEvent &e);
Toshihiro Shimizu 890ddd
	void leftButtonUp(const TMouseEvent &e);
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif