d2651cb189c362f59d091973bb76a626c10eced5
[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     assignOther( other, ID_BASEFONT );
45     return *this;
46 }
47
48 HTMLBaseFontElement &HTMLBaseFontElement::operator = (const HTMLBaseFontElement &other)
49 {
50     HTMLElement::operator = (other);
51     return *this;
52 }
53
54 HTMLBaseFontElement::~HTMLBaseFontElement()
55 {
56 }
57
58 DOMString HTMLBaseFontElement::color() const
59 {
60     if(!impl) return DOMString();
61     return ((ElementImpl *)impl)->getAttribute(ATTR_COLOR);
62 }
63
64 void HTMLBaseFontElement::setColor( const DOMString &value )
65 {
66     if(impl) ((ElementImpl *)impl)->setAttribute(ATTR_COLOR, value);
67 }
68
69 DOMString HTMLBaseFontElement::face() const
70 {
71     if(!impl) return DOMString();
72     return ((ElementImpl *)impl)->getAttribute(ATTR_FACE);
73 }
74
75 void HTMLBaseFontElement::setFace( const DOMString &value )
76 {
77     if(impl) ((ElementImpl *)impl)->setAttribute(ATTR_FACE, value);
78 }
79
80 DOMString HTMLBaseFontElement::size() const
81 {
82     if(!impl) return DOMString();
83     return ((ElementImpl *)impl)->getAttribute(ATTR_SIZE);
84 }
85
86 void HTMLBaseFontElement::setSize( const DOMString &value )
87 {
88     if(impl) ((ElementImpl *)impl)->setAttribute(ATTR_SIZE, value);
89 }
90
91 // --------------------------------------------------------------------------
92
93 HTMLCollection::HTMLCollection()
94   : impl(0)
95 {
96 }
97
98 HTMLCollection::HTMLCollection(const HTMLCollection &other)
99 {
100     impl = other.impl;
101     if(impl) impl->ref();
102 }
103
104 HTMLCollection::HTMLCollection(NodeImpl *base, int type)
105 {
106     impl = new HTMLCollectionImpl(base, type);
107     impl->ref();
108 }
109
110 HTMLCollection &HTMLCollection::operator = (const HTMLCollection &other)
111 {
112     if(impl != other.impl) {
113     if(impl) impl->deref();
114     impl = other.impl;
115     if(impl) impl->ref();
116     }
117     return *this;
118 }
119
120 HTMLCollection::~HTMLCollection()
121 {
122     if(impl) impl->deref();
123 }
124
125 unsigned long HTMLCollection::length() const
126 {
127     if(!impl) return 0;
128     return ((HTMLCollectionImpl *)impl)->length();
129 }
130
131 Node HTMLCollection::item( unsigned long index ) const
132 {
133     if(!impl) return 0;
134     return ((HTMLCollectionImpl *)impl)->item( index );
135 }
136
137 Node HTMLCollection::namedItem( const DOMString &name ) const
138 {
139     if(!impl) return 0;
140     return ((HTMLCollectionImpl *)impl)->namedItem( name );
141 }
142
143 Node HTMLCollection::base() const
144 {
145     if ( !impl )
146         return 0;
147
148     return static_cast<HTMLCollectionImpl*>( impl )->base;
149 }
150
151 Node HTMLCollection::firstItem() const
152 {
153     if ( !impl )
154         return 0;
155     return static_cast<HTMLCollectionImpl*>( impl )->firstItem();
156 }
157
158 Node HTMLCollection::nextItem() const
159 {
160     if ( !impl )
161         return 0;
162     return static_cast<HTMLCollectionImpl*>( impl )->nextItem();
163 }
164
165 Node HTMLCollection::nextNamedItem( const DOMString &name ) const
166 {
167     if ( !impl )
168         return 0;
169     return static_cast<HTMLCollectionImpl*>( impl )->nextNamedItem( name );
170 }
171
172 HTMLCollectionImpl *HTMLCollection::handle() const
173 {
174     return impl;
175 }
176
177 bool HTMLCollection::isNull() const
178 {
179     return (impl == 0);
180 }
181
182
183 // -----------------------------------------------------------------------------
184
185 HTMLFormCollection::HTMLFormCollection(NodeImpl *base)
186     : HTMLCollection()
187 {
188     impl = new HTMLFormCollectionImpl(base);
189     impl->ref();
190 }