X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4050e98de9c43a9fa60dffb35202d89d749ba081..5b88a837ba75928cd3835a6b97ae2bf5ad983a6e:/interface/wx/dynarray.h diff --git a/interface/wx/dynarray.h b/interface/wx/dynarray.h index 54e1f22f73..6001afe745 100644 --- a/interface/wx/dynarray.h +++ b/interface/wx/dynarray.h @@ -197,11 +197,24 @@ - WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_INT() + @section array_predef Predefined array types + + wxWidgets defines the following dynamic array types: + - ::wxArrayShort + - ::wxArrayInt + - ::wxArrayDouble + - ::wxArrayLong + - ::wxArrayPtrVoid + + To use them you don't need any macro; you just need to include @c dynarray.h. + + @library{wxbase} @category{containers} @see @ref overview_container, wxList, wxVector */ +template class wxArray { public: @@ -224,10 +237,12 @@ public: Default constructor. */ wxArray(); + /** Default constructor initializes an empty array object. */ wxObjArray(); + /** There is no default constructor for wxSortedArray classes - you must initialize it with a function to use for item comparison. It is a @@ -243,11 +258,13 @@ public: even if the source array contains the items of pointer type). */ wxArray(const wxArray& array); + /** Performs a shallow array copy (i.e. doesn't copy the objects pointed to even if the source array contains the items of pointer type). */ wxSortedArray(const wxSortedArray& array); + /** Performs a deep copy (i.e. the array element are copied too). */ @@ -258,11 +275,13 @@ public: even if the source array contains the items of pointer type). */ wxArray& operator=(const wxArray& array); + /** Performs a shallow array copy (i.e. doesn't copy the objects pointed to even if the source array contains the items of pointer type). */ wxSortedArray& operator=(const wxSortedArray& array); + /** Performs a deep copy (i.e. the array element are copied too). */ @@ -273,11 +292,13 @@ public: may use the WX_CLEAR_ARRAY() macro for this. */ ~wxArray(); + /** This destructor does not delete all the items owned by the array, you may use the WX_CLEAR_ARRAY() macro for this. */ ~wxSortedArray(); + /** This destructor deletes all the items owned by the array. */ @@ -384,6 +405,7 @@ public: a lot of items. */ void Add(T item, size_t copies = 1); + /** Appends the @a item to the array consisting of the elements of type @c T. @@ -392,6 +414,7 @@ public: @a item is stored. */ size_t Add(T item); + /** Appends the @a item to the array consisting of the elements of type @c T. @@ -407,6 +430,7 @@ public: a lot of items. */ void Add(T* item); + /** Appends the given number of @a copies of the @a item to the array consisting of the elements of type @c T. @@ -445,6 +469,7 @@ public: overloaded versions of this function. */ void Insert(T item, size_t n, size_t copies = 1); + /** Insert the @a item into the array before the existing item @a n - thus, @e Insert(something, 0u) will insert an item in such way that it will @@ -457,6 +482,7 @@ public: overloaded versions of this function. */ void Insert(T* item, size_t n); + /** Insert the given number of @a copies of the @a item into the array before the existing item @a n - thus, @e Insert(something, 0u) will @@ -520,14 +546,16 @@ public: @code T *item = array[n]; + array.Remove(item); delete item; - array.Remove(n); @endcode See also WX_CLEAR_ARRAY() macro which deletes all elements of a wxArray (supposed to contain pointers). + + @see RemoveAt() */ - Remove(T item); + void Remove(T item); /** Removes @a count elements starting at @a index from the array. When an @@ -545,7 +573,7 @@ public: See also WX_CLEAR_ARRAY() macro which deletes all elements of a wxArray (supposed to contain pointers). */ - RemoveAt(size_t index, size_t count = 1); + void RemoveAt(size_t index, size_t count = 1); //@} @@ -570,6 +598,7 @@ public: another, identical, element is in the array. */ int Index(T& item, bool searchFromEnd = false) const; + /** This version of Index() is for wxSortedArray only. @@ -578,7 +607,7 @@ public: @c wxNOT_FOUND is returned if the element is not found, otherwise the index of the element is returned. */ - const int Index(T& item) const; + int Index(T& item) const; /** Search for a place to insert @a item into the sorted array (binary @@ -619,17 +648,17 @@ public: /** - This macro may be used to append all elements of the @a other array to the - @a array. The two arrays must be of the same type. + This macro may be used to append all elements of the @a wxArray_arrayToBeAppended + array to the @a wxArray_arrayToModify. The two arrays must be of the same type. */ -#define WX_APPEND_ARRAY(wxArray& array, wxArray& other) +#define WX_APPEND_ARRAY(wxArray_arrayToModify, wxArray_arrayToBeAppended) /** This macro may be used to delete all elements of the array before emptying it. It can not be used with wxObjArrays - but they will delete their elements anyway when you call Empty(). */ -#define WX_CLEAR_ARRAY(wxArray& array) +#define WX_CLEAR_ARRAY(wxArray_arrayToBeCleared) //@{ /** @@ -764,8 +793,18 @@ public: //@} /** - This macro may be used to prepend all elements of the @a other array to the - @a array. The two arrays must be of the same type. + This macro may be used to prepend all elements of the @a wxArray_arrayToBePrepended + array to the @a wxArray_arrayToModify. The two arrays must be of the same type. */ -#define WX_PREPEND_ARRAY(wxArray& array, wxArray& other) +#define WX_PREPEND_ARRAY(wxArray_arrayToModify, wxArray_arrayToBePrepended) +//@{ +/** + Predefined specialization of wxArray for standard types. +*/ +typedef wxArray wxArrayInt; +typedef wxArray wxArrayLong; +typedef wxArray wxArrayShort; +typedef wxArray wxArrayDouble; +typedef wxArray wxArrayPtrVoid; +//@}