Skip to content

Commit

Permalink
new pick files to other platforms
Browse files Browse the repository at this point in the history
  • Loading branch information
altalk23 committed Oct 8, 2023
1 parent f57601d commit df459de
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 6 deletions.
8 changes: 4 additions & 4 deletions loader/src/platform/android/util.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
32 changes: 30 additions & 2 deletions loader/src/platform/mac/util.mm
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ @implementation FileDialog
}
@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];
Expand All @@ -157,13 +157,41 @@ @implementation FileDialog
}
}

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;
Expand Down
28 changes: 28 additions & 0 deletions loader/src/platform/windows/util.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
) {
Expand All @@ -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);
}
Expand Down

0 comments on commit df459de

Please sign in to comment.