29 lines
973 B
C++
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;
|
|
};
|
|
|
|
}
|