Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QPointerEvent Class Reference

A base class for pointer events. More...

#include <qevent.h>

+ Inheritance diagram for QPointerEvent:
+ Collaboration diagram for QPointerEvent:

Public Member Functions

 QPointerEvent (Type type, const QPointingDevice *dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier, const QList< QEventPoint > &points={})
 
const QPointingDevicepointingDevice () const
 Returns the source device from which this event originates.
 
QPointingDevice::PointerType pointerType () const
 Returns the type of point that generated the event.
 
void setTimestamp (quint64 timestamp) override
 
qsizetype pointCount () const
 Returns the number of points in this pointer event.
 
QEventPointpoint (qsizetype i)
 Returns a QEventPoint reference for the point at index i.
 
const QList< QEventPoint > & points () const
 Returns a list of points in this pointer event.
 
QEventPointpointById (int id)
 Returns the point whose \l {QEventPoint::id()}{id} matches the given id, or nullptr if no such point is found.
 
bool allPointsGrabbed () const
 Returns true if every point in points() has either an exclusiveGrabber() or one or more passiveGrabbers().
 
virtual bool isBeginEvent () const
 
virtual bool isUpdateEvent () const
 
virtual bool isEndEvent () const
 
bool allPointsAccepted () const
 Returns true if isPointAccepted() is true for every point in points(); otherwise false.
 
virtual void setAccepted (bool accepted) override
 \reimp
 
QObjectexclusiveGrabber (const QEventPoint &point) const
 Returns the object which has been set to receive all future update events and the release event containing the given point.
 
void setExclusiveGrabber (const QEventPoint &point, QObject *exclusiveGrabber)
 Informs the delivery logic that the given exclusiveGrabber is to receive all future update events and the release event containing the given point, and that delivery to other items can be skipped.
 
QList< QPointer< QObject > > passiveGrabbers (const QEventPoint &point) const
 Returns the list of objects that have been requested to receive all future update events and the release event containing the given point.
 
void clearPassiveGrabbers (const QEventPoint &point)
 Removes all passive grabbers from the given point.
 
bool addPassiveGrabber (const QEventPoint &point, QObject *grabber)
 Informs the delivery logic that the given grabber is to receive all future update events and the release event containing the given point, regardless where else those events may be delivered.
 
bool removePassiveGrabber (const QEventPoint &point, QObject *grabber)
 Removes the passive grabber from the given point if it was previously added.
 
- Public Member Functions inherited from QInputEvent
 QInputEvent (Type type, const QInputDevice *m_dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
 
const QInputDevicedevice () const
 
QInputDevice::DeviceType deviceType () const
 Returns the type of device that generated the event.
 
Qt::KeyboardModifiers modifiers () const
 Returns the keyboard modifier flags that existed immediately before the event occurred.
 
void setModifiers (Qt::KeyboardModifiers modifiers)
 
quint64 timestamp () const
 Returns the window system's timestamp for this event.
 
- Public Member Functions inherited from QEvent
 QEvent (Type type)
 Constructs an event object of type type.
 
virtual ~QEvent ()
 Destroys the event.
 
Type type () const
 Returns the event type.
 
bool spontaneous () const
 Returns true if the event originated outside the application (a system event); otherwise returns false.
 
bool isAccepted () const
 
void accept ()
 Sets the accept flag of the event object, the equivalent of calling setAccepted(true).
 
void ignore ()
 Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).
 
bool isInputEvent () const noexcept
 
bool isPointerEvent () const noexcept
 
bool isSinglePointEvent () const noexcept
 
virtual QEventclone () const
 Creates and returns an identical copy of this event.
 

Protected Member Functions

 QPointerEvent (Type type, SinglePointEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
 
- Protected Member Functions inherited from QInputEvent
 QInputEvent (Type type, PointerEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
 
 QInputEvent (Type type, SinglePointEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
 
- Protected Member Functions inherited from QEvent
 QEvent (Type type, InputEventTag)
 
 QEvent (Type type, PointerEventTag)
 
 QEvent (Type type, SinglePointEventTag)
 

Protected Attributes

QList< QEventPointm_points
 
- Protected Attributes inherited from QInputEvent
const QInputDevicem_dev = nullptr
 
quint64 m_timeStamp = 0
 
Qt::KeyboardModifiers m_modState = Qt::NoModifier
 
quint32 m_reserved = 0
 
- Protected Attributes inherited from QEvent
quint16 t
 

Additional Inherited Members

- Public Types inherited from QEvent
enum  Type {
  None = 0 , Timer = 1 , MouseButtonPress = 2 , MouseButtonRelease = 3 ,
  MouseButtonDblClick = 4 , MouseMove = 5 , KeyPress = 6 , KeyRelease = 7 ,
  FocusIn = 8 , FocusOut = 9 , FocusAboutToChange = 23 , Enter = 10 ,
  Leave = 11 , Paint = 12 , Move = 13 , Resize = 14 ,
  Create = 15 , Destroy = 16 , Show = 17 , Hide = 18 ,
  Close = 19 , Quit = 20 , ParentChange = 21 , ParentAboutToChange = 131 ,
  ThreadChange = 22 , WindowActivate = 24 , WindowDeactivate = 25 , ShowToParent = 26 ,
  HideToParent = 27 , Wheel = 31 , WindowTitleChange = 33 , WindowIconChange = 34 ,
  ApplicationWindowIconChange = 35 , ApplicationFontChange = 36 , ApplicationLayoutDirectionChange = 37 , ApplicationPaletteChange = 38 ,
  PaletteChange = 39 , Clipboard = 40 , Speech = 42 , MetaCall = 43 ,
  SockAct = 50 , WinEventAct = 132 , DeferredDelete = 52 , DragEnter = 60 ,
  DragMove = 61 , DragLeave = 62 , Drop = 63 , DragResponse = 64 ,
  ChildAdded = 68 , ChildPolished = 69 , ChildRemoved = 71 , ShowWindowRequest = 73 ,
  PolishRequest = 74 , Polish = 75 , LayoutRequest = 76 , UpdateRequest = 77 ,
  UpdateLater = 78 , EmbeddingControl = 79 , ActivateControl = 80 , DeactivateControl = 81 ,
  ContextMenu = 82 , InputMethod = 83 , TabletMove = 87 , LocaleChange = 88 ,
  LanguageChange = 89 , LayoutDirectionChange = 90 , Style = 91 , TabletPress = 92 ,
  TabletRelease = 93 , OkRequest = 94 , HelpRequest = 95 , IconDrag = 96 ,
  FontChange = 97 , EnabledChange = 98 , ActivationChange = 99 , StyleChange = 100 ,
  IconTextChange = 101 , ModifiedChange = 102 , MouseTrackingChange = 109 , WindowBlocked = 103 ,
  WindowUnblocked = 104 , WindowStateChange = 105 , ReadOnlyChange = 106 , ToolTip = 110 ,
  WhatsThis = 111 , StatusTip = 112 , ActionChanged = 113 , ActionAdded = 114 ,
  ActionRemoved = 115 , FileOpen = 116 , Shortcut = 117 , ShortcutOverride = 51 ,
  WhatsThisClicked = 118 , ToolBarChange = 120 , ApplicationActivate = 121 , ApplicationActivated = ApplicationActivate ,
  ApplicationDeactivate = 122 , ApplicationDeactivated = ApplicationDeactivate , QueryWhatsThis = 123 , EnterWhatsThisMode = 124 ,
  LeaveWhatsThisMode = 125 , ZOrderChange = 126 , HoverEnter = 127 , HoverLeave = 128 ,
  HoverMove = 129 , AcceptDropsChange = 152 , ZeroTimerEvent = 154 , GraphicsSceneMouseMove = 155 ,
  GraphicsSceneMousePress = 156 , GraphicsSceneMouseRelease = 157 , GraphicsSceneMouseDoubleClick = 158 , GraphicsSceneContextMenu = 159 ,
  GraphicsSceneHoverEnter = 160 , GraphicsSceneHoverMove = 161 , GraphicsSceneHoverLeave = 162 , GraphicsSceneHelp = 163 ,
  GraphicsSceneDragEnter = 164 , GraphicsSceneDragMove = 165 , GraphicsSceneDragLeave = 166 , GraphicsSceneDrop = 167 ,
  GraphicsSceneWheel = 168 , GraphicsSceneLeave = 220 , KeyboardLayoutChange = 169 , DynamicPropertyChange = 170 ,
  TabletEnterProximity = 171 , TabletLeaveProximity = 172 , NonClientAreaMouseMove = 173 , NonClientAreaMouseButtonPress = 174 ,
  NonClientAreaMouseButtonRelease = 175 , NonClientAreaMouseButtonDblClick = 176 , MacSizeChange = 177 , ContentsRectChange = 178 ,
  MacGLWindowChange = 179 , FutureCallOut = 180 , GraphicsSceneResize = 181 , GraphicsSceneMove = 182 ,
  CursorChange = 183 , ToolTipChange = 184 , NetworkReplyUpdated = 185 , GrabMouse = 186 ,
  UngrabMouse = 187 , GrabKeyboard = 188 , UngrabKeyboard = 189 , StateMachineSignal = 192 ,
  StateMachineWrapped = 193 , TouchBegin = 194 , TouchUpdate = 195 , TouchEnd = 196 ,
  NativeGesture = 197 , RequestSoftwareInputPanel = 199 , CloseSoftwareInputPanel = 200 , WinIdChange = 203 ,
  Gesture = 198 , GestureOverride = 202 , ScrollPrepare = 204 , Scroll = 205 ,
  Expose = 206 , InputMethodQuery = 207 , OrientationChange = 208 , TouchCancel = 209 ,
  ThemeChange = 210 , SockClose = 211 , PlatformPanel = 212 , StyleAnimationUpdate = 213 ,
  ApplicationStateChange = 214 , WindowChangeInternal = 215 , ScreenChangeInternal = 216 , PlatformSurface = 217 ,
  Pointer = 218 , TabletTrackingChange = 219 , WindowAboutToChangeInternal = 221 , DevicePixelRatioChange = 222 ,
  ChildWindowAdded = 223 , ChildWindowRemoved = 224 , ParentWindowAboutToChange = 225 , ParentWindowChange = 226 ,
  User = 1000 , MaxUser = 65535
}
 This enum type defines the valid event types in Qt. More...
 
- Static Public Member Functions inherited from QEvent
static int registerEventType (int hint=-1) noexcept
 

Detailed Description

A base class for pointer events.

Since
6.0 \inmodule QtGui

Definition at line 72 of file qevent.h.

Constructor & Destructor Documentation

◆ QPointerEvent() [1/2]

QPointerEvent::QPointerEvent ( Type type,
const QPointingDevice * dev,
Qt::KeyboardModifiers modifiers = Qt::NoModifier,
const QList< QEventPoint > & points = {} )
explicit

◆ QPointerEvent() [2/2]

QPointerEvent::QPointerEvent ( Type type,
SinglePointEventTag ,
const QInputDevice * dev,
Qt::KeyboardModifiers modifiers = Qt::NoModifier )
protected

Member Function Documentation

◆ addPassiveGrabber()

bool QPointerEvent::addPassiveGrabber ( const QEventPoint & point,
QObject * grabber )

Informs the delivery logic that the given grabber is to receive all future update events and the release event containing the given point, regardless where else those events may be delivered.

It's only for use by \l {Qt Quick Input Handlers}.

Returns false if grabber was already added, true otherwise.

Definition at line 404 of file qevent.cpp.

References QPointingDevicePrivate::get(), point(), pointingDevice(), and Q_ASSERT.

+ Here is the call graph for this function:

◆ allPointsAccepted()

bool QPointerEvent::allPointsAccepted ( ) const

Returns true if isPointAccepted() is true for every point in points(); otherwise false.

Definition at line 306 of file qevent.cpp.

◆ allPointsGrabbed()

bool QPointerEvent::allPointsGrabbed ( ) const

Returns true if every point in points() has either an exclusiveGrabber() or one or more passiveGrabbers().

Definition at line 293 of file qevent.cpp.

References exclusiveGrabber(), QList< T >::isEmpty(), and passiveGrabbers().

+ Here is the call graph for this function:

◆ clearPassiveGrabbers()

void QPointerEvent::clearPassiveGrabbers ( const QEventPoint & point)

Removes all passive grabbers from the given point.

It's only for use by \l {Qt Quick Input Handlers}.

See also
QPointerEvent::addPassiveGrabber()

Definition at line 433 of file qevent.cpp.

References QPointingDevicePrivate::get(), point(), pointingDevice(), and Q_ASSERT.

Referenced by QQuickWindowPrivate::clearGrabbers().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ exclusiveGrabber()

QObject * QPointerEvent::exclusiveGrabber ( const QEventPoint & point) const

Returns the object which has been set to receive all future update events and the release event containing the given point.

It's mainly for use in Qt Quick at this time.

Definition at line 351 of file qevent.cpp.

References QPointingDevicePrivate::get(), QEventPoint::id, point(), pointingDevice(), Q_ASSERT, Q_UNLIKELY, and qWarning.

Referenced by allPointsGrabbed(), QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem(), QQuickDeliveryAgentPrivate::deliverToPassiveGrabbers(), QQuickDeliveryAgentPrivate::deliverTouchAsMouse(), QQuickWidget::event(), QSinglePointEvent::exclusivePointGrabber(), and setExclusiveGrabber().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isBeginEvent()

virtual bool QPointerEvent::isBeginEvent ( ) const
inlinevirtual

Reimplemented in QSinglePointEvent, and QTouchEvent.

Definition at line 90 of file qevent.h.

Referenced by QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem().

+ Here is the caller graph for this function:

◆ isEndEvent()

virtual bool QPointerEvent::isEndEvent ( ) const
inlinevirtual

Reimplemented in QSinglePointEvent, and QTouchEvent.

Definition at line 92 of file qevent.h.

Referenced by QQuickWindowPrivate::clearGrabbers(), and QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem().

+ Here is the caller graph for this function:

◆ isUpdateEvent()

virtual bool QPointerEvent::isUpdateEvent ( ) const
inlinevirtual

Reimplemented in QSinglePointEvent, QHoverEvent, and QTouchEvent.

Definition at line 91 of file qevent.h.

Referenced by QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem().

+ Here is the caller graph for this function:

◆ passiveGrabbers()

QList< QPointer< QObject > > QPointerEvent::passiveGrabbers ( const QEventPoint & point) const

Returns the list of objects that have been requested to receive all future update events and the release event containing the given point.

It's only for use by \l {Qt Quick Input Handlers}.

See also
QPointerEvent::addPassiveGrabber()

Definition at line 384 of file qevent.cpp.

References QPointingDevicePrivate::get(), QEventPoint::id, point(), pointingDevice(), Q_ASSERT, Q_UNLIKELY, and qWarning.

Referenced by allPointsGrabbed(), and QQuickWidget::event().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ point()

◆ pointById()

QEventPoint * QPointerEvent::pointById ( int id)

Returns the point whose \l {QEventPoint::id()}{id} matches the given id, or nullptr if no such point is found.

Definition at line 280 of file qevent.cpp.

References m_points.

◆ pointCount()

qsizetype QPointerEvent::pointCount ( ) const
inline

Returns the number of points in this pointer event.

Definition at line 85 of file qevent.h.

◆ pointerType()

QPointingDevice::PointerType QPointerEvent::pointerType ( ) const
inline

Returns the type of point that generated the event.

Definition at line 81 of file qevent.h.

References QPointingDevice::Unknown.

◆ pointingDevice()

const QPointingDevice * QPointerEvent::pointingDevice ( ) const

Returns the source device from which this event originates.

This is the same as QInputEvent::device() but typecast for convenience.

Definition at line 330 of file qevent.cpp.

References QInputEvent::m_dev.

Referenced by addPassiveGrabber(), QMutableTouchEvent::addPoint(), clearPassiveGrabbers(), QQuickDeliveryAgentPrivate::deliverTouchAsMouse(), exclusiveGrabber(), QMenuPrivate::mouseEventTaken(), QQuickDeliveryAgentPrivate::mousePointData(), passiveGrabbers(), removePassiveGrabber(), PressDelayHandler::sendMouseEvent(), setExclusiveGrabber(), and QQuickMultiPointTouchArea::updateTouchData().

+ Here is the caller graph for this function:

◆ points()

const QList< QEventPoint > & QPointerEvent::points ( ) const
inline

Returns a list of points in this pointer event.

Definition at line 87 of file qevent.h.

Referenced by QQuickPathView::childMouseEventFilter(), QQuickSplitView::childMouseEventFilter(), QQuickWindowPrivate::clearGrabbers(), QQuickWidget::event(), QQuickDeliveryAgent::event(), QTapGestureRecognizer::recognize(), QTapAndHoldGestureRecognizer::recognize(), and QQuickMultiPointTouchArea::updateTouchData().

+ Here is the caller graph for this function:

◆ removePassiveGrabber()

bool QPointerEvent::removePassiveGrabber ( const QEventPoint & point,
QObject * grabber )

Removes the passive grabber from the given point if it was previously added.

Returns true if it had been a passive grabber before, false if not.

It's only for use by \l {Qt Quick Input Handlers}.

See also
QPointerEvent::addPassiveGrabber()

Definition at line 419 of file qevent.cpp.

References QPointingDevicePrivate::get(), point(), pointingDevice(), and Q_ASSERT.

+ Here is the call graph for this function:

◆ setAccepted()

void QPointerEvent::setAccepted ( bool accepted)
overridevirtual

\reimp

Reimplemented from QEvent.

Definition at line 318 of file qevent.cpp.

References m_points, and QEvent::setAccepted().

Referenced by QQuickFlickablePrivate::captureDelayedPress(), QQuickDeliveryAgentPrivate::deliverHoverEventToItem(), QQuickDeliveryAgent::event(), QQuickWidget::mouseDoubleClickEvent(), QQuickWidget::mouseMoveEvent(), QGraphicsViewPrivate::mouseMoveEventHandler(), QQuickWidget::mousePressEvent(), QQuickWidget::mouseReleaseEvent(), QQuickDeliveryAgentPrivate::sendHoverEvent(), QQuickMouseArea::sendMouseEvent(), QQuickMultiPointTouchArea::sendMouseEvent(), and QQuickDeliveryAgentPrivate::touchToMouseEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setExclusiveGrabber()

void QPointerEvent::setExclusiveGrabber ( const QEventPoint & point,
QObject * exclusiveGrabber )

Informs the delivery logic that the given exclusiveGrabber is to receive all future update events and the release event containing the given point, and that delivery to other items can be skipped.

It's mainly for use in Qt Quick at this time.

Definition at line 369 of file qevent.cpp.

References exclusiveGrabber(), QPointingDevicePrivate::get(), point(), pointingDevice(), and Q_ASSERT.

Referenced by QQuickWindowPrivate::clearGrabbers(), QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem(), QQuickDeliveryAgentPrivate::deliverTouchAsMouse(), QQuickDeliveryAgentPrivate::removeGrabber(), and QSinglePointEvent::setExclusivePointGrabber().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setTimestamp()

void QPointerEvent::setTimestamp ( quint64 timestamp)
overridevirtual

Sets the timestamp for this event and its points().

Reimplemented from QInputEvent.

Definition at line 338 of file qevent.cpp.

References m_points, QMutableEventPoint::setTimestamp(), QInputEvent::setTimestamp(), and QInputEvent::timestamp().

Referenced by QQuickDeliveryAgentPrivate::deliverHoverEventToItem(), QWidgetWindow::handleMouseEvent(), QtQuickTest::mouseEvent(), QApplication::notify(), QQuickDeliveryAgentPrivate::sendHoverEvent(), and QGraphicsProxyWidgetPrivate::sendWidgetMouseEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_points

QList<QEventPoint> QPointerEvent::m_points
protected

Definition at line 105 of file qevent.h.

Referenced by QMutableTouchEvent::addPoint(), pointById(), setAccepted(), and setTimestamp().


The documentation for this class was generated from the following files: