reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

commit 92cdf4f44532484c8268b2f8c3646d59d5042d0b
parent d503bdf5dd0fa20530c1cc18bfa435fa1c05459a
Author: cfillion <cfillion@users.noreply.github.com>
Date:   Thu,  9 Feb 2017 22:16:02 -0500

filedialog: refactoring

Diffstat:
Msrc/filedialog.cpp | 36++++++++++++++++++++++--------------
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