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
qquickmousearea_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QQUICKMOUSEAREA_P_H
5#define QQUICKMOUSEAREA_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include "qquickitem.h"
19#include <private/qtquickglobal_p.h>
20#include <QtCore/qstringlist.h>
21
23
25class QQuickDrag;
28// used in Qt Location
29class Q_QUICK_EXPORT QQuickMouseArea : public QQuickItem
30{
32
33 Q_PROPERTY(qreal mouseX READ mouseX NOTIFY mouseXChanged)
34 Q_PROPERTY(qreal mouseY READ mouseY NOTIFY mouseYChanged)
35 Q_PROPERTY(bool containsMouse READ hovered NOTIFY hoveredChanged)
36 Q_PROPERTY(bool pressed READ isPressed NOTIFY pressedChanged)
37 Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged)
38 Q_PROPERTY(bool scrollGestureEnabled READ isScrollGestureEnabled WRITE setScrollGestureEnabled NOTIFY scrollGestureEnabledChanged REVISION(2, 5))
39 Q_PROPERTY(Qt::MouseButtons pressedButtons READ pressedButtons NOTIFY pressedButtonsChanged)
40 Q_PROPERTY(Qt::MouseButtons acceptedButtons READ acceptedButtons WRITE setAcceptedButtons NOTIFY acceptedButtonsChanged)
41 Q_PROPERTY(bool hoverEnabled READ hoverEnabled WRITE setHoverEnabled NOTIFY hoverEnabledChanged)
42#if QT_CONFIG(quick_draganddrop)
43 Q_PROPERTY(QQuickDrag *drag READ drag CONSTANT) //### add flicking to QQuickDrag or add a QQuickFlick ???
44#endif
45 Q_PROPERTY(bool preventStealing READ preventStealing WRITE setPreventStealing NOTIFY preventStealingChanged)
46 Q_PROPERTY(bool propagateComposedEvents READ propagateComposedEvents WRITE setPropagateComposedEvents NOTIFY propagateComposedEventsChanged)
47#if QT_CONFIG(cursor)
48 Q_PROPERTY(Qt::CursorShape cursorShape READ cursorShape WRITE setCursorShape RESET unsetCursor NOTIFY cursorShapeChanged)
49#endif
50 Q_PROPERTY(bool containsPress READ containsPress NOTIFY containsPressChanged REVISION(2, 4))
51 Q_PROPERTY(int pressAndHoldInterval READ pressAndHoldInterval WRITE setPressAndHoldInterval NOTIFY pressAndHoldIntervalChanged RESET resetPressAndHoldInterval REVISION(2, 9))
52 QML_NAMED_ELEMENT(MouseArea)
54
55public:
56 QQuickMouseArea(QQuickItem *parent=nullptr);
58
59 qreal mouseX() const;
60 qreal mouseY() const;
61
62 bool isEnabled() const;
63 void setEnabled(bool);
64
65 bool isScrollGestureEnabled() const;
66 void setScrollGestureEnabled(bool);
67
68 bool hovered() const;
69 bool isPressed() const;
70 bool containsPress() const;
71
72 Qt::MouseButtons pressedButtons() const;
73
74 Qt::MouseButtons acceptedButtons() const;
75 void setAcceptedButtons(Qt::MouseButtons buttons);
76
77 bool hoverEnabled() const;
78 void setHoverEnabled(bool h);
79
80#if QT_CONFIG(quick_draganddrop)
81 QQuickDrag *drag();
82#endif
83
84 bool preventStealing() const;
85 void setPreventStealing(bool prevent);
86
87 bool propagateComposedEvents() const;
88 void setPropagateComposedEvents(bool propagate);
89
90#if QT_CONFIG(cursor)
91 Qt::CursorShape cursorShape() const;
92 void setCursorShape(Qt::CursorShape shape);
93#endif
94
95 int pressAndHoldInterval() const;
96 void setPressAndHoldInterval(int interval);
97 void resetPressAndHoldInterval();
98
103 Q_REVISION(2, 5) void scrollGestureEnabledChanged();
104 void pressedButtonsChanged();
105 void acceptedButtonsChanged();
106 void hoverEnabledChanged();
107#if QT_CONFIG(cursor)
108 void cursorShapeChanged();
109#endif
115
121#if QT_CONFIG(wheelevent)
122 void wheel(QQuickWheelEvent *wheel);
123#endif
124 void entered();
125 void exited();
126 void canceled();
127 Q_REVISION(2, 4) void containsPressChanged();
128 Q_REVISION(2, 9) void pressAndHoldIntervalChanged();
129
130protected:
131 void setHovered(bool);
132 bool setPressed(Qt::MouseButton button, bool p, Qt::MouseEventSource source);
133 bool sendMouseEvent(QMouseEvent *event);
134
135 void mousePressEvent(QMouseEvent *event) override;
136 void mouseReleaseEvent(QMouseEvent *event) override;
137 void mouseDoubleClickEvent(QMouseEvent *event) override;
138 void mouseMoveEvent(QMouseEvent *event) override;
139 void mouseUngrabEvent() override;
140 void touchUngrabEvent() override;
141 void hoverEnterEvent(QHoverEvent *event) override;
142 void hoverMoveEvent(QHoverEvent *event) override;
143 void hoverLeaveEvent(QHoverEvent *event) override;
144#if QT_CONFIG(wheelevent)
145 void wheelEvent(QWheelEvent *event) override;
146#endif
147 bool childMouseEventFilter(QQuickItem *i, QEvent *e) override;
148 void timerEvent(QTimerEvent *event) override;
149
150 void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
151 void itemChange(ItemChange change, const ItemChangeData& value) override;
152 QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;
153
154private:
155 void handlePress();
156 void handleRelease();
157 void ungrabMouse();
158
159private:
160 Q_DISABLE_COPY(QQuickMouseArea)
161 Q_DECLARE_PRIVATE(QQuickMouseArea)
162};
163
165
166#endif // QQUICKMOUSEAREA_P_H
\inmodule QtCore
Definition qcoreevent.h:45
\inmodule QtGui
Definition qevent.h:246
\inmodule QtGui
Definition qevent.h:196
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:63
ItemChange
Used in conjunction with QQuickItem::itemChange() to notify the item about certain types of changes.
Definition qquickitem.h:144
Q_REVISION(2, 5) void scrollGestureEnabledChanged()
void released(QQuickMouseEvent *mouse)
void mouseXChanged(QQuickMouseEvent *mouse)
void pressed(QQuickMouseEvent *mouse)
Q_REVISION(2, 4) void containsPressChanged()
void clicked(QQuickMouseEvent *mouse)
void hoveredChanged()
void positionChanged(QQuickMouseEvent *mouse)
void enabledChanged()
void doubleClicked(QQuickMouseEvent *mouse)
void propagateComposedEventsChanged()
void preventStealingChanged()
void pressAndHold(QQuickMouseEvent *mouse)
void mouseYChanged(QQuickMouseEvent *mouse)
void pressedChanged()
\qmlproperty int QtQuick::KeyEvent::key
\qmlproperty real QtQuick::MouseEvent::x \qmlproperty real QtQuick::MouseEvent::y
\inmodule QtCore\reentrant
Definition qrect.h:484
\group qtquick-scenegraph-nodes \title Qt Quick Scene Graph Node classes
Definition qsgnode.h:37
\inmodule QtCore
Definition qcoreevent.h:366
QPushButton * button
[2]
Combined button and popup list for selecting options.
Definition qcompare.h:63
CursorShape
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
static void unsetCursor(QWindow *w)
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLsizei GLchar * source
struct _cl_event * event
GLfloat GLfloat p
[1]
#define QML_NAMED_ELEMENT(NAME)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_REVISION(...)
#define Q_SIGNALS
double qreal
Definition qtypes.h:187
\inmodule QtQuick
Definition qquickitem.h:159