Files
panopainter/src/platform_api/platform_services.h

29 lines
973 B
C++

#pragma once
#include <functional>
#include <string>
#include <string_view>
#include <vector>
namespace pp::platform {
using PickedPathCallback = std::function<void(std::string path)>;
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<std::string> file_types, PickedPathCallback callback) = 0;
virtual void pick_save_file(std::vector<std::string> file_types, PickedPathCallback callback) = 0;
virtual void pick_directory(PickedPathCallback callback) = 0;
};
}