summaryrefslogtreecommitdiff
path: root/src/xwayland/XDataSource.hpp
blob: 686991d54f0730b8a0ed9d0fc76be2832a65fbbb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include "../protocols/types/DataDevice.hpp"
#include <hyprutils/os/FileDescriptor.hpp>

struct SXSelection;

class CXDataSource : public IDataSource {
  public:
    CXDataSource(SXSelection&);

    virtual std::vector<std::string> mimes();
    virtual void                     send(const std::string& mime, Hyprutils::OS::CFileDescriptor fd);
    virtual void                     accepted(const std::string& mime);
    virtual void                     cancelled();
    virtual void                     error(uint32_t code, const std::string& msg);
    virtual eDataSourceType          type();

  private:
    SXSelection&             m_selection;
    std::vector<std::string> m_mimeTypes; // these two have shared idx
    std::vector<uint32_t>    m_mimeAtoms; //
};