12#include <kwin_export.h>
25static const qreal DEFAULT_UNIT_SCALE_DELTA = .2;
34 explicit Gesture(QObject *parent);
106 bool m_minimumFingerCountRelevant =
false;
107 uint m_minimumFingerCount = 0;
108 bool m_maximumFingerCountRelevant =
false;
109 uint m_maximumFingerCount = 0;
111 bool m_minimumXRelevant =
false;
113 bool m_minimumYRelevant =
false;
115 bool m_maximumXRelevant =
false;
117 bool m_maximumYRelevant =
false;
119 bool m_minimumDeltaRelevant =
false;
120 QPointF m_minimumDelta;
161 bool m_minimumFingerCountRelevant =
false;
162 uint m_minimumFingerCount = 0;
163 bool m_maximumFingerCountRelevant =
false;
164 uint m_maximumFingerCount = 0;
166 bool m_minimumScaleDeltaRelevant =
false;
167 qreal m_minimumScaleDelta = DEFAULT_UNIT_SCALE_DELTA;
182 int startSwipeGesture(uint fingerCount);
183 int startSwipeGesture(
const QPointF &startPos);
185 void updateSwipeGesture(
const QPointF &delta);
186 void cancelSwipeGesture();
187 void endSwipeGesture();
189 int startPinchGesture(uint fingerCount);
190 void updatePinchGesture(qreal scale, qreal angleDelta,
const QPointF &posDelta);
191 void cancelPinchGesture();
192 void endPinchGesture();
195 void cancelActiveGestures();
196 enum class StartPositionBehavior {
205 int startSwipeGesture(uint fingerCount,
const QPointF &startPos, StartPositionBehavior startPosBehavior);
206 QList<SwipeGesture *> m_swipeGestures;
207 QList<PinchGesture *> m_pinchGestures;
208 QList<SwipeGesture *> m_activeSwipeGestures;
209 QList<PinchGesture *> m_activePinchGestures;
210 QMap<Gesture *, QMetaObject::Connection> m_destroyConnections;
212 QPointF m_currentDelta = QPointF(0, 0);
213 qreal m_currentScale = 1;
214 uint m_currentFingerCount = 0;
215 Axis m_currentSwipeAxis = Axis::None;
~GestureRecognizer() override
void setMinimumScaleDelta(const qreal &scaleDelta)
void setDirection(PinchDirection direction)
uint minimumFingerCount() const
PinchGesture(QObject *parent=nullptr)
bool minimumScaleDeltaReached(const qreal &scaleDelta) const
bool minimumFingerCountIsRelevant() const
bool isMinimumScaleDeltaRelevant() const
PinchDirection direction() const
void setMinimumFingerCount(uint count)
bool maximumFingerCountIsRelevant() const
qreal scaleDeltaToProgress(const qreal &scaleDelta) const
void setMaximumFingerCount(uint count)
uint maximumFingerCount() const
qreal minimumScaleDelta() const
void setDirection(SwipeDirection direction)
SwipeDirection direction() const
qreal deltaToProgress(const QPointF &delta) const
bool maximumFingerCountIsRelevant() const
bool isMinimumDeltaRelevant() const
bool maximumYIsRelevant() const
uint minimumFingerCount() const
QPointF minimumDelta() const
bool maximumXIsRelevant() const
uint maximumFingerCount() const
SwipeGesture(QObject *parent=nullptr)
void setMinimumFingerCount(uint count)
void setMinimumDelta(const QPointF &delta)
bool minimumDeltaReached(const QPointF &delta) const
void setMaximumFingerCount(uint count)
bool minimumYIsRelevant() const
void setStartGeometry(const QRect &geometry)
bool minimumFingerCountIsRelevant() const
bool minimumXIsRelevant() const
void deltaProgress(const QPointF &delta)
SwipeDirection
Directions for swipe gestures.