示例#1
0
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;
    }
}
示例#2
0
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);
}