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.abstractslider;
13 extern(C++):
14 
15 import qt.config;
16 import qt.core.coreevent;
17 import qt.core.namespace;
18 import qt.gui.event;
19 import qt.helpers;
20 import qt.widgets.widget;
21 
22 /+ QT_REQUIRE_CONFIG(abstractslider); +/
23 
24 
25 
26 extern(C++, class) struct QAbstractSliderPrivate;
27 
28 /// Binding for C++ class [QAbstractSlider](https://doc.qt.io/qt-6/qabstractslider.html).
29 class /+ Q_WIDGETS_EXPORT +/ QAbstractSlider : QWidget
30 {
31     mixin(Q_OBJECT);
32 
33     /+ Q_PROPERTY(int minimum READ minimum WRITE setMinimum)
34     Q_PROPERTY(int maximum READ maximum WRITE setMaximum)
35     Q_PROPERTY(int singleStep READ singleStep WRITE setSingleStep)
36     Q_PROPERTY(int pageStep READ pageStep WRITE setPageStep)
37     Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged USER true)
38     Q_PROPERTY(int sliderPosition READ sliderPosition WRITE setSliderPosition NOTIFY sliderMoved)
39     Q_PROPERTY(bool tracking READ hasTracking WRITE setTracking)
40     Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
41     Q_PROPERTY(bool invertedAppearance READ invertedAppearance WRITE setInvertedAppearance)
42     Q_PROPERTY(bool invertedControls READ invertedControls WRITE setInvertedControls)
43     Q_PROPERTY(bool sliderDown READ isSliderDown WRITE setSliderDown DESIGNABLE false) +/
44 
45 public:
46     /+ explicit +/this(QWidget parent = null);
47     ~this();
48 
49     final /+ Qt:: +/qt.core.namespace.Orientation orientation() const;
50 
51     final void setMinimum(int);
52     final int minimum() const;
53 
54     final void setMaximum(int);
55     final int maximum() const;
56 
57     final void setSingleStep(int);
58     final int singleStep() const;
59 
60     final void setPageStep(int);
61     final int pageStep() const;
62 
63     final void setTracking(bool enable);
64     final bool hasTracking() const;
65 
66     final void setSliderDown(bool);
67     final bool isSliderDown() const;
68 
69     final void setSliderPosition(int);
70     final int sliderPosition() const;
71 
72     final void setInvertedAppearance(bool);
73     final bool invertedAppearance() const;
74 
75     final void setInvertedControls(bool);
76     final bool invertedControls() const;
77 
78     enum SliderAction {
79         SliderNoAction,
80         SliderSingleStepAdd,
81         SliderSingleStepSub,
82         SliderPageStepAdd,
83         SliderPageStepSub,
84         SliderToMinimum,
85         SliderToMaximum,
86         SliderMove
87     }
88 
89     final int value() const;
90 
91     final void triggerAction(SliderAction action);
92 
93 public /+ Q_SLOTS +/:
94     @QSlot final void setValue(int);
95     @QSlot final void setOrientation(/+ Qt:: +/qt.core.namespace.Orientation);
96     @QSlot final void setRange(int min, int max);
97 
98 /+ Q_SIGNALS +/public:
99     @QSignal final void valueChanged(int value);
100 
101     @QSignal final void sliderPressed();
102     @QSignal final void sliderMoved(int position);
103     @QSignal final void sliderReleased();
104 
105     @QSignal final void rangeChanged(int min, int max);
106 
107     @QSignal final void actionTriggered(int action);
108 
109 protected:
110     override bool event(QEvent e);
111 
112     final void setRepeatAction(SliderAction action, int thresholdTime = 500, int repeatTime = 50);
113     final SliderAction repeatAction() const;
114 
115     enum SliderChange {
116         SliderRangeChange,
117         SliderOrientationChange,
118         SliderStepsChange,
119         SliderValueChange
120     }
121     /+ virtual +/ void sliderChange(SliderChange change);
122 
123     override void keyPressEvent(QKeyEvent ev);
124     override void timerEvent(QTimerEvent );
125 /+ #if QT_CONFIG(wheelevent) +/
126     override void wheelEvent(QWheelEvent e);
127 /+ #endif +/
128     override void changeEvent(QEvent e);
129 
130 
131 protected:
132     this(ref QAbstractSliderPrivate dd, QWidget parent = null);
133 
134 private:
135     /+ Q_DISABLE_COPY(QAbstractSlider) +/
136     /+ Q_DECLARE_PRIVATE(QAbstractSlider) +/
137     mixin(CREATE_CONVENIENCE_WRAPPERS);
138 }
139