void GraphicsReportView::init_state_machine() { rootState = new QState(); speedViewState = new QState(rootState); airTimeViewState = new QState(rootState); heartViewState = new QState(rootState); rushViewState = new QState(rootState); altitudeViewState = new QState(rootState); rootState->setInitialState(speedViewState); rootState->addTransition(speedLink, SIGNAL(released()), speedViewState); rootState->addTransition(&speedPlot, SIGNAL(swipeLeft()), heartViewState); rootState->addTransition(&speedPlot, SIGNAL(swipeRigth()), speedViewState); rootState->addTransition(&speedPlot, SIGNAL(bounceBack()), speedViewState); rootState->addTransition(heartLink, SIGNAL(released()), heartViewState); rootState->addTransition(&heartPlot, SIGNAL(swipeLeft()), airTimeViewState); rootState->addTransition(&heartPlot, SIGNAL(swipeRigth()), speedViewState); rootState->addTransition(&heartPlot, SIGNAL(bounceBack()), heartViewState); rootState->addTransition(airTimeLink, SIGNAL(released()), airTimeViewState); rootState->addTransition(&airTimePlot, SIGNAL(swipeLeft()), rushViewState); rootState->addTransition(&airTimePlot, SIGNAL(swipeRigth()), heartViewState); rootState->addTransition(&airTimePlot, SIGNAL(bounceBack()), airTimeViewState); rootState->addTransition(rushLink, SIGNAL(released()), rushViewState); rootState->addTransition(&rushPlot, SIGNAL(swipeLeft()), altitudeViewState); rootState->addTransition(&rushPlot, SIGNAL(swipeRigth()), airTimeViewState); rootState->addTransition(&rushPlot, SIGNAL(bounceBack()), rushViewState); rootState->addTransition(altitudeLink, SIGNAL(released()), altitudeViewState); rootState->addTransition(&altitudePlot, SIGNAL(swipeRigth()), rushViewState); rootState->addTransition(&altitudePlot, SIGNAL(swipeLeft()), altitudeViewState); rootState->addTransition(&altitudePlot, SIGNAL(bounceBack()), altitudeViewState); setup_link_alt_bts(speedViewState, speedLink); setup_link_alt_bts(heartViewState, heartLink); setup_link_alt_bts(airTimeViewState, airTimeLink); setup_link_alt_bts(rushViewState, rushLink); setup_link_alt_bts(altitudeViewState, altitudeLink); setup_rolling_plot_properties(speedViewState, 0); setup_rolling_plot_properties(heartViewState, 1); setup_rolling_plot_properties(airTimeViewState, 2); setup_rolling_plot_properties(rushViewState, 3); setup_rolling_plot_properties(altitudeViewState, 4); machine.setGlobalRestorePolicy(QStateMachine::RestoreProperties); machine.addState(rootState); machine.setInitialState(rootState); machine.addDefaultAnimation(new PushBurtonAnimation(&speedPlot, "x", this)); machine.addDefaultAnimation(new PushBurtonAnimation(&heartPlot, "x", this)); machine.addDefaultAnimation(new PushBurtonAnimation(&airTimePlot, "x", this)); machine.addDefaultAnimation(new PushBurtonAnimation(&rushPlot, "x", this)); machine.addDefaultAnimation(new PushBurtonAnimation(&altitudePlot, "x", this)); machine.start(); }
bool SwipeArea::touchMove(QPointF pos) { if (d->pos.x() < 0 && d->pos.y() < 0) { return false; } QPointF p = pos - d->pos; if (qAbs(p.y()) > 60) { d->pos = QPointF(-1, -1); return false; } if (p.x() > 200) { d->pos = QPointF(-1, -1); emit swipeRight(); return false; } else if (p.x() < -200) { d->pos = QPointF(-1, -1); emit swipeLeft(); return false; } return true; }
void EventReceiver::_onEvent(const int socket) { if (socket != _stream.getDescriptor()) return; while (_stream.hasEvent()) { const Event& deflectEvent = _stream.getEvent(); switch (deflectEvent.type) { case Event::EVT_CLOSE: _stop(); return; case Event::EVT_PRESS: emit pressed(_pos(deflectEvent)); break; case Event::EVT_RELEASE: emit released(_pos(deflectEvent)); break; case Event::EVT_MOVE: emit moved(_pos(deflectEvent)); break; case Event::EVT_VIEW_SIZE_CHANGED: emit resized(QSize{int(deflectEvent.dx), int(deflectEvent.dy)}); break; case Event::EVT_SWIPE_LEFT: emit swipeLeft(); break; case Event::EVT_SWIPE_RIGHT: emit swipeRight(); break; case Event::EVT_SWIPE_UP: emit swipeUp(); break; case Event::EVT_SWIPE_DOWN: emit swipeDown(); break; case Event::EVT_KEY_PRESS: emit keyPress(deflectEvent.key, deflectEvent.modifiers, QString::fromStdString(deflectEvent.text)); break; case Event::EVT_KEY_RELEASE: emit keyRelease(deflectEvent.key, deflectEvent.modifiers, QString::fromStdString(deflectEvent.text)); break; case Event::EVT_TOUCH_ADD: emit touchPointAdded(deflectEvent.key, _pos(deflectEvent)); break; case Event::EVT_TOUCH_UPDATE: emit touchPointUpdated(deflectEvent.key, _pos(deflectEvent)); break; case Event::EVT_TOUCH_REMOVE: emit touchPointRemoved(deflectEvent.key, _pos(deflectEvent)); break; case Event::EVT_CLICK: case Event::EVT_DOUBLECLICK: case Event::EVT_PINCH: case Event::EVT_WHEEL: default: break; } } if (!_stream.isConnected()) _stop(); }
void XN_CALLBACK_TYPE AirCursor::swipeLeftCB(XnFloat fVelocity, XnFloat fAngle, void* cxt) { //std::cout << "Swipe LEFT velocity: " << fVelocity << " angle: " << fAngle << std::endl; AirCursor* ac = (AirCursor*)cxt; ac->emit swipeLeft(fVelocity, fAngle); }