#ifndef SWATCH_VIEW_H
#define SWATCH_VIEW_H
#include <View.h>
class SwatchView : public BView {
public:
SwatchView(const char* name, BMessage* message,
BHandler* target, rgb_color color,
float width = 24.0, float height = 24.0);
virtual ~SwatchView();
virtual void Draw(BRect updateRect);
virtual void MessageReceived(BMessage* message);
virtual void MouseDown(BPoint where);
virtual void MouseUp(BPoint where);
virtual void MouseMoved(BPoint where, uint32 transit,
const BMessage* dragMessage);
void SetColor(rgb_color color);
inline rgb_color Color() const
{ return fColor; }
void SetClickedMessage(BMessage* message);
void SetDroppedMessage(BMessage* message);
private:
void _Invoke(const BMessage* message);
void _StrokeRect(BRect frame, rgb_color leftTop,
rgb_color rightBottom);
void _DragColor();
private:
rgb_color fColor;
BPoint fTrackingStart;
bool fActive;
bool fDropInvokes;
BMessage* fClickMessage;
BMessage* fDroppedMessage;
BHandler* fTarget;
float fWidth;
float fHeight;
};
#endif