diff options
Diffstat (limited to 'konquest/int_validator.cpp')
-rw-r--r-- | konquest/int_validator.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/konquest/int_validator.cpp b/konquest/int_validator.cpp new file mode 100644 index 00000000..dd96ca82 --- /dev/null +++ b/konquest/int_validator.cpp @@ -0,0 +1,53 @@ +#include <limits.h> + +#include "int_validator.h" +#include "int_validator.moc" + +IntValidator::IntValidator( TQWidget *parent, const char *name ) : + TQValidator( TQT_TQOBJECT(parent), name ) +{ +#ifdef INT_MIN + v_bottom = INT_MIN; +#else + v_bottom = ~INT_MAX; +#endif + v_top = INT_MIN; +} + +IntValidator::IntValidator( int bottom, int top, TQWidget *parent, const char *name ) : +TQValidator( TQT_TQOBJECT(parent), name ) +{ + v_bottom = bottom; + v_top = top; +} + +IntValidator::~IntValidator() {} + +TQValidator::State +IntValidator::validate( TQString &input, int & ) const +{ + if( input.isEmpty() ) { + return TQValidator::Valid; + } else { + bool ok; + + int value = input.toInt( &ok ); + + if( !ok ) + return TQValidator::Invalid; + + if( value < v_bottom || value > v_top ) + return TQValidator::Valid; + + return TQValidator::Acceptable; + } +} + +void +IntValidator::setRange( int b, int t ) +{ + v_bottom = b; + v_top = t; +} + + |