Added wxFilePickerCtrl::SetInitialDirectory().

This method allows to configure the initial directory to be shown when
browsing for files in an initially empty wxFileDirPickerCtrl.

It is also available for wxDirPickerCtrl but is less useful there.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70043 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2011-12-18 12:34:47 +00:00
parent b9bb74e9fc
commit 75cb911c7c
9 changed files with 182 additions and 17 deletions

View File

@@ -58,6 +58,8 @@ public: // overridable
virtual wxEventType GetEventType() const = 0;
virtual void SetInitialDirectory(const wxString& dir);
public:
bool Create(wxWindow *parent, wxWindowID id,
@@ -82,6 +84,9 @@ protected:
// just doesn't make sense to use picker styles for wxButton anyhow
long m_pickerStyle;
// Initial directory set by SetInitialDirectory() call or empty.
wxString m_initialDir;
private:
// common part of all ctors
void Init() { m_pickerStyle = -1; }
@@ -140,16 +145,7 @@ public: // overridable
return filedlgstyle;
}
virtual wxDialog *CreateDialog()
{
wxFileDialog *p = new wxFileDialog(GetDialogParent(), m_message,
wxEmptyString, wxEmptyString,
m_wildcard, GetDialogStyle());
// this sets both the default folder and the default file of the dialog
p->SetPath(m_path);
return p;
}
virtual wxDialog *CreateDialog();
wxEventType GetEventType() const
{ return wxEVT_COMMAND_FILEPICKER_CHANGED; }
@@ -160,6 +156,10 @@ protected:
void UpdatePathFromDialog(wxDialog *p)
{ m_path = wxStaticCast(p, wxFileDialog)->GetPath(); }
// Set the initial directory for the dialog but without overriding the
// directory of the currently selected file, if any.
void DoSetInitialDirectory(wxFileDialog* dialog, const wxString& dir);
private:
DECLARE_DYNAMIC_CLASS(wxGenericFileButton)
};
@@ -204,11 +204,7 @@ public: // overridable
return dirdlgstyle;
}
virtual wxDialog *CreateDialog()
{
return new wxDirDialog(GetDialogParent(), m_message, m_path,
GetDialogStyle());
}
virtual wxDialog *CreateDialog();
wxEventType GetEventType() const
{ return wxEVT_COMMAND_DIRPICKER_CHANGED; }