summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qplatformdrag_qpa.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel/qplatformdrag_qpa.h')
-rw-r--r--src/gui/kernel/qplatformdrag_qpa.h49
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