You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/tdeui/knumvalidator.h

213 lines
6.3 KiB

/**********************************************************************
**
** $Id$
**
** Copyright (C) 1999 Glen Parker <glenebob@nwlink.com>
** Copyright (C) 2002 Marc Mutz <mutz@kde.org>
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Library General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
**
** This library is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** Library General Public License for more details.
**
** You should have received a copy of the GNU Library General Public
** License along with this library; if not, write to the Free
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
**
*****************************************************************************/
#ifndef __KNUMVALIDATOR_H
#define __KNUMVALIDATOR_H
#include <tqvalidator.h>
#include <tdelibs_export.h>
class TQWidget;
class TQString;
/**
* TQValidator for integers.
This can be used by TQLineEdit or subclass to provide validated
text entry. Can be provided with a base value (default is 10), to allow
the proper entry of hexadecimal, octal, or any other base numeric data.
@author Glen Parker <glenebob@nwlink.com>
@version 0.0.1
*/
class TDEUI_EXPORT KIntValidator : public TQValidator {
public:
/**
Constuctor. Also sets the base value.
*/
KIntValidator ( TQWidget * parent, int base = 10, const char * name = 0 );
/**
* Constructor. Also sets the minimum, maximum, and numeric base values.
*/
KIntValidator ( int bottom, int top, TQWidget * parent, int base = 10, const char * name = 0 );
/**
* Destructs the validator.
*/
virtual ~KIntValidator ();
/**
* Validates the text, and return the result. Does not modify the parameters.
*/
virtual State validate ( TQString &, int & ) const;
/**
* Fixes the text if possible, providing a valid string. The parameter may be modified.
*/
virtual void fixup ( TQString & ) const;
/**
* Sets the minimum and maximum values allowed.
*/
virtual void setRange ( int bottom, int top );
/**
* Sets the numeric base value.
*/
virtual void setBase ( int base );
/**
* Returns the current minimum value allowed.
*/
virtual int bottom () const;
/**
* Returns the current maximum value allowed.
*/
virtual int top () const;
/**
* Returns the current numeric base.
*/
virtual int base () const;
private:
int _base;
int _min;
int _max;
};
class KFloatValidatorPrivate;
/**
\brief TQValidator for floating point entry (Obsolete)
@obsolete Use KDoubleValidator
Extends the TQValidator class to properly validate double numeric data.
This can be used by TQLineEdit or subclass to provide validated
text entry.
@author Glen Parker <glenebob@nwlink.com>
@version 0.0.1
*/
class TDEUI_EXPORT KFloatValidator : public TQValidator {
public:
/**
* Constructor.
*/
KFloatValidator ( TQWidget * parent, const char * name = 0 );
/**
* Constructor. Also sets the minimum and maximum values.
*/
KFloatValidator ( double bottom, double top, TQWidget * parent, const char * name = 0 );
/**
* Constructor. Sets the validator to be locale aware if @p localeAware is true.
*/
KFloatValidator ( double bottom, double top, bool localeAware, TQWidget * parent, const char * name = 0 );
/**
* Destructs the validator.
*/
virtual ~KFloatValidator ();
/**
* Validates the text, and return the result. Does not modify the parameters.
*/
virtual State validate ( TQString &, int & ) const;
/**
* Fixes the text if possible, providing a valid string. The parameter may be modified.
*/
virtual void fixup ( TQString & ) const;
/**
* Sets the minimum and maximum value allowed.
*/
virtual void setRange ( double bottom, double top );
/**
* Returns the current minimum value allowed.
*/
virtual double bottom () const;
/**
* Returns the current maximum value allowed.
*/
virtual double top () const;
/**
* Sets the validator to be locale aware if @p is true. In this case, the
* character KLocale::decimalSymbol() from the global locale is recognized
* as decimal separator.
*/
void setAcceptLocalizedNumbers(bool b);
/**
* Returns true if the validator is locale aware.
* @see setAcceptLocalizedNumbers().
*/
bool acceptLocalizedNumbers() const;
private:
double _min;
double _max;
KFloatValidatorPrivate *d;
};
/**
@short A locale-aware QDoubleValidator
KDoubleValidator extends TQDoubleValidator to be
locale-aware. That means that - subject to not being disabled -
KLocale::decimalSymbol(), KLocale::thousandsSeparator()
and KLocale::positiveSign() and KLocale::negativeSign()
are respected.
@author Marc Mutz <mutz@kde.org>
@see KIntValidator
@since 3.1
**/
class TDEUI_EXPORT KDoubleValidator : public TQDoubleValidator {
Q_OBJECT
TQ_PROPERTY( bool acceptLocalizedNumbers READ acceptLocalizedNumbers WRITE setAcceptLocalizedNumbers )
public:
/** Constuct a locale-aware KDoubleValidator with default range
(whatever TQDoubleValidator uses for that) and parent @p
parent */
KDoubleValidator( TQObject * parent, const char * name=0 );
/** Constuct a locale-aware KDoubleValidator for range [@p bottom,@p
top] and a precision of @p decimals decimals after the decimal
point. */
KDoubleValidator( double bottom, double top, int decimals,
TQObject * parent, const char * name=0 );
/** Destructs the validator.
*/
virtual ~KDoubleValidator();
/** Overloaded for internal reasons. The API is not affected. */
virtual TQValidator::State validate( TQString & input, int & pos ) const;
/** @return whether localized numbers are accepted (default: true) */
bool acceptLocalizedNumbers() const;
/** Sets whether to accept localized numbers (default: true) */
void setAcceptLocalizedNumbers( bool accept );
private:
typedef TQDoubleValidator base;
class Private;
Private * d;
};
#endif