00001 00002 // Name: DirectoryEntryArray.h 00003 // Purpose: 00004 // Author: Joe Yates 00005 // Modified by: 00006 // Created: 11/10/2004 00007 // RCS-ID: $Id: DirectoryEntryArray.h,v 1.1.1.1 2006/01/24 22:13:19 titusd Exp $ 00008 // Copyright: (c) BID Snc 00009 // License: BSD license (see the file 'LICENSE.txt') 00011 00012 #ifndef __DirectoryEntryArray_h__ 00013 #define __DirectoryEntryArray_h__ 00014 00015 #include "DirectoryEntry.h" 00016 00017 /* 00018 00019 DirectoryEntryArray holds lists of files and directories 00020 00021 */ 00022 00023 class DirectoryEntryArray : private std::vector<DirectoryEntry> 00024 { 00025 // friends, classes, enums and types 00026 friend class DirectoryView; // So it can add items 00027 00028 //typedef std::vector<DirectoryEntry>::iterator Iterator; 00029 //typedef std::vector<DirectoryEntry>::const_iterator ConstantIterator; 00030 00031 // Constructors/destructors 00032 public: 00033 DirectoryEntryArray(DirectoryEntrySortKey desNew = desFILENAME, int nNewTextSortFlags = 0, bool bNewShowHiddenFiles = true); 00034 00035 // Operators 00036 public: 00037 DirectoryEntryArray& operator+=(const DirectoryEntryArray& dea); 00038 00039 // Methods 00040 public: 00041 int GetCount() const; 00042 const DirectoryEntry * GetItem(int i) const; 00043 int GetIndexFromPathName(const wxString& sPathName) const; 00044 bool RemoveItem(const DirectoryEntry * dre); 00045 void AddDirectories(const wxString& sPath); 00046 void Sort(); 00047 void Clear(); 00048 00049 private: 00050 int AddDirectoryEntry(const wxString& sPath, const wxString& sName); 00051 void AddFiles(const wxString& sPath); 00052 00053 // Variables 00054 private: 00055 DirectoryEntrySortKey des; 00056 int nTextSortFlags; 00057 // Settings for file list construction 00058 bool bShowHiddenFiles; 00059 }; 00060 00061 #endif // ndef __DirectoryEntryArray_h__