summaryrefslogtreecommitdiff
path: root/indra/llui/llcheckboxctrl.h
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
committerJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
commit420b91db29485df39fd6e724e782c449158811cb (patch)
treeb471a94563af914d3ed3edd3e856d21cb1b69945 /indra/llui/llcheckboxctrl.h
Print done when done.
Diffstat (limited to 'indra/llui/llcheckboxctrl.h')
-rw-r--r--indra/llui/llcheckboxctrl.h112
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