]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/array.tex
Added wxPATH_NORM_SHORTCUT
[wxWidgets.git] / docs / latex / wx / array.tex
index 7c106338887b3a3bb2d7c88878066f450e038edb..e814dfad1e1468c20b4bb9a5b89811c2893a3fa8 100644 (file)
@@ -117,10 +117,14 @@ Things are much simpler for wxArray and wxSortedArray however: it is enough
 just to write
 
 \begin{verbatim} 
-WX_DEFINE_ARRAY(MyDirectory *, ArrayOfDirectories);
-WX_DEFINE_SORTED_ARRAY(MyFile *, ArrayOfFiles);
+WX_DEFINE_ARRAY(int, ArrayOfDirectories);
+WX_DEFINE_SORTED_ARRAY(int, ArrayOfFiles);
 \end{verbatim}
 
+i.e. there is only one {\tt DEFINE} macro and no need for separate 
+{\tt DECLARE} one.
+
+
 \wxheading{See also:}
 
 \helpref{Container classes overview}{wxcontaineroverview}, \helpref{wxList}{wxlist}
@@ -152,6 +156,17 @@ WX\_DEFINE\_OBJARRAY macro.
 \helpref{WX\_DEFINE\_EXPORTED\_OBJARRAY}{wxdefineobjarray}\\
 \helpref{WX\_DEFINE\_USER\_EXPORTED\_OBJARRAY}{wxdefineobjarray}
 
+To slightly complicate the matters even further, the operator $->$ defined by
+default for the array iterators by these macros only makes sense if the array
+element type is not a pointer itself and, although it still works, this
+provokes warnings from some compilers and to avoid them you should use the 
+{\tt \_PTR} versions of the macros above. For example, to define an array of
+pointers to {\tt double} you should use
+
+\begin{verbatim} 
+WX_DEFINE_ARRAY_PTR(double *, MyArrayOfDoublePointers);
+\end{verbatim}
+
 \membersection{Constructors and destructors}
 
 Array classes are 100\% C++ objects and as such they have the appropriate copy
@@ -201,6 +216,7 @@ does exactly the same as \helpref{Item()}{wxarrayitem} method.
 
 \helpref{Add}{wxarrayadd}\\
 \helpref{Insert}{wxarrayinsert}\\
+\helpref{SetCount}{wxarraysetcount}\\
 \helpref{WX\_APPEND\_ARRAY}{wxappendarray}
 
 \membersection{Removing items}
@@ -307,7 +323,7 @@ Example:
 
 \begin{verbatim}
 class MyClass;
-WX_DEFINE_OBJARRAY(MyClass, wxArrayOfMyClass); // note: not "MyClass *"!
+WX_DECLARE_OBJARRAY(MyClass, wxArrayOfMyClass); // note: not "MyClass *"!
 \end{verbatim}
 
 You must use \helpref{WX\_DEFINE\_OBJARRAY()}{wxdefineobjarray} macro to define
@@ -485,7 +501,7 @@ Return the number of items in the array.
 
 \membersection{wxArray::Index}\label{wxarrayindex}
 
-\func{int}{Index}{\param{T\& }{item}, \param{bool }{searchFromEnd = FALSE}}
+\func{int}{Index}{\param{T\& }{item}, \param{bool }{searchFromEnd = false}}
 
 \func{int}{Index}{\param{T\& }{item}}
 
@@ -526,7 +542,7 @@ between the overloaded versions of this function.
 
 \constfunc{bool}{IsEmpty}{\void}
 
-Returns TRUE if the array is empty, FALSE otherwise.
+Returns true if the array is empty, false otherwise.
 
 \membersection{wxArray::Item}\label{wxarrayitem}
 
@@ -590,6 +606,19 @@ array.RemoveAt(n)
 See also \helpref{WX\_CLEAR\_ARRAY}{wxcleararray} macro which deletes all
 elements of a wxArray (supposed to contain pointers).
 
+\membersection{wxArray::SetCount}\label{wxarraysetcount}
+
+\func{void}{SetCount}{\param{size\_t }{count}, \param{T }{defval = T($0$)}}
+
+This function ensures that the number of array elements is at least 
+{\it count}. If the array has already {\it count} or mroe items, nothing is
+done. Otherwise, {\tt count - GetCount()} elements are added and initialized to
+the value {\it defval}.
+
+\wxheading{See also}
+
+\helpref{GetCount}{wxarraygetcount}
+
 \membersection{wxArray::Shrink}\label{wxarrayshrink}
 
 \func{void}{Shrink}{\void}