diff options
Diffstat (limited to 'src/gui/kernel/qevent.cpp')
-rw-r--r-- | src/gui/kernel/qevent.cpp | 270 |
1 files changed, 90 insertions, 180 deletions
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index e40ad9d..328ba3d 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -53,8 +53,6 @@ QT_BEGIN_NAMESPACE -QString qt_getStandardGestureTypeName(Qt::GestureType type); - /*! \class QInputEvent \ingroup events @@ -116,8 +114,12 @@ QInputEvent::~QInputEvent() propagated up the parent widget chain until a widget accepts it with accept(), or an event filter consumes it. + \note If a mouse event is propagated to a \l{QWidget}{widget} for + which Qt::WA_NoMousePropagation has been set, that mouse event + will not be propagated further up the parent widget chain. + The state of the keyboard modifier keys can be found by calling the - \l{QInputEvent::modifiers()}{modifiers()} function, inhertied from + \l{QInputEvent::modifiers()}{modifiers()} function, inherited from QInputEvent. The functions pos(), x(), and y() give the cursor position @@ -3332,9 +3334,6 @@ QDebug operator<<(QDebug dbg, const QEvent *e) { case QEvent::ChildRemoved: n = n ? n : "ChildRemoved"; dbg.nospace() << "QChildEvent(" << n << ", " << (static_cast<const QChildEvent*>(e))->child(); return dbg.space(); - case QEvent::Gesture: - n = "Gesture"; - break; default: dbg.nospace() << "QEvent(" << (const void *)e << ", type = " << e->type() << ')'; return dbg.space(); @@ -3531,169 +3530,24 @@ QMenubarUpdatedEvent::QMenubarUpdatedEvent(QMenuBar * const menuBar) #endif -/*! - \class QGestureEvent - \since 4.6 - \ingroup events - - \brief The QGestureEvent class provides the parameters used for - gesture recognition. - - The QGestureEvent class contains a list of gestures that are being - executed right now (\l{QGestureEvent::}{gestureTypes()}) and a - list of gestures that are cancelled (the gesture might be - cancelled because the window lost focus, or because of timeout, - etc). - - \sa QGesture -*/ - -/*! - Creates new QGestureEvent containing a list of \a gestures that - are being executed and a list of gesture that were cancelled (\a - cancelledGestures). -*/ -QGestureEvent::QGestureEvent(const QSet<QGesture*> &gestures, - const QSet<QString> &cancelledGestures) - : QEvent(QEvent::Gesture), m_cancelledGestures(cancelledGestures) -{ - setAccepted(false); - foreach(QGesture *r, gestures) - m_gestures.insert(r->type(), r); -} - -/*! - Destroys the QGestureEvent object. -*/ -QGestureEvent::~QGestureEvent() -{ -} - -/*! - Returns true if the gesture event contains gesture of specific \a - type; returns false otherwise. -*/ -bool QGestureEvent::contains(Qt::GestureType type) const -{ - return contains(qt_getStandardGestureTypeName(type)); -} - -/*! - Returns true if the gesture event contains gesture of specific \a - type; returns false otherwise. -*/ -bool QGestureEvent::contains(const QString &type) const -{ - return gesture(type) != 0; -} - -/*! - Returns a list of gesture names that this event contains. -*/ -QList<QString> QGestureEvent::gestureTypes() const -{ - return m_gestures.keys(); -} - -/*! - Returns extended information about a gesture of specific \a type. -*/ -const QGesture* QGestureEvent::gesture(Qt::GestureType type) const -{ - return gesture(qt_getStandardGestureTypeName(type)); -} - -/*! - Returns extended information about a gesture of specific \a type. -*/ -const QGesture* QGestureEvent::gesture(const QString &type) const -{ - return m_gestures.value(type, 0); -} - -/*! - Returns extended information about all gestures in the event. -*/ -QList<QGesture*> QGestureEvent::gestures() const -{ - return m_gestures.values(); -} - -/*! - Returns a set of gesture names that used to be executed, but were - cancelled (i.e. they were not finished properly). -*/ -QSet<QString> QGestureEvent::cancelledGestures() const -{ - return m_cancelledGestures; -} - -/*! - Sets the accept flag of the all gestures inside the event object, - the equivalent of calling \l{QEvent::accept()}{accept()} or - \l{QEvent::setAccepted()}{setAccepted(true)}. - - Setting the accept parameter indicates that the event receiver - wants the gesture. Unwanted gestures might be propagated to the parent - widget. -*/ -void QGestureEvent::acceptAll() -{ - QHash<QString, QGesture*>::iterator it = m_gestures.begin(), - e = m_gestures.end(); - for(; it != e; ++it) - it.value()->accept(); - setAccepted(true); -} - -/*! - Sets the accept flag of the gesture specified by \a type. - This is equivalent to calling - \l{QGestureEvent::gesture()}{gesture(type)}-> - \l{QGesture::accept()}{accept()} - - Setting the accept flag indicates that the event receiver wants - the gesture. Unwanted gestures might be propagated to the parent - widget. -*/ -void QGestureEvent::accept(Qt::GestureType type) -{ - if (QGesture *g = m_gestures.value(qt_getStandardGestureTypeName(type), 0)) - g->accept(); -} - -/*! - Sets the accept flag of the gesture specified by \a type. - This is equivalent to calling - \l{QGestureEvent::gesture()}{gesture(type)}-> - \l{QGesture::accept()}{accept()} - - Setting the accept flag indicates that the event receiver wants - the gesture. Unwanted gestures might be propagated to the parent - widget. -*/ -void QGestureEvent::accept(const QString &type) -{ - if (QGesture *g = m_gestures.value(type, 0)) - g->accept(); -} - /*! \class QTouchEvent - \brief The QTouchEvent class contains parameters that describe a touch event -. + \brief The QTouchEvent class contains parameters that describe a touch event. \since 4.6 \ingroup events Touch events occur when pressing, releasing, or moving one or more touch points on a touch device (such as a touch-screen or - track-pad), and if the widget has the Qt::WA_AcceptTouchEvents - attribute. + track-pad). To receive touch events, widgets have to have the + Qt::WA_AcceptTouchEvents attribute set and graphics items need to have + the \l{QGraphicsItem::setAcceptTouchEvents()}{acceptTouchEvents} + attribute set to true. All touch events are of type QEvent::TouchBegin, QEvent::TouchUpdate, or QEvent::TouchEnd. The touchPoints() function returns a list of all touch points contained in the event. - Information about each touch point can be retreived using the - QTouchEvent::TouchPoint class. + Information about each touch point can be retrieved using the + QTouchEvent::TouchPoint class. The Qt::TouchPointState enum + describes the different states that a touch point may have. Similar to QMouseEvent, Qt automatically grabs each touch point on the first press inside a widget; the widget will receive all @@ -3711,10 +3565,11 @@ void QGestureEvent::accept(const QString &type) then mouse events are simulated from the state of the first touch point. - The Qt::TouchPointState enum describes the different states that a - touch point may have. + Reimplement QWidget::event() for widgets and QGraphicsItem::sceneEvent() + for items in a graphics view to receive touch events. - QTouchEvent::TouchPoint Qt::TouchPointState Qt::WA_AcceptTouchEvents + \sa QTouchEvent::TouchPoint, Qt::TouchPointState, Qt::WA_AcceptTouchEvents, + QGraphicsItem::acceptTouchEvents() */ /*! \enum Qt::TouchPointState @@ -3732,13 +3587,7 @@ void QGestureEvent::accept(const QString &type) \omitvalue TouchPointPrimary */ -/*! \class QTouchEvent::TouchPoint - \brief The QTouchEvent::TouchPoint class provide information about a touch point in a QTouchEvent. - \since 4.6 -*/ - /*! \enum QTouchEvent::DeviceType - \since 4.6 This enum represents the type of device that generated a QTouchEvent. @@ -3817,6 +3666,11 @@ QTouchEvent::~QTouchEvent() Sets the list of touch points for this event. */ +/*! \class QTouchEvent::TouchPoint + \brief The QTouchEvent::TouchPoint class provides information about a touch point in a QTouchEvent. + \since 4.6 +*/ + /*! \internal Constructs a QTouchEvent::TouchPoint for use in a QTouchEvent. @@ -3876,7 +3730,9 @@ bool QTouchEvent::TouchPoint::isPrimary() const /*! Returns the position of this touch point, relative to the widget - or item that received the event. + or QGraphicsItem that received the event. + + \sa startPos(), lastPos(), screenPos(), scenePos(), normalizedPos() */ QPointF QTouchEvent::TouchPoint::pos() const { @@ -3885,6 +3741,13 @@ QPointF QTouchEvent::TouchPoint::pos() const /*! Returns the scene position of this touch point. + + The scene position is the position in QGraphicsScene coordinates + if the QTouchEvent is handled by a QGraphicsItem::touchEvent() + reimplementation, and identical to the screen position for + widgets. + + \sa startScenePos(), lastScenePos(), pos() */ QPointF QTouchEvent::TouchPoint::scenePos() const { @@ -3893,6 +3756,8 @@ QPointF QTouchEvent::TouchPoint::scenePos() const /*! Returns the screen position of this touch point. + + \sa startScreenPos(), lastScreenPos(), pos() */ QPointF QTouchEvent::TouchPoint::screenPos() const { @@ -3900,8 +3765,12 @@ QPointF QTouchEvent::TouchPoint::screenPos() const } /*! - Returns the position of this touch point. The coordinates are normalized to size of the touch - device, i.e. (0,0) is the top-left corner and (1,1) is the bottom-right corner. + Returns the normalized position of this touch point. + + The coordinates are normalized to the size of the touch device, + i.e. (0,0) is the top-left corner and (1,1) is the bottom-right corner. + + \sa startNormalizedPos(), lastNormalizedPos(), pos() */ QPointF QTouchEvent::TouchPoint::normalizedPos() const { @@ -3910,7 +3779,9 @@ QPointF QTouchEvent::TouchPoint::normalizedPos() const /*! Returns the starting position of this touch point, relative to the - widget that received the event. + widget or QGraphicsItem that received the event. + + \sa pos(), lastPos() */ QPointF QTouchEvent::TouchPoint::startPos() const { @@ -3919,6 +3790,13 @@ QPointF QTouchEvent::TouchPoint::startPos() const /*! Returns the starting scene position of this touch point. + + The scene position is the position in QGraphicsScene coordinates + if the QTouchEvent is handled by a QGraphicsItem::touchEvent() + reimplementation, and identical to the screen position for + widgets. + + \sa scenePos(), lastScenePos() */ QPointF QTouchEvent::TouchPoint::startScenePos() const { @@ -3927,6 +3805,8 @@ QPointF QTouchEvent::TouchPoint::startScenePos() const /*! Returns the starting screen position of this touch point. + + \sa screenPos(), lastScreenPos() */ QPointF QTouchEvent::TouchPoint::startScreenPos() const { @@ -3934,8 +3814,12 @@ QPointF QTouchEvent::TouchPoint::startScreenPos() const } /*! - Returns the starting position of this touch point. The coordinates are normalized to size of - the touch device, i.e. (0,0) is the top-left corner and (1,1) is the bottom-right corner. + Returns the normalized starting position of this touch point. + + The coordinates are normalized to the size of the touch device, + i.e. (0,0) is the top-left corner and (1,1) is the bottom-right corner. + + \sa normalizedPos(), lastNormalizedPos() */ QPointF QTouchEvent::TouchPoint::startNormalizedPos() const { @@ -3944,7 +3828,9 @@ QPointF QTouchEvent::TouchPoint::startNormalizedPos() const /*! Returns the position of this touch point from the previous touch - event, relative to the widget that received the event. + event, relative to the widget or QGraphicsItem that received the event. + + \sa pos(), startPos() */ QPointF QTouchEvent::TouchPoint::lastPos() const { @@ -3954,6 +3840,13 @@ QPointF QTouchEvent::TouchPoint::lastPos() const /*! Returns the scene position of this touch point from the previous touch event. + + The scene position is the position in QGraphicsScene coordinates + if the QTouchEvent is handled by a QGraphicsItem::touchEvent() + reimplementation, and identical to the screen position for + widgets. + + \sa scenePos(), startScenePos() */ QPointF QTouchEvent::TouchPoint::lastScenePos() const { @@ -3963,6 +3856,8 @@ QPointF QTouchEvent::TouchPoint::lastScenePos() const /*! Returns the screen position of this touch point from the previous touch event. + + \sa screenPos(), startScreenPos() */ QPointF QTouchEvent::TouchPoint::lastScreenPos() const { @@ -3970,9 +3865,13 @@ QPointF QTouchEvent::TouchPoint::lastScreenPos() const } /*! - Returns the position of this touch point from the previous touch event. The coordinates are - normalized to size of the touch device, i.e. (0,0) is the top-left corner and (1,1) is the - bottom-right corner. + Returns the normalized position of this touch point from the + previous touch event. + + The coordinates are normalized to the size of the touch device, + i.e. (0,0) is the top-left corner and (1,1) is the bottom-right corner. + + \sa normalizedPos(), startNormalizedPos() */ QPointF QTouchEvent::TouchPoint::lastNormalizedPos() const { @@ -3980,8 +3879,11 @@ QPointF QTouchEvent::TouchPoint::lastNormalizedPos() const } /*! - Returns the rect for this touch point. The rect is centered around the point returned by pos(). - Note this function returns an empty rect if the device does not report touch point sizes. + Returns the rect for this touch point, relative to the widget + or QGraphicsItem that received the event. The rect is centered + around the point returned by pos(). + + \note This function returns an empty rect if the device does not report touch point sizes. */ QRectF QTouchEvent::TouchPoint::rect() const { @@ -3990,6 +3892,10 @@ QRectF QTouchEvent::TouchPoint::rect() const /*! Returns the rect for this touch point in scene coordinates. + + \note This function returns an empty rect if the device does not report touch point sizes. + + \sa scenePos(), rect() */ QRectF QTouchEvent::TouchPoint::sceneRect() const { @@ -3998,6 +3904,10 @@ QRectF QTouchEvent::TouchPoint::sceneRect() const /*! Returns the rect for this touch point in screen coordinates. + + \note This function returns an empty rect if the device does not report touch point sizes. + + \sa screenPos(), rect() */ QRectF QTouchEvent::TouchPoint::screenRect() const { |