qmouseevent.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB).
  4. ** Contact: https://www.qt.io/licensing/
  5. **
  6. ** This file is part of the Qt3D module of the Qt Toolkit.
  7. **
  8. ** $QT_BEGIN_LICENSE:LGPL$
  9. ** Commercial License Usage
  10. ** Licensees holding valid commercial Qt licenses may use this file in
  11. ** accordance with the commercial license agreement provided with the
  12. ** Software or, alternatively, in accordance with the terms contained in
  13. ** a written agreement between you and The Qt Company. For licensing terms
  14. ** and conditions see https://www.qt.io/terms-conditions. For further
  15. ** information use the contact form at https://www.qt.io/contact-us.
  16. **
  17. ** GNU Lesser General Public License Usage
  18. ** Alternatively, this file may be used under the terms of the GNU Lesser
  19. ** General Public License version 3 as published by the Free Software
  20. ** Foundation and appearing in the file LICENSE.LGPL3 included in the
  21. ** packaging of this file. Please review the following information to
  22. ** ensure the GNU Lesser General Public License version 3 requirements
  23. ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
  24. **
  25. ** GNU General Public License Usage
  26. ** Alternatively, this file may be used under the terms of the GNU
  27. ** General Public License version 2.0 or (at your option) the GNU General
  28. ** Public license version 3 or any later version approved by the KDE Free
  29. ** Qt Foundation. The licenses are as published by the Free Software
  30. ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
  31. ** included in the packaging of this file. Please review the following
  32. ** information to ensure the GNU General Public License requirements will
  33. ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
  34. ** https://www.gnu.org/licenses/gpl-3.0.html.
  35. **
  36. ** $QT_END_LICENSE$
  37. **
  38. ****************************************************************************/
  39. #ifndef QT3DINPUT_QMOUSEEVENT_H
  40. #define QT3DINPUT_QMOUSEEVENT_H
  41. #include <Qt3DInput/qt3dinput_global.h>
  42. #include <QObject>
  43. #include <QtGui/QMouseEvent>
  44. #include <QtGlobal>
  45. QT_BEGIN_NAMESPACE
  46. namespace Qt3DInput {
  47. class QT3DINPUTSHARED_EXPORT QMouseEvent : public QObject
  48. {
  49. Q_OBJECT
  50. Q_PROPERTY(int x READ x CONSTANT)
  51. Q_PROPERTY(int y READ y CONSTANT)
  52. Q_PROPERTY(bool wasHeld READ wasHeld CONSTANT)
  53. Q_PROPERTY(Qt3DInput::QMouseEvent::Buttons button READ button CONSTANT)
  54. Q_PROPERTY(int buttons READ buttons CONSTANT)
  55. Q_PROPERTY(Qt3DInput::QMouseEvent::Modifiers modifiers READ modifiers CONSTANT)
  56. Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted)
  57. public:
  58. enum Buttons {
  59. LeftButton = Qt::LeftButton,
  60. RightButton = Qt::RightButton,
  61. MiddleButton = Qt::MiddleButton,
  62. BackButton = Qt::BackButton,
  63. NoButton = Qt::NoButton
  64. };
  65. Q_ENUM(Buttons)
  66. enum Modifiers {
  67. NoModifier = Qt::NoModifier,
  68. ShiftModifier = Qt::ShiftModifier,
  69. ControlModifier = Qt::ControlModifier,
  70. AltModifier = Qt::AltModifier,
  71. MetaModifier = Qt::MetaModifier,
  72. KeypadModifier = Qt::KeypadModifier
  73. };
  74. Q_ENUM(Modifiers)
  75. explicit QMouseEvent(const QT_PREPEND_NAMESPACE(QMouseEvent) &e);
  76. ~QMouseEvent();
  77. inline int x() const { return m_event.x(); }
  78. inline int y() const { return m_event.y(); }
  79. inline bool wasHeld() const { return static_cast<Qt::GestureType>(m_event.type()) == Qt::TapAndHoldGesture; }
  80. Buttons button() const;
  81. int buttons() const;
  82. Modifiers modifiers() const;
  83. inline bool isAccepted() const { return m_event.isAccepted(); }
  84. inline void setAccepted(bool accepted) { m_event.setAccepted(accepted); }
  85. inline QEvent::Type type() const { return m_event.type(); }
  86. private:
  87. QT_PREPEND_NAMESPACE(QMouseEvent) m_event;
  88. };
  89. typedef QSharedPointer<QMouseEvent> QMouseEventPtr;
  90. class QT3DINPUTSHARED_EXPORT QWheelEvent : public QObject
  91. {
  92. Q_OBJECT
  93. Q_PROPERTY(int x READ x CONSTANT)
  94. Q_PROPERTY(int y READ y CONSTANT)
  95. Q_PROPERTY(QPoint angleDelta READ angleDelta CONSTANT)
  96. Q_PROPERTY(int buttons READ buttons CONSTANT)
  97. Q_PROPERTY(Qt3DInput::QWheelEvent::Modifiers modifiers READ modifiers CONSTANT)
  98. Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted)
  99. public:
  100. enum Buttons {
  101. LeftButton = Qt::LeftButton,
  102. RightButton = Qt::RightButton,
  103. MiddleButton = Qt::MiddleButton,
  104. BackButton = Qt::BackButton,
  105. NoButton = Qt::NoButton
  106. };
  107. Q_ENUM(Buttons)
  108. enum Modifiers {
  109. NoModifier = Qt::NoModifier,
  110. ShiftModifier = Qt::ShiftModifier,
  111. ControlModifier = Qt::ControlModifier,
  112. AltModifier = Qt::AltModifier,
  113. MetaModifier = Qt::MetaModifier,
  114. KeypadModifier = Qt::KeypadModifier
  115. };
  116. Q_ENUM(Modifiers)
  117. explicit QWheelEvent(const QT_PREPEND_NAMESPACE(QWheelEvent) &e);
  118. ~QWheelEvent();
  119. inline int x() const { return m_event.x(); }
  120. inline int y() const { return m_event.y(); }
  121. inline QPoint angleDelta() const { return m_event.angleDelta(); }
  122. int buttons() const;
  123. Modifiers modifiers() const;
  124. inline bool isAccepted() const { return m_event.isAccepted(); }
  125. inline void setAccepted(bool accepted) { m_event.setAccepted(accepted); }
  126. inline QEvent::Type type() const { return m_event.type(); }
  127. private:
  128. QT_PREPEND_NAMESPACE(QWheelEvent) m_event;
  129. };
  130. typedef QSharedPointer<QWheelEvent> QWheelEventPtr;
  131. } // namespace Qt3DInput
  132. QT_END_NAMESPACE
  133. Q_DECLARE_METATYPE(Qt3DInput::QMouseEvent*)
  134. Q_DECLARE_METATYPE(Qt3DInput::QWheelEvent*)
  135. #endif // QT3DINPUT_QMOUSEEVENT_H