From: Unknown (MT) Date: Mon, 13 Sep 1999 06:38:43 +0000 (+0000) Subject: Added callback to start in current directory X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/bfa2e032efc57f751b06257fabece5af097ae821 Added callback to start in current directory git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/dirdlg.cpp b/src/msw/dirdlg.cpp index 4be95f9efe..32505241db 100644 --- a/src/msw/dirdlg.cpp +++ b/src/msw/dirdlg.cpp @@ -46,6 +46,34 @@ IMPLEMENT_CLASS(wxDirDialog, wxDialog) #endif +static int CALLBACK +BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lp, LPARAM pData) + { + TCHAR szDir[MAX_PATH]; + + switch(uMsg) + { + case BFFM_INITIALIZED: + // We have put m_path into pData. + // TRUE -> passing char *, not dir id. + SendMessage(hwnd,BFFM_SETSELECTION,TRUE,pData); + break; + + case BFFM_SELCHANGED: + // Set the status window to the currently selected path. + if (SHGetPathFromIDList((LPITEMIDLIST) lp ,szDir)) + { + SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)szDir); + } + break; + + default: + break; + } + return 0; + } + + wxDirDialog::wxDirDialog(wxWindow *parent, const wxString& message, // const wxString& caption, const wxString& defaultPath, @@ -99,8 +127,8 @@ int wxDirDialog::ShowModal(void) bi.pszDisplayName = lpBuffer; bi.lpszTitle = m_message; // BC++ 4.52 says LPSTR, not LPTSTR? bi.ulFlags = 0; - bi.lpfn = NULL; - bi.lParam = 0; + bi.lpfn = BrowseCallbackProc; + bi.lParam = (LPARAM)m_path.c_str(); // Browse for a folder and return its PIDL. pidlBrowse = SHBrowseForFolder(&bi);