home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / qt3_emx.zip / include / qspinbox.h < prev    next >
C/C++ Source or Header  |  2001-10-11  |  5KB  |  168 lines

  1. /****************************************************************************
  2. ** $Id:  qt/qspinbox.h   3.0.0   edited Sep 21 17:17 $
  3. **
  4. ** Definition of QSpinBox widget class
  5. **
  6. ** Created : 1997
  7. **
  8. ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
  9. **
  10. ** This file is part of the widgets module of the Qt GUI Toolkit.
  11. **
  12. ** This file may be distributed under the terms of the Q Public License
  13. ** as defined by Trolltech AS of Norway and appearing in the file
  14. ** LICENSE.QPL included in the packaging of this file.
  15. **
  16. ** This file may be distributed and/or modified under the terms of the
  17. ** GNU General Public License version 2 as published by the Free Software
  18. ** Foundation and appearing in the file LICENSE.GPL included in the
  19. ** packaging of this file.
  20. **
  21. ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
  22. ** licenses may use this file in accordance with the Qt Commercial License
  23. ** Agreement provided with the Software.
  24. **
  25. ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  26. ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  27. **
  28. ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
  29. **   information about Qt Commercial License Agreements.
  30. ** See http://www.trolltech.com/qpl/ for QPL licensing information.
  31. ** See http://www.trolltech.com/gpl/ for GPL licensing information.
  32. **
  33. ** Contact info@trolltech.com if any conditions of this licensing are
  34. ** not clear to you.
  35. **
  36. **********************************************************************/
  37.  
  38. #ifndef QSPINBOX_H
  39. #define QSPINBOX_H
  40.  
  41. #ifndef QT_H
  42. #include "qwidget.h"
  43. #include "qrangecontrol.h"
  44. #endif // QT_H
  45.  
  46. #ifndef QT_NO_SPINBOX
  47.  
  48. class QLineEdit;
  49. class QValidator;
  50. class QSpinBoxPrivate;
  51.  
  52. class Q_EXPORT QSpinBox: public QWidget, public QRangeControl
  53. {
  54.     Q_OBJECT
  55.     Q_ENUMS( ButtonSymbols )
  56.     Q_PROPERTY( QString text READ text )
  57.     Q_PROPERTY( QString prefix READ prefix WRITE setPrefix )
  58.     Q_PROPERTY( QString suffix READ suffix WRITE setSuffix )
  59.     Q_PROPERTY( QString cleanText READ cleanText )
  60.     Q_PROPERTY( QString specialValueText READ specialValueText WRITE setSpecialValueText )
  61.     Q_PROPERTY( bool wrapping READ wrapping WRITE setWrapping )
  62.     Q_PROPERTY( ButtonSymbols buttonSymbols READ buttonSymbols WRITE setButtonSymbols )
  63.     Q_PROPERTY( int maxValue READ maxValue WRITE setMaxValue )
  64.     Q_PROPERTY( int minValue READ minValue WRITE setMinValue )
  65.     Q_PROPERTY( int lineStep READ lineStep WRITE setLineStep )
  66.     Q_PROPERTY( int value READ value WRITE setValue )
  67.  
  68. public:
  69.     QSpinBox( QWidget* parent=0, const char* name=0 );
  70.     QSpinBox( int minValue, int maxValue, int step = 1,
  71.           QWidget* parent=0, const char* name=0 );
  72.     ~QSpinBox();
  73.  
  74.     QString        text() const;
  75.  
  76.     virtual QString    prefix() const;
  77.     virtual QString    suffix() const;
  78.     virtual QString    cleanText() const;
  79.  
  80.     virtual void    setSpecialValueText( const QString &text );
  81.     QString        specialValueText() const;
  82.  
  83.     virtual void    setWrapping( bool on );
  84.     bool        wrapping() const;
  85.  
  86.     enum ButtonSymbols { UpDownArrows, PlusMinus };
  87.     virtual void    setButtonSymbols( ButtonSymbols );
  88.     ButtonSymbols    buttonSymbols() const;
  89.  
  90.     virtual void    setValidator( const QValidator* v );
  91.     const QValidator * validator() const;
  92.  
  93.     QSize        sizeHint() const;
  94.     QSize        minimumSizeHint() const;
  95.  
  96.     int     minValue() const;
  97.     int     maxValue() const;
  98.     void setMinValue( int );
  99.     void setMaxValue( int );
  100.     int     lineStep() const;
  101.     void setLineStep( int );
  102.     int  value() const;
  103.  
  104.     QRect        upRect() const;
  105.     QRect        downRect() const;
  106.  
  107. public slots:
  108.     virtual void    setValue( int value );
  109.     virtual void    setPrefix( const QString &text );
  110.     virtual void    setSuffix( const QString &text );
  111.     virtual void    stepUp();
  112.     virtual void    stepDown();
  113.     virtual void     setEnabled( bool enabled );
  114.     virtual void     selectAll();
  115.  
  116. signals:
  117.     void        valueChanged( int value );
  118.     void        valueChanged( const QString &valueText );
  119.  
  120. protected:
  121.     virtual QString    mapValueToText( int value );
  122.     virtual int        mapTextToValue( bool* ok );
  123.     QString        currentValueText();
  124.  
  125.     virtual void    updateDisplay();
  126.     virtual void    interpretText();
  127.  
  128.     QLineEdit*        editor() const;
  129.  
  130.     virtual void    valueChange();
  131.     virtual void    rangeChange();
  132.  
  133.     bool        eventFilter( QObject* obj, QEvent* ev );
  134.     void        resizeEvent( QResizeEvent* ev );
  135.     void        wheelEvent( QWheelEvent * );
  136.     void        leaveEvent( QEvent* );
  137.  
  138.     void        styleChange( QStyle& );
  139.  
  140. protected slots:
  141.     void        textChanged();
  142.  
  143. private:
  144.     void initSpinBox();
  145.     QSpinBoxPrivate* d;
  146.     QLineEdit* vi;
  147.     QValidator* validate;
  148.     QString pfix;
  149.     QString sfix;
  150.     QString specText;
  151.  
  152.     uint wrap        : 1;
  153.     uint edited        : 1;
  154.  
  155.     void arrangeWidgets();
  156.  
  157. private:    // Disabled copy constructor and operator=
  158. #if defined(Q_DISABLE_COPY)
  159.     QSpinBox( const QSpinBox& );
  160.     QSpinBox& operator=( const QSpinBox& );
  161. #endif
  162.  
  163. };
  164.  
  165. #endif // QT_NO_SPINBOX
  166.  
  167. #endif // QSPINBOX_H
  168.