#pragma once #include #include #include #include namespace pp::platform { using PickedPathCallback = std::function; class PlatformServices { public: virtual ~PlatformServices() = default; [[nodiscard]] virtual std::string clipboard_text() = 0; [[nodiscard]] virtual bool set_clipboard_text(std::string_view text) = 0; virtual void set_cursor_visible(bool visible) = 0; virtual void set_virtual_keyboard_visible(bool visible) = 0; virtual void display_file(std::string_view path) = 0; virtual void share_file(std::string_view path) = 0; virtual void pick_image(PickedPathCallback callback) = 0; virtual void pick_file(std::vector file_types, PickedPathCallback callback) = 0; virtual void pick_save_file(std::vector file_types, PickedPathCallback callback) = 0; virtual void pick_directory(PickedPathCallback callback) = 0; }; }