X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..01cf2f9512e90d1c70e9423f5b099fe5624bcc1b:/src/msw/dirdlg.cpp?ds=sidebyside diff --git a/src/msw/dirdlg.cpp b/src/msw/dirdlg.cpp index fed0b69a8b..7e0994ed74 100644 --- a/src/msw/dirdlg.cpp +++ b/src/msw/dirdlg.cpp @@ -16,6 +16,7 @@ // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- + #ifdef __GNUG__ #pragma implementation "dirdlg.h" #endif @@ -27,7 +28,9 @@ #pragma hdrstop #endif -#if defined(__WIN95__) && !defined(__GNUWIN32_OLD__) +#if wxUSE_DIRDLG + +#if defined(__WIN95__) && !defined(__GNUWIN32_OLD__) && wxUSE_OLE #ifndef WX_PRECOMP #include "wx/utils.h" @@ -38,7 +41,7 @@ #include "wx/msw/private.h" -#include "shlobj.h" // Win95 shell +#include // Win95 shell // ---------------------------------------------------------------------------- // constants @@ -83,7 +86,13 @@ wxDirDialog::wxDirDialog(wxWindow *parent, m_message = message; m_parent = parent; m_path = defaultPath; - m_path.Replace(_T("/"), _T("\\")); // SHBrowseForFolder doesn't like '/'s + + // SHBrowseForFolder doesn't like '/'s nor the trailing backslashes + m_path.Replace(_T("/"), _T("\\")); + if ( *m_path.end() == _T('\\') ) + { + m_path.erase(m_path.length() - 1); + } } int wxDirDialog::ShowModal() @@ -148,7 +157,14 @@ BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData) TCHAR szDir[MAX_PATH]; if ( SHGetPathFromIDList((LPITEMIDLIST)lp, szDir) ) { - SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)szDir); + wxString strDir(szDir); + int maxChars = 40; // Have to truncate string else it displays incorrectly + if (strDir.Len() > (size_t) (maxChars - 3)) + { + strDir = strDir.Right(maxChars - 3); + strDir = wxString(wxT("...")) + strDir; + } + SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM) (const wxChar*) strDir); } } break; @@ -182,3 +198,5 @@ static void ItemListFree(LPITEMIDLIST pidl) #else #include "../generic/dirdlgg.cpp" #endif // compiler/platform on which the code here compiles + +#endif // wxUSE_DIRDLG