void OgreWidget::mousePressEvent(QMouseEvent * e) { if (e->button() == Qt::MiddleButton || e->button() == Qt::LeftButton) { if (e->button() == Qt::LeftButton) { if (e->modifiers() == Qt::ControlModifier) mouseSelect(e->pos(), false); else mouseSelect(e->pos(), false); m_mouseButtonsPressed |= Qt::LeftButton; } if (e->button() == Qt::MiddleButton) m_mouseButtonsPressed |= Qt::MiddleButton; m_oldPos = e->pos(); e->accept(); } else { e->ignore(); } }
int Scene::mouseClicked( shared_ptr<ViewInterface> view, int button, int state, int x, int y ) { if (state) { drag_bone = false; clickx = 0; clicky = 0; return false; } if ((glutGetModifiers() & GLUT_ACTIVE_CTRL) == GLUT_ACTIVE_CTRL) { if (button == 0) { int bone = mouseSelect(x, y); selectedBone = (selectedBone == bone)? -1: bone; } return true; } else if (button == 0) { drag_bone = true; clickx = x; clicky = y; } else if (button == 2) { player.path->append( view->unProject(x, y) ); } return true; }