/* GWEN Copyright (c) 2010 Facepunch Studios See license in Gwen.h */ #pragma once #ifndef GWEN_CONTROLS_NUMERICUPDOWN_H #define GWEN_CONTROLS_NUMERICUPDOWN_H #include "gwen_base.h" #include "gwen_button.h" #include "gwen_textbox.h" namespace Gwen { namespace Controls { class GWEN_EXPORT NumericUpDownButton_Up : public Button { GWEN_CONTROL_INLINE( NumericUpDownButton_Up, Button ) { SetSize( 7, 7 ); } virtual void Render( Skin::Base* skin ) { skin->DrawNumericUpDownButton( this, IsDepressed(), true ); } }; class GWEN_EXPORT NumericUpDownButton_Down : public Button { GWEN_CONTROL_INLINE( NumericUpDownButton_Down, Button ) { SetSize( 7, 7 ); } virtual void Render( Skin::Base* skin ) { skin->DrawNumericUpDownButton( this, IsDepressed(), false ); } }; class GWEN_EXPORT NumericUpDown : public TextBoxNumeric { public: GWEN_CONTROL( NumericUpDown, TextBoxNumeric ); virtual void SetMin( int i ); virtual void SetMax( int i ); virtual void SetValue( int i ); Event::Caller onChanged; private: virtual void OnEnter(); virtual void OnChange(); virtual void OnTextChanged(); virtual void OnButtonUp( Base* control ); virtual void OnButtonDown( Base* control ); virtual bool OnKeyUp( bool bDown ) { if ( bDown ) OnButtonUp( NULL ); return true; } virtual bool OnKeyDown( bool bDown ){ if ( bDown ) OnButtonDown( NULL ); return true; } virtual void SyncTextFromNumber(); virtual void SyncNumberFromText(); int m_iNumber; int m_iMax; int m_iMin; }; } } #endif