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:
@@ -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}.
|
||||||
|
@@ -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 )
|
||||||
|
Reference in New Issue
Block a user