#ifndef UI_OZONE_PLATFORM_X11_X11_CLIPBOARD_OZONE_H_
#define UI_OZONE_PLATFORM_X11_X11_CLIPBOARD_OZONE_H_
#include <memory>
#include <string>
#include "base/functional/callback.h"
#include "ui/base/clipboard/clipboard_buffer.h"
#include "ui/ozone/public/platform_clipboard.h"
namespace ui {
class XClipboardHelper;
class X11ClipboardOzone : public PlatformClipboard {
public:
X11ClipboardOzone();
X11ClipboardOzone(const X11ClipboardOzone&) = delete;
X11ClipboardOzone& operator=(const X11ClipboardOzone&) = delete;
~X11ClipboardOzone() override;
void OfferClipboardData(
ClipboardBuffer buffer,
const PlatformClipboard::DataMap& data_map,
PlatformClipboard::OfferDataClosure callback) override;
void RequestClipboardData(
ClipboardBuffer buffer,
const std::string& mime_type,
PlatformClipboard::RequestDataClosure callback) override;
void GetAvailableMimeTypes(
ClipboardBuffer buffer,
PlatformClipboard::GetMimeTypesClosure callback) override;
bool IsSelectionOwner(ClipboardBuffer buffer) override;
void SetClipboardDataChangedCallback(
ClipboardDataChangedCallback data_changed_callback) override;
bool IsSelectionBufferAvailable() const override;
private:
void OnSelectionChanged(ClipboardBuffer buffer);
const std::unique_ptr<XClipboardHelper> helper_;
ClipboardDataChangedCallback clipboard_changed_callback_;
};
}
#endif