diff options
Diffstat (limited to 'src/compositor/wayland_wrapper/qwldatasource_p.h')
-rw-r--r-- | src/compositor/wayland_wrapper/qwldatasource_p.h | 38 |
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); }; } |