void ofxUISortableList::mousePressed(int x, int y, int button) { activeWidget = getActiveWidget(x, y); if(activeWidget) { // save the position from where it was dragged (in case we need to put it back there) int activeWidgetRectY = activeWidget->getRect()->getY(); int rectY = getRect()->getY(); saveY = activeWidgetRectY - rectY; lastActiveY = saveY; } }
void MainWindow::updateCursors(QPair<SensorData*,SensorData*> sensorCurrent, QPair<SensorData*,SensorData*> sensorSave, QPair<SensorData*,SensorData*> sensorZero) { (void)sensorSave; if (sensorCurrent.first->isCorrect() && getActiveWidget() != WidgetType::loadingWidget && getActiveWidget() != WidgetType::noWidget){ cursors.first->setVisible(true); /* Hand opened position */ if (!sensorCurrent.first->getThumb()->isSelected() && !sensorCurrent.first->getIndex()->isSelected() & !sensorCurrent.first->getMiddle()->isSelected()){ QPixmap p(pixCursors[0]->transformed(QTransform().rotate(sensorCurrent.first->getArm()->getPitch() - 180))); cursors.first->setPixmap(p); } /* Selected hand opened position */ else if (sensorCurrent.first->getThumb()->isSelected() && !sensorCurrent.first->getIndex()->isSelected() & !sensorCurrent.first->getMiddle()->isSelected()){ QPixmap p(pixCursors[1]->transformed(QTransform().rotate(sensorCurrent.first->getArm()->getPitch() - 180))); cursors.first->setPixmap(p); } /* Pointing position */ else if (!sensorCurrent.first->getThumb()->isSelected() && !sensorCurrent.first->getIndex()->isSelected() & sensorCurrent.first->getMiddle()->isSelected()){ QPixmap p(pixCursors[4]->transformed(QTransform().rotate(sensorCurrent.first->getArm()->getPitch() - 180))); cursors.first->setPixmap(p); } /* Selected pointing position */ else if (sensorCurrent.first->getThumb()->isSelected() && !sensorCurrent.first->getIndex()->isSelected() & sensorCurrent.first->getMiddle()->isSelected()){ QPixmap p(pixCursors[2]->transformed(QTransform().rotate(sensorCurrent.first->getArm()->getPitch() - 180))); cursors.first->setPixmap(p); } /* Hand closed zero position */ else if (sensorCurrent.first->getThumb()->isSelected() && sensorCurrent.first->getIndex()->isSelected() & sensorCurrent.first->getMiddle()->isSelected()){ QPixmap p(pixCursors[5]->transformed(QTransform().rotate(sensorCurrent.first->getArm()->getPitch() - 180))); cursors.first->setPixmap(p); } /* Calculate the cursor's abciss from the arm's MPU6050 yaw value * Calculate the cursor's ordinate from the arm's MPU6050 roll value*/ QPair<int,int> pos = sensorCurrent.first->calculatePos(sensorZero.first,this->width(),this->height()); cursors.first->setGeometry(pos.first,pos.second,cursors.first->pixmap()->width(),cursors.first->pixmap()->height()); emit cursorsUpdated(pos.first,pos.second,sensorCurrent.first->getThumb()->isSelected(),sensorCurrent.first->getIndex()->isSelected(),sensorCurrent.first->getMiddle()->isSelected(),sensorCurrent.first->getHand()->getPitch()); } /* Hide the cursor if the Arduino is not connected or we are in the loading screen */ else cursors.first->setVisible(false); /* Do the same thing for the second Arduino */ if (sensorCurrent.second->isCorrect() && getActiveWidget() != WidgetType::loadingWidget && getActiveWidget() != WidgetType::noWidget){ cursors.second->setVisible(true); if (!sensorCurrent.second->getThumb()->isSelected() && !sensorCurrent.second->getIndex()->isSelected() & !sensorCurrent.second->getMiddle()->isSelected()){ QPixmap p(pixCursors[0]->transformed(QTransform().rotate(sensorCurrent.second->getArm()->getPitch() - 180))); cursors.second->setPixmap(p); } else if (sensorCurrent.second->getThumb()->isSelected() && !sensorCurrent.second->getIndex()->isSelected() & !sensorCurrent.second->getMiddle()->isSelected()){ QPixmap p(pixCursors[1]->transformed(QTransform().rotate(sensorCurrent.second->getArm()->getPitch() - 180))); cursors.second->setPixmap(p); } else if (!sensorCurrent.second->getThumb()->isSelected() && !sensorCurrent.second->getIndex()->isSelected() & sensorCurrent.second->getMiddle()->isSelected()){ QPixmap p(pixCursors[4]->transformed(QTransform().rotate(sensorCurrent.second->getArm()->getPitch() - 180))); cursors.second->setPixmap(p); } else if (sensorCurrent.second->getThumb()->isSelected() && !sensorCurrent.second->getIndex()->isSelected() & sensorCurrent.second->getMiddle()->isSelected()){ QPixmap p(pixCursors[2]->transformed(QTransform().rotate(sensorCurrent.second->getArm()->getPitch() - 180))); cursors.second->setPixmap(p); } else if (sensorCurrent.second->getThumb()->isSelected() && sensorCurrent.second->getIndex()->isSelected() & sensorCurrent.second->getMiddle()->isSelected()){ QPixmap p(pixCursors[5]->transformed(QTransform().rotate(sensorCurrent.second->getArm()->getPitch() - 180))); cursors.second->setPixmap(p); } QPair<int,int> pos = sensorCurrent.second->calculatePos(sensorZero.first,this->width(),this->height()); cursors.second->setGeometry(pos.first,pos.second,cursors.second->pixmap()->width(),cursors.second->pixmap()->height()); } else cursors.second->setVisible(false); }