/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace GUI { class Clipboard { public: static Clipboard& the(); ByteBuffer data() const { return data_and_type().data; } String mime_type() const { return data_and_type().mime_type; } void set_data(ReadonlyBytes, const String& mime_type = "text/plain", const HashMap& metadata = {}); void clear(); void set_plain_text(const String& text) { set_data(text.bytes()); } void set_bitmap(const Gfx::Bitmap&); RefPtr bitmap() const; struct DataAndType { ByteBuffer data; String mime_type; HashMap metadata; }; DataAndType data_and_type() const; Function on_change; static void initialize(Badge); private: Clipboard(); }; }