Shinya Kitaoka 810553
#pragma once
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
Shinya Kitaoka 120a6e
class ColorSquare : public TWidget {
Shinya Kitaoka 120a6e
  TRaster32P m_raster;
Shinya Kitaoka 120a6e
  TColorSlider::Type m_type;
Shinya Kitaoka 120a6e
  TColorSlider::Color m_color;
Shinya Kitaoka 120a6e
  TColorSlider::Action *m_action;
Shinya Kitaoka 120a6e
  TPoint m_currentPos;
Shinya Kitaoka 120a6e
  TPoint m_oldMousePos;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  ColorSquare(TWidget *parent, string name = "colorSquare");
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  ~ColorSquare();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void setAction(TColorSlider::Action *action);
Shinya Kitaoka 120a6e
  void setColorValue(const TColorSlider::Color &color);
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  TColorSlider::Color getColorValue() const;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void setType(TColorSlider::Type type);
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void configureNotify(const TDimension &d);
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void update();
Shinya Kitaoka 120a6e
  void repaint();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void pick(const TPoint &p, bool dragging);
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void leftButtonDown(const TMouseEvent &e);
Shinya Kitaoka 120a6e
  void leftButtonDrag(const TMouseEvent &e);
Shinya Kitaoka 120a6e
  void leftButtonUp(const TMouseEvent &e);
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif