mirror of
https://github.com/geode-sdk/geode.git
synced 2025-04-15 22:44:42 -04:00
new pick files to other platforms
This commit is contained in:
parent
f57601d0b5
commit
df459dec3c
3 changed files with 62 additions and 6 deletions
|
@ -138,8 +138,8 @@ Result<ghc::filesystem::path> file::pickFile(file::PickMode mode, file::FilePick
|
|||
|
||||
void file::pickFile(
|
||||
PickMode mode, FilePickOptions const& options,
|
||||
utils::MiniFunction<void(ghc::filesystem::path)> callback,
|
||||
utils::MiniFunction<void()> failed
|
||||
MiniFunction<void(ghc::filesystem::path)> callback,
|
||||
MiniFunction<void()> failed
|
||||
) {
|
||||
s_fileCallback = callback;
|
||||
s_failedCallback = failed;
|
||||
|
@ -178,8 +178,8 @@ Result<std::vector<ghc::filesystem::path>> file::pickFiles(file::FilePickOptions
|
|||
|
||||
void file::pickFiles(
|
||||
FilePickOptions const& options,
|
||||
utils::MiniFunction<void(std::vector<ghc::filesystem::path>)> callback,
|
||||
utils::MiniFunction<void()> failed
|
||||
MiniFunction<void(std::vector<ghc::filesystem::path>)> callback,
|
||||
MiniFunction<void()> failed
|
||||
) {
|
||||
s_filesCallback = callback;
|
||||
s_failedCallback = failed;
|
||||
|
|
|
@ -145,7 +145,7 @@ void utils::web::openLinkInBrowser(std::string const& url) {
|
|||
}
|
||||
@end
|
||||
|
||||
Result<ghc::filesystem::path> utils::file::pickFile(
|
||||
Result<ghc::filesystem::path> file::pickFile(
|
||||
file::PickMode mode, file::FilePickOptions const& options
|
||||
) {
|
||||
auto result = [FileDialog filePickerWithMode:mode options:options multiple: false];
|
||||
|
@ -157,13 +157,41 @@ Result<ghc::filesystem::path> utils::file::pickFile(
|
|||
}
|
||||
}
|
||||
|
||||
Result<std::vector<ghc::filesystem::path>> utils::file::pickFiles(
|
||||
GEODE_DLL void file::pickFile(
|
||||
PickMode mode, FilePickOptions const& options,
|
||||
MiniFunction<void(ghc::filesystem::path)> callback,
|
||||
MiniFunction<void()> failed
|
||||
) {
|
||||
auto result = file::pickFile(mode, options);
|
||||
|
||||
if (result.isOk()) {
|
||||
callback(std::move(result.unwrap()));
|
||||
} else {
|
||||
failed();
|
||||
}
|
||||
}
|
||||
|
||||
Result<std::vector<ghc::filesystem::path>> file::pickFiles(
|
||||
file::FilePickOptions const& options
|
||||
) {
|
||||
//return Err("utils::file::pickFiles is not implemented");
|
||||
return [FileDialog filePickerWithMode: file::PickMode::OpenFile options:options multiple:true];
|
||||
}
|
||||
|
||||
GEODE_DLL void file::pickFiles(
|
||||
FilePickOptions const& options,
|
||||
MiniFunction<void(ghc::filesystem::path)> callback,
|
||||
MiniFunction<void()> failed
|
||||
) {
|
||||
auto result = file::pickFiles(options);
|
||||
|
||||
if (result.isOk()) {
|
||||
callback(std::move(result.unwrap()));
|
||||
} else {
|
||||
failed();
|
||||
}
|
||||
}
|
||||
|
||||
CCPoint cocos::getMousePos() {
|
||||
auto windowFrame = NSApp.mainWindow.frame;
|
||||
auto viewFrame = NSApp.mainWindow.contentView.frame;
|
||||
|
|
|
@ -97,6 +97,20 @@ Result<ghc::filesystem::path> utils::file::pickFile(
|
|||
return Ok(path);
|
||||
}
|
||||
|
||||
GEODE_DLL void file::pickFile(
|
||||
PickMode mode, FilePickOptions const& options,
|
||||
MiniFunction<void(ghc::filesystem::path)> callback,
|
||||
MiniFunction<void()> failed
|
||||
) {
|
||||
auto result = file::pickFile(mode, options);
|
||||
|
||||
if (result.isOk()) {
|
||||
callback(std::move(result.unwrap()));
|
||||
} else {
|
||||
failed();
|
||||
}
|
||||
}
|
||||
|
||||
Result<std::vector<ghc::filesystem::path>> utils::file::pickFiles(
|
||||
file::FilePickOptions const& options
|
||||
) {
|
||||
|
@ -105,6 +119,20 @@ Result<std::vector<ghc::filesystem::path>> utils::file::pickFiles(
|
|||
return Ok(paths);
|
||||
}
|
||||
|
||||
GEODE_DLL void file::pickFiles(
|
||||
FilePickOptions const& options,
|
||||
MiniFunction<void(ghc::filesystem::path)> callback,
|
||||
MiniFunction<void()> failed
|
||||
) {
|
||||
auto result = file::pickFiles(options);
|
||||
|
||||
if (result.isOk()) {
|
||||
callback(std::move(result.unwrap()));
|
||||
} else {
|
||||
failed();
|
||||
}
|
||||
}
|
||||
|
||||
void utils::web::openLinkInBrowser(std::string const& url) {
|
||||
ShellExecuteA(0, 0, url.c_str(), 0, 0, SW_SHOW);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue