Give wxMSW's wxDirDialog support for wxDD_NEW_DIR_BUTTON

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15750 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2002-06-05 16:30:13 +00:00
parent 15c9541c9f
commit 90a6f1cca8
2 changed files with 17 additions and 6 deletions

View File

@ -18,10 +18,10 @@ This class represents the directory chooser dialog.
\twocolwidtha{5cm}
\begin{twocollist}
\twocolitem{\indexit{wxDD\_NEW\_DIR\_BUTTON}}{Add "Create new directory" button and allow
directory names to be editable. Available only on platforms that use the generic
dialog chooser: GTK+, Motif, X11, MGL. For other platforms, use the wxGenericDirDialog
implementation explicitly if you wish to use this style.}
\twocolitem{\indexit{wxDD\_NEW\_DIR\_BUTTON}}{Add "Create new
directory" button and allow directory names to be editable. On
Windows the new directory button is only available with recent
versions of the common dialogs.}
\end{twocollist}
See also \helpref{Generic window styles}{windowstyles}.

View File

@ -80,14 +80,15 @@ static int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp,
wxDirDialog::wxDirDialog(wxWindow *parent,
const wxString& message,
const wxString& defaultPath,
long WXUNUSED(style),
long style,
const wxPoint& WXUNUSED(pos),
const wxSize& WXUNUSED(size),
const wxString& WXUNUSED(name))
{
m_message = message;
m_parent = parent;
SetStyle(style);
SetPath(defaultPath);
}
@ -113,6 +114,10 @@ void wxDirDialog::SetPath(const wxString& path)
}
}
#ifndef BIF_NEWDIALOGSTYLE
#define BIF_NEWDIALOGSTYLE 0x0040
#endif
int wxDirDialog::ShowModal()
{
wxWindow *parent = GetParent();
@ -126,6 +131,12 @@ int wxDirDialog::ShowModal()
bi.lpfn = BrowseCallbackProc;
bi.lParam = (LPARAM)m_path.c_str(); // param for the callback
if ((GetStyle() & wxDD_NEW_DIR_BUTTON) &&
(wxApp::GetComCtl32Version() >= 500))
{
bi.ulFlags |= BIF_NEWDIALOGSTYLE;
}
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
if ( bi.pidlRoot )