Merged KDE 3.0 final code in and:
[WebKit-https.git] / WebCore / khtml / dom / html_misc.cpp
1 /**
2  * This file is part of the DOM implementation for KDE.
3  *
4  * (C) 1999 Lars Knoll (knoll@kde.org)
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Library General Public
8  * License as published by the Free Software Foundation; either
9  * version 2 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Library General Public License for more details.
15  *
16  * You should have received a copy of the GNU Library General Public License
17  * along with this library; see the file COPYING.LIB.  If not, write to
18  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19  * Boston, MA 02111-1307, USA.
20  *
21  */
22 // --------------------------------------------------------------------------
23
24 #include "dom/html_misc.h"
25 #include "html/html_miscimpl.h"
26 #include "misc/htmlhashes.h"
27
28 using namespace DOM;
29
30 HTMLBaseFontElement::HTMLBaseFontElement() : HTMLElement()
31 {
32 }
33
34 HTMLBaseFontElement::HTMLBaseFontElement(const HTMLBaseFontElement &other) : HTMLElement(other)
35 {
36 }
37
38 HTMLBaseFontElement::HTMLBaseFontElement(HTMLBaseFontElementImpl *impl) : HTMLElement(impl)
39 {
40 }
41
42 HTMLBaseFontElement &HTMLBaseFontElement::operator = (const Node &other)
43 {
44     if(other.elementId() != ID_BASEFONT)
45     {
46         impl = 0;
47         return *this;
48     }
49     Node::operator = (other);
50     return *this;
51 }
52
53 HTMLBaseFontElement &HTMLBaseFontElement::operator = (const HTMLBaseFontElement &other)
54 {
55     HTMLElement::operator = (other);
56     return *this;
57 }
58
59 HTMLBaseFontElement::~HTMLBaseFontElement()
60 {
61 }
62
63 DOMString HTMLBaseFontElement::color() const
64 {
65     if(!impl) return DOMString();
66     return ((ElementImpl *)impl)->getAttribute(ATTR_COLOR);
67 }
68
69 void HTMLBaseFontElement::setColor( const DOMString &value )
70 {
71     if(impl) ((ElementImpl *)impl)->setAttribute(ATTR_COLOR, value);
72 }
73
74 DOMString HTMLBaseFontElement::face() const
75 {
76     if(!impl) return DOMString();
77     return ((ElementImpl *)impl)->getAttribute(ATTR_FACE);
78 }
79
80 void HTMLBaseFontElement::setFace( const DOMString &value )
81 {
82     if(impl) ((ElementImpl *)impl)->setAttribute(ATTR_FACE, value);
83 }
84
85 DOMString HTMLBaseFontElement::size() const
86 {
87     if(!impl) return DOMString();
88     return ((ElementImpl *)impl)->getAttribute(ATTR_SIZE);
89 }
90
91 void HTMLBaseFontElement::setSize( const DOMString &value )
92 {
93     if(impl) ((ElementImpl *)impl)->setAttribute(ATTR_SIZE, value);
94 }
95
96 // --------------------------------------------------------------------------
97
98 HTMLCollection::HTMLCollection()
99   : impl(0)
100 {
101 }
102
103 HTMLCollection::HTMLCollection(const HTMLCollection &other)
104 {
105     impl = other.impl;
106     if(impl) impl->ref();
107 }
108
109 HTMLCollection::HTMLCollection(NodeImpl *base, int type)
110 {
111     impl = new HTMLCollectionImpl(base, type);
112     impl->ref();
113 }
114
115 HTMLCollection &HTMLCollection::operator = (const HTMLCollection &other)
116 {
117     if(impl == other.impl) return *this;
118     if(impl) impl->deref();
119     impl = other.impl;
120     if(impl) impl->ref();
121     return *this;
122 }
123
124 HTMLCollection::~HTMLCollection()
125 {
126     if(impl) impl->deref();
127 }
128
129 unsigned long HTMLCollection::length() const
130 {
131     if(!impl) return 0;
132     return ((HTMLCollectionImpl *)impl)->length();
133 }
134
135 Node HTMLCollection::item( unsigned long index ) const
136 {
137     if(!impl) return 0;
138     return ((HTMLCollectionImpl *)impl)->item( index );
139 }
140
141 Node HTMLCollection::namedItem( const DOMString &name ) const
142 {
143     if(!impl) return 0;
144     return ((HTMLCollectionImpl *)impl)->namedItem( name );
145 }
146
147 Node HTMLCollection::base() const
148 {
149     if ( !impl )
150         return 0;
151
152     return static_cast<HTMLCollectionImpl*>( impl )->base;
153 }
154
155 Node HTMLCollection::firstItem() const
156 {
157     if ( !impl )
158         return 0;
159     return static_cast<HTMLCollectionImpl*>( impl )->firstItem();
160 }
161
162 Node HTMLCollection::nextItem() const
163 {
164     if ( !impl )
165         return 0;
166     return static_cast<HTMLCollectionImpl*>( impl )->nextItem();
167 }
168
169 Node HTMLCollection::nextNamedItem( const DOMString &name ) const
170 {
171     if ( !impl )
172         return 0;
173     return static_cast<HTMLCollectionImpl*>( impl )->nextNamedItem( name );
174 }
175
176 HTMLCollectionImpl *HTMLCollection::handle() const
177 {
178     return impl;
179 }
180
181 bool HTMLCollection::isNull() const
182 {
183     return (impl == 0);
184 }
185
186
187 // -----------------------------------------------------------------------------
188
189 HTMLFormCollection::HTMLFormCollection(NodeImpl *base)
190     : HTMLCollection()
191 {
192     impl = new HTMLFormCollectionImpl(base);
193     impl->ref();
194 }
195