From 7028cbe09c688437910a25623098762bf0fa592d Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 28 Mar 2016 22:28:34 +1000 Subject: Move Irrlicht to src/others. --- .../tools/GUIEditor/CGUIBoolAttribute.h | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/others/irrlicht-1.8.1/tools/GUIEditor/CGUIBoolAttribute.h (limited to 'src/others/irrlicht-1.8.1/tools/GUIEditor/CGUIBoolAttribute.h') diff --git a/src/others/irrlicht-1.8.1/tools/GUIEditor/CGUIBoolAttribute.h b/src/others/irrlicht-1.8.1/tools/GUIEditor/CGUIBoolAttribute.h new file mode 100644 index 0000000..b0521db --- /dev/null +++ b/src/others/irrlicht-1.8.1/tools/GUIEditor/CGUIBoolAttribute.h @@ -0,0 +1,68 @@ +#ifndef __C_GUI_BOOL_ATTRIBUTE_H_INCLUDED__ +#define __C_GUI_BOOL_ATTRIBUTE_H_INCLUDED__ + +#include "CGUIAttribute.h" +#include "IGUICheckBox.h" +#include "EGUIEditTypes.h" + +namespace irr +{ +namespace gui +{ + + class CGUIBoolAttribute : public CGUIAttribute + { + public: + // + CGUIBoolAttribute(IGUIEnvironment* environment, IGUIElement *parent, s32 myParentID) : + CGUIAttribute(environment, parent, myParentID), AttribCheckBox(0) + { + + core::rect r = getAbsolutePosition(); + core::rect r2(0, Environment->getSkin()->getFont()->getDimension(L"A").Height + 10, + r.getWidth() - 5, + Environment->getSkin()->getFont()->getDimension(L"A").Height*2 + 15 ); + + AttribCheckBox = environment->addCheckBox(false, r2, this); + AttribCheckBox->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT); + AttribCheckBox->setSubElement(true); + AttribCheckBox->grab(); + } + + virtual ~CGUIBoolAttribute() + { + if (AttribCheckBox) + AttribCheckBox->drop(); + } + + virtual void setAttrib(io::IAttributes *attribs, u32 attribIndex) + { + AttribCheckBox->setChecked(attribs->getAttributeAsBool(attribIndex)); + CGUIAttribute::setAttrib(attribs, attribIndex); + } + + // save the attribute and possibly post the event to its parent + virtual bool updateAttrib(bool sendEvent=true) + { + if (!Attribs) + return true; + + Attribs->setAttribute(Index, AttribCheckBox->isChecked()); + + return CGUIAttribute::updateAttrib(sendEvent); + } + + //! Returns the type name of the gui element. + virtual const c8* getTypeName() const + { + return GUIEditElementTypeNames[EGUIEDIT_BOOLATTRIBUTE]; + } + + private: + IGUICheckBox* AttribCheckBox; + }; + +} // namespace gui +} // namespace irr + +#endif -- cgit v1.1