/* * Copyright 2001 Werner Freytag - please read to the LICENSE file * * Copyright 2002-2006, Stephan Aßmus <superstippi@gmx.de> * All rights reserved. * */ #ifndef _COLOR_PREVIEW_H #define _COLOR_PREVIEW_H #include <Control.h> #define MSG_COLOR_PREVIEW 'ColP' #define MSG_MESSAGERUNNER 'MsgR' class BMessageRunner; class ColorPreview : public BControl { public: ColorPreview(BRect frame, rgb_color color); ColorPreview(rgb_color color); // BControl interface virtual BSize MinSize(); virtual BSize PreferredSize(); virtual BSize MaxSize(); virtual void AttachedToWindow(); 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* message); virtual status_t Invoke(BMessage* message = NULL); // ColorPreview void SetColor(rgb_color color); // changes the displayed color void SetNewColor(rgb_color color); // changes also the old color private: void _DragColor(BPoint where); private: rgb_color fColor; rgb_color fOldColor; bool fMouseDown; BMessageRunner* fMessageRunner; border_style fBorderStyle; }; #endif // _COLOR_PREVIEW_H