+//-----------------------------------------------------------------------------
+// wxFileCtrl
+//-----------------------------------------------------------------------------
+
+class wxFileCtrl : public wxListCtrl
+{
+public:
+ wxFileCtrl();
+ wxFileCtrl( wxWindow *win,
+ wxWindowID id,
+ const wxString &dirName,
+ const wxString &wild,
+ const wxPoint &pos = wxDefaultPosition,
+ const wxSize &size = wxDefaultSize,
+ long style = wxLC_LIST,
+ const wxValidator &validator = wxDefaultValidator,
+ const wxString &name = wxT("filelist") );
+ void ChangeToListMode();
+ void ChangeToReportMode();
+ void ChangeToIconMode();
+ void ShowHidden( bool show = TRUE );
+ long Add( wxFileData *fd, wxListItem &item );
+ void UpdateFiles();
+ virtual void StatusbarText( wxChar *WXUNUSED(text) ) {};
+ void MakeDir();
+ void GoToParentDir();
+ void GoToHomeDir();
+ void GoToDir( const wxString &dir );
+ void SetWild( const wxString &wild );
+ void GetDir( wxString &dir );
+ void OnListDeleteItem( wxListEvent &event );
+ void OnListDeleteAllItems( wxListEvent &event );
+ void OnListEndLabelEdit( wxListEvent &event );
+
+ // Associate commonly used UI controls with wxFileCtrl so that they can be
+ // disabled when they cannot be used (e.g. can't go to parent directory
+ // if wxFileCtrl already is in the root dir):
+ void SetGoToParentControl(wxWindow *ctrl) { m_goToParentControl = ctrl; }
+ void SetNewDirControl(wxWindow *ctrl) { m_newDirControl = ctrl; }
+
+private:
+ wxString m_dirName;
+ bool m_showHidden;
+ wxString m_wild;
+
+ wxWindow *m_goToParentControl;
+ wxWindow *m_newDirControl;
+
+ DECLARE_DYNAMIC_CLASS(wxFileCtrl);
+ DECLARE_EVENT_TABLE()
+};