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.abstractspinbox;
13 extern(C++):
14 
15 import qt.config;
16 import qt.core.coreevent;
17 import qt.core.flags;
18 import qt.core.namespace;
19 import qt.core.size;
20 import qt.core.string;
21 import qt.core.variant;
22 import qt.gui.event;
23 import qt.helpers;
24 import qt.widgets.lineedit;
25 import qt.widgets.styleoption;
26 import qt.widgets.widget;
27 version(QT_NO_VALIDATOR){}else
28     import qt.gui.validator;
29 
30 /+ QT_REQUIRE_CONFIG(spinbox); +/
31 
32 
33 
34 extern(C++, class) struct QAbstractSpinBoxPrivate;
35 
36 /// Binding for C++ class [QAbstractSpinBox](https://doc.qt.io/qt-6/qabstractspinbox.html).
37 class /+ Q_WIDGETS_EXPORT +/ QAbstractSpinBox : QWidget
38 {
39     mixin(Q_OBJECT);
40 
41     /+ Q_PROPERTY(bool wrapping READ wrapping WRITE setWrapping)
42     Q_PROPERTY(bool frame READ hasFrame WRITE setFrame)
43     Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment)
44     Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly)
45     Q_PROPERTY(ButtonSymbols buttonSymbols READ buttonSymbols WRITE setButtonSymbols)
46     Q_PROPERTY(QString specialValueText READ specialValueText WRITE setSpecialValueText)
47     Q_PROPERTY(QString text READ text)
48     Q_PROPERTY(bool accelerated READ isAccelerated WRITE setAccelerated)
49     Q_PROPERTY(CorrectionMode correctionMode READ correctionMode WRITE setCorrectionMode)
50     Q_PROPERTY(bool acceptableInput READ hasAcceptableInput)
51     Q_PROPERTY(bool keyboardTracking READ keyboardTracking WRITE setKeyboardTracking)
52     Q_PROPERTY(bool showGroupSeparator READ isGroupSeparatorShown WRITE setGroupSeparatorShown) +/
53 public:
54     /+ explicit +/this(QWidget parent = null);
55     ~this();
56 
57     enum StepEnabledFlag { StepNone = 0x00, StepUpEnabled = 0x01,
58                            StepDownEnabled = 0x02 }
59     /+ Q_DECLARE_FLAGS(StepEnabled, StepEnabledFlag) +/
60 alias StepEnabled = QFlags!(StepEnabledFlag);
61     enum ButtonSymbols { UpDownArrows, PlusMinus, NoButtons }
62     /+ Q_ENUM(ButtonSymbols) +/
63 
64     final ButtonSymbols buttonSymbols() const;
65     final void setButtonSymbols(ButtonSymbols bs);
66 
67     enum CorrectionMode  { CorrectToPreviousValue, CorrectToNearestValue }
68     /+ Q_ENUM(CorrectionMode) +/
69 
70     final void setCorrectionMode(CorrectionMode cm);
71     final CorrectionMode correctionMode() const;
72 
73     final bool hasAcceptableInput() const;
74     final QString text() const;
75 
76     final QString specialValueText() const;
77     final void setSpecialValueText(ref const(QString) txt);
78 
79     final bool wrapping() const;
80     final void setWrapping(bool w);
81 
82     final void setReadOnly(bool r);
83     final bool isReadOnly() const;
84 
85     final void setKeyboardTracking(bool kt);
86     final bool keyboardTracking() const;
87 
88     final void setAlignment(/+ Qt:: +/qt.core.namespace.Alignment flag);
89     final /+ Qt:: +/qt.core.namespace.Alignment alignment() const;
90 
91     final void setFrame(bool);
92     final bool hasFrame() const;
93 
94     final void setAccelerated(bool on);
95     final bool isAccelerated() const;
96 
97     final void setGroupSeparatorShown(bool shown);
98     final bool isGroupSeparatorShown() const;
99 
100     override QSize sizeHint() const;
101     override QSize minimumSizeHint() const;
102     final void interpretText();
103     override bool event(QEvent event);
104 
105     override QVariant inputMethodQuery(/+ Qt:: +/qt.core.namespace.InputMethodQuery) const;
106 
107     /+ virtual +/ QValidator.State validate(ref QString input, ref int pos) const;
108     /+ virtual +/ void fixup(ref QString input) const;
109 
110     /+ virtual +/ void stepBy(int steps);
111 
112     enum StepType {
113         DefaultStepType,
114         AdaptiveDecimalStepType
115     }
116     /+ Q_ENUM(StepType) +/
117 
118 public /+ Q_SLOTS +/:
119     @QSlot final void stepUp();
120     @QSlot final void stepDown();
121     @QSlot final void selectAll();
122     /+ virtual +/ @QSlot void clear();
123 protected:
124     override void resizeEvent(QResizeEvent event);
125     override void keyPressEvent(QKeyEvent event);
126     override void keyReleaseEvent(QKeyEvent event);
127 /+ #if QT_CONFIG(wheelevent) +/
128     override void wheelEvent(QWheelEvent event);
129 /+ #endif +/
130     override void focusInEvent(QFocusEvent event);
131     override void focusOutEvent(QFocusEvent event);
132 /+ #if QT_CONFIG(contextmenu) +/
133     override void contextMenuEvent(QContextMenuEvent event);
134 /+ #endif +/
135     override void changeEvent(QEvent event);
136     override void closeEvent(QCloseEvent event);
137     override void hideEvent(QHideEvent event);
138     override void mousePressEvent(QMouseEvent event);
139     override void mouseReleaseEvent(QMouseEvent event);
140     override void mouseMoveEvent(QMouseEvent event);
141     override void timerEvent(QTimerEvent event);
142     override void paintEvent(QPaintEvent event);
143     override void showEvent(QShowEvent event);
144     /+ virtual +/ void initStyleOption(QStyleOptionSpinBox* option) const;
145 
146     final QLineEdit lineEdit() const;
147     final void setLineEdit(QLineEdit edit);
148 
149     /+ virtual +/ StepEnabled stepEnabled() const;
150 /+ Q_SIGNALS +/public:
151     @QSignal final void editingFinished();
152 protected:
153     this(ref QAbstractSpinBoxPrivate dd, QWidget parent = null);
154 
155 private:
156     /+ Q_PRIVATE_SLOT(d_func(), void _q_editorTextChanged(const QString &))
157     Q_PRIVATE_SLOT(d_func(), void _q_editorCursorPositionChanged(int, int))
158 
159     Q_DECLARE_PRIVATE(QAbstractSpinBox) +/
160     /+ Q_DISABLE_COPY(QAbstractSpinBox) +/
161     /+ friend class QAccessibleAbstractSpinBox; +/
162     mixin(CREATE_CONVENIENCE_WRAPPERS);
163 }
164 /+pragma(inline, true) QFlags!(QAbstractSpinBox.StepEnabled.enum_type) operator |(QAbstractSpinBox.StepEnabled.enum_type f1, QAbstractSpinBox.StepEnabled.enum_type f2)/+noexcept+/{return QFlags!(QAbstractSpinBox.StepEnabled.enum_type)(f1)|f2;}+/
165 /+pragma(inline, true) QFlags!(QAbstractSpinBox.StepEnabled.enum_type) operator |(QAbstractSpinBox.StepEnabled.enum_type f1, QFlags!(QAbstractSpinBox.StepEnabled.enum_type) f2)/+noexcept+/{return f2|f1;}+/
166 /+pragma(inline, true) QFlags!(QAbstractSpinBox.StepEnabled.enum_type) operator &(QAbstractSpinBox.StepEnabled.enum_type f1, QAbstractSpinBox.StepEnabled.enum_type f2)/+noexcept+/{return QFlags!(QAbstractSpinBox.StepEnabled.enum_type)(f1)&f2;}+/
167 /+pragma(inline, true) QFlags!(QAbstractSpinBox.StepEnabled.enum_type) operator &(QAbstractSpinBox.StepEnabled.enum_type f1, QFlags!(QAbstractSpinBox.StepEnabled.enum_type) f2)/+noexcept+/{return f2&f1;}+/
168 /+pragma(inline, true) void operator +(QAbstractSpinBox.StepEnabled.enum_type f1, QAbstractSpinBox.StepEnabled.enum_type f2)/+noexcept+/;+/
169 /+pragma(inline, true) void operator +(QAbstractSpinBox.StepEnabled.enum_type f1, QFlags!(QAbstractSpinBox.StepEnabled.enum_type) f2)/+noexcept+/;+/
170 /+pragma(inline, true) void operator +(int f1, QFlags!(QAbstractSpinBox.StepEnabled.enum_type) f2)/+noexcept+/;+/
171 /+pragma(inline, true) void operator -(QAbstractSpinBox.StepEnabled.enum_type f1, QAbstractSpinBox.StepEnabled.enum_type f2)/+noexcept+/;+/
172 /+pragma(inline, true) void operator -(QAbstractSpinBox.StepEnabled.enum_type f1, QFlags!(QAbstractSpinBox.StepEnabled.enum_type) f2)/+noexcept+/;+/
173 /+pragma(inline, true) void operator -(int f1, QFlags!(QAbstractSpinBox.StepEnabled.enum_type) f2)/+noexcept+/;+/
174 /+pragma(inline, true) QIncompatibleFlag operator |(QAbstractSpinBox.StepEnabled.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
175 /+pragma(inline, true) void operator +(int f1, QAbstractSpinBox.StepEnabled.enum_type f2)/+noexcept+/;+/
176 /+pragma(inline, true) void operator +(QAbstractSpinBox.StepEnabled.enum_type f1, int f2)/+noexcept+/;+/
177 /+pragma(inline, true) void operator -(int f1, QAbstractSpinBox.StepEnabled.enum_type f2)/+noexcept+/;+/
178 /+pragma(inline, true) void operator -(QAbstractSpinBox.StepEnabled.enum_type f1, int f2)/+noexcept+/;+/
179 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QAbstractSpinBox::StepEnabled) +/