MSLU fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13383 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -398,7 +398,25 @@ int wxFileDialog::ShowModal()
|
|||||||
: (GetOpenFileName(&of) != 0);
|
: (GetOpenFileName(&of) != 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
#if wxUSE_UNICODE_MSLU && defined(OFN_EXPLORER)
|
||||||
|
// VS: these's a bug in unicows.dll - when multiple files are
|
||||||
|
// selected, of.nFileOffset doesn't point to the first
|
||||||
|
// filename but rather to the last component of directory
|
||||||
|
// name. Let's try to fix it:
|
||||||
|
if ( (m_dialogStyle & wxMULTIPLE) &&
|
||||||
|
(fileNameBuffer[of.nFileOffset-1] != wxT('\0')) &&
|
||||||
|
wxGetOsVersion() == wxWIN95 /*using unicows.dll*/)
|
||||||
|
{
|
||||||
|
if ( wxDirExists(fileNameBuffer) )
|
||||||
|
{
|
||||||
|
// 1st component is dir => multiple files selected
|
||||||
|
of.nFileOffset = wxStrlen(fileNameBuffer)+1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif // wxUSE_UNICODE_MSLU
|
||||||
|
|
||||||
|
#endif // __WIN32__
|
||||||
|
|
||||||
if ( success )
|
if ( success )
|
||||||
{
|
{
|
||||||
@@ -424,7 +442,7 @@ int wxFileDialog::ShowModal()
|
|||||||
i += wxStrlen(&fileNameBuffer[i]) + 1;
|
i += wxStrlen(&fileNameBuffer[i]) + 1;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
wxStringTokenizer toke(fileNameBuffer, " \t\r\n");
|
wxStringTokenizer toke(fileNameBuffer, _T(" \t\r\n"));
|
||||||
m_dir = toke.GetNextToken();
|
m_dir = toke.GetNextToken();
|
||||||
m_fileName = toke.GetNextToken();
|
m_fileName = toke.GetNextToken();
|
||||||
m_fileNames.Add(m_fileName);
|
m_fileNames.Add(m_fileName);
|
||||||
@@ -448,9 +466,10 @@ int wxFileDialog::ShowModal()
|
|||||||
|
|
||||||
m_filterIndex = (int)of.nFilterIndex - 1;
|
m_filterIndex = (int)of.nFilterIndex - 1;
|
||||||
|
|
||||||
if ( !of.nFileExtension || (of.nFileExtension && fileNameBuffer[ of.nFileExtension-1] != wxT('.')) )
|
if ( !of.nFileExtension ||
|
||||||
{ // user has typed an filename
|
(of.nFileExtension && fileNameBuffer[of.nFileExtension] == wxT('\0')) )
|
||||||
// without an extension:
|
{
|
||||||
|
// User has typed a filename without an extension:
|
||||||
|
|
||||||
int maxFilter = (int)(of.nFilterIndex*2L-1L);
|
int maxFilter = (int)(of.nFilterIndex*2L-1L);
|
||||||
extension = filterBuffer;
|
extension = filterBuffer;
|
||||||
|
Reference in New Issue
Block a user