- // type of function used by wxArrayString::Sort()
- typedef int (*CompareFunction)(const wxString& first,
- const wxString& second);
-
- // constructors and destructor
- // default ctor
- wxArrayString()
- : m_nSize(0), m_nCount(0), m_pItems(NULL), m_autoSort(FALSE)
- { Init(FALSE); }
- // if autoSort is TRUE, the array is always sorted (in alphabetical order)
- //
- // NB: the reason for using int and not bool is that like this we can avoid
- // using this ctor for implicit conversions from "const char *" (which
- // we'd like to be implicitly converted to wxString instead!)
- //
- // of course, using explicit would be even better - if all compilers
- // supported it...
- wxArrayString(int autoSort)
- : m_nSize(0), m_nCount(0), m_pItems(NULL), m_autoSort(FALSE)
- { Init(autoSort != 0); }
- // copy ctor
- wxArrayString(const wxArrayString& array);
- // assignment operator
- wxArrayString& operator=(const wxArrayString& src);
- // not virtual, this class should not be derived from
- ~wxArrayString();
-
- // memory management
- // empties the list, but doesn't release memory
- void Empty();
- // empties the list and releases memory
- void Clear();
- // preallocates memory for given number of items
- void Alloc(size_t nCount);
- // minimzes the memory usage (by freeing all extra memory)
- void Shrink();
-
- // simple accessors
- // number of elements in the array
- size_t GetCount() const { return m_nCount; }
- // is it empty?
- bool IsEmpty() const { return m_nCount == 0; }
- // number of elements in the array (GetCount is preferred API)
- size_t Count() const { return m_nCount; }
-
- // items access (range checking is done in debug version)
- // get item at position uiIndex
- wxString& Item(size_t nIndex) const
- {
- wxASSERT_MSG( nIndex < m_nCount,
- _T("wxArrayString: index out of bounds") );
-
- return *(wxString *)&(m_pItems[nIndex]);
- }