From 959831f4ef5a3e797f576c3de08cd65032c997ad Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Sun, 13 Jan 2013 18:54:10 +1000 Subject: Remove damned ancient DOS line endings from Irrlicht. Hopefully I did not go overboard. --- .../irrlicht-1.8/source/Irrlicht/CGUISpinBox.cpp | 654 ++++++++++----------- 1 file changed, 327 insertions(+), 327 deletions(-) (limited to 'libraries/irrlicht-1.8/source/Irrlicht/CGUISpinBox.cpp') diff --git a/libraries/irrlicht-1.8/source/Irrlicht/CGUISpinBox.cpp b/libraries/irrlicht-1.8/source/Irrlicht/CGUISpinBox.cpp index b440699..24d1aee 100644 --- a/libraries/irrlicht-1.8/source/Irrlicht/CGUISpinBox.cpp +++ b/libraries/irrlicht-1.8/source/Irrlicht/CGUISpinBox.cpp @@ -1,327 +1,327 @@ -// Copyright (C) 2006-2012 Michael Zeilfelder -// This file uses the licence of the Irrlicht Engine. - -#include "CGUISpinBox.h" -#ifdef _IRR_COMPILE_WITH_GUI_ - -#include "CGUIEditBox.h" -#include "CGUIButton.h" -#include "IGUIEnvironment.h" -#include "IEventReceiver.h" -#include "fast_atof.h" -#include - - -namespace irr -{ -namespace gui -{ - -//! constructor -CGUISpinBox::CGUISpinBox(const wchar_t* text, bool border,IGUIEnvironment* environment, - IGUIElement* parent, s32 id, const core::rect& rectangle) -: IGUISpinBox(environment, parent, id, rectangle), - EditBox(0), ButtonSpinUp(0), ButtonSpinDown(0), StepSize(1.f), - RangeMin(-FLT_MAX), RangeMax(FLT_MAX), FormatString(L"%f"), - DecimalPlaces(-1) -{ - #ifdef _DEBUG - setDebugName("CGUISpinBox"); - #endif - - CurrentIconColor = video::SColor(255,255,255,255); - s32 ButtonWidth = 16; - - ButtonSpinDown = Environment->addButton( - core::rect(rectangle.getWidth() - ButtonWidth, rectangle.getHeight()/2 +1, - rectangle.getWidth(), rectangle.getHeight()), this); - ButtonSpinDown->grab(); - ButtonSpinDown->setSubElement(true); - ButtonSpinDown->setTabStop(false); - ButtonSpinDown->setAlignment(EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT, EGUIA_CENTER, EGUIA_LOWERRIGHT); - - ButtonSpinUp = Environment->addButton( - core::rect(rectangle.getWidth() - ButtonWidth, 0, - rectangle.getWidth(), rectangle.getHeight()/2), this); - ButtonSpinUp->grab(); - ButtonSpinUp->setSubElement(true); - ButtonSpinUp->setTabStop(false); - ButtonSpinUp->setAlignment(EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_CENTER); - - const core::rect rectEdit(0, 0, rectangle.getWidth() - ButtonWidth - 1, rectangle.getHeight()); - EditBox = Environment->addEditBox(text, rectEdit, border, this, -1); - EditBox->grab(); - EditBox->setSubElement(true); - EditBox->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT); - - refreshSprites(); -} - - -//! destructor -CGUISpinBox::~CGUISpinBox() -{ - if (ButtonSpinUp) - ButtonSpinUp->drop(); - if (ButtonSpinDown) - ButtonSpinDown->drop(); - if (EditBox) - EditBox->drop(); -} - -void CGUISpinBox::refreshSprites() -{ - IGUISpriteBank *sb = 0; - if (Environment && Environment->getSkin()) - { - sb = Environment->getSkin()->getSpriteBank(); - } - - if (sb) - { - IGUISkin * skin = Environment->getSkin(); - CurrentIconColor = skin->getColor(isEnabled() ? EGDC_WINDOW_SYMBOL : EGDC_GRAY_WINDOW_SYMBOL); - ButtonSpinDown->setSpriteBank(sb); - ButtonSpinDown->setSprite(EGBS_BUTTON_UP, skin->getIcon(EGDI_SMALL_CURSOR_DOWN), CurrentIconColor); - ButtonSpinDown->setSprite(EGBS_BUTTON_DOWN, skin->getIcon(EGDI_SMALL_CURSOR_DOWN), CurrentIconColor); - ButtonSpinUp->setSpriteBank(sb); - ButtonSpinUp->setSprite(EGBS_BUTTON_UP, skin->getIcon(EGDI_SMALL_CURSOR_UP), CurrentIconColor); - ButtonSpinUp->setSprite(EGBS_BUTTON_DOWN, skin->getIcon(EGDI_SMALL_CURSOR_UP), CurrentIconColor); - } - else - { - ButtonSpinDown->setText(L"-"); - ButtonSpinUp->setText(L"+"); - } -} - -IGUIEditBox* CGUISpinBox::getEditBox() const -{ - return EditBox; -} - - -void CGUISpinBox::setValue(f32 val) -{ - wchar_t str[100]; - - swprintf(str, 99, FormatString.c_str(), val); - EditBox->setText(str); - verifyValueRange(); -} - - -f32 CGUISpinBox::getValue() const -{ - const wchar_t* val = EditBox->getText(); - if ( !val ) - return 0.f; - core::stringc tmp(val); - return core::fast_atof(tmp.c_str()); -} - - -void CGUISpinBox::setRange(f32 min, f32 max) -{ - if (maxOnEvent(e); - return true; - } - } - - return IGUIElement::OnEvent(event); -} - - -void CGUISpinBox::draw() -{ - if ( !isVisible() ) - return; - - IGUISkin* skin = Environment->getSkin(); - if (!skin) - return; - - video::SColor iconColor = skin->getColor(isEnabled() ? EGDC_WINDOW_SYMBOL : EGDC_GRAY_WINDOW_SYMBOL); - if ( iconColor != CurrentIconColor ) - { - refreshSprites(); - } - - IGUISpinBox::draw(); -} - -void CGUISpinBox::verifyValueRange() -{ - f32 val = getValue(); - if ( val+core::ROUNDING_ERROR_f32 < RangeMin ) - val = RangeMin; - else if ( val-core::ROUNDING_ERROR_f32 > RangeMax ) - val = RangeMax; - else - return; - - setValue(val); -} - - -//! Sets the new caption of the element -void CGUISpinBox::setText(const wchar_t* text) -{ - EditBox->setText(text); - setValue(getValue()); - verifyValueRange(); -} - - -//! Returns caption of this element. -const wchar_t* CGUISpinBox::getText() const -{ - return EditBox->getText(); -} - - -//! Writes attributes of the element. -void CGUISpinBox::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const -{ - IGUIElement::serializeAttributes(out, options); - out->addFloat("Min", getMin()); - out->addFloat("Max", getMax()); - out->addFloat("Step", getStepSize()); - out->addInt("DecimalPlaces", DecimalPlaces); -} - - -//! Reads attributes of the element -void CGUISpinBox::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options) -{ - IGUIElement::deserializeAttributes(in, options); - setRange(in->getAttributeAsFloat("Min"), in->getAttributeAsFloat("Max")); - setStepSize(in->getAttributeAsFloat("Step")); - setDecimalPlaces(in->getAttributeAsInt("DecimalPlaces")); -} - - -} // end namespace gui -} // end namespace irr - -#endif // _IRR_COMPILE_WITH_GUI_ - +// Copyright (C) 2006-2012 Michael Zeilfelder +// This file uses the licence of the Irrlicht Engine. + +#include "CGUISpinBox.h" +#ifdef _IRR_COMPILE_WITH_GUI_ + +#include "CGUIEditBox.h" +#include "CGUIButton.h" +#include "IGUIEnvironment.h" +#include "IEventReceiver.h" +#include "fast_atof.h" +#include + + +namespace irr +{ +namespace gui +{ + +//! constructor +CGUISpinBox::CGUISpinBox(const wchar_t* text, bool border,IGUIEnvironment* environment, + IGUIElement* parent, s32 id, const core::rect& rectangle) +: IGUISpinBox(environment, parent, id, rectangle), + EditBox(0), ButtonSpinUp(0), ButtonSpinDown(0), StepSize(1.f), + RangeMin(-FLT_MAX), RangeMax(FLT_MAX), FormatString(L"%f"), + DecimalPlaces(-1) +{ + #ifdef _DEBUG + setDebugName("CGUISpinBox"); + #endif + + CurrentIconColor = video::SColor(255,255,255,255); + s32 ButtonWidth = 16; + + ButtonSpinDown = Environment->addButton( + core::rect(rectangle.getWidth() - ButtonWidth, rectangle.getHeight()/2 +1, + rectangle.getWidth(), rectangle.getHeight()), this); + ButtonSpinDown->grab(); + ButtonSpinDown->setSubElement(true); + ButtonSpinDown->setTabStop(false); + ButtonSpinDown->setAlignment(EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT, EGUIA_CENTER, EGUIA_LOWERRIGHT); + + ButtonSpinUp = Environment->addButton( + core::rect(rectangle.getWidth() - ButtonWidth, 0, + rectangle.getWidth(), rectangle.getHeight()/2), this); + ButtonSpinUp->grab(); + ButtonSpinUp->setSubElement(true); + ButtonSpinUp->setTabStop(false); + ButtonSpinUp->setAlignment(EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_CENTER); + + const core::rect rectEdit(0, 0, rectangle.getWidth() - ButtonWidth - 1, rectangle.getHeight()); + EditBox = Environment->addEditBox(text, rectEdit, border, this, -1); + EditBox->grab(); + EditBox->setSubElement(true); + EditBox->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT); + + refreshSprites(); +} + + +//! destructor +CGUISpinBox::~CGUISpinBox() +{ + if (ButtonSpinUp) + ButtonSpinUp->drop(); + if (ButtonSpinDown) + ButtonSpinDown->drop(); + if (EditBox) + EditBox->drop(); +} + +void CGUISpinBox::refreshSprites() +{ + IGUISpriteBank *sb = 0; + if (Environment && Environment->getSkin()) + { + sb = Environment->getSkin()->getSpriteBank(); + } + + if (sb) + { + IGUISkin * skin = Environment->getSkin(); + CurrentIconColor = skin->getColor(isEnabled() ? EGDC_WINDOW_SYMBOL : EGDC_GRAY_WINDOW_SYMBOL); + ButtonSpinDown->setSpriteBank(sb); + ButtonSpinDown->setSprite(EGBS_BUTTON_UP, skin->getIcon(EGDI_SMALL_CURSOR_DOWN), CurrentIconColor); + ButtonSpinDown->setSprite(EGBS_BUTTON_DOWN, skin->getIcon(EGDI_SMALL_CURSOR_DOWN), CurrentIconColor); + ButtonSpinUp->setSpriteBank(sb); + ButtonSpinUp->setSprite(EGBS_BUTTON_UP, skin->getIcon(EGDI_SMALL_CURSOR_UP), CurrentIconColor); + ButtonSpinUp->setSprite(EGBS_BUTTON_DOWN, skin->getIcon(EGDI_SMALL_CURSOR_UP), CurrentIconColor); + } + else + { + ButtonSpinDown->setText(L"-"); + ButtonSpinUp->setText(L"+"); + } +} + +IGUIEditBox* CGUISpinBox::getEditBox() const +{ + return EditBox; +} + + +void CGUISpinBox::setValue(f32 val) +{ + wchar_t str[100]; + + swprintf(str, 99, FormatString.c_str(), val); + EditBox->setText(str); + verifyValueRange(); +} + + +f32 CGUISpinBox::getValue() const +{ + const wchar_t* val = EditBox->getText(); + if ( !val ) + return 0.f; + core::stringc tmp(val); + return core::fast_atof(tmp.c_str()); +} + + +void CGUISpinBox::setRange(f32 min, f32 max) +{ + if (maxOnEvent(e); + return true; + } + } + + return IGUIElement::OnEvent(event); +} + + +void CGUISpinBox::draw() +{ + if ( !isVisible() ) + return; + + IGUISkin* skin = Environment->getSkin(); + if (!skin) + return; + + video::SColor iconColor = skin->getColor(isEnabled() ? EGDC_WINDOW_SYMBOL : EGDC_GRAY_WINDOW_SYMBOL); + if ( iconColor != CurrentIconColor ) + { + refreshSprites(); + } + + IGUISpinBox::draw(); +} + +void CGUISpinBox::verifyValueRange() +{ + f32 val = getValue(); + if ( val+core::ROUNDING_ERROR_f32 < RangeMin ) + val = RangeMin; + else if ( val-core::ROUNDING_ERROR_f32 > RangeMax ) + val = RangeMax; + else + return; + + setValue(val); +} + + +//! Sets the new caption of the element +void CGUISpinBox::setText(const wchar_t* text) +{ + EditBox->setText(text); + setValue(getValue()); + verifyValueRange(); +} + + +//! Returns caption of this element. +const wchar_t* CGUISpinBox::getText() const +{ + return EditBox->getText(); +} + + +//! Writes attributes of the element. +void CGUISpinBox::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const +{ + IGUIElement::serializeAttributes(out, options); + out->addFloat("Min", getMin()); + out->addFloat("Max", getMax()); + out->addFloat("Step", getStepSize()); + out->addInt("DecimalPlaces", DecimalPlaces); +} + + +//! Reads attributes of the element +void CGUISpinBox::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options) +{ + IGUIElement::deserializeAttributes(in, options); + setRange(in->getAttributeAsFloat("Min"), in->getAttributeAsFloat("Max")); + setStepSize(in->getAttributeAsFloat("Step")); + setDecimalPlaces(in->getAttributeAsInt("DecimalPlaces")); +} + + +} // end namespace gui +} // end namespace irr + +#endif // _IRR_COMPILE_WITH_GUI_ + -- cgit v1.1