Auto complete file names in the text controls of wx{File,Dir}PickerCtrl.

There doesn't seem to be any reason not to do this in the controls which we
know are meant for entering file or directory names into them.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2011-08-27 14:11:20 +00:00
parent 9a995b1a42
commit ea7ff9ad2a
4 changed files with 51 additions and 17 deletions

View File

@ -253,13 +253,7 @@ public:
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = wxFLP_DEFAULT_STYLE, long style = wxFLP_DEFAULT_STYLE,
const wxValidator& validator = wxDefaultValidator, const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxFilePickerCtrlNameStr) const wxString& name = wxFilePickerCtrlNameStr);
{
return wxFileDirPickerCtrlBase::CreateBase(parent, id, path,
message, wildcard,
pos, size, style,
validator, name);
}
void SetFileName(const wxFileName &filename) void SetFileName(const wxFileName &filename)
{ SetPath(filename.GetFullPath()); } { SetPath(filename.GetFullPath()); }
@ -358,14 +352,7 @@ public:
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = wxDIRP_DEFAULT_STYLE, long style = wxDIRP_DEFAULT_STYLE,
const wxValidator& validator = wxDefaultValidator, const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxDirPickerCtrlNameStr) const wxString& name = wxDirPickerCtrlNameStr);
{
return wxFileDirPickerCtrlBase::CreateBase
(
parent, id, path, message, wxEmptyString,
pos, size, style, validator, name
);
}
void SetDirName(const wxFileName &dirname) void SetDirName(const wxFileName &dirname)
{ SetPath(dirname.GetPath()); } { SetPath(dirname.GetPath()); }

View File

@ -203,7 +203,7 @@ void DirPickerWidgetsPage::RecreatePicker()
{ {
m_sizer->Remove(1); m_sizer->Remove(1);
CreatePicker(); CreatePicker();
m_sizer->Insert(1, m_dirPicker, 0, wxALIGN_CENTER|wxALL, 5); m_sizer->Insert(1, m_dirPicker, 0, wxEXPAND|wxALL, 5);
m_sizer->Layout(); m_sizer->Layout();
} }

View File

@ -234,7 +234,7 @@ void FilePickerWidgetsPage::RecreatePicker()
{ {
m_sizer->Remove(1); m_sizer->Remove(1);
CreatePicker(); CreatePicker();
m_sizer->Insert(1, m_filePicker, 0, wxALIGN_CENTER||wxALL, 5); m_sizer->Insert(1, m_filePicker, 0, wxEXPAND|wxALL, 5);
m_sizer->Layout(); m_sizer->Layout();
} }

View File

@ -183,6 +183,30 @@ void wxFileDirPickerCtrlBase::OnFileDirChange(wxFileDirPickerEvent &ev)
IMPLEMENT_DYNAMIC_CLASS(wxFilePickerCtrl, wxPickerBase) IMPLEMENT_DYNAMIC_CLASS(wxFilePickerCtrl, wxPickerBase)
bool wxFilePickerCtrl::Create(wxWindow *parent,
wxWindowID id,
const wxString& path,
const wxString& message,
const wxString& wildcard,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name)
{
if ( !wxFileDirPickerCtrlBase::CreateBase
(
parent, id, path, message, wildcard,
pos, size, style, validator, name
) )
return false;
if ( HasTextCtrl() )
GetTextCtrl()->AutoCompleteFileNames();
return true;
}
bool wxFilePickerCtrl::CheckPath(const wxString& path) const bool wxFilePickerCtrl::CheckPath(const wxString& path) const
{ {
// if wxFLP_SAVE was given or wxFLP_FILE_MUST_EXIST has NOT been given we // if wxFLP_SAVE was given or wxFLP_FILE_MUST_EXIST has NOT been given we
@ -207,6 +231,29 @@ wxString wxFilePickerCtrl::GetTextCtrlValue() const
#if wxUSE_DIRPICKERCTRL #if wxUSE_DIRPICKERCTRL
IMPLEMENT_DYNAMIC_CLASS(wxDirPickerCtrl, wxPickerBase) IMPLEMENT_DYNAMIC_CLASS(wxDirPickerCtrl, wxPickerBase)
bool wxDirPickerCtrl::Create(wxWindow *parent,
wxWindowID id,
const wxString& path,
const wxString& message,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name)
{
if ( !wxFileDirPickerCtrlBase::CreateBase
(
parent, id, path, message, wxString(),
pos, size, style, validator, name
) )
return false;
if ( HasTextCtrl() )
GetTextCtrl()->AutoCompleteDirectories();
return true;
}
bool wxDirPickerCtrl::CheckPath(const wxString& path) const bool wxDirPickerCtrl::CheckPath(const wxString& path) const
{ {
// if wxDIRP_DIR_MUST_EXIST has NOT been given we must accept any path // if wxDIRP_DIR_MUST_EXIST has NOT been given we must accept any path