#ifndef OPENMW_NUMERIC_EDIT_BOX_H #define OPENMW_NUMERIC_EDIT_BOX_H #include #include "fontwrapper.hpp" namespace Gui { /** * @brief A variant of the EditBox that only allows integer inputs */ class NumericEditBox final : public FontWrapper { MYGUI_RTTI_DERIVED(NumericEditBox) public: NumericEditBox() : mValue(0) , mMinValue(std::numeric_limits::min()) , mMaxValue(std::numeric_limits::max()) { } void initialiseOverride() override; void shutdownOverride() override; typedef MyGUI::delegates::MultiDelegate EventHandle_ValueChanged; EventHandle_ValueChanged eventValueChanged; /// @note Does not trigger eventValueChanged void setValue(int value); int getValue(); void setMinValue(int minValue); void setMaxValue(int maxValue); private: void onEditTextChange(MyGUI::EditBox* sender); void onKeyLostFocus(MyGUI::Widget* _new) override; void onKeyButtonPressed(MyGUI::KeyCode key, MyGUI::Char character) override; int mValue; int mMinValue; int mMaxValue; }; } #endif