Integrate dialog export and Apple service teams
This commit is contained in:
44
src/platform_apple/apple_platform_services.h
Normal file
44
src/platform_apple/apple_platform_services.h
Normal file
@@ -0,0 +1,44 @@
|
||||
#pragma once
|
||||
|
||||
#include "platform_api/platform_policy.h"
|
||||
#include "platform_api/platform_services.h"
|
||||
|
||||
#include <functional>
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
#include <vector>
|
||||
|
||||
namespace pp::platform::apple {
|
||||
|
||||
struct AppleDocumentPickerBridge {
|
||||
std::function<void(PickedPathCallback callback)> pick_image;
|
||||
std::function<void(std::vector<std::string> file_types, PickedPathCallback callback)> pick_file;
|
||||
std::function<void(std::vector<std::string> file_types, PickedPathCallback callback)> pick_save_file;
|
||||
std::function<void(PickedPathCallback callback)> pick_directory;
|
||||
std::function<std::string(std::string_view path)> format_working_directory_path;
|
||||
};
|
||||
|
||||
class AppleDocumentPlatformServices {
|
||||
public:
|
||||
explicit AppleDocumentPlatformServices(
|
||||
PlatformFamily family,
|
||||
AppleDocumentPickerBridge bridge = {});
|
||||
|
||||
[[nodiscard]] std::vector<std::string> document_browse_roots(
|
||||
std::string_view work_path,
|
||||
std::string_view data_path) const;
|
||||
|
||||
void pick_image(PickedPathCallback callback) const;
|
||||
void pick_file(std::vector<std::string> file_types, PickedPathCallback callback) const;
|
||||
void pick_save_file(std::vector<std::string> file_types, PickedPathCallback callback) const;
|
||||
void pick_directory(PickedPathCallback callback) const;
|
||||
|
||||
[[nodiscard]] bool supports_working_directory_picker() const;
|
||||
[[nodiscard]] std::string format_working_directory_path(std::string_view path) const;
|
||||
|
||||
private:
|
||||
PlatformFamily family_;
|
||||
AppleDocumentPickerBridge bridge_;
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user