diff options
Diffstat (limited to 'src/gui/kernel/qplatformdrag_qpa.h')
-rw-r--r-- | src/gui/kernel/qplatformdrag_qpa.h | 49 |
1 files changed, 43 insertions, 6 deletions
diff --git a/src/gui/kernel/qplatformdrag_qpa.h b/src/gui/kernel/qplatformdrag_qpa.h index 0c215071d3..7d22c69947 100644 --- a/src/gui/kernel/qplatformdrag_qpa.h +++ b/src/gui/kernel/qplatformdrag_qpa.h @@ -43,6 +43,7 @@ #define QPLATFORMDRAG_H #include <QtCore/qglobal.h> +#include <QtGui/QPixmap> QT_BEGIN_HEADER @@ -51,18 +52,54 @@ QT_BEGIN_NAMESPACE class QMimeData; class QMouseEvent; +class QDrag; +class QObject; +class QEvent; +class QPlatformDragPrivate; -class QPlatformDrag +class Q_GUI_EXPORT QPlatformDropQtResponse { public: - virtual ~QPlatformDrag() {} + QPlatformDropQtResponse(bool accepted, Qt::DropAction acceptedAction); + bool isAccepted() const; + Qt::DropAction acceptedAction() const; +private: + bool m_accepted; + Qt::DropAction m_accepted_action; + +}; + +class Q_GUI_EXPORT QPlatformDragQtResponse : public QPlatformDropQtResponse +{ +public: + QPlatformDragQtResponse(bool accepted, Qt::DropAction acceptedAction, QRect answerRect); + + QRect answerRect() const; + +private: + QRect m_answer_rect; +}; + +class Q_GUI_EXPORT QPlatformDrag +{ + Q_DECLARE_PRIVATE(QPlatformDrag) +public: + QPlatformDrag(); + virtual ~QPlatformDrag(); + + QDrag *currentDrag() const; virtual QMimeData *platformDropData() = 0; - virtual void startDrag() {} - virtual void move(const QMouseEvent *me) = 0; - virtual void drop(const QMouseEvent *me) = 0; - virtual void cancel() = 0; + virtual Qt::DropAction drag(QDrag *m_drag) = 0; + void updateAction(Qt::DropAction action); + + Qt::DropAction defaultAction(Qt::DropActions possibleActions, Qt::KeyboardModifiers modifiers) const; + + static QPixmap defaultPixmap(); + +private: + QPlatformDragPrivate *d_ptr; }; QT_END_NAMESPACE |