]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/xml/xml.h
Initial review of various [q-r] by Utensil Candel.
[wxWidgets.git] / interface / xml / xml.h
index a507cb64565eb3ca555d3f448a695ff524d4ade5..bbc63c62ed9c7a76de457df0ab4f5c9f870a0ce8 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        xml/xml.h
-// Purpose:     documentation for wxXmlNode class
+// Purpose:     interface of wxXmlNode
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
 // Licence:     wxWindows license
@@ -24,8 +24,7 @@
     @library{wxxml}
     @category{xml}
 
-    @seealso
-    wxXmlDocument, wxXmlAttribute
+    @see wxXmlDocument, wxXmlAttribute
 */
 class wxXmlNode
 {
@@ -59,9 +58,16 @@ public:
     //@}
 
     /**
-        Adds the given node as child of this node. To attach a second children to this
-        node, use the
-        SetNext() function of the @a child node.
+        Adds node @a child as the last child of this node.
+
+        @note
+        Note that this function works in O(n) time where @e n is the number
+        of existing children. Consequently, adding large number of child
+        nodes using this method can be expensive, because it has O(n^2) time
+        complexity in number of nodes to be added. Use InsertChildAfter() to
+        populate XML tree in linear time.
+
+        @see InsertChild(), InsertChildAfter()
     */
     void AddChild(wxXmlNode* child);
 
@@ -78,7 +84,7 @@ public:
     */
     bool GetAttribute(const wxString& attrName, wxString* value) const;
     const wxString  GetAttribute(const wxString& attrName,
-                                 const wxString& defaultVal) const;
+                                 const wxString& defaultVal = wxEmptyString) const;
     //@}
 
     /**
@@ -133,9 +139,9 @@ public:
         This function is very useful since the XML snippet @c
         "tagnametagcontent/tagname" is represented by
         expat with the following tag tree:
-        
+
         or eventually:
-        
+
         An empty string is returned if the node has no children of type @c
         wxXML_TEXT_NODE or @c wxXML_CDATA_SECTION_NODE, or if the content of the first child of such types is empty.
     */
@@ -158,14 +164,39 @@ public:
     bool HasAttribute(const wxString& attrName) const;
 
     /**
-        Inserts the @a child node after @a before_node in the children list.
-        If @a before_node is @NULL, then @a child is prepended to the list of
-        children and
-        becomes the first child of this node.
-        Returns @true if @a before_node has been found and the @a child node has been
-        inserted.
+        Inserts the @a child node immediately before @a followingNode in the
+        children list.
+
+        @return @true if @a followingNode has been found and the @a child
+                node has been inserted.
+
+        @note
+        For historical reasons, @a followingNode may be @NULL. In that case,
+        then @a child is prepended to the list of children and becomes the
+        first child of this node, i.e. it behaves identically to using the
+        first children (as returned by GetChildren()) for @a followingNode).
+
+        @see AddChild(), InsertChildAfter()
     */
-    bool InsertChild(wxXmlNode* child, wxXmlNode* before_node);
+    bool InsertChild(wxXmlNode* child, wxXmlNode* followingNode);
+
+    /**
+        Inserts the @a child node immediately after @a precedingNode in the
+        children list.
+
+        @return @true if @a precedingNode has been found and the @a child
+                node has been inserted.
+
+        @param precedingNode
+            The node to insert @a child after. As a special case, this can be
+            @NULL if this node has no children yet -- in that case, @a child
+            will become this node's only child node.
+
+        @since 2.8.8
+
+        @see InsertChild(), AddChild()
+    */
+    bool InsertChildAfter(wxXmlNode* child, wxXmlNode* precedingNode);
 
     /**
         Returns @true if the content of this node is a string containing only
@@ -236,6 +267,7 @@ public:
 };
 
 
+
 /**
     @class wxXmlAttribute
     @headerfile xml.h wx/xml/xml.h
@@ -248,8 +280,7 @@ public:
     @library{wxxml}
     @category{xml}
 
-    @seealso
-    wxXmlDocument, wxXmlNode
+    @see wxXmlDocument, wxXmlNode
 */
 class wxXmlAttribute
 {
@@ -301,6 +332,7 @@ public:
 };
 
 
+
 /**
     @class wxXmlDocument
     @headerfile xml.h wx/xml/xml.h
@@ -350,7 +382,7 @@ public:
     }
     @endcode
 
-    @b Note: if you want to preserve the original formatting of the loaded file
+    @note if you want to preserve the original formatting of the loaded file
     including whitespaces
     and indentation, you need to turn off whitespace-only textnode removal and
     automatic indentation:
@@ -376,8 +408,7 @@ public:
     @library{wxxml}
     @category{xml}
 
-    @seealso
-    wxXmlNode, wxXmlAttribute
+    @see wxXmlNode, wxXmlAttribute
 */
 class wxXmlDocument : public wxObject
 {
@@ -409,7 +440,7 @@ public:
     /**
         Returns encoding of in-memory representation of the document
         (same as passed to Load() or constructor, defaults to UTF-8).
-        NB: this is meaningless in Unicode build where data are stored as @c wchar_t*.
+        @note this is meaningless in Unicode build where data are stored as @c wchar_t*.
     */
     wxString GetEncoding() const;
 
@@ -484,3 +515,4 @@ public:
     */
     wxXmlDocument& operator operator=(const wxXmlDocument& doc);
 };
+