• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

kdeui

knuminput.h

Go to the documentation of this file.
00001 /*
00002  * knuminput.h
00003  *
00004  *  Copyright (c) 1997 Patrick Dowler <dowler@morgul.fsh.uvic.ca>
00005  *  Copyright (c) 2000 Dirk A. Mueller <mueller@kde.org>
00006  *  Copyright (c) 2002 Marc Mutz <mutz@kde.org>
00007  *
00008  *  Requires the Qt widget libraries, available at no cost at
00009  *  http://www.troll.no/
00010  *
00011  *  This library is free software; you can redistribute it and/or
00012  *  modify it under the terms of the GNU Library General Public
00013  *  License as published by the Free Software Foundation; either
00014  *  version 2 of the License, or (at your option) any later version.
00015  *
00016  *  This library is distributed in the hope that it will be useful,
00017  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00019  *  Library General Public License for more details.
00020  *
00021  *  You should have received a copy of the GNU Library General Public License
00022  *  along with this library; see the file COPYING.LIB.  If not, write to
00023  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00024  *  Boston, MA 02110-1301, USA.
00025  */
00026 
00027 #ifndef K_NUMINPUT_H
00028 #define K_NUMINPUT_H
00029 
00030 #include <qwidget.h>
00031 #include <qspinbox.h>
00032 #include <kdelibs_export.h>
00033 
00034 class QLabel;
00035 class QSlider;
00036 class QLineEdit;
00037 class QLayout;
00038 class QValidator;
00039 
00040 class KIntSpinBox;
00041 
00042 /* ------------------------------------------------------------------------ */
00043 
00049 class KDEUI_EXPORT KNumInput : public QWidget
00050 {
00051     Q_OBJECT
00052     Q_PROPERTY( QString label READ label WRITE setLabel )
00053 public:
00059     KNumInput(QWidget* parent=0, const char* name=0);
00060 
00066     KNumInput(KNumInput* below, QWidget* parent=0, const char* name=0);
00067     ~KNumInput();
00068 
00087     virtual void setLabel(const QString & label, int a = AlignLeft | AlignTop);
00088 
00092     QString label() const;
00093 
00098     bool showSlider() const { return m_slider; }
00099 
00106     void setSteps(int minor, int major);
00107 
00112     QSizePolicy sizePolicy() const;
00113 
00119     virtual QSize sizeHint() const;
00120 
00121 protected:
00127     void layout(bool deep);
00128 
00137     virtual void doLayout() = 0;
00138 
00139     KNumInput* m_prev, *m_next;
00140     int m_colw1, m_colw2;
00141 
00142     QLabel*  m_label;
00143     QSlider* m_slider;
00144     QSize    m_sizeSlider, m_sizeLabel;
00145 
00146     int      m_alignment;
00147 
00148 private:
00149     void init();
00150 
00151 protected:
00152     virtual void virtual_hook( int id, void* data );
00153 private:
00154     class KNumInputPrivate;
00155     KNumInputPrivate *d;
00156 };
00157 
00158 /* ------------------------------------------------------------------------ */
00159 
00187 class KDEUI_EXPORT KIntNumInput : public KNumInput
00188 {
00189     Q_OBJECT
00190     Q_PROPERTY( int value READ value WRITE setValue )
00191     Q_PROPERTY( int minValue READ minValue WRITE setMinValue )
00192     Q_PROPERTY( int maxValue READ maxValue WRITE setMaxValue )
00193     Q_PROPERTY( int referencePoint READ referencePoint WRITE setReferencePoint )
00194     Q_PROPERTY( double relativeValue READ relativeValue WRITE setRelativeValue )
00195     Q_PROPERTY( QString suffix READ suffix WRITE setSuffix )
00196     Q_PROPERTY( QString prefix READ prefix WRITE setPrefix )
00197     Q_PROPERTY( QString specialValueText READ specialValueText WRITE setSpecialValueText )
00198 
00199 public:
00204     KIntNumInput(QWidget *parent=0, const char *name=0);
00217     KIntNumInput(int value, QWidget* parent=0, int base = 10, const char *name=0);
00218 
00236     KIntNumInput(KNumInput* below, int value, QWidget* parent=0, int base = 10, const char *name=0);
00237 
00243     virtual ~KIntNumInput();
00244 
00248     int value() const;
00249 
00254     double relativeValue() const;
00255 
00260     int referencePoint() const;
00261 
00266     QString suffix() const;
00271     QString prefix() const;
00276     QString specialValueText() const;
00277 
00284     void setRange(int min, int max, int step=1, bool slider=true);
00288     void setMinValue(int min);
00292     int minValue() const;
00296     void setMaxValue(int max);
00300     int maxValue() const;
00301 
00308     void setSpecialValueText(const QString& text);
00309 
00310     virtual void setLabel(const QString & label, int a = AlignLeft | AlignTop);
00311 
00319     virtual QSize minimumSizeHint() const;
00320 
00321 public slots:
00325     void setValue(int);
00326 
00331     void setRelativeValue(double);
00332 
00337     void setReferencePoint(int);
00338 
00348     void setSuffix(const QString &suffix);
00349 
00357     void setPrefix(const QString &prefix);
00358 
00363     void setEditFocus( bool mark = true );
00364 
00365 signals:
00370     void valueChanged(int);
00371 
00377     void relativeValueChanged(double);
00378 
00379 private slots:
00380     void spinValueChanged(int);
00381     void slotEmitRelativeValueChanged(int);
00382 
00383 protected:
00384     virtual void doLayout();
00385     void resizeEvent ( QResizeEvent * );
00386 
00387     KIntSpinBox* m_spin;
00388     QSize        m_sizeSpin;
00389 
00390 private:
00391     void init(int value, int _base);
00392 
00393 protected:
00394     virtual void virtual_hook( int id, void* data );
00395 private:
00396     class KIntNumInputPrivate;
00397     KIntNumInputPrivate *d;
00398 };
00399 
00400 
00401 /* ------------------------------------------------------------------------ */
00402 
00403 class KDoubleLine;
00404 
00432 class KDEUI_EXPORT KDoubleNumInput : public KNumInput
00433 {
00434     Q_OBJECT
00435     Q_PROPERTY( double value READ value WRITE setValue )
00436     Q_PROPERTY( double minValue READ minValue WRITE setMinValue )
00437     Q_PROPERTY( double maxValue READ maxValue WRITE setMaxValue )
00438     Q_PROPERTY( QString suffix READ suffix WRITE setSuffix )
00439     Q_PROPERTY( QString prefix READ prefix WRITE setPrefix )
00440     Q_PROPERTY( QString specialValueText READ specialValueText WRITE setSpecialValueText )
00441     Q_PROPERTY( int precision READ precision WRITE setPrecision )
00442     Q_PROPERTY( double referencePoint READ referencePoint WRITE setReferencePoint )
00443     Q_PROPERTY( double relativeValue READ relativeValue  WRITE setRelativeValue )
00444 
00445 public:
00450     KDoubleNumInput(QWidget *parent=0, const char *name=0);
00451 
00460     KDoubleNumInput(double value, QWidget *parent=0, const char *name=0) KDE_DEPRECATED;
00461 
00474     KDoubleNumInput(double lower, double upper, double value, double step=0.01,
00475             int precision=2, QWidget *parent=0, const char *name=0);
00476 
00480     virtual ~KDoubleNumInput();
00481 
00493     KDoubleNumInput(KNumInput* below, double value, QWidget* parent=0, const char* name=0) KDE_DEPRECATED;
00494 
00516     KDoubleNumInput(KNumInput* below,
00517             double lower, double upper, double value, double step=0.02,
00518             int precision=2, QWidget *parent=0, const char *name=0);
00519 
00523     double value() const;
00524 
00529     QString suffix() const;
00530 
00535     QString prefix() const;
00536 
00541     int precision() const;
00542 
00547     QString specialValueText() const { return m_specialvalue; }
00548 
00555     void setRange(double min, double max, double step=1, bool slider=true);
00559     void setMinValue(double min);
00563     double minValue() const;
00567     void setMaxValue(double max);
00571     double maxValue() const;
00572 
00576     void setPrecision(int precision);
00577 
00582     double referencePoint() const;
00583 
00588     double relativeValue() const;
00589 
00596     void setSpecialValueText(const QString& text);
00597 
00598     virtual void setLabel(const QString & label, int a = AlignLeft | AlignTop);
00599     virtual QSize minimumSizeHint() const;
00600     virtual bool eventFilter(QObject*, QEvent*);
00601 
00602 public slots:
00606     void setValue(double);
00607 
00612     void setRelativeValue(double);
00613 
00620     void setReferencePoint(double ref);
00621 
00629     void setSuffix(const QString &suffix);
00630 
00637     void setPrefix(const QString &prefix);
00638 
00639 signals:
00644     void valueChanged(double);
00652     void relativeValueChanged(double);
00653 
00654 private slots:
00655     void sliderMoved(int);
00656     void slotEmitRelativeValueChanged(double);
00657 
00658 protected:
00659     virtual void doLayout();
00660     void resizeEvent ( QResizeEvent * );
00661 
00662     virtual void resetEditBox();
00663 
00664     // ### no longer used, remove when BIC allowed
00665     KDoubleLine*   edit;
00666 
00667     bool     m_range;
00668     double   m_lower, m_upper, m_step;
00669     // ### end no longer used
00670 
00671     QSize    m_sizeEdit;
00672 
00673     friend class KDoubleLine;
00674 private:
00675     void init(double value, double lower, double upper,
00676           double step, int precision);
00677     double mapSliderToSpin(int) const;
00678     void updateLegacyMembers();
00679     // ### no longer used, remove when BIC allowed:
00680     QString  m_specialvalue, m_prefix, m_suffix;
00681     double   m_value;
00682     short    m_precision;
00683     // ### end remove when BIC allowed
00684 
00685 protected:
00686     virtual void virtual_hook( int id, void* data );
00687 private:
00688     class KDoubleNumInputPrivate;
00689     KDoubleNumInputPrivate *d;
00690 };
00691 
00692 
00693 /* ------------------------------------------------------------------------ */
00694 
00704 class KDEUI_EXPORT KIntSpinBox : public QSpinBox
00705 {
00706     Q_OBJECT
00707     Q_PROPERTY( int base READ base WRITE setBase )
00708 
00709 public:
00710 
00718     KIntSpinBox( QWidget *parent=0, const char *name=0);
00719 
00734     KIntSpinBox(int lower, int upper, int step, int value, int base = 10,
00735                 QWidget* parent = 0, const char* name = 0);
00736 
00740     virtual ~KIntSpinBox();
00741 
00745     void setBase(int base);
00749     int base() const;
00754     void setEditFocus(bool mark);
00755 
00756 protected:
00757 
00762     virtual QString mapValueToText(int);
00763 
00768     virtual int mapTextToValue(bool*);
00769 
00770 private:
00771     int val_base;
00772 protected:
00773     virtual void virtual_hook( int id, void* data );
00774 private:
00775     class KIntSpinBoxPrivate;
00776     KIntSpinBoxPrivate *d;
00777 };
00778 
00779 
00780 /* --------------------------------------------------------------------------- */
00781 
00834 class KDEUI_EXPORT KDoubleSpinBox : public QSpinBox {
00835   Q_OBJECT
00836   Q_PROPERTY( bool acceptLocalizedNumbers READ acceptLocalizedNumbers WRITE setAcceptLocalizedNumbers )
00837   Q_OVERRIDE( double maxValue READ maxValue WRITE setMaxValue )
00838   Q_OVERRIDE( double minValue READ minValue WRITE setMinValue )
00839   Q_OVERRIDE( double lineStep READ lineStep WRITE setLineStep )
00840   Q_OVERRIDE( double value READ value WRITE setValue )
00841   Q_PROPERTY( int precision READ precision WRITE setPrecision )
00842 
00843 public:
00847   KDoubleSpinBox( QWidget * parent=0, const char * name=0 );
00848 
00852   KDoubleSpinBox( double lower, double upper, double step, double value,
00853           int precision=2, QWidget * parent=0, const char * name=0 );
00854 
00855   virtual ~KDoubleSpinBox();
00856 
00858   bool acceptLocalizedNumbers() const;
00859 
00862   virtual void setAcceptLocalizedNumbers( bool accept );
00863 
00867   void setRange( double lower, double upper, double step=0.01, int precision=2 );
00868 
00871   int precision() const;
00872 
00876   void setPrecision( int precision );
00877 
00890   virtual void setPrecision( int precision, bool force );
00891 
00893   double value() const;
00894 
00896   double minValue() const;
00897 
00904   void setMinValue( double value );
00905 
00907   double maxValue() const;
00908 
00915   void setMaxValue( double value );
00916 
00918   double lineStep() const;
00919 
00924   void setLineStep( double step );
00925 
00927   void setValidator( const QValidator * );
00928 
00929 signals:
00931   void valueChanged( double value );
00932 
00933 public slots:
00937   virtual void setValue( double value );
00938 
00939 protected:
00940   virtual QString mapValueToText(int);
00941   virtual int mapTextToValue(bool*);
00942 
00943 protected slots:
00944   void slotValueChanged( int value );
00945 
00946 protected:
00947  virtual void virtual_hook( int id, void* data );
00948 private:
00949   typedef QSpinBox base;
00950   void updateValidator();
00951   int maxPrecision() const;
00952 
00953   class Private;
00954   Private * d;
00955 };
00956 
00957 #endif // K_NUMINPUT_H

kdeui

Skip menu "kdeui"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal