git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14946
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
+// Name: wx/msw/dirdlg.h
// Purpose: wxDirDialog class
// Author: Julian Smart
// Modified by:
// Purpose: wxDirDialog class
// Author: Julian Smart
// Modified by:
WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorPromptStr;
WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorPromptStr;
-class WXDLLEXPORT wxDirDialog: public wxDialog
+class WXDLLEXPORT wxDirDialog : public wxDialog
-DECLARE_DYNAMIC_CLASS(wxDirDialog)
- wxDirDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr,
- const wxString& defaultPath = wxEmptyString,
- long style = 0, const wxPoint& pos = wxDefaultPosition);
+ wxDirDialog(wxWindow *parent,
+ const wxString& message = wxFileSelectorPromptStr,
+ const wxString& defaultPath = wxEmptyString,
+ long style = 0,
+ const wxPoint& pos = wxDefaultPosition);
- inline void SetMessage(const wxString& message) { m_message = message; }
- inline void SetPath(const wxString& path) { m_path = path; }
- inline void SetStyle(long style) { m_dialogStyle = style; }
+ void SetMessage(const wxString& message) { m_message = message; }
+ void SetPath(const wxString& path) { m_path = path; }
+ void SetStyle(long style) { m_dialogStyle = style; }
- inline wxString GetMessage(void) const { return m_message; }
- inline wxString GetPath(void) const { return m_path; }
- inline long GetStyle(void) const { return m_dialogStyle; }
+ wxString GetMessage() const { return m_message; }
+ wxString GetPath() const { return m_path; }
+ long GetStyle() const { return m_dialogStyle; }
+ virtual int ShowModal();
protected:
wxString m_message;
long m_dialogStyle;
protected:
wxString m_message;
long m_dialogStyle;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxDirDialog)
{
m_message = message;
m_parent = parent;
{
m_message = message;
m_parent = parent;
+
+ SetPath(defaultPath);
+}
+
+void wxDirDialog::SetPath(const wxString& path)
+{
+ m_path = path;
// SHBrowseForFolder doesn't like '/'s nor the trailing backslashes
m_path.Replace(_T("/"), _T("\\"));
// 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);
+ while ( *(m_path.end() - 1) == _T('\\') )
+ {
+ size_t len = m_path.length();
+ if ( len == 1 )
+ {
+ // leave '/' alone
+ break;
+ }
+
+ m_path.erase(len - 1);
+ }
}
}
int wxDirDialog::ShowModal()
{
}
}
int wxDirDialog::ShowModal()
{
+ wxWindow *parent = GetParent();
+
- bi.hwndOwner = m_parent ? GetHwndOf(m_parent) : NULL;
+ bi.hwndOwner = parent ? GetHwndOf(parent) : NULL;
bi.pidlRoot = NULL;
bi.pszDisplayName = NULL;
bi.lpszTitle = m_message.c_str();
bi.pidlRoot = NULL;
bi.pszDisplayName = NULL;
bi.lpszTitle = m_message.c_str();