summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qevent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel/qevent.cpp')
-rw-r--r--src/gui/kernel/qevent.cpp144
1 files changed, 106 insertions, 38 deletions
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index 9e6a8d6e52..fff27cd908 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -48,6 +48,7 @@
#include "qmime.h"
#include "private/qdnd_p.h"
#include "qevent_p.h"
+#include "qmath.h"
#ifdef Q_OS_SYMBIAN
#include "private/qcore_symbian_p.h"
@@ -161,7 +162,7 @@ QInputEvent::~QInputEvent()
position explicitly.
*/
-QMouseEvent::QMouseEvent(Type type, const QPoint &position, Qt::MouseButton button,
+QMouseEvent::QMouseEvent(Type type, const QPointF &position, Qt::MouseButton button,
Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
: QInputEvent(type, modifiers), p(position), b(button), mouseState(buttons)
{
@@ -193,28 +194,20 @@ QMouseEvent::~QMouseEvent()
modifiers.
*/
-QMouseEvent::QMouseEvent(Type type, const QPoint &pos, const QPoint &globalPos,
+QMouseEvent::QMouseEvent(Type type, const QPointF &pos, const QPointF &globalPos,
Qt::MouseButton button, Qt::MouseButtons buttons,
Qt::KeyboardModifiers modifiers)
: QInputEvent(type, modifiers), p(pos), g(globalPos), b(button), mouseState(buttons)
{}
/*!
- \internal
-*/
-QMouseEvent *QMouseEvent::createExtendedMouseEvent(Type type, const QPointF &pos,
- const QPoint &globalPos, Qt::MouseButton button,
- Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
-{
- return new QMouseEventEx(type, pos, globalPos, button, buttons, modifiers);
-}
-
-/*!
\fn bool QMouseEvent::hasExtendedInfo() const
\internal
*/
/*!
+ \fn QPointF QMouseEvent::posF() const
+
\since 4.4
Returns the position of the mouse cursor as a QPointF, relative to the
@@ -226,28 +219,6 @@ QMouseEvent *QMouseEvent::createExtendedMouseEvent(Type type, const QPointF &pos
\sa x() y() pos() globalPos()
*/
-QPointF QMouseEvent::posF() const
-{
- return hasExtendedInfo() ? reinterpret_cast<const QMouseEventEx *>(this)->posF : QPointF(pos());
-}
-
-/*!
- \internal
-*/
-QMouseEventEx::QMouseEventEx(Type type, const QPointF &pos, const QPoint &globalPos,
- Qt::MouseButton button, Qt::MouseButtons buttons,
- Qt::KeyboardModifiers modifiers)
- : QMouseEvent(type, pos.toPoint(), globalPos, button, buttons, modifiers), posF(pos)
-{
- d = reinterpret_cast<QEventPrivate *>(this);
-}
-
-/*!
- \internal
-*/
-QMouseEventEx::~QMouseEventEx()
-{
-}
/*!
\fn const QPoint &QMouseEvent::pos() const
@@ -440,8 +411,8 @@ QMouseEventEx::~QMouseEventEx()
receiving widget, while \a oldPos is the previous mouse cursor's
position relative to the receiving widget.
*/
-QHoverEvent::QHoverEvent(Type type, const QPoint &pos, const QPoint &oldPos)
- : QEvent(type), p(pos), op(oldPos)
+QHoverEvent::QHoverEvent(Type type, const QPointF &pos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers)
+ : QInputEvent(type, modifiers), p(pos), op(oldPos)
{
}
@@ -507,7 +478,7 @@ QHoverEvent::~QHoverEvent()
\sa pos() delta() state()
*/
#ifndef QT_NO_WHEELEVENT
-QWheelEvent::QWheelEvent(const QPoint &pos, int delta,
+QWheelEvent::QWheelEvent(const QPointF &pos, int delta,
Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,
Qt::Orientation orient)
: QInputEvent(Wheel, modifiers), p(pos), d(delta), mouseState(buttons), o(orient)
@@ -533,7 +504,7 @@ QWheelEvent::~QWheelEvent()
\sa pos() globalPos() delta() state()
*/
-QWheelEvent::QWheelEvent(const QPoint &pos, const QPoint& globalPos, int delta,
+QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, int delta,
Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,
Qt::Orientation orient)
: QInputEvent(Wheel, modifiers), p(pos), g(globalPos), d(delta), mouseState(buttons), o(orient)
@@ -4355,4 +4326,101 @@ const QScrollEventPrivate *QScrollEvent::d_func() const
return reinterpret_cast<const QScrollEventPrivate *>(d);
}
+/*!
+ \enum QScreenOrientationChangeEvent::Orientation
+
+ This enum describes the orientations that a device can have.
+
+ \value Portrait The device is in a position where its top edge is pointing up.
+
+ \value Landscape The device is rotated clockwise 90 degrees, so that its left edge is pointing up.
+
+ \value PortraitInverted The device is rotated 180 degrees, so that its bottom edge is pointing up.
+
+ \value LandscapeInverted The device is counterclockwise 90 degrees, so that its right edge is pointing up.
+
+ \sa QScreenOrientationChangeEvent::orientation()
+ \sa QScreenOrientationChangeEvent::orientationInDegrees()
+*/
+
+/*!
+ Creates a new QScreenOrientationChangeEvent
+ \a screenOrientationInDegrees is the new screen orientation, expressed in degrees.
+ The orientation must be expressed in steps of 90 degrees.
+*/
+QScreenOrientationChangeEvent::QScreenOrientationChangeEvent(qint32 screenOrientationInDegrees)
+ : QEvent(QEvent::OrientationChange)
+{
+ d = reinterpret_cast<QEventPrivate *>(new QScreenOrientationChangeEventPrivate());
+ d_func()->orientationInDegrees = screenOrientationInDegrees;
+
+ qint32 orientationIndex = (qAbs(screenOrientationInDegrees) % 360) / 90;
+ // flip around the negative coords to correct order.
+ if (screenOrientationInDegrees < 0) {
+ if (orientationIndex == 1)
+ orientationIndex = 3;
+ else if (orientationIndex == 3)
+ orientationIndex = 1;
+ }
+
+ orientationIndex = qPow(2, orientationIndex);
+ d_func()->orientation = (QScreenOrientationChangeEvent::Orientation)(orientationIndex);
+ d_func()->isValid = (screenOrientationInDegrees % 90 == 0);
+}
+
+/*!
+ Creates a new QScreenOrientationChangeEvent
+ \a orientation is the new orientation of the screen.
+*/
+QScreenOrientationChangeEvent::QScreenOrientationChangeEvent(QScreenOrientationChangeEvent::Orientation screenOrientation)
+ : QEvent(QEvent::OrientationChange)
+{
+ d = reinterpret_cast<QEventPrivate *>(new QScreenOrientationChangeEventPrivate());
+ d_func()->orientation = screenOrientation;
+ d_func()->orientationInDegrees = 90 * ((uint)screenOrientation);
+ d_func()->isValid = true;
+}
+
+/*!
+ Destroys QScreenOrientationChangeEvent.
+*/
+QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent()
+{
+ delete reinterpret_cast<QScrollEventPrivate *>(d);
+}
+
+/*!
+ Returns the orientation of the screen.
+*/
+QScreenOrientationChangeEvent::Orientation QScreenOrientationChangeEvent::orientation() const
+{
+ return d_func()->orientation;
+}
+
+/*!
+ Returns the screen orientation in degrees.
+ The orientation is expressed in steps of 90 degrees and depends on the previous value of the orientation.
+ This is intended to allow for smooth animations from one orientation to the other.
+*/
+qint32 QScreenOrientationChangeEvent::orientationInDegrees() const
+{
+ return d_func()->orientationInDegrees;
+}
+
+/*!
+ \internal
+*/
+QScreenOrientationChangeEventPrivate *QScreenOrientationChangeEvent::d_func()
+{
+ return reinterpret_cast<QScreenOrientationChangeEventPrivate *>(d);
+}
+
+/*!
+ \internal
+*/
+const QScreenOrientationChangeEventPrivate *QScreenOrientationChangeEvent::d_func() const
+{
+ return reinterpret_cast<const QScreenOrientationChangeEventPrivate *>(d);
+}
+
QT_END_NAMESPACE