summaryrefslogtreecommitdiffstats
path: root/src/compositor/wayland_wrapper/qwldatasource_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/compositor/wayland_wrapper/qwldatasource_p.h')
-rw-r--r--src/compositor/wayland_wrapper/qwldatasource_p.h38
1 files changed, 17 insertions, 21 deletions
diff --git a/src/compositor/wayland_wrapper/qwldatasource_p.h b/src/compositor/wayland_wrapper/qwldatasource_p.h
index be855d8da..01ac4cbd9 100644
--- a/src/compositor/wayland_wrapper/qwldatasource_p.h
+++ b/src/compositor/wayland_wrapper/qwldatasource_p.h
@@ -41,9 +41,8 @@
#ifndef WLDATASOURCE_H
#define WLDATASOURCE_H
-#include <wayland-server.h>
+#include <QtCompositor/private/qwayland-server-wayland.h>
-#include <QtCore/QByteArray>
#include <QtCore/QList>
QT_BEGIN_NAMESPACE
@@ -51,40 +50,37 @@ QT_BEGIN_NAMESPACE
namespace QtWayland {
class DataOffer;
+class DataDevice;
class DataDeviceManager;
-class DataSource
+class DataSource : public QtWaylandServer::wl_data_source
{
public:
DataSource(struct wl_client *client, uint32_t id, uint32_t time);
~DataSource();
uint32_t time() const;
- QList<QByteArray> offerList() const;
+ QList<QString> mimeTypes() const;
- DataOffer *dataOffer() const;
-
- void postSendEvent(const QByteArray &mimeType,int fd);
- struct wl_client *client() const;
+ void accept(const QString &mimeType);
+ void send(const QString &mimeType,int fd);
+ void cancel();
void setManager(DataDeviceManager *mgr);
+ void setDevice(DataDevice *device);
+
+ static DataSource *fromResource(struct ::wl_resource *resource);
+
+protected:
+ void data_source_offer(Resource *resource, const QString &mime_type) Q_DECL_OVERRIDE;
+ void data_source_destroy(Resource *resource) Q_DECL_OVERRIDE;
+ void data_source_destroy_resource(Resource *resource) Q_DECL_OVERRIDE;
private:
uint32_t m_time;
- QList<QByteArray> m_offers;
- struct wl_resource *m_data_source_resource;
-
- DataOffer *m_data_offer;
+ QList<QString> m_mimeTypes;
+ DataDevice *m_device;
DataDeviceManager *m_manager;
-
- static struct wl_data_source_interface data_source_interface;
- static void offer(struct wl_client *client,
- struct wl_resource *resource,
- const char *type);
- static void destroy(struct wl_client *client,
- struct wl_resource *resource);
-
- static void resource_destroy(struct wl_resource *resource);
};
}