Reviewed by Dave.
[WebKit-https.git] / WebCore / khtml / dom / html_misc.cpp
index f80a17e..2577f62 100644 (file)
  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  *
- * $Id$
  */
 // --------------------------------------------------------------------------
 
-#include "dom_string.h"
+#include "dom/html_misc.h"
+#include "html/html_miscimpl.h"
+#include "misc/htmlhashes.h"
 
-#include "html_misc.h"
-#include "html_miscimpl.h"
 using namespace DOM;
 
-#include "htmlhashes.h"
-
 HTMLBaseFontElement::HTMLBaseFontElement() : HTMLElement()
 {
 }
@@ -44,12 +41,7 @@ HTMLBaseFontElement::HTMLBaseFontElement(HTMLBaseFontElementImpl *impl) : HTMLEl
 
 HTMLBaseFontElement &HTMLBaseFontElement::operator = (const Node &other)
 {
-    if(other.elementId() != ID_BASEFONT)
-    {
-       impl = 0;
-       return *this;
-    }
-    Node::operator = (other);
+    assignOther( other, ID_BASEFONT );
     return *this;
 }
 
@@ -117,10 +109,11 @@ HTMLCollection::HTMLCollection(NodeImpl *base, int type)
 
 HTMLCollection &HTMLCollection::operator = (const HTMLCollection &other)
 {
-    if(impl == other.impl) return *this;
+    if(impl != other.impl) {
     if(impl) impl->deref();
     impl = other.impl;
     if(impl) impl->ref();
+    }
     return *this;
 }
 
@@ -152,12 +145,39 @@ Node HTMLCollection::base() const
     if ( !impl )
         return 0;
 
-    if ( static_cast<HTMLCollectionImpl*>( impl )->type == HTMLCollectionImpl::DOC_ALL )
-        return static_cast<HTMLCollectionImpl*>( impl )->base->firstChild();
-
     return static_cast<HTMLCollectionImpl*>( impl )->base;
 }
 
+Node HTMLCollection::firstItem() const
+{
+    if ( !impl )
+        return 0;
+    return static_cast<HTMLCollectionImpl*>( impl )->firstItem();
+}
+
+Node HTMLCollection::nextItem() const
+{
+    if ( !impl )
+        return 0;
+    return static_cast<HTMLCollectionImpl*>( impl )->nextItem();
+}
+
+Node HTMLCollection::nextNamedItem( const DOMString &name ) const
+{
+    if ( !impl )
+        return 0;
+    return static_cast<HTMLCollectionImpl*>( impl )->nextNamedItem( name );
+}
+
+QValueList<Node> HTMLCollection::namedItems( const DOMString & name ) const
+{
+    if ( !impl )
+        return QValueList<Node>();
+
+    return static_cast<HTMLCollectionImpl*>( impl )->namedItems( name );
+}
+
+
 HTMLCollectionImpl *HTMLCollection::handle() const
 {
     return impl;
@@ -177,4 +197,3 @@ HTMLFormCollection::HTMLFormCollection(NodeImpl *base)
     impl = new HTMLFormCollectionImpl(base);
     impl->ref();
 }
-