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} \twocolwidtha{5cm}
\begin{twocollist} \begin{twocollist}
\twocolitem{\indexit{wxDD\_NEW\_DIR\_BUTTON}}{Add "Create new directory" button and allow \twocolitem{\indexit{wxDD\_NEW\_DIR\_BUTTON}}{Add "Create new
directory names to be editable. Available only on platforms that use the generic directory" button and allow directory names to be editable. On
dialog chooser: GTK+, Motif, X11, MGL. For other platforms, use the wxGenericDirDialog Windows the new directory button is only available with recent
implementation explicitly if you wish to use this style.} versions of the common dialogs.}
\end{twocollist} \end{twocollist}
See also \helpref{Generic window styles}{windowstyles}. 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, wxDirDialog::wxDirDialog(wxWindow *parent,
const wxString& message, const wxString& message,
const wxString& defaultPath, const wxString& defaultPath,
long WXUNUSED(style), long style,
const wxPoint& WXUNUSED(pos), const wxPoint& WXUNUSED(pos),
const wxSize& WXUNUSED(size), const wxSize& WXUNUSED(size),
const wxString& WXUNUSED(name)) const wxString& WXUNUSED(name))
{ {
m_message = message; m_message = message;
m_parent = parent; m_parent = parent;
SetStyle(style);
SetPath(defaultPath); SetPath(defaultPath);
} }
@@ -113,6 +114,10 @@ void wxDirDialog::SetPath(const wxString& path)
} }
} }
#ifndef BIF_NEWDIALOGSTYLE
#define BIF_NEWDIALOGSTYLE 0x0040
#endif
int wxDirDialog::ShowModal() int wxDirDialog::ShowModal()
{ {
wxWindow *parent = GetParent(); wxWindow *parent = GetParent();
@@ -126,6 +131,12 @@ int wxDirDialog::ShowModal()
bi.lpfn = BrowseCallbackProc; bi.lpfn = BrowseCallbackProc;
bi.lParam = (LPARAM)m_path.c_str(); // param for the callback 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); LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
if ( bi.pidlRoot ) if ( bi.pidlRoot )