/* * Author: Robert Roebling * * Copyright: (C) 1997,1998 Robert Roebling * * This library is free software; you can redistribute it and/or * modify it under the terms of the wxWindows Licence, which * you have received with this library (see Licence.htm). * */ #ifndef FileList_h #define FileList_h #ifdef __GNUG__ #pragma interface #endif #include "wx/wx.h" #include "wx/listctrl.h" //----------------------------------------------------------------------------- // derived classes //----------------------------------------------------------------------------- class wxFileData; class wxFileCtrl; //----------------------------------------------------------------------------- // wxFileData //----------------------------------------------------------------------------- class wxFileData : public wxObject { DECLARE_DYNAMIC_CLASS(wxFileData); private: wxString m_name; wxString m_fileName; long m_size; int m_hour; int m_minute; int m_year; int m_month; int m_day; wxString m_permissions; bool m_isDir; bool m_isLink; bool m_isExe; public: wxFileData( void ) {}; wxFileData( const wxString &name, const wxString &fname ); wxString GetName(void) const; wxString GetFullName(void) const; wxString GetHint(void) const; wxString GetEntry( const int num ); bool IsDir( void ); bool IsLink( void ); bool IsExe( void ); long GetSize( void ); bool NewNameIsLegal( const wxString &s ); bool Rename( const wxString &s ); void MakeItem( wxListItem &item ); }; //----------------------------------------------------------------------------- // wxFileCtrl //----------------------------------------------------------------------------- class wxFileCtrl : public wxListCtrl { DECLARE_DYNAMIC_CLASS(wxFileCtrl); public: static wxFileCtrl* m_lastFocus; private: wxString m_dirName; bool m_showHidden; int m_dragStartX; int m_dragStartY; int m_dragCount; public: wxFileCtrl( void ); wxFileCtrl( wxWindow *win, const wxWindowID id, const wxString &dirName, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, const long style = wxLC_LIST, const wxString &name = "filelist" ); void ChangeToListMode(); void ChangeToReportMode(); void ChangeToIconMode(); void ShowHidden( bool show = TRUE ); void Update( void ); virtual void StatusbarText( char *WXUNUSED(text) ) {}; int FillList( wxStringList &list ); void DeleteFiles(void); void CopyFiles( char *dest ); void MoveFiles( char *dest ); void RenameFile(void); void MakeDir(void); void GoToParentDir(void); void GoToHomeDir(void); void GoToDir( const wxString &dir ); void GetDir( wxString &dir ); void OnListDeleteItem( wxListEvent &event ); void OnListKeyDown( wxListEvent &event ); void OnListEndLabelEdit( wxListEvent &event ); void OnSetFocus( wxFocusEvent &event ); DECLARE_EVENT_TABLE() }; #endif // FileList_h