void GlutWindow::mouseMoveEvent(int x,int y){ if (handleMoveEvent(x,y)) { glutPostRedisplay(); } return; }
void CGlutWindow::mouseMoveEvent(int x,int y) { if (m_bExternalMouseHandling) { if (handleMoveEvent(x,y)) { glutPostRedisplay(); } return; } CArcBall *pArcball = NULL; switch(m_nInteractionMode) { default: case MOVE_CAMERA: pArcball = m_pCameraArcball; break; case MOVE_LIGHT: pArcball = m_pLightArcball; break; } CPosition pos(double(x)/double(m_nWidth),double(y)/double(m_nHeight)); CPosition drag = pos-m_vecMouseDown; if ((m_bRotating) && (m_nMouseState & (MBUTTON_LEFT))) { pArcball->setMouse(CPosition(x, m_nHeight-1- y)); glutPostRedisplay(); } else if ((m_bDragging) && (m_nMouseState & MBUTTON_MIDDLE)) { m_dTranslateX += 2.0 * drag[0]; m_dTranslateY += -2.0 * drag[1]; printf("%f %f\n",m_dTranslateX, m_dTranslateX/(1+dZoom)); printf("%f %f\n",m_dTranslateY, m_dTranslateY/(1+dZoom)); printf("%f \n",dZoom); if (m_dTranslateX > (1+dZoom)) m_dTranslateX = (1+dZoom); if (m_dTranslateX < -(1+dZoom)) m_dTranslateX = -(1+dZoom); if (m_dTranslateY > (1+dZoom)) m_dTranslateY = (1+dZoom); if (m_dTranslateY < -(1+dZoom)) m_dTranslateY = -(1+dZoom); glutPostRedisplay(); } else if ((m_bZooming) && (m_nMouseState & MBUTTON_RIGHT )) { dZoom = 10.0*drag[0]; camera->zoomIn(8*dZoom); glutPostRedisplay(); } m_vecMouseDown = pos; }
void SmoothCanvas::tabletEvent(QTabletEvent* ev){ switch(ev->type()){ case QTabletEvent::TabletPress: handlePressEvent(QPointF(ev->pos())); break; case QTabletEvent::TabletMove: handleMoveEvent(QPointF(ev->pos())); break; case QTabletEvent::TabletRelease: handleReleaseEvent(QPointF(ev->pos())); break; default: break; } }
bool QWidgetWindow::event(QEvent *event) { if (m_widget->testAttribute(Qt::WA_DontShowOnScreen)) { // \a event is uninteresting for QWidgetWindow, the event was probably // generated before WA_DontShowOnScreen was set return m_widget->event(event); } switch (event->type()) { case QEvent::Close: handleCloseEvent(static_cast<QCloseEvent *>(event)); return true; case QEvent::Enter: case QEvent::Leave: handleEnterLeaveEvent(event); return true; // these should not be sent to QWidget, the corresponding events // are sent by QApplicationPrivate::notifyActiveWindowChange() case QEvent::FocusIn: handleFocusInEvent(static_cast<QFocusEvent *>(event)); // Fallthrough case QEvent::FocusOut: { #ifndef QT_NO_ACCESSIBILITY QAccessible::State state; state.active = true; QAccessibleStateChangeEvent ev(widget(), state); QAccessible::updateAccessibility(&ev); #endif return false; } case QEvent::FocusAboutToChange: if (QApplicationPrivate::focus_widget) { if (QApplicationPrivate::focus_widget->testAttribute(Qt::WA_InputMethodEnabled)) qApp->inputMethod()->commit(); QGuiApplication::sendSpontaneousEvent(QApplicationPrivate::focus_widget, event); } return true; case QEvent::KeyPress: case QEvent::KeyRelease: case QEvent::ShortcutOverride: handleKeyEvent(static_cast<QKeyEvent *>(event)); return true; case QEvent::MouseMove: case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: case QEvent::MouseButtonDblClick: handleMouseEvent(static_cast<QMouseEvent *>(event)); return true; case QEvent::NonClientAreaMouseMove: case QEvent::NonClientAreaMouseButtonPress: case QEvent::NonClientAreaMouseButtonRelease: case QEvent::NonClientAreaMouseButtonDblClick: handleNonClientAreaMouseEvent(static_cast<QMouseEvent *>(event)); return true; case QEvent::TouchBegin: case QEvent::TouchUpdate: case QEvent::TouchEnd: case QEvent::TouchCancel: handleTouchEvent(static_cast<QTouchEvent *>(event)); return true; case QEvent::Move: handleMoveEvent(static_cast<QMoveEvent *>(event)); return true; case QEvent::Resize: handleResizeEvent(static_cast<QResizeEvent *>(event)); return true; #ifndef QT_NO_WHEELEVENT case QEvent::Wheel: handleWheelEvent(static_cast<QWheelEvent *>(event)); return true; #endif #ifndef QT_NO_DRAGANDDROP case QEvent::DragEnter: case QEvent::DragMove: handleDragEnterMoveEvent(static_cast<QDragMoveEvent *>(event)); return true; case QEvent::DragLeave: handleDragLeaveEvent(static_cast<QDragLeaveEvent *>(event)); return true; case QEvent::Drop: handleDropEvent(static_cast<QDropEvent *>(event)); return true; #endif case QEvent::Expose: handleExposeEvent(static_cast<QExposeEvent *>(event)); return true; case QEvent::WindowStateChange: handleWindowStateChangedEvent(static_cast<QWindowStateChangeEvent *>(event)); return true; case QEvent::ThemeChange: { QEvent widgetEvent(QEvent::ThemeChange); QGuiApplication::sendSpontaneousEvent(m_widget, &widgetEvent); } return true; #ifndef QT_NO_TABLETEVENT case QEvent::TabletPress: case QEvent::TabletMove: case QEvent::TabletRelease: handleTabletEvent(static_cast<QTabletEvent *>(event)); return true; #endif #ifndef QT_NO_GESTURES case QEvent::NativeGesture: handleGestureEvent(static_cast<QNativeGestureEvent *>(event)); return true; #endif #ifndef QT_NO_CONTEXTMENU case QEvent::ContextMenu: handleContextMenuEvent(static_cast<QContextMenuEvent *>(event)); return true; #endif // Handing show events to widgets (see below) here would cause them to be triggered twice case QEvent::Show: case QEvent::Hide: return QWindow::event(event); case QEvent::WindowBlocked: qt_button_down = 0; break; default: break; } return m_widget->event(event) || QWindow::event(event); }
void SmoothCanvas::mouseMoveEvent(QMouseEvent* ev){ handleMoveEvent(ev->posF()); }