1 /*
2  * DQt - D bindings for the Qt Toolkit
3  *
4  * GNU Lesser General Public License Usage
5  * This file may be used under the terms of the GNU Lesser
6  * General Public License version 3 as published by the Free Software
7  * Foundation and appearing in the file LICENSE.LGPL3 included in the
8  * packaging of this file. Please review the following information to
9  * ensure the GNU Lesser General Public License version 3 requirements
10  * will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
11  */
12 module qt.widgets.spinbox;
13 extern(C++):
14 
15 import qt.config;
16 import qt.core.coreevent;
17 import qt.core.string;
18 import qt.gui.validator;
19 import qt.helpers;
20 import qt.widgets.abstractspinbox;
21 import qt.widgets.widget;
22 
23 /+ QT_REQUIRE_CONFIG(spinbox); +/
24 
25 
26 extern(C++, class) struct QSpinBoxPrivate;
27 /// Binding for C++ class [QSpinBox](https://doc.qt.io/qt-6/qspinbox.html).
28 class /+ Q_WIDGETS_EXPORT +/ QSpinBox : QAbstractSpinBox
29 {
30     mixin(Q_OBJECT);
31 
32     /+ Q_PROPERTY(QString suffix READ suffix WRITE setSuffix)
33     Q_PROPERTY(QString prefix READ prefix WRITE setPrefix)
34     Q_PROPERTY(QString cleanText READ cleanText)
35     Q_PROPERTY(int minimum READ minimum WRITE setMinimum)
36     Q_PROPERTY(int maximum READ maximum WRITE setMaximum)
37     Q_PROPERTY(int singleStep READ singleStep WRITE setSingleStep)
38     Q_PROPERTY(StepType stepType READ stepType WRITE setStepType)
39     Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged USER true)
40     Q_PROPERTY(int displayIntegerBase READ displayIntegerBase WRITE setDisplayIntegerBase) +/
41 
42 public:
43     /+ explicit +/this(QWidget parent = null);
44     ~this();
45 
46     final int value() const;
47 
48     final QString prefix() const;
49     final void setPrefix(ref const(QString) prefix);
50 
51     final QString suffix() const;
52     final void setSuffix(ref const(QString) suffix);
53 
54     final QString cleanText() const;
55 
56     final int singleStep() const;
57     final void setSingleStep(int val);
58 
59     final int minimum() const;
60     final void setMinimum(int min);
61 
62     final int maximum() const;
63     final void setMaximum(int max);
64 
65     final void setRange(int min, int max);
66 
67     final StepType stepType() const;
68     final void setStepType(StepType stepType);
69 
70     final int displayIntegerBase() const;
71     final void setDisplayIntegerBase(int base);
72 
73 protected:
74     override bool event(QEvent event);
75     override QValidator.State validate(ref QString input, ref int pos) const;
76     /+ virtual +/ int valueFromText(ref const(QString) text) const;
77     /+ virtual +/ QString textFromValue(int val) const;
78     override void fixup(ref QString str) const;
79 
80 
81 public /+ Q_SLOTS +/:
82     @QSlot final void setValue(int val);
83 
84 /+ Q_SIGNALS +/public:
85     @QSignal final void valueChanged(int);
86     @QSignal final void textChanged(ref const(QString) );
87 
88 private:
89     /+ Q_DISABLE_COPY(QSpinBox) +/
90     /+ Q_DECLARE_PRIVATE(QSpinBox) +/
91     mixin(CREATE_CONVENIENCE_WRAPPERS);
92 }
93 
94 extern(C++, class) struct QDoubleSpinBoxPrivate;
95 /// Binding for C++ class [QDoubleSpinBox](https://doc.qt.io/qt-6/qdoublespinbox.html).
96 class /+ Q_WIDGETS_EXPORT +/ QDoubleSpinBox : QAbstractSpinBox
97 {
98     mixin(Q_OBJECT);
99 
100     /+ Q_PROPERTY(QString prefix READ prefix WRITE setPrefix)
101     Q_PROPERTY(QString suffix READ suffix WRITE setSuffix)
102     Q_PROPERTY(QString cleanText READ cleanText)
103     Q_PROPERTY(int decimals READ decimals WRITE setDecimals)
104     Q_PROPERTY(double minimum READ minimum WRITE setMinimum)
105     Q_PROPERTY(double maximum READ maximum WRITE setMaximum)
106     Q_PROPERTY(double singleStep READ singleStep WRITE setSingleStep)
107     Q_PROPERTY(StepType stepType READ stepType WRITE setStepType)
108     Q_PROPERTY(double value READ value WRITE setValue NOTIFY valueChanged USER true) +/
109 public:
110     /+ explicit +/this(QWidget parent = null);
111     ~this();
112 
113     final double value() const;
114 
115     final QString prefix() const;
116     final void setPrefix(ref const(QString) prefix);
117 
118     final QString suffix() const;
119     final void setSuffix(ref const(QString) suffix);
120 
121     final QString cleanText() const;
122 
123     final double singleStep() const;
124     final void setSingleStep(double val);
125 
126     final double minimum() const;
127     final void setMinimum(double min);
128 
129     final double maximum() const;
130     final void setMaximum(double max);
131 
132     final void setRange(double min, double max);
133 
134     final StepType stepType() const;
135     final void setStepType(StepType stepType);
136 
137     final int decimals() const;
138     final void setDecimals(int prec);
139 
140     override QValidator.State validate(ref QString input, ref int pos) const;
141     /+ virtual +/ double valueFromText(ref const(QString) text) const;
142     /+ virtual +/ QString textFromValue(double val) const;
143     override void fixup(ref QString str) const;
144 
145 public /+ Q_SLOTS +/:
146     @QSlot final void setValue(double val);
147 
148 /+ Q_SIGNALS +/public:
149     @QSignal final void valueChanged(double);
150     @QSignal final void textChanged(ref const(QString) );
151 
152 private:
153     /+ Q_DISABLE_COPY(QDoubleSpinBox) +/
154     /+ Q_DECLARE_PRIVATE(QDoubleSpinBox) +/
155     mixin(CREATE_CONVENIENCE_WRAPPERS);
156 }
157