4#include <tinyfiledialogs.h>
8 std::vector<const char*> DesktropFileDialog::ConvertFilters(
const std::vector<std::string>& filters)
const
10 std::vector<const char*> filterPtrs;
11 filterPtrs.reserve(filters.size());
12 for (
const auto& f : filters)
14 filterPtrs.push_back(f.c_str());
19 void DesktropFileDialog::OpenFile(
const std::string& title,
const std::string& defaultPathOrFile,
const std::vector<std::string>& filters,
const std::string& filterDescription,
bool allowMultiple)
21 std::vector<const char*> filterPtrs = ConvertFilters(filters);
23 const char* result = tinyfd_openFileDialog(
24 title.empty() ?
nullptr : title.c_str(),
25 defaultPathOrFile.empty() ? nullptr : defaultPathOrFile.c_str(),
26 static_cast<int>(filterPtrs.size()),
27 filterPtrs.empty() ? nullptr : filterPtrs.data(),
28 filterDescription.empty() ? nullptr : filterDescription.c_str(),
32 if (result ==
nullptr)
39 void DesktropFileDialog::SaveFile(
const std::string& title,
const std::string& defaultPathOrFile,
const std::vector<std::string>& filters,
const std::string& filterDescription)
41 std::vector<const char*> filterPtrs = ConvertFilters(filters);
43 const char* result = tinyfd_saveFileDialog(
44 title.empty() ?
nullptr : title.c_str(),
45 defaultPathOrFile.empty() ? nullptr : defaultPathOrFile.c_str(),
46 static_cast<int>(filterPtrs.size()),
47 filterPtrs.empty() ? nullptr : filterPtrs.data(),
48 filterDescription.empty() ? nullptr : filterDescription.c_str()
51 if (result ==
nullptr)
60 const char* result = tinyfd_selectFolderDialog(
61 title.empty() ?
nullptr : title.c_str(),
62 defaultPath.empty() ? nullptr : defaultPath.c_str()
65 if (result ==
nullptr)
virtual void SelectFolder(const std::string &title, const std::string &defaultPath) override
virtual void SaveFile(const std::string &title, const std::string &defaultPathOrFile, const std::vector< std::string > &filters, const std::string &filterDescription) override
virtual void OpenFile(const std::string &title, const std::string &defaultPathOrFile, const std::vector< std::string > &filters, const std::string &filterDescription, bool allowMultiple) override
void SetResult(const std::string &result)