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