// FIXME: Refactor this code to share functionality with EventHandler::handleGestureEvent. bool PopupContainer::handleGestureEvent(const PlatformGestureEvent& gestureEvent) { switch (gestureEvent.type()) { case PlatformEvent::GestureTap: { PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.globalPosition(), NoButton, PlatformEvent::MouseMoved, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp()); PlatformMouseEvent fakeMouseDown(gestureEvent.position(), gestureEvent.globalPosition(), LeftButton, PlatformEvent::MousePressed, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp()); PlatformMouseEvent fakeMouseUp(gestureEvent.position(), gestureEvent.globalPosition(), LeftButton, PlatformEvent::MouseReleased, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp()); // handleMouseMoveEvent(fakeMouseMove); handleMouseDownEvent(fakeMouseDown); handleMouseReleaseEvent(fakeMouseUp); return true; } case PlatformEvent::GestureDoubleTap: break; case PlatformEvent::GestureScrollUpdate: case PlatformEvent::GestureScrollUpdateWithoutPropagation: { PlatformWheelEvent syntheticWheelEvent(gestureEvent.position(), gestureEvent.globalPosition(), gestureEvent.deltaX(), gestureEvent.deltaY(), gestureEvent.deltaX() / 120.0f, gestureEvent.deltaY() / 120.0f, ScrollByPixelWheelEvent, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey()); handleWheelEvent(syntheticWheelEvent); return true; } case PlatformEvent::GestureScrollBegin: case PlatformEvent::GestureScrollEnd: case PlatformEvent::GestureTapDown: break; default: ASSERT_NOT_REACHED(); } return false; }
// FIXME: Refactor this code to share functionality with EventHandler::handleGestureEvent. bool PopupContainer::handleGestureEvent(const PlatformGestureEvent& gestureEvent) { switch (gestureEvent.type()) { case PlatformGestureEvent::TapType: { PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.globalPosition(), NoButton, MouseEventMoved, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp()); PlatformMouseEvent fakeMouseDown(gestureEvent.position(), gestureEvent.globalPosition(), LeftButton, MouseEventPressed, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp()); PlatformMouseEvent fakeMouseUp(gestureEvent.position(), gestureEvent.globalPosition(), LeftButton, MouseEventReleased, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp()); // handleMouseMoveEvent(fakeMouseMove); handleMouseDownEvent(fakeMouseDown); handleMouseReleaseEvent(fakeMouseUp); return true; } case PlatformGestureEvent::DoubleTapType: break; case PlatformGestureEvent::ScrollUpdateType: { PlatformWheelEvent syntheticWheelEvent(gestureEvent.position(), gestureEvent.globalPosition(), gestureEvent.deltaX(), gestureEvent.deltaY(), gestureEvent.deltaX() / 120.0f, gestureEvent.deltaY() / 120.0f, ScrollByPixelWheelEvent, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey()); handleWheelEvent(syntheticWheelEvent); return true; } case PlatformGestureEvent::ScrollBeginType: case PlatformGestureEvent::ScrollEndType: case PlatformGestureEvent::TapDownType: break; } return false; }
bool ToolBarEventFilter::eventFilter (QObject *watched, QEvent *event) { if (watched != m_toolBar) return QObject::eventFilter (watched, event); switch (event->type()) { case QEvent::ChildAdded: { // Children should not interact with the mouse const QChildEvent *ce = static_cast<const QChildEvent *>(event); if (QWidget *w = qobject_cast<QWidget *>(ce->child())) { w->setAttribute(Qt::WA_TransparentForMouseEvents, true); w->setFocusPolicy(Qt::NoFocus); } } break; case QEvent::ContextMenu: return handleContextMenuEvent(static_cast<QContextMenuEvent*>(event)); case QEvent::DragEnter: case QEvent::DragMove: return handleDragEnterMoveEvent(static_cast<QDragMoveEvent *>(event)); case QEvent::DragLeave: return handleDragLeaveEvent(static_cast<QDragLeaveEvent *>(event)); case QEvent::Drop: return handleDropEvent(static_cast<QDropEvent *>(event)); case QEvent::MouseButtonPress: return handleMousePressEvent(static_cast<QMouseEvent*>(event)); case QEvent::MouseButtonRelease: return handleMouseReleaseEvent(static_cast<QMouseEvent*>(event)); case QEvent::MouseMove: return handleMouseMoveEvent(static_cast<QMouseEvent*>(event)); default: break; } return QObject::eventFilter (watched, event); }
void NcWidgetData::handleWidgetEvent( QEvent* event ) { switch ( event->type() ) { default: //qDebug() << "Event = " << event; break; case QEvent::MouseButtonPress: handleMousePressEvent( static_cast<QMouseEvent*>( event ) ); break; case QEvent::MouseButtonRelease: handleMouseReleaseEvent( static_cast<QMouseEvent*>( event ) ); break; case QEvent::MouseMove: handleMouseMoveEvent( static_cast<QMouseEvent*>( event ) ); break; case QEvent::Leave: handleLeaveEvent( event ); break; //Bug fix, hover event is necessary coz child widget does not //propagate mousemove events. so the cursor remains in edge shape //even in middle of widget. case QEvent::HoverMove: handleHoverMoveEvent( static_cast<QHoverEvent*>( event ) ); break; //case QEvent::Enter: //qDebug() << "Enter event";//d->handleEnterEvent( event ); //break; } }
void VMdEditor::mouseReleaseEvent(QMouseEvent *p_event) { if (handleMouseReleaseEvent(p_event)) { return; } VTextEdit::mouseReleaseEvent(p_event); emit m_object->mouseReleased(p_event); }
/// /// event filter method /// bool QtEventConsumer::eventFilter ( QObject *obj, QEvent *event ) { /// /// process control /// //if process is stoped... if (f_recording_ == false) { //no event handling DEBUG(D_CONSUMER,"(QtEventConsumer::eventFilter) Stop state. No event handled."); return false; } //if process is paused... else if (f_recording_ && f_paused_) { //filter all events and //block the application DEBUG(D_CONSUMER,"(QtEventConsumer::eventFilter) Pause state. Events blocked."); return true; } //no widget or event provided else if (obj == NULL || event == NULL) { DEBUG(D_CONSUMER,"(QtEventConsumer::eventFilter) No widget or event provided."); return false; } //object is not a widget or window /*else if (!obj->isWidgetType()) { DEBUG(D_CONSUMER,"(QtEventConsumer::eventFilter) Object is not a widget."); return false; }*/ //if process is recording... else { //apply the filter... } //DEBUG(D_CONSUMER,"(QtEventConsumer::eventFilter) Type = " // + QString::number(event->type()).toStdString()); /// ///filter depending on the type.. /// //window events if (event->type() == QEvent::KeyPress) { handleKeyPressEvent(obj, event); } //mouse events else if (event->type() == QEvent::MouseButtonPress) { handleMousePressEvent(obj, event); } else if (event->type() == QEvent::MouseButtonRelease) { handleMouseReleaseEvent(obj, event); } else if (event->type() == QEvent::MouseButtonDblClick) { handleMouseDoubleEvent(obj, event); } else if (event->type() == QEvent::Wheel) { handleWheelEvent(obj, event); } //keyboard events else if (event->type() == QEvent::Close) { handleCloseEvent(obj, event); } ///the event should continue to reach its goal... return false; }