]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/list.h
Move SetDefaultTimeout to wxProtocol and set it to 60 seconds for both wxHTTP and...
[wxWidgets.git] / interface / wx / list.h
index bd35298d39153a435a2da38fabbf0e2eb37ad08a..a770d433d6c276836c0400bc091f856b0ef96859 100644 (file)
@@ -7,8 +7,6 @@
 /////////////////////////////////////////////////////////////////////////////
 
 /**
 /////////////////////////////////////////////////////////////////////////////
 
 /**
-    @class wxList
-
     The wxList<T> class provides linked list functionality.
 
     This class has been rewritten to be type safe and to provide the full API of
     The wxList<T> class provides linked list functionality.
 
     This class has been rewritten to be type safe and to provide the full API of
     The exception is that wxList<T> actually stores pointers and therefore its
     iterators return pointers and not references to the actual objets in the list
     (see example below) and @e value_type is defined as @e T*.
     The exception is that wxList<T> actually stores pointers and therefore its
     iterators return pointers and not references to the actual objets in the list
     (see example below) and @e value_type is defined as @e T*.
-    wxList<T> destroys an object after removing it only if wxList::DeleteContents
+    wxList<T> destroys an object after removing it only if wxList<T>::DeleteContents
     has been called.
 
     wxList<T> is not a real template and it requires that you declare and define
     has been called.
 
     wxList<T> is not a real template and it requires that you declare and define
-    each wxListT class in your program. This is done with @e WX_DECLARE_LIST
+    each wxList<T> class in your program. This is done with @e WX_DECLARE_LIST
     and @e WX_DEFINE_LIST macros (see example). We hope that we'll be able to
     and @e WX_DEFINE_LIST macros (see example). We hope that we'll be able to
-    provide a proper template class providing both the STL std::list and the old
+    provide a proper template class providing both the STL @c std::list and the old
     wxList API in the future.
 
     wxList API in the future.
 
-    Please refer to the STL std::list documentation for further information on how
-    to use the class. Below we documented both the supported STL and the legacy API
+    Please refer to the STL @c std::list documentation (see http://www.cppreference.com/wiki/stl/list/start)
+    for further information on how to use the class.
+    Below we documented both the supported STL and the legacy API
     that originated from the old wxList class and which can still be used alternatively
     for the the same class.
 
     that originated from the old wxList class and which can still be used alternatively
     for the the same class.
 
-    Note that if you compile wxWidgets in STL mode (wxUSE_STL defined as 1)
-    then wxList<T> will actually derive from std::list and just add a legacy
+    Note that if you compile wxWidgets in STL mode (@c wxUSE_STL defined as 1)
+    then wxList<T> will actually derive from @c std::list and just add a legacy
     compatibility layer for the old wxList class.
 
     @code
     compatibility layer for the old wxList class.
 
     @code
     The use of the latter is especially discouraged as it is not only unsafe but
     is also much less efficient than wxArrayString class.
 
     The use of the latter is especially discouraged as it is not only unsafe but
     is also much less efficient than wxArrayString class.
 
+    @tparam T
+        The type stored in the wxList nodes.
+
     @library{wxbase}
     @category{data}
 
     @library{wxbase}
     @category{data}
 
-    @see wxArray<T>, wxVector<T>
+    @see wxArray<T>, wxVector<T>, wxNode<T>
 */
 */
+template<typename T>
 class wxList<T>
 {
 public:
 class wxList<T>
 {
 public:
@@ -236,7 +239,7 @@ public:
     /**
        Clears the list and adds @a n items with value @a v to it.
     */
     /**
        Clears the list and adds @a n items with value @a v to it.
     */
-    void assign(size_type n, const_reference v = value_type())          \
+    void assign(size_type n, const_reference v = value_type());
 
     /**
         Returns the last item of the list.
 
     /**
         Returns the last item of the list.
@@ -369,9 +372,13 @@ public:
 
     /**
         Resizes the list.
 
     /**
         Resizes the list.
-        If the the list is enlarges items with the value @e v are appended to the list.
+
+        If the list is longer than @a n, then items are removed until the list
+        becomes long @a n.
+        If the list is shorter than @a n items with the value @a v are appended
+        to the list until the list becomes long @a n.
     */
     */
-    void resize(size_type n);
+    void resize(size_type n, value_type v = value_type());
 
     /**
         Reverses the list.
 
     /**
         Reverses the list.
@@ -387,12 +394,10 @@ public:
 
 
 /**
 
 
 /**
-    @class wxNode
-
-    wxNodeBase is the node structure used in linked lists (see wxList) and derived
-    classes. You should never use wxNodeBase class directly, however, because it
+    wxNode<T> is the node structure used in linked lists (see wxList) and derived
+    classes. You should never use wxNode<T> class directly, however, because it
     works with untyped (@c void *) data and this is unsafe.
     works with untyped (@c void *) data and this is unsafe.
-    Use wxNodeBase-derived classes which are automatically defined by WX_DECLARE_LIST
+    Use wxNode<T>-derived classes which are automatically defined by WX_DECLARE_LIST
     and WX_DEFINE_LIST macros instead as described in wxList documentation
     (see example there).
 
     and WX_DEFINE_LIST macros instead as described in wxList documentation
     (see example there).
 
@@ -405,11 +410,15 @@ public:
     written as wxNodeT even though it isn't really a template class -- but it
     helps to think of it as if it were.
 
     written as wxNodeT even though it isn't really a template class -- but it
     helps to think of it as if it were.
 
+    @tparam T
+        The type stored in the wxNode.
+
     @library{wxbase}
     @category{data}
 
     @see wxList<T>, wxHashTable
 */
     @library{wxbase}
     @category{data}
 
     @see wxList<T>, wxHashTable
 */
+template<typename T>
 class wxNode<T>
 {
 public:
 class wxNode<T>
 {
 public: