commit 92cdf4f44532484c8268b2f8c3646d59d5042d0b
parent d503bdf5dd0fa20530c1cc18bfa435fa1c05459a
Author: cfillion <cfillion@users.noreply.github.com>
Date: Thu, 9 Feb 2017 22:16:02 -0500
filedialog: refactoring
Diffstat:
1 file changed, 22 insertions(+), 14 deletions(-)
diff --git a/src/filedialog.cpp b/src/filedialog.cpp
@@ -24,44 +24,52 @@
#endif
auto_string FileDialog::getOpenFileName(HWND parent, HINSTANCE instance,
- const auto_char *title, const Path &directory,
+ const auto_char *title, const Path &initialDir,
const auto_char *filters, const auto_char *defaultExt)
{
#ifdef _WIN32
+ const auto_string &dirPath = make_autostring(initialDir.join());
auto_char path[4096] = {};
- OPENFILENAME of{sizeof(OPENFILENAME), parent, instance,
- filters, nullptr, 0, 0, path, auto_size(path),
- nullptr, 0, make_autocstring(directory.join()), title,
- OFN_HIDEREADONLY | OFN_EXPLORER | OFN_FILEMUSTEXIST, 0, 0, defaultExt
- };
+ OPENFILENAME of{sizeof(OPENFILENAME), parent, instance};
+ of.lpstrFilter = filters;
+ of.lpstrFile = path;
+ of.nMaxFile = auto_size(path);
+ of.lpstrInitialDir = dirPath.c_str();
+ of.lpstrTitle = title;
+ of.Flags = OFN_HIDEREADONLY | OFN_EXPLORER | OFN_FILEMUSTEXIST;
+ of.lpstrDefExt = defaultExt;
return GetOpenFileName(&of) ? path : auto_string();
#else
- char *path = BrowseForFiles(title, directory.join().c_str(),
+ char *path = BrowseForFiles(title, initialDir.join().c_str(),
nullptr, false, filters);
return path ? path : auto_string();
#endif
}
auto_string FileDialog::getSaveFileName(HWND parent, HINSTANCE instance,
- const auto_char *title, const Path &directory,
+ const auto_char *title, const Path &initialDir,
const auto_char *filters, const auto_char *defaultExt)
{
#ifdef _WIN32
+ const auto_string &dirPath = make_autostring(initialDir.join());
auto_char path[4096] = {};
- OPENFILENAME of{sizeof(OPENFILENAME), parent, instance,
- filters, nullptr, 0, 0, path, auto_size(path),
- nullptr, 0, make_autocstring(directory.join()), title,
- OFN_HIDEREADONLY | OFN_EXPLORER | OFN_OVERWRITEPROMPT, 0, 0, defaultExt
- };
+ OPENFILENAME of{sizeof(OPENFILENAME), parent, instance};
+ of.lpstrFilter = filters;
+ of.lpstrFile = path;
+ of.nMaxFile = auto_size(path);
+ of.lpstrInitialDir = dirPath.c_str();
+ of.lpstrTitle = title;
+ of.Flags = OFN_HIDEREADONLY | OFN_EXPLORER | OFN_OVERWRITEPROMPT;
+ of.lpstrDefExt = defaultExt;
return GetSaveFileName(&of) ? path : auto_string();
#else
char path[4096] = {};
- if(BrowseForSaveFile(title, directory.join().c_str(),
+ if(BrowseForSaveFile(title, initialDir.join().c_str(),
nullptr, filters, path, sizeof(path)))
return path;
else