-public:
- wxFileCtrl();
- wxFileCtrl( wxWindow *win,
- wxStaticText *labelDir,
- wxWindowID id,
- const wxString &wild,
- bool showHidden,
- const wxPoint &pos = wxDefaultPosition,
- const wxSize &size = wxDefaultSize,
- long style = wxLC_LIST,
- const wxValidator &validator = wxDefaultValidator,
- const wxString &name = wxT("filelist") );
- virtual ~wxFileCtrl();
-
- 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 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:
- void FreeItemData(const wxListItem& item);
- void FreeAllItemsData();
-
- wxString m_dirName;
- bool m_showHidden;
- wxString m_wild;
-
- wxWindow *m_goToParentControl;
- wxWindow *m_newDirControl;
-
- // the label showing the current directory
- wxStaticText *m_labelDir;
-
- DECLARE_DYNAMIC_CLASS(wxFileCtrl);
- DECLARE_EVENT_TABLE()
-};
-
-// ----------------------------------------------------------------------------
-// private classes - icons list management
-// ----------------------------------------------------------------------------
+ wxFileData *fd1 = (wxFileData *)wxUIntToPtr(data1);
+ wxFileData *fd2 = (wxFileData *)wxUIntToPtr(data2);
+
+ if (fd1->GetFileName() == wxT(".."))
+ return -sortOrder;
+ if (fd2->GetFileName() == wxT(".."))
+ return sortOrder;
+ if (fd1->IsDir() && !fd2->IsDir())
+ return -sortOrder;
+ if (fd2->IsDir() && !fd1->IsDir())
+ return sortOrder;
+
+ return sortOrder*wxStrcmp( fd1->GetFileName(), fd2->GetFileName() );
+}