kdeui Library API Documentation

knuminput.h

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., 59 Temple Place - Suite 330, 00024 * Boston, MA 02111-1307, 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
KDE Logo
This file is part of the documentation for kdeui Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Apr 12 22:56:29 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003