llcolorswatch.h

Go to the documentation of this file.
00001 
00032 #ifndef LL_LLCOLORSWATCH_H
00033 #define LL_LLCOLORSWATCH_H
00034 
00035 #include "lluictrl.h"
00036 #include "v4color.h"
00037 #include "llfloater.h"
00038 #include "llviewerimage.h"
00039 
00040 //
00041 // Classes
00042 //
00043 class LLColor4;
00044 class LLTextBox;
00045 class LLFloaterColorPicker;
00046 class LLViewerImage;
00047 
00048 class LLColorSwatchCtrl
00049 : public LLUICtrl
00050 {
00051 public:
00052         typedef enum e_color_pick_op
00053         {
00054                 COLOR_CHANGE,
00055                 COLOR_SELECT,
00056                 COLOR_CANCEL
00057         } EColorPickOp;
00058 
00059         LLColorSwatchCtrl(const std::string& name, const LLRect& rect, const LLColor4& color,
00060                 void (*on_commit_callback)(LLUICtrl* ctrl, void* userdata),
00061                 void* callback_userdata);
00062         LLColorSwatchCtrl(const std::string& name, const LLRect& rect, const std::string& label, const LLColor4& color,
00063                 void (*on_commit_callback)(LLUICtrl* ctrl, void* userdata),
00064                 void* callback_userdata);
00065 
00066         ~LLColorSwatchCtrl ();
00067 
00068         virtual void setValue(const LLSD& value);
00069         virtual EWidgetType getWidgetType() const { return WIDGET_TYPE_COLOR_SWATCH; }
00070         virtual LLString getWidgetTag() const { return LL_COLOR_SWATCH_CTRL_TAG; }
00071         virtual LLSD getValue() const { return mColor.getValue(); }
00072         const LLColor4& get()                                                   { return mColor; }
00073         
00074         void                    set(const LLColor4& color, BOOL update_picker = FALSE, BOOL from_event = FALSE);
00075         void                    setOriginal(const LLColor4& color);
00076         void                    setValid(BOOL valid);
00077         void                    setLabel(const std::string& label);
00078         void                    setCanApplyImmediately(BOOL apply) { mCanApplyImmediately = apply; }
00079         void                    setOnCancelCallback(LLUICtrlCallback cb) { mOnCancelCallback = cb; }
00080         void                    setOnSelectCallback(LLUICtrlCallback cb) { mOnSelectCallback = cb; }
00081 
00082         void                    showPicker(BOOL take_focus);
00083 
00084         virtual BOOL    handleMouseDown(S32 x, S32 y, MASK mask);
00085         virtual BOOL    handleMouseUp(S32 x, S32 y, MASK mask);
00086         virtual BOOL    handleDoubleClick(S32 x,S32 y,MASK mask);
00087         virtual BOOL    handleHover(S32 x, S32 y, MASK mask);
00088         virtual BOOL    handleUnicodeCharHere(llwchar uni_char, BOOL called_from_parent);
00089         virtual void    draw();
00090         virtual void    setEnabled( BOOL enabled );
00091         virtual LLXMLNodePtr getXML(bool save_children = true) const;
00092         static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
00093 
00094         static void             onColorChanged ( void* data, EColorPickOp pick_op = COLOR_CHANGE );
00095 
00096 protected:
00097         BOOL                    mValid;
00098         LLColor4                mColor;
00099         LLColor4                mBorderColor;
00100         LLTextBox*              mCaption;
00101         LLViewHandle mPickerHandle;
00102         LLViewBorder*   mBorder;
00103         BOOL                    mCanApplyImmediately;
00104         LLUICtrlCallback mOnCancelCallback;
00105         LLUICtrlCallback mOnSelectCallback;
00106 
00107         LLPointer<LLViewerImage> mAlphaGradientImage;
00108 };
00109 
00110 #endif  // LL_LLBUTTON_H

Generated on Thu Jul 1 06:08:22 2010 for Second Life Viewer by  doxygen 1.4.7