]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/array.tex
added new wxHF_ flags
[wxWidgets.git] / docs / latex / wx / array.tex
index 8d4fd6f665c9c2bcc3bddcd9203ae38dd6dd8352..1122c22ff8b38d9b7c20b1b607c1c8b2596624b6 100644 (file)
@@ -141,8 +141,10 @@ WX\_DECLARE\_OBJARRAY macros and must be fully declared before you use
 WX\_DEFINE\_OBJARRAY macro.
 
 \helpref{WX\_DEFINE\_ARRAY}{wxdefinearray}\\
+\helpref{WX\_DEFINE\_EXPORTED\_ARRAY}{wxdefinearray}\\
 \helpref{WX\_DEFINE\_SORTED\_ARRAY}{wxdefinesortedarray}\\
-\helpref{WX\_DECLARE\_OBJARRAY}{wxdeclareobjarray}\\
+\helpref{WX\_DEFINE\_SORTED\_EXPORTED\_ARRAY}{wxdefinesortedarray}\\
+\helpref{WX\_DECLARE\_EXPORTED\_OBJARRAY}{wxdeclareobjarray}\\
 \helpref{WX\_DEFINE\_OBJARRAY}{wxdefineobjarray}
 
 \membersection{Constructors and destructors}
@@ -193,13 +195,15 @@ does exactly the same as \helpref{Item()}{wxarrayitem} method.
 \membersection{Adding items}
 
 \helpref{Add}{wxarrayadd}\\
-\helpref{Insert}{wxarrayinsert}
+\helpref{Insert}{wxarrayinsert}\\
+\helpref{WX\_APPEND\_ARRAY}{wxappendarray}
 
 \membersection{Removing items}
 
 \helpref{WX\_CLEAR\_ARRAY}{wxcleararray}\\
 \helpref{Empty}{wxarrayempty}\\
 \helpref{Clear}{wxarrayclear}\\
+\helpref{RemoveAt}{wxarrayremoveat}\\
 \helpref{Remove}{wxarrayremove}
 
 \membersection{Searching and sorting}
@@ -218,8 +222,12 @@ does exactly the same as \helpref{Item()}{wxarrayitem} method.
 
 \func{}{WX\_DEFINE\_ARRAY}{\param{}{T}, \param{}{name}}
 
+\func{}{WX\_DEFINE\_EXPORTED\_ARRAY}{\param{}{T}, \param{}{name}}
+
 This macro defines a new array class named {\it name} and containing the
-elements of type {\it T}. Example:
+elements of type {\it T}. The second form is used when compiling DLL
+under Windows and array needs to be visible outside the DLL.
+Example:
 
 \begin{verbatim}
 WX_DEFINE_ARRAY(int, wxArrayInt);
@@ -235,8 +243,14 @@ wxArrayLong and wxArrayPtrVoid.
 
 \func{}{WX\_DEFINE\_SORTED\_ARRAY}{\param{}{T}, \param{}{name}}
 
+\func{}{WX\_DEFINE\_SORTED\_EXPORTED\_ARRAY}{\param{}{T}, \param{}{name}}
+
 This macro defines a new sorted array class named {\it name} and containing
-the elements of type {\it T}. Example:
+the elements of type {\it T}. The second form is used when compiling DLL
+under Windows and array needs to be visible outside the DLL.
+
+
+Example:
 
 \begin{verbatim}
 WX_DEFINE_SORTED_ARRAY(int, wxSortedArrayInt);
@@ -268,8 +282,13 @@ wxArrayOfMyClass another(CompareMyClassObjects);
 
 \func{}{WX\_DECLARE\_OBJARRAY}{\param{}{T}, \param{}{name}}
 
+\func{}{WX\_DECLARE\_EXPORTED\_OBJARRAY}{\param{}{T}, \param{}{name}}
+
 This macro declares a new object array class named {\it name} and containing
-the elements of type {\it T}. Example:
+the elements of type {\it T}. The second form is used when compiling DLL
+under Windows and array needs to be visible outside the DLL.
+
+Example:
 
 \begin{verbatim}
 class MyClass;
@@ -310,6 +329,13 @@ public:
 WX_DEFINE_OBJARRAY(wxArrayOfMyClass);
 \end{verbatim}
 
+\membersection{WX\_APPEND\_ARRAY}\label{wxappendarray}
+
+\func{void}{WX\_APPEND\_ARRAY}{\param{wxArray\& }{array}, \param{wxArray\& }{other}}
+
+This macro may be used to append all elements of the {\it other} array to the 
+{\it array}. The two arrays must be of the same type.
+
 \membersection{WX\_CLEAR\_ARRAY}\label{wxcleararray}
 
 \func{void}{WX\_CLEAR\_ARRAY}{\param{wxArray\& }{array}}
@@ -384,6 +410,9 @@ to the array, however, the array will make a copy of the item and will not take
 ownership of the original item. Once again, it only makes sense for wxObjArrays
 because the other array types never take ownership of their elements.
 
+You may also use \helpref{WX\_APPEND\_ARRAY}{wxappendarray} macro to append all
+elements of one array to another one.
+
 \membersection{wxArray::Alloc}\label{wxarrayalloc}
 
 \func{void}{Alloc}{\param{size\_t }{count}}
@@ -412,7 +441,6 @@ it exists only for compatibility.
 \func{T *}{Detach}{\param{size\_t }{index}}
 
 Removes the element from the array, but, unlike, 
-
 \helpref{Remove()}{wxarrayremove} doesn't delete it. The function returns the
 pointer to the removed element.
 
@@ -493,12 +521,13 @@ the array classes.
 
 \membersection{wxArray::Remove}\label{wxarrayremove}
 
-\func{\void}{Remove}{\param{size\_t }{index}}
-
 \func{\void}{Remove}{\param{T }{item}}
 
-Removes the element from the array either by index or by value. When an element
-is removed from wxObjArray it is deleted by the array - use 
+Removes the element from the array either by value: the first item of the
+array equal to {\it item} is removed, an assert failure will result from an
+attempt to remove an item which doesn't exist in the array.
+
+When an element is removed from wxObjArray it is deleted by the array - use 
 \helpref{Detach()}{wxobjarraydetach} if you don't want this to happen. On the
 other hand, when an object is removed from a wxArray nothing happens - you
 should delete the it manually if required:
@@ -512,6 +541,25 @@ array.Remove(n)
 See also \helpref{WX\_CLEAR\_ARRAY}{wxcleararray} macro which deletes all
 elements of a wxArray (supposed to contain pointers).
 
+\membersection{wxArray::RemoveAt}\label{wxarrayremoveat}
+
+\func{\void}{RemoveAt}{\param{size\_t }{index}}
+
+Removes the element from the array either by index. When an element
+is removed from wxObjArray it is deleted by the array - use 
+\helpref{Detach()}{wxobjarraydetach} if you don't want this to happen. On the
+other hand, when an object is removed from a wxArray nothing happens - you
+should delete the it manually if required:
+
+\begin{verbatim}
+T *item = array[n];
+delete item;
+array.RemoveAt(n)
+\end{verbatim}
+
+See also \helpref{WX\_CLEAR\_ARRAY}{wxcleararray} macro which deletes all
+elements of a wxArray (supposed to contain pointers).
+
 \membersection{wxArray::Shrink}\label{wxarrayshrink}
 
 \func{void}{Shrink}{\void}