diff options
author | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
---|---|---|
committer | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
commit | 420b91db29485df39fd6e724e782c449158811cb (patch) | |
tree | b471a94563af914d3ed3edd3e856d21cb1b69945 /indra/llui/llcheckboxctrl.h |
Print done when done.
Diffstat (limited to 'indra/llui/llcheckboxctrl.h')
-rw-r--r-- | indra/llui/llcheckboxctrl.h | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/indra/llui/llcheckboxctrl.h b/indra/llui/llcheckboxctrl.h new file mode 100644 index 0000000000..b2f9c95974 --- /dev/null +++ b/indra/llui/llcheckboxctrl.h @@ -0,0 +1,112 @@ +/** + * @file llcheckboxctrl.h + * @brief LLCheckBoxCtrl base class + * + * Copyright (c) 2001-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#ifndef LL_LLCHECKBOXCTRL_H +#define LL_LLCHECKBOXCTRL_H + + +#include "stdtypes.h" +#include "lluictrl.h" +#include "llbutton.h" +#include "v4color.h" +#include "llrect.h" + +// +// Constants +// +const S32 LLCHECKBOXCTRL_BTN_SIZE = 13; +const S32 LLCHECKBOXCTRL_VPAD = 2; +const S32 LLCHECKBOXCTRL_HPAD = 2; +const S32 LLCHECKBOXCTRL_SPACING = 5; +const S32 LLCHECKBOXCTRL_HEIGHT = 16; + +// Deprecated, don't use. +#define CHECKBOXCTRL_HEIGHT LLCHECKBOXCTRL_HEIGHT + +const BOOL RADIO_STYLE = TRUE; +const BOOL CHECK_STYLE = FALSE; + +// +// Classes +// +class LLFontGL; +class LLTextBox; +class LLViewBorder; + +class LLCheckBoxCtrl +: public LLUICtrl +{ +public: + LLCheckBoxCtrl(const LLString& name, const LLRect& rect, const LLString& label, + const LLFontGL* font = NULL, + void (*commit_callback)(LLUICtrl*, void*) = NULL, + void* callback_userdata = NULL, + BOOL initial_value = FALSE, + BOOL use_radio_style = FALSE, // if true, draw radio button style icons + const LLString& control_which = LLString::null); + virtual ~LLCheckBoxCtrl(); + + // LLView interface + virtual EWidgetType getWidgetType() const { return WIDGET_TYPE_CHECKBOX; } + virtual LLString getWidgetTag() const { return LL_CHECK_BOX_CTRL_TAG; } + virtual LLXMLNodePtr getXML(bool save_children = true) const; + static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); + + virtual void setEnabled( BOOL b ); + + virtual void draw(); + virtual void reshape(S32 width, S32 height, BOOL called_from_parent); + + // LLUICtrl interface + virtual void setValue(const LLSD& value ); + virtual LLSD getValue() const; + BOOL get() { return (BOOL)getValue().asBoolean(); } + void set(BOOL value) { setValue(value); } + + virtual void setTentative(BOOL b) { mButton->setTentative(b); } + virtual BOOL getTentative() const { return mButton->getTentative(); } + + virtual BOOL setLabelArg( const LLString& key, const LLString& text ); + + virtual void clear(); + virtual void onCommit(); + + // LLCheckBoxCtrl interface + virtual BOOL toggle() { return mButton->toggleState(); } // returns new state + + void setEnabledColor( const LLColor4 &color ) { mTextEnabledColor = color; } + void setDisabledColor( const LLColor4 &color ) { mTextDisabledColor = color; } + + void setLabel( const LLString& label ); + LLString getLabel() const; + + virtual void setControlName(const LLString& control_name, LLView* context); + virtual LLString getControlName() const; + + static void onButtonPress(void *userdata); + +protected: + // note: value is stored in toggle state of button + LLButton* mButton; + LLTextBox* mLabel; + const LLFontGL* mFont; + LLColor4 mTextEnabledColor; + LLColor4 mTextDisabledColor; + BOOL mRadioStyle; + BOOL mInitialValue; + BOOL mKeyboardFocusOnClick; + LLViewBorder* mBorder; +}; + + +// HACK: fix old capitalization problem +//typedef LLCheckBoxCtrl LLCheckboxCtrl; +#define LLCheckboxCtrl LLCheckBoxCtrl + + +#endif // LL_LLCHECKBOXCTRL_H |