59 m_object->emitGestured();
110 for (DirectionList::const_iterator source = gesture->
directions().constBegin(); source != gesture->
directions().end(); ++source) {
111 dl.push_back(*source);
123 for (GestureList::const_iterator
i = d->
gestures.constBegin();
i != d->
gestures.constEnd(); ++
i) {
134 switch (event->type()) {
135 case QEvent::MouseButtonPress:
142 case QEvent::MouseButtonRelease:
149 case QEvent::MouseMove:
157 if (paintEvent(obj,
static_cast<QPaintEvent*
>(event))) {
165 return QObject::eventFilter(obj, event);
174 d->
mgr->
startGesture(event->position().toPoint().x(), event->position().toPoint().y());
187 return d->
mgr->
endGesture(event->position().toPoint().x(), event->position().toPoint().y());
200 d->
mgr->
addPoint(event->position().toPoint().x(), event->position().toPoint().y());
207bool QjtMouseGestureFilter::paintEvent(QObject* obj, QPaintEvent* event)
211 QWidget* wid =
static_cast<QWidget*
>(obj);
212 QPainter painter(wid);
213 painter.drawPixmap(0, 0, d->
px);
217 pe.setColor(Qt::red);
220 QVector<QPoint> pointPairs;
221 for (Gesture::PosList::const_iterator iter = points.begin(); iter != points.end(); ++iter) {
222 pointPairs << QPoint(iter->x, iter->y);
224 painter.setRenderHint(QPainter::Antialiasing,
true);
225 painter.drawPolyline(&pointPairs[0], pointPairs.count());
QList< GestureCallbackToSignal > BridgeList
QList< QjtMouseGesture * > GestureList
void clearGestureDefinitions()
bool endGesture(int x, int y)
void addGestureDefinition(const GestureDefinition &gesture)
void startGesture(int x, int y)
PosList currentPath() const
void addPoint(int x, int y)
GestureCallbackToSignal(QjtMouseGesture *object)
Qt::MouseButton gestureButton
Gesture::MouseGestureRecognizer * mgr
bool mouseButtonReleaseEvent(QMouseEvent *event, QObject *obj=nullptr)
bool mouseMoveEvent(QMouseEvent *event, QObject *obj=nullptr)
QjtMouseGestureFilter(bool allowDiagonals=false, Qt::MouseButton gestureButton=Qt::RightButton, int minimumMovement=5, double minimumMatch=0.9, QObject *parent=nullptr)
~QjtMouseGestureFilter() override
void addGesture(QjtMouseGesture *gesture)
void clearGestures(bool deleteGestures=false)
bool eventFilter(QObject *obj, QEvent *event) override
bool mouseButtonPressEvent(QMouseEvent *event, QObject *obj=nullptr)
const DirectionList directions() const
std::vector< Pos > PosList
std::list< Direction > DirectionList