00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
#ifndef K_NUMINPUT_H
00028
#define K_NUMINPUT_H
00029
00030
#include <qwidget.h>
00031
#include <qspinbox.h>
00032
#include <kdemacros.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 KNumInput :
public QWidget
00050 {
00051 Q_OBJECT
00052 Q_PROPERTY(
QString label READ label WRITE
setLabel )
00053
public:
00058
KNumInput(
QWidget* parent=0,
const char* name=0);
00059
00064
KNumInput(
KNumInput* below,
QWidget* parent=0,
const char* name=0);
00065 ~
KNumInput();
00066
00085
virtual void setLabel(
const QString & label,
int a = AlignLeft | AlignTop);
00086
00090
QString label()
const;
00091
00096 bool showSlider()
const {
return m_slider; }
00097
00104
void setSteps(
int minor,
int major);
00105
00110
QSizePolicy sizePolicy() const;
00111
00117 virtual
QSize sizeHint() const;
00118
00119 protected:
00125
void layout(
bool deep);
00126
00135 virtual
void doLayout() = 0;
00136
00137
KNumInput* m_prev, *m_next;
00138
int m_colw1, m_colw2;
00139
00140
QLabel* m_label;
00141
QSlider* m_slider;
00142
QSize m_sizeSlider, m_sizeLabel;
00143
00144
int m_alignment;
00145
00146 private:
00147
void init();
00148
00149 protected:
00150 virtual
void virtual_hook(
int id,
void* data );
00151 private:
00152 class KNumInputPrivate;
00153 KNumInputPrivate *d;
00154 };
00155
00156
00157
00184 class
KIntNumInput : public
KNumInput
00185 {
00186 Q_OBJECT
00187 Q_PROPERTY(
int value READ value WRITE setValue )
00188 Q_PROPERTY(
int minValue READ minValue WRITE setMinValue )
00189 Q_PROPERTY(
int maxValue READ maxValue WRITE setMaxValue )
00190 Q_PROPERTY(
int referencePoint READ referencePoint WRITE setReferencePoint )
00191 Q_PROPERTY(
QString suffix READ suffix WRITE setSuffix )
00192 Q_PROPERTY(
QString prefix READ prefix WRITE setPrefix )
00193 Q_PROPERTY(
QString specialValueText READ specialValueText WRITE setSpecialValueText )
00194
00195
public:
00200
KIntNumInput(
QWidget *parent=0,
const char *name=0);
00213
KIntNumInput(
int value,
QWidget* parent=0,
int base = 10,
const char *name=0);
00214
00232
KIntNumInput(KNumInput* below,
int value,
QWidget* parent=0,
int base = 10,
const char *name=0);
00233
00239
virtual ~
KIntNumInput();
00240
00244
int value()
const;
00245
00250
double relativeValue()
const;
00251
00256
int referencePoint()
const;
00257
00262
QString suffix()
const;
00267
QString prefix()
const;
00272
QString specialValueText()
const;
00273
00280
void setRange(
int min,
int max,
int step=1,
bool slider=
true);
00284
void setMinValue(
int min);
00288
int minValue()
const;
00292
void setMaxValue(
int max);
00296
int maxValue()
const;
00297
00304
void setSpecialValueText(
const QString& text);
00305
00306
virtual void setLabel(
const QString & label,
int a = AlignLeft | AlignTop);
00307
00315
virtual QSize minimumSizeHint()
const;
00316
00317
public slots:
00321
void setValue(
int);
00322
00327
void setRelativeValue(
double);
00328
00333
void setReferencePoint(
int);
00334
00344
void setSuffix(
const QString &suffix);
00345
00353
void setPrefix(
const QString &prefix);
00354
00359
void setEditFocus(
bool mark =
true );
00360
00361 signals:
00366
void valueChanged(
int);
00367
00373
void relativeValueChanged(
double);
00374
00375
private slots:
00376
void spinValueChanged(
int);
00377
void slotEmitRelativeValueChanged(
int);
00378
00379
protected:
00380
virtual void doLayout();
00381
void resizeEvent (
QResizeEvent * );
00382
00383
KIntSpinBox* m_spin;
00384
QSize m_sizeSpin;
00385
00386
private:
00387
void init(
int value,
int _base);
00388
00389
protected:
00390
virtual void virtual_hook(
int id,
void* data );
00391
private:
00392
class KIntNumInputPrivate;
00393 KIntNumInputPrivate *d;
00394 };
00395
00396
00397
00398
00399
class KDoubleLine;
00400
00427 class KDoubleNumInput :
public KNumInput
00428 {
00429 Q_OBJECT
00430 Q_PROPERTY(
double value READ value WRITE setValue )
00431 Q_PROPERTY(
double minValue READ minValue WRITE setMinValue )
00432 Q_PROPERTY(
double maxValue READ maxValue WRITE setMaxValue )
00433 Q_PROPERTY(
QString suffix READ suffix WRITE setSuffix )
00434 Q_PROPERTY(
QString prefix READ prefix WRITE setPrefix )
00435 Q_PROPERTY(
QString specialValueText READ specialValueText WRITE setSpecialValueText )
00436 Q_PROPERTY(
int precision READ precision WRITE setPrecision )
00437
00438
public:
00443
KDoubleNumInput(
QWidget *parent=0,
const char *name=0);
00444
00453
KDoubleNumInput(
double value,
QWidget *parent=0,
const char *name=0) KDE_DEPRECATED;
00454
00467
KDoubleNumInput(
double lower,
double upper,
double value,
double step=0.01,
00468
int precision=2,
QWidget *parent=0,
const char *name=0);
00469
00473
virtual ~
KDoubleNumInput();
00474
00486
KDoubleNumInput(
KNumInput* below,
double value,
QWidget* parent=0,
const char* name=0) KDE_DEPRECATED;
00487
00509
KDoubleNumInput(
KNumInput* below,
00510
double lower,
double upper,
double value,
double step=0.02,
00511
int precision=2,
QWidget *parent=0,
const char *name=0);
00512
00516
double value()
const;
00517
00522
QString suffix()
const;
00523
00528
QString prefix()
const;
00529
00534
int precision()
const;
00535
00540 QString specialValueText()
const {
return m_specialvalue; }
00541
00548
void setRange(
double min,
double max,
double step=1,
bool slider=
true);
00552
void setMinValue(
double min);
00556
double minValue() const;
00560
void setMaxValue(
double max);
00564
double maxValue() const;
00565
00569
void setPrecision(
int precision);
00570
00575
double referencePoint() const;
00576
00581
double relativeValue() const;
00582
00589
void setSpecialValueText(const
QString& text);
00590
00591 virtual
void setLabel(const
QString & label,
int a = AlignLeft | AlignTop);
00592 virtual
QSize minimumSizeHint() const;
00593 virtual
bool eventFilter(
QObject*,
QEvent*);
00594
00595 public slots:
00599
void setValue(
double);
00600
00605
void setRelativeValue(
double);
00606
00613
void setReferencePoint(
double ref);
00614
00622
void setSuffix(const
QString &suffix);
00623
00630
void setPrefix(const
QString &prefix);
00631
00632 signals:
00637
void valueChanged(
double);
00645
void relativeValueChanged(
double);
00646
00647 private slots:
00648
void sliderMoved(
int);
00649
void slotEmitRelativeValueChanged(
double);
00650
00651 protected:
00652 virtual
void doLayout();
00653
void resizeEvent (
QResizeEvent * );
00654
00655 virtual
void resetEditBox();
00656
00657
00658 KDoubleLine* edit;
00659
00660
bool m_range;
00661
double m_lower, m_upper, m_step;
00662
00663
00664
QSize m_sizeEdit;
00665
00666 friend class KDoubleLine;
00667 private:
00668
void init(
double value,
double lower,
double upper,
00669
double step,
int precision);
00670
double mapSliderToSpin(
int) const;
00671
void updateLegacyMembers();
00672
00673
QString m_specialvalue, m_prefix, m_suffix;
00674
double m_value;
00675
short m_precision;
00676
00677
00678 protected:
00679 virtual
void virtual_hook(
int id,
void* data );
00680 private:
00681 class KDoubleNumInputPrivate;
00682 KDoubleNumInputPrivate *d;
00683 };
00684
00685
00686
00687
00697 class
KIntSpinBox : public
QSpinBox
00698 {
00699 Q_OBJECT
00700 Q_PROPERTY(
int base READ base WRITE setBase )
00701
00702
public:
00703
00711
KIntSpinBox(
QWidget *parent=0,
const char *name=0);
00712
00727
KIntSpinBox(
int lower,
int upper,
int step,
int value,
int base = 10,
00728
QWidget* parent = 0,
const char* name = 0);
00729
00733
virtual ~
KIntSpinBox();
00734
00738
void setBase(
int base);
00742
int base()
const;
00747
void setEditFocus(
bool mark);
00748
00749
protected:
00750
00755
virtual QString mapValueToText(
int);
00756
00761
virtual int mapTextToValue(
bool*);
00762
00763
private:
00764
int val_base;
00765
protected:
00766
virtual void virtual_hook(
int id,
void* data );
00767
private:
00768
class KIntSpinBoxPrivate;
00769 KIntSpinBoxPrivate *d;
00770 };
00771
00772
00773
00774
00823 class KDoubleSpinBox :
public QSpinBox {
00824 Q_OBJECT
00825 Q_PROPERTY(
bool acceptLocalizedNumbers READ acceptLocalizedNumbers WRITE setAcceptLocalizedNumbers )
00826 Q_OVERRIDE(
double maxValue READ maxValue WRITE setMaxValue )
00827 Q_OVERRIDE(
double minValue READ minValue WRITE setMinValue )
00828 Q_OVERRIDE(
double lineStep READ lineStep WRITE setLineStep )
00829 Q_OVERRIDE(
double value READ value WRITE setValue )
00830 Q_PROPERTY(
int precision READ precision WRITE setPrecision )
00831
00832
public:
00836
KDoubleSpinBox(
QWidget * parent=0,
const char * name=0 );
00840
KDoubleSpinBox(
double lower,
double upper,
double step,
double value,
00841
int precision=2,
QWidget * parent=0,
const char * name=0 );
00842
00843
virtual ~
KDoubleSpinBox();
00844
00846
bool acceptLocalizedNumbers()
const;
00849
virtual void setAcceptLocalizedNumbers(
bool accept );
00850
00854
void setRange(
double lower,
double upper,
double step=0.01,
int precision=2 );
00855
00857
int precision()
const;
00861
void setPrecision(
int precision );
00874
virtual void setPrecision(
int precision,
bool force );
00875
00877
double value()
const;
00879
double minValue()
const;
00886
void setMinValue(
double value );
00888
double maxValue()
const;
00895
void setMaxValue(
double value );
00896
00898
double lineStep()
const;
00903
void setLineStep(
double step );
00904
00906
void setValidator(
const QValidator * );
00907
00908 signals:
00910
void valueChanged(
double value );
00911
00912
public slots:
00916
virtual void setValue(
double value );
00917
00918
protected:
00919
virtual QString mapValueToText(
int);
00920
virtual int mapTextToValue(
bool*);
00921
00922
protected slots:
00923
void slotValueChanged(
int value );
00924
00925
protected:
00926
virtual void virtual_hook(
int id,
void* data );
00927
private:
00928
typedef QSpinBox base;
00929
void updateValidator();
00930
int maxPrecision()
const;
00931
00932
class Private;
00933 Private * d;
00934 };
00935
00936
#endif // K_NUMINPUT_H