2#include "qml_material/control/abstract_button.hpp"
6class QML_MATERIAL_API Switch :
public AbstractButton {
8 QML_NAMED_ELEMENT(SwitchBase)
9 Q_PROPERTY(qreal position READ position NOTIFY positionChanged FINAL)
10 Q_PROPERTY(qreal visualPosition READ visualPosition NOTIFY visualPositionChanged FINAL)
12 explicit Switch(QQuickItem* parent =
nullptr);
13 qreal position()
const {
return m_position; }
14 qreal visualPosition()
const {
return mirrored() ? 1 - m_position : m_position; }
15 Q_SIGNAL
void positionChanged();
16 Q_SIGNAL
void visualPositionChanged();
19 void nextCheckState()
override;
20 void pointerStarted(
const QPointF&)
override;
21 void pointerMoved(
const QPointF&)
override;
22 void interactionEnded()
override;
23 bool retainPressOutside()
const override {
return true; }
26 qreal positionAt(
const QPointF&)
const;
27 void setPosition(qreal);
30 bool m_dragging =
false;