WebCore:
[WebKit-https.git] / WebCore / kwq / DOMHTML.mm
1 /*
2  * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25
26 #import "DOMHTML.h"
27
28 #import "dom_string.h"
29 #import "html_baseimpl.h"
30 #import "html_blockimpl.h"
31 #import "html_documentimpl.h"
32 #import "html_elementimpl.h"
33 #import "html_formimpl.h"
34 #import "html_headimpl.h"
35 #import "html_imageimpl.h"
36 #import "html_inlineimpl.h"
37 #import "html_listimpl.h"
38 #import "html_miscimpl.h"
39 #import "html_objectimpl.h"
40 #import "html_tableimpl.h"
41 #import "dom_elementimpl.h"
42 #import "dom_nodeimpl.h"
43 #import "markup.h"
44
45 #import "DOMExtensions.h"
46 #import "DOMInternal.h"
47 #import "DOMHTMLInternal.h"
48 #import "KWQAssertions.h"
49 #import "KWQFoundationExtras.h"
50
51 using DOM::Document;
52 using DOM::DocumentFragmentImpl;
53 using DOM::DOMString;
54 using DOM::ElementImpl;
55 using DOM::HTMLAttributes;
56 using DOM::HTMLTags;
57 using DOM::HTMLAnchorElementImpl;
58 using DOM::HTMLAppletElementImpl;
59 using DOM::HTMLAreaElementImpl;
60 using DOM::HTMLBaseElementImpl;
61 using DOM::HTMLBaseFontElementImpl;
62 using DOM::HTMLBodyElementImpl;
63 using DOM::HTMLBRElementImpl;
64 using DOM::HTMLButtonElementImpl;
65 using DOM::HTMLCollectionImpl;
66 using DOM::HTMLDirectoryElementImpl;
67 using DOM::HTMLDivElementImpl;
68 using DOM::HTMLDListElementImpl;
69 using DOM::HTMLDocumentImpl;
70 using DOM::HTMLElementImpl;
71 using DOM::HTMLEmbedElementImpl;
72 using DOM::HTMLFieldSetElementImpl;
73 using DOM::HTMLFontElementImpl;
74 using DOM::HTMLFormCollectionImpl;
75 using DOM::HTMLFormElementImpl;
76 using DOM::HTMLFrameElementImpl;
77 using DOM::HTMLFrameSetElementImpl;
78 using DOM::HTMLGenericFormElementImpl;
79 using DOM::HTMLHeadElementImpl;
80 using DOM::HTMLHeadingElementImpl;
81 using DOM::HTMLHRElementImpl;
82 using DOM::HTMLHtmlElementImpl;
83 using DOM::HTMLIFrameElementImpl;
84 using DOM::HTMLImageElementImpl;
85 using DOM::HTMLInputElementImpl;
86 using DOM::HTMLIsIndexElementImpl;
87 using DOM::HTMLLabelElementImpl;
88 using DOM::HTMLLegendElementImpl;
89 using DOM::HTMLLIElementImpl;
90 using DOM::HTMLLinkElementImpl;
91 using DOM::HTMLMapElementImpl;
92 using DOM::HTMLMenuElementImpl;
93 using DOM::HTMLMetaElementImpl;
94 using DOM::HTMLObjectElementImpl;
95 using DOM::HTMLOListElementImpl;
96 using DOM::HTMLOptGroupElementImpl;
97 using DOM::HTMLOptionElementImpl;
98 using DOM::HTMLOptionsCollectionImpl;
99 using DOM::HTMLParagraphElementImpl;
100 using DOM::HTMLParamElementImpl;
101 using DOM::HTMLPreElementImpl;
102 using DOM::HTMLScriptElementImpl;
103 using DOM::HTMLSelectElementImpl;
104 using DOM::HTMLStyleElementImpl;
105 using DOM::HTMLTableElementImpl;
106 using DOM::HTMLTableCaptionElementImpl;
107 using DOM::HTMLTableCellElementImpl;
108 using DOM::HTMLTableColElementImpl;
109 using DOM::HTMLTableRowElementImpl;
110 using DOM::HTMLTableSectionElementImpl;
111 using DOM::HTMLTextAreaElementImpl;
112 using DOM::HTMLTitleElementImpl;
113 using DOM::HTMLUListElementImpl;
114 using DOM::NameNodeListImpl;
115 using DOM::NodeImpl;
116
117 // FIXME: This code should be using the impl methods instead of doing so many get/setAttribute calls.
118 // FIXME: This code should be generated.
119
120 @interface DOMHTMLCollection (WebCoreInternal)
121 + (DOMHTMLCollection *)_collectionWithImpl:(HTMLCollectionImpl *)impl;
122 @end
123
124 @interface DOMHTMLElement (WebCoreInternal)
125 + (DOMHTMLElement *)_elementWithImpl:(HTMLElementImpl *)impl;
126 - (HTMLElementImpl *)_HTMLElementImpl;
127 @end
128
129 @interface DOMHTMLFormElement (WebCoreInternal)
130 + (DOMHTMLFormElement *)_formElementWithImpl:(HTMLFormElementImpl *)impl;
131 @end
132
133 @interface DOMHTMLTableCaptionElement (WebCoreInternal)
134 + (DOMHTMLTableCaptionElement *)_tableCaptionElementWithImpl:(HTMLTableCaptionElementImpl *)impl;
135 - (HTMLTableCaptionElementImpl *)_tableCaptionElementImpl;
136 @end
137
138 @interface DOMHTMLTableSectionElement (WebCoreInternal)
139 + (DOMHTMLTableSectionElement *)_tableSectionElementWithImpl:(HTMLTableSectionElementImpl *)impl;
140 - (HTMLTableSectionElementImpl *)_tableSectionElementImpl;
141 @end
142
143 @interface DOMHTMLTableElement (WebCoreInternal)
144 + (DOMHTMLTableElement *)_tableElementWithImpl:(HTMLTableElementImpl *)impl;
145 - (HTMLTableElementImpl *)_tableElementImpl;
146 @end
147
148 @interface DOMHTMLTableCellElement (WebCoreInternal)
149 + (DOMHTMLTableCellElement *)_tableCellElementWithImpl:(HTMLTableCellElementImpl *)impl;
150 - (HTMLTableCellElementImpl *)_tableCellElementImpl;
151 @end
152
153 //------------------------------------------------------------------------------------------
154
155 @implementation DOMHTMLCollection
156
157 - (void)dealloc
158 {
159     if (_internal) {
160         DOM_cast<HTMLCollectionImpl *>(_internal)->deref();
161     }
162     [super dealloc];
163 }
164
165 - (void)finalize
166 {
167     if (_internal) {
168         DOM_cast<HTMLCollectionImpl *>(_internal)->deref();
169     }
170     [super finalize];
171 }
172
173 - (HTMLCollectionImpl *)_collectionImpl
174 {
175     return DOM_cast<HTMLCollectionImpl *>(_internal);
176 }
177
178 - (unsigned long)length
179 {
180     return [self _collectionImpl]->length();
181 }
182
183 - (DOMNode *)item:(unsigned long)index
184 {
185     return [DOMNode _nodeWithImpl:[self _collectionImpl]->item(index)];
186 }
187
188 - (DOMNode *)namedItem:(NSString *)name
189 {
190     return [DOMNode _nodeWithImpl:[self _collectionImpl]->namedItem(name)];
191 }
192
193 @end
194
195 @implementation DOMHTMLCollection (WebCoreInternal)
196
197 - (id)_initWithCollectionImpl:(HTMLCollectionImpl *)impl
198 {
199     ASSERT(impl);
200     
201     [super _init];
202     _internal = DOM_cast<DOMObjectInternal *>(impl);
203     impl->ref();
204     addDOMWrapper(self, impl);
205     return self;
206 }
207
208 + (DOMHTMLCollection *)_collectionWithImpl:(HTMLCollectionImpl *)impl
209 {
210     if (!impl)
211         return nil;
212     
213     id cachedInstance;
214     cachedInstance = getDOMWrapper(impl);
215     if (cachedInstance)
216         return [[cachedInstance retain] autorelease];
217     
218     return [[[self alloc] _initWithCollectionImpl:impl] autorelease];
219 }
220
221 @end
222
223 @implementation DOMHTMLOptionsCollection
224
225 - (void)dealloc
226 {
227     if (_internal) {
228         DOM_cast<HTMLOptionsCollectionImpl *>(_internal)->deref();
229     }
230     [super dealloc];
231 }
232
233 - (void)finalize
234 {
235     if (_internal) {
236         DOM_cast<HTMLOptionsCollectionImpl *>(_internal)->deref();
237     }
238     [super finalize];
239 }
240
241 - (id)_initWithOptionsCollectionImpl:(HTMLOptionsCollectionImpl *)impl
242 {
243     ASSERT(impl);
244     
245     [super _init];
246     _internal = DOM_cast<DOMObjectInternal *>(impl);
247     impl->ref();
248     addDOMWrapper(self, impl);
249     return self;
250 }
251
252 + (DOMHTMLOptionsCollection *)_optionsCollectionWithImpl:(HTMLOptionsCollectionImpl *)impl
253 {
254     if (!impl)
255         return nil;
256     
257     id cachedInstance;
258     cachedInstance = getDOMWrapper(impl);
259     if (cachedInstance)
260         return [[cachedInstance retain] autorelease];
261     
262     return [[[self alloc] _initWithOptionsCollectionImpl:impl] autorelease];
263 }
264
265 - (HTMLOptionsCollectionImpl *)_optionsCollectionImpl
266 {
267     return DOM_cast<HTMLOptionsCollectionImpl *>(_internal);
268 }
269
270 - (unsigned long)length
271 {
272     return [self _optionsCollectionImpl]->length();
273 }
274
275 - (void)setLength:(unsigned long)length
276 {
277     [self _optionsCollectionImpl]->setLength(length);
278 }
279
280 - (DOMNode *)item:(unsigned long)index
281 {
282     return [DOMNode _nodeWithImpl:[self _optionsCollectionImpl]->item(index)];
283 }
284
285 - (DOMNode *)namedItem:(NSString *)name
286 {
287     return [DOMNode _nodeWithImpl:[self _optionsCollectionImpl]->namedItem(name)];
288 }
289
290 @end
291
292 @implementation DOMHTMLElement
293
294 - (NSString *)idName
295 {
296     return [self _HTMLElementImpl]->getAttribute(HTMLAttributes::idAttr());
297 }
298
299 - (void)setIdName:(NSString *)idName
300 {
301     [self _HTMLElementImpl]->setAttribute(HTMLAttributes::idAttr(), idName);
302 }
303
304 - (NSString *)title
305 {
306     return [self _HTMLElementImpl]->title();
307 }
308
309 - (void)setTitle:(NSString *)title
310 {
311     [self _HTMLElementImpl]->setTitle(title);
312 }
313
314 - (NSString *)lang
315 {
316     return [self _HTMLElementImpl]->lang();
317 }
318
319 - (void)setLang:(NSString *)lang
320 {
321     [self _HTMLElementImpl]->setLang(lang);
322 }
323
324 - (NSString *)dir
325 {
326     return [self _HTMLElementImpl]->dir();
327 }
328
329 - (void)setDir:(NSString *)dir
330 {
331     [self _HTMLElementImpl]->setDir(dir);
332 }
333
334 - (NSString *)className
335 {
336     return [self _HTMLElementImpl]->className();
337 }
338
339 - (void)setClassName:(NSString *)className
340 {
341     [self _HTMLElementImpl]->setClassName(className);
342 }
343
344 @end
345
346 @implementation DOMHTMLElement (WebCoreInternal)
347
348 + (DOMHTMLElement *)_elementWithImpl:(HTMLElementImpl *)impl
349 {
350     return static_cast<DOMHTMLElement *>([DOMNode _nodeWithImpl:impl]);
351 }
352
353 - (HTMLElementImpl *)_HTMLElementImpl
354 {
355     return static_cast<HTMLElementImpl *>(DOM_cast<NodeImpl *>(_internal));
356 }
357
358 @end
359
360 @implementation DOMHTMLElement (DOMHTMLElementExtensions)
361
362 - (NSString *)innerHTML
363 {
364     return [self _HTMLElementImpl]->innerHTML();
365 }
366
367 - (void)setInnerHTML:(NSString *)innerHTML
368 {
369     int exception = 0;
370     [self _HTMLElementImpl]->setInnerHTML(innerHTML, exception);
371     raiseOnDOMError(exception);
372 }
373
374 - (NSString *)outerHTML
375 {
376     return [self _HTMLElementImpl]->outerHTML();
377 }
378
379 - (void)setOuterHTML:(NSString *)outerHTML
380 {
381     int exception = 0;
382     [self _HTMLElementImpl]->setOuterHTML(outerHTML, exception);
383     raiseOnDOMError(exception);
384 }
385
386 - (NSString *)innerText
387 {
388     return [self _HTMLElementImpl]->innerText();
389 }
390
391 - (void)setInnerText:(NSString *)innerText
392 {
393     int exception = 0;
394     [self _HTMLElementImpl]->setInnerText(innerText, exception);
395     raiseOnDOMError(exception);
396 }
397
398 - (NSString *)outerText
399 {
400     return [self _HTMLElementImpl]->outerText();
401 }
402
403 - (void)setOuterText:(NSString *)outerText
404 {
405     int exception = 0;
406     [self _HTMLElementImpl]->setOuterText(outerText, exception);
407     raiseOnDOMError(exception);
408 }
409
410 - (DOMHTMLCollection *)children
411 {
412     HTMLCollectionImpl *collection = new HTMLCollectionImpl([self _HTMLElementImpl], HTMLCollectionImpl::NODE_CHILDREN);
413     return [DOMHTMLCollection _collectionWithImpl:collection];
414 }
415
416 - (NSString *)contentEditable
417 {
418     return [self _HTMLElementImpl]->contentEditable();
419 }
420
421 - (void)setContentEditable:(NSString *)contentEditable
422 {
423     [self _HTMLElementImpl]->setContentEditable(contentEditable);
424 }
425
426 - (BOOL)isContentEditable
427 {
428     return [self _HTMLElementImpl]->isContentEditable();
429 }
430
431 @end
432
433 @implementation DOMHTMLDocument
434
435 - (HTMLDocumentImpl *)_HTMLDocumentImpl
436 {
437     return static_cast<HTMLDocumentImpl *>(DOM_cast<NodeImpl *>(_internal));
438 }
439
440 - (NSString *)title
441 {
442     return [self _HTMLDocumentImpl]->title();
443 }
444
445 - (void)setTitle:(NSString *)title
446 {
447     [self _HTMLDocumentImpl]->setTitle(title);
448 }
449
450 - (NSString *)referrer
451 {
452      return [self _HTMLDocumentImpl]->referrer();
453 }
454
455 - (NSString *)domain
456 {
457      return [self _HTMLDocumentImpl]->domain();
458 }
459
460 - (NSString *)URL
461 {
462     return [self _HTMLDocumentImpl]->URL().getNSString();
463 }
464
465 - (DOMHTMLElement *)body
466 {
467     return [DOMHTMLElement _elementWithImpl:[self _HTMLDocumentImpl]->body()];
468 }
469
470 - (DOMHTMLCollection *)images
471 {
472     HTMLCollectionImpl *collection = new HTMLCollectionImpl([self _HTMLDocumentImpl], HTMLCollectionImpl::DOC_IMAGES);
473     return [DOMHTMLCollection _collectionWithImpl:collection];
474 }
475
476 - (DOMHTMLCollection *)applets
477 {
478     HTMLCollectionImpl *collection = new HTMLCollectionImpl([self _HTMLDocumentImpl], HTMLCollectionImpl::DOC_APPLETS);
479     return [DOMHTMLCollection _collectionWithImpl:collection];
480 }
481
482 - (DOMHTMLCollection *)links
483 {
484     HTMLCollectionImpl *collection = new HTMLCollectionImpl([self _HTMLDocumentImpl], HTMLCollectionImpl::DOC_LINKS);
485     return [DOMHTMLCollection _collectionWithImpl:collection];
486 }
487
488 - (DOMHTMLCollection *)forms
489 {
490     HTMLCollectionImpl *collection = new HTMLCollectionImpl([self _HTMLDocumentImpl], HTMLCollectionImpl::DOC_FORMS);
491     return [DOMHTMLCollection _collectionWithImpl:collection];
492 }
493
494 - (DOMHTMLCollection *)anchors
495 {
496     HTMLCollectionImpl *collection = new HTMLCollectionImpl([self _HTMLDocumentImpl], HTMLCollectionImpl::DOC_ANCHORS);
497     return [DOMHTMLCollection _collectionWithImpl:collection];
498 }
499
500 - (void)setBody:(DOMHTMLElement *)body
501 {
502     int exceptionCode = 0;
503     [self _HTMLDocumentImpl]->setBody([body _HTMLElementImpl], exceptionCode);
504     raiseOnDOMError(exceptionCode);
505 }
506
507 - (NSString *)cookie
508 {
509     return [self _HTMLDocumentImpl]->cookie();
510 }
511
512 - (void)setCookie:(NSString *)cookie
513 {
514     [self _HTMLDocumentImpl]->setCookie(cookie);
515 }
516
517 - (void)open
518 {
519     [self _HTMLDocumentImpl]->open();
520 }
521
522 - (void)close
523 {
524     [self _HTMLDocumentImpl]->close();
525 }
526
527 - (void)write:(NSString *)text
528 {
529     [self _HTMLDocumentImpl]->write(text);
530 }
531
532 - (void)writeln:(NSString *)text
533 {
534     [self _HTMLDocumentImpl]->writeln(text);
535 }
536
537 - (DOMElement *)getElementById:(NSString *)elementId
538 {
539     return [DOMElement _elementWithImpl:[self _HTMLDocumentImpl]->getElementById(elementId)];
540 }
541
542 - (DOMNodeList *)getElementsByName:(NSString *)elementName
543 {
544     NameNodeListImpl *nodeList = new NameNodeListImpl([self _HTMLDocumentImpl], elementName);
545     return [DOMNodeList _nodeListWithImpl:nodeList];
546 }
547
548 @end
549
550 @implementation DOMHTMLDocument (WebPrivate)
551
552 - (DOMDocumentFragment *)_createDocumentFragmentWithMarkupString:(NSString *)markupString baseURLString:(NSString *)baseURLString
553 {
554     DocumentFragmentImpl *fragment = createFragmentFromMarkup([self _documentImpl], QString::fromNSString(markupString), QString::fromNSString(baseURLString));
555     return [DOMDocumentFragment _documentFragmentWithImpl:fragment];
556 }
557
558 - (DOMDocumentFragment *)_createDocumentFragmentWithText:(NSString *)text
559 {
560     return [DOMDocumentFragment _documentFragmentWithImpl:createFragmentFromText([self _documentImpl], QString::fromNSString(text))];
561 }
562
563 @end
564
565 @implementation DOMHTMLHtmlElement
566
567 - (HTMLHtmlElementImpl *)_HTMLHtmlElementImpl
568 {
569     return static_cast<HTMLHtmlElementImpl *>(DOM_cast<NodeImpl *>(_internal));
570 }
571
572 - (NSString *)version
573 {
574     return [self _HTMLHtmlElementImpl]->version();
575 }
576
577 - (void)setVersion:(NSString *)version
578 {
579     [self _HTMLHtmlElementImpl]->setVersion(version);
580 }
581
582 @end
583
584 @implementation DOMHTMLHeadElement
585
586 - (HTMLHeadElementImpl *)_headElementImpl
587 {
588     return static_cast<HTMLHeadElementImpl *>(DOM_cast<NodeImpl *>(_internal));
589 }
590
591 - (NSString *)profile
592 {
593     return [self _headElementImpl]->profile();
594 }
595
596 - (void)setProfile:(NSString *)profile
597 {
598     [self _headElementImpl]->setProfile(profile);
599 }
600
601 @end
602
603 @implementation DOMHTMLLinkElement
604
605 - (HTMLLinkElementImpl *)_linkElementImpl
606 {
607     return static_cast<HTMLLinkElementImpl *>(DOM_cast<NodeImpl *>(_internal));
608 }
609
610 - (BOOL)disabled
611 {
612     return ![self _linkElementImpl]->disabled();
613 }
614
615 - (void)setDisabled:(BOOL)disabled
616 {
617     [self _linkElementImpl]->setDisabled(disabled);
618 }
619
620 - (NSString *)charset
621 {
622     return [self _linkElementImpl]->charset();
623 }
624
625 - (void)setCharset:(NSString *)charset
626 {
627     [self _linkElementImpl]->setCharset(charset);
628 }
629
630 - (NSString *)href
631 {
632     return [self _linkElementImpl]->href();
633 }
634
635 - (void)setHref:(NSString *)href
636 {
637     [self _linkElementImpl]->href();
638 }
639
640 - (NSString *)hreflang
641 {
642     return [self _linkElementImpl]->hreflang();
643 }
644
645 - (void)setHreflang:(NSString *)hreflang
646 {
647     [self _linkElementImpl]->setHreflang(hreflang);
648 }
649
650 - (NSString *)media
651 {
652     return [self _linkElementImpl]->getAttribute(HTMLAttributes::media());
653 }
654
655 - (void)setMedia:(NSString *)media
656 {
657     [self _linkElementImpl]->setAttribute(HTMLAttributes::media(), media);
658 }
659
660 - (NSString *)rel
661 {
662     return [self _linkElementImpl]->getAttribute(HTMLAttributes::rel());
663 }
664
665 - (void)setRel:(NSString *)rel
666 {
667     [self _linkElementImpl]->setAttribute(HTMLAttributes::rel(), rel);
668 }
669
670 - (NSString *)rev
671 {
672     return [self _linkElementImpl]->getAttribute(HTMLAttributes::rev());
673 }
674
675 - (void)setRev:(NSString *)rev
676 {
677     [self _linkElementImpl]->setAttribute(HTMLAttributes::rev(), rev);
678 }
679
680 - (NSString *)target
681 {
682     return [self _linkElementImpl]->getAttribute(HTMLAttributes::target());
683 }
684
685 - (void)setTarget:(NSString *)target
686 {
687     [self _linkElementImpl]->setAttribute(HTMLAttributes::target(), target);
688 }
689
690 - (NSString *)type
691 {
692     return [self _linkElementImpl]->getAttribute(HTMLAttributes::type());
693 }
694
695 - (void)setType:(NSString *)type
696 {
697     [self _linkElementImpl]->setAttribute(HTMLAttributes::type(), type);
698 }
699
700 @end
701
702 @implementation DOMHTMLTitleElement
703
704 - (HTMLTitleElementImpl *)_titleElementImpl
705 {
706     return static_cast<HTMLTitleElementImpl *>(DOM_cast<NodeImpl *>(_internal));
707 }
708
709 - (NSString *)text
710 {
711     return [self _titleElementImpl]->getAttribute(HTMLAttributes::text());
712 }
713
714 - (void)setText:(NSString *)text
715 {
716     [self _titleElementImpl]->setAttribute(HTMLAttributes::text(), text);
717 }
718
719 @end
720
721 @implementation DOMHTMLMetaElement
722
723 - (HTMLMetaElementImpl *)_metaElementImpl
724 {
725     return static_cast<HTMLMetaElementImpl *>(DOM_cast<NodeImpl *>(_internal));
726 }
727
728 - (NSString *)content
729 {
730     return [self _metaElementImpl]->getAttribute(HTMLAttributes::content());
731 }
732
733 - (void)setContent:(NSString *)content
734 {
735     [self _metaElementImpl]->setAttribute(HTMLAttributes::content(), content);
736 }
737
738 - (NSString *)httpEquiv
739 {
740     return [self _metaElementImpl]->getAttribute(HTMLAttributes::http_equiv());
741 }
742
743 - (void)setHttpEquiv:(NSString *)httpEquiv
744 {
745     [self _metaElementImpl]->setAttribute(HTMLAttributes::http_equiv(), httpEquiv);
746 }
747
748 - (NSString *)name
749 {
750     return [self _metaElementImpl]->getAttribute(HTMLAttributes::name());
751 }
752
753 - (void)setName:(NSString *)name
754 {
755     [self _metaElementImpl]->setAttribute(HTMLAttributes::name(), name);
756 }
757
758 - (NSString *)scheme
759 {
760     return [self _metaElementImpl]->getAttribute(HTMLAttributes::scheme());
761 }
762
763 - (void)setScheme:(NSString *)scheme
764 {
765     [self _metaElementImpl]->setAttribute(HTMLAttributes::scheme(), scheme);
766 }
767
768 @end
769
770 @implementation DOMHTMLBaseElement
771
772 - (HTMLBaseElementImpl *)_baseElementImpl
773 {
774     return static_cast<HTMLBaseElementImpl *>(DOM_cast<NodeImpl *>(_internal));
775 }
776
777 - (NSString *)href
778 {
779     return [self _baseElementImpl]->href();
780 }
781
782 - (void)setHref:(NSString *)href
783 {
784     [self _baseElementImpl]->setAttribute(HTMLAttributes::href(), href);
785 }
786
787 - (NSString *)target
788 {
789     return [self _baseElementImpl]->getAttribute(HTMLAttributes::target());
790 }
791
792 - (void)setTarget:(NSString *)target
793 {
794     [self _baseElementImpl]->setAttribute(HTMLAttributes::scheme(), target);
795 }
796
797 @end
798
799 @implementation DOMHTMLStyleElement
800
801 - (HTMLStyleElementImpl *)_styleElementImpl
802 {
803     return static_cast<HTMLStyleElementImpl *>(DOM_cast<NodeImpl *>(_internal));
804 }
805
806 - (BOOL)disabled
807 {
808     return ![self _styleElementImpl]->getAttribute(HTMLAttributes::disabled()).isNull();
809 }
810
811 - (void)setDisabled:(BOOL)disabled
812 {
813     [self _styleElementImpl]->setAttribute(HTMLAttributes::disabled(), disabled ? "" : 0);
814 }
815
816 - (NSString *)media
817 {
818     return [self _styleElementImpl]->getAttribute(HTMLAttributes::media());
819 }
820
821 - (void)setMedia:(NSString *)media
822 {
823     [self _styleElementImpl]->setAttribute(HTMLAttributes::media(), media);
824 }
825
826 - (NSString *)type
827 {
828     return [self _styleElementImpl]->getAttribute(HTMLAttributes::type());
829 }
830
831 - (void)setType:(NSString *)type
832 {
833     [self _styleElementImpl]->setAttribute(HTMLAttributes::type(), type);
834 }
835
836 @end
837
838 @implementation DOMHTMLBodyElement
839
840 - (HTMLBodyElementImpl *)_bodyElementImpl
841 {
842     return static_cast<HTMLBodyElementImpl *>(DOM_cast<NodeImpl *>(_internal));
843 }
844
845 - (NSString *)aLink
846 {
847     return [self _bodyElementImpl]->getAttribute(HTMLAttributes::alink());
848 }
849
850 - (void)setALink:(NSString *)aLink
851 {
852     [self _bodyElementImpl]->setAttribute(HTMLAttributes::alink(), aLink);
853 }
854
855 - (NSString *)background
856 {
857     return [self _bodyElementImpl]->getAttribute(HTMLAttributes::background());
858 }
859
860 - (void)setBackground:(NSString *)background
861 {
862     [self _bodyElementImpl]->setAttribute(HTMLAttributes::background(), background);
863 }
864
865 - (NSString *)bgColor
866 {
867     return [self _bodyElementImpl]->getAttribute(HTMLAttributes::bgcolor());
868 }
869
870 - (void)setBgColor:(NSString *)bgColor
871 {
872     [self _bodyElementImpl]->setAttribute(HTMLAttributes::bgcolor(), bgColor);
873 }
874
875 - (NSString *)link
876 {
877     return [self _bodyElementImpl]->getAttribute(HTMLAttributes::link());
878 }
879
880 - (void)setLink:(NSString *)link
881 {
882     [self _bodyElementImpl]->setAttribute(HTMLAttributes::link(), link);
883 }
884
885 - (NSString *)text
886 {
887     return [self _bodyElementImpl]->getAttribute(HTMLAttributes::text());
888 }
889
890 - (void)setText:(NSString *)text
891 {
892     [self _bodyElementImpl]->setAttribute(HTMLAttributes::text(), text);
893 }
894
895 - (NSString *)vLink
896 {
897     return [self _bodyElementImpl]->getAttribute(HTMLAttributes::vlink());
898 }
899
900 - (void)setVLink:(NSString *)vLink
901 {
902     [self _bodyElementImpl]->setAttribute(HTMLAttributes::vlink(), vLink);
903 }
904
905 @end
906
907 @implementation DOMHTMLFormElement
908
909 - (HTMLFormElementImpl *)_formElementImpl
910 {
911     return static_cast<HTMLFormElementImpl *>(DOM_cast<NodeImpl *>(_internal));
912 }
913
914 - (DOMHTMLCollection *)elements
915 {
916     HTMLCollectionImpl *collection = new HTMLFormCollectionImpl([self _formElementImpl]);
917     return [DOMHTMLCollection _collectionWithImpl:collection];
918 }
919
920 - (long)length
921 {
922     return [self _formElementImpl]->length();
923 }
924
925 - (NSString *)name
926 {
927     return [self _formElementImpl]->getAttribute(HTMLAttributes::name());
928 }
929
930 - (void)setName:(NSString *)name
931 {
932     [self _formElementImpl]->setAttribute(HTMLAttributes::name(), name);
933 }
934
935 - (NSString *)acceptCharset
936 {
937     return [self _formElementImpl]->getAttribute(HTMLAttributes::accept_charset());
938 }
939
940 - (void)setAcceptCharset:(NSString *)acceptCharset
941 {
942     [self _formElementImpl]->setAttribute(HTMLAttributes::accept_charset(), acceptCharset);
943 }
944
945 - (NSString *)action
946 {
947     return [self _formElementImpl]->getAttribute(HTMLAttributes::action());
948 }
949
950 - (void)setAction:(NSString *)action
951 {
952     [self _formElementImpl]->setAttribute(HTMLAttributes::action(), action);
953 }
954
955 - (NSString *)enctype
956 {
957     return [self _formElementImpl]->getAttribute(HTMLAttributes::enctype());
958 }
959
960 - (void)setEnctype:(NSString *)enctype
961 {
962     [self _formElementImpl]->setAttribute(HTMLAttributes::enctype(), enctype);
963 }
964
965 - (NSString *)method
966 {
967     return [self _formElementImpl]->getAttribute(HTMLAttributes::method());
968 }
969
970 - (void)setMethod:(NSString *)method
971 {
972     [self _formElementImpl]->setAttribute(HTMLAttributes::method(), method);
973 }
974
975 - (NSString *)target
976 {
977     return [self _formElementImpl]->getAttribute(HTMLAttributes::target());
978 }
979
980 - (void)setTarget:(NSString *)target
981 {
982     [self _formElementImpl]->setAttribute(HTMLAttributes::target(), target);
983 }
984
985 - (void)submit
986 {
987     [self _formElementImpl]->submit(false);
988 }
989
990 - (void)reset
991 {
992     [self _formElementImpl]->reset();
993 }
994
995 @end
996
997 @implementation DOMHTMLFormElement (WebCoreInternal)
998
999 + (DOMHTMLFormElement *)_formElementWithImpl:(HTMLFormElementImpl *)impl
1000 {
1001     return static_cast<DOMHTMLFormElement *>([DOMNode _nodeWithImpl:impl]);
1002 }
1003
1004 @end
1005
1006 @implementation DOMHTMLIsIndexElement
1007
1008 - (HTMLIsIndexElementImpl *)_isIndexElementImpl
1009 {
1010     return static_cast<HTMLIsIndexElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1011 }
1012
1013 - (DOMHTMLFormElement *)form
1014 {
1015     return [DOMHTMLFormElement _formElementWithImpl:[self _isIndexElementImpl]->form()];
1016 }
1017
1018 - (NSString *)prompt
1019 {
1020     return [self _isIndexElementImpl]->prompt();
1021 }
1022
1023 - (void)setPrompt:(NSString *)prompt
1024 {
1025     [self _isIndexElementImpl]->setPrompt(prompt);
1026 }
1027
1028 @end
1029
1030 @implementation DOMHTMLSelectElement
1031
1032 - (HTMLSelectElementImpl *)_selectElementImpl
1033 {
1034     return static_cast<HTMLSelectElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1035 }
1036
1037 - (NSString *)type
1038 {
1039     return [self _selectElementImpl]->type();
1040 }
1041
1042 - (long)selectedIndex
1043 {
1044     return [self _selectElementImpl]->selectedIndex();
1045 }
1046
1047 - (void)setSelectedIndex:(long)selectedIndex
1048 {
1049     [self _selectElementImpl]->setSelectedIndex(selectedIndex);
1050 }
1051
1052 - (NSString *)value
1053 {
1054     return [self _selectElementImpl]->value();
1055 }
1056
1057 - (void)setValue:(NSString *)value
1058 {
1059     DOMString s(value);
1060     [self _selectElementImpl]->setValue(s.implementation());
1061 }
1062
1063 - (long)length
1064 {
1065     return [self _selectElementImpl]->length();
1066 }
1067
1068 - (void)setLength:(long)length
1069 {
1070     // FIXME: Not yet clear what to do about this one.
1071     // There's some JavaScript-specific hackery in the JavaScript bindings for this.
1072     //[self _selectElementImpl]->setLength(length);
1073 }
1074
1075 - (DOMHTMLFormElement *)form
1076 {
1077     return [DOMHTMLFormElement _formElementWithImpl:[self _selectElementImpl]->form()];
1078 }
1079
1080 - (DOMHTMLOptionsCollection *)options
1081 {
1082     return [DOMHTMLOptionsCollection _optionsCollectionWithImpl:[self _selectElementImpl]->options()];
1083 }
1084
1085 - (BOOL)disabled
1086 {
1087     return ![self _selectElementImpl]->disabled();
1088 }
1089
1090 - (void)setDisabled:(BOOL)disabled
1091 {
1092     [self _selectElementImpl]->setDisabled(disabled);
1093 }
1094
1095 - (BOOL)multiple
1096 {
1097     return ![self _selectElementImpl]->multiple();
1098 }
1099
1100 - (void)setMultiple:(BOOL)multiple
1101 {
1102     [self _selectElementImpl]->setMultiple(multiple);
1103 }
1104
1105 - (NSString *)name
1106 {
1107     return [self _selectElementImpl]->name();
1108 }
1109
1110 - (void)setName:(NSString *)name
1111 {
1112     [self _selectElementImpl]->setName(name);
1113 }
1114
1115 - (long)size
1116 {
1117     return [self _selectElementImpl]->size();
1118 }
1119
1120 - (void)setSize:(long)size
1121 {
1122     [self _selectElementImpl]->setSize(size);
1123 }
1124
1125 - (long)tabIndex
1126 {
1127     return [self _selectElementImpl]->tabIndex();
1128 }
1129
1130 - (void)setTabIndex:(long)tabIndex
1131 {
1132     [self _selectElementImpl]->setTabIndex(tabIndex);
1133 }
1134
1135 - (void)add:(DOMHTMLElement *)element :(DOMHTMLElement *)before
1136 {
1137     [self _selectElementImpl]->add([element _HTMLElementImpl], [before _HTMLElementImpl]);
1138 }
1139
1140 - (void)remove:(long)index
1141 {
1142     [self _selectElementImpl]->remove(index);
1143 }
1144
1145 - (void)blur
1146 {
1147     [self _selectElementImpl]->blur();
1148 }
1149
1150 - (void)focus
1151 {
1152     [self _selectElementImpl]->focus();
1153 }
1154
1155 @end
1156
1157 @implementation DOMHTMLOptGroupElement
1158
1159 - (HTMLOptGroupElementImpl *)_optGroupElementImpl
1160 {
1161     return static_cast<HTMLOptGroupElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1162 }
1163
1164 - (BOOL)disabled
1165 {
1166     return ![self _optGroupElementImpl]->disabled();
1167 }
1168
1169 - (void)setDisabled:(BOOL)disabled
1170 {
1171     [self _optGroupElementImpl]->setDisabled(disabled);
1172 }
1173
1174 - (NSString *)label
1175 {
1176     return [self _optGroupElementImpl]->label();
1177 }
1178
1179 - (void)setLabel:(NSString *)label
1180 {
1181     [self _optGroupElementImpl]->setLabel(label);
1182 }
1183
1184 @end
1185
1186 @implementation DOMHTMLOptionElement
1187
1188 - (HTMLOptionElementImpl *)_optionElementImpl
1189 {
1190     return static_cast<HTMLOptionElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1191 }
1192
1193 - (DOMHTMLFormElement *)form
1194 {
1195     return [DOMHTMLFormElement _formElementWithImpl:[self _optionElementImpl]->form()];
1196 }
1197
1198 - (BOOL)defaultSelected
1199 {
1200     return ![self _optionElementImpl]->defaultSelected();
1201 }
1202
1203 - (void)setDefaultSelected:(BOOL)defaultSelected
1204 {
1205     [self _optionElementImpl]->setDefaultSelected(defaultSelected);
1206 }
1207
1208 - (NSString *)text
1209 {
1210     return [self _optionElementImpl]->text();
1211 }
1212
1213 - (long)index
1214 {
1215     return [self _optionElementImpl]->index();
1216 }
1217
1218 - (BOOL)disabled
1219 {
1220     return ![self _optionElementImpl]->disabled();
1221 }
1222
1223 - (void)setDisabled:(BOOL)disabled
1224 {
1225     [self _optionElementImpl]->setDisabled(disabled);
1226 }
1227
1228 - (NSString *)label
1229 {
1230     return [self _optionElementImpl]->label();
1231 }
1232
1233 - (void)setLabel:(NSString *)label
1234 {
1235     [self _optionElementImpl]->setLabel(label);
1236 }
1237
1238 - (BOOL)selected
1239 {
1240     return [self _optionElementImpl]->selected();
1241 }
1242
1243 - (void)setSelected:(BOOL)selected
1244 {
1245     [self _optionElementImpl]->setSelected(selected);
1246 }
1247
1248 - (NSString *)value
1249 {
1250     return [self _optionElementImpl]->value();
1251 }
1252
1253 - (void)setValue:(NSString *)value
1254 {
1255     DOMString string = value;
1256     [self _optionElementImpl]->setValue(string.implementation());
1257 }
1258
1259 @end
1260
1261 @implementation DOMHTMLInputElement
1262
1263 - (HTMLInputElementImpl *)_inputElementImpl
1264 {
1265     return static_cast<HTMLInputElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1266 }
1267
1268 - (NSString *)defaultValue
1269 {
1270     return [self _inputElementImpl]->defaultValue();
1271 }
1272
1273 - (void)setDefaultValue:(NSString *)defaultValue
1274 {
1275     [self _inputElementImpl]->setDefaultValue(defaultValue);
1276 }
1277
1278 - (BOOL)defaultChecked
1279 {
1280     return [self _inputElementImpl]->defaultChecked();
1281 }
1282
1283 - (void)setDefaultChecked:(BOOL)defaultChecked
1284 {
1285     [self _inputElementImpl]->setDefaultChecked(defaultChecked);
1286 }
1287
1288 - (DOMHTMLFormElement *)form
1289 {
1290     return [DOMHTMLFormElement _formElementWithImpl:[self _inputElementImpl]->form()];
1291 }
1292
1293 - (NSString *)accept
1294 {
1295     return [self _inputElementImpl]->accept();
1296 }
1297
1298 - (void)setAccept:(NSString *)accept
1299 {
1300     [self _inputElementImpl]->setAccept(accept);
1301 }
1302
1303 - (NSString *)accessKey
1304 {
1305     return [self _inputElementImpl]->accessKey();
1306 }
1307
1308 - (void)setAccessKey:(NSString *)accessKey
1309 {
1310     [self _inputElementImpl]->setAccessKey(accessKey);
1311 }
1312
1313 - (NSString *)align
1314 {
1315     return [self _inputElementImpl]->align();
1316 }
1317
1318 - (void)setAlign:(NSString *)align
1319 {
1320     [self _inputElementImpl]->setAlign(align);
1321 }
1322
1323 - (NSString *)alt
1324 {
1325     return [self _inputElementImpl]->alt();
1326 }
1327
1328 - (void)setAlt:(NSString *)alt
1329 {
1330     [self _inputElementImpl]->setAlt(alt);
1331 }
1332
1333 - (BOOL)checked
1334 {
1335     return [self _inputElementImpl]->checked();
1336 }
1337
1338 - (void)setChecked:(BOOL)checked
1339 {
1340     return [self _inputElementImpl]->setChecked(checked);
1341 }
1342
1343 - (BOOL)disabled
1344 {
1345     return [self _inputElementImpl]->disabled();
1346 }
1347
1348 - (void)setDisabled:(BOOL)disabled
1349 {
1350     [self _inputElementImpl]->setDisabled(disabled);
1351 }
1352
1353 - (long)maxLength
1354 {
1355     return [self _inputElementImpl]->maxLength();
1356 }
1357
1358 - (void)setMaxLength:(long)maxLength
1359 {
1360     [self _inputElementImpl]->setMaxLength(maxLength);
1361 }
1362
1363 - (NSString *)name
1364 {
1365     return [self _inputElementImpl]->name();
1366 }
1367
1368 - (void)setName:(NSString *)name
1369 {
1370     [self _inputElementImpl]->setName(name);
1371 }
1372
1373 - (BOOL)readOnly
1374 {
1375     return [self _inputElementImpl]->readOnly();
1376 }
1377
1378 - (void)setReadOnly:(BOOL)readOnly
1379 {
1380     [self _inputElementImpl]->setReadOnly(readOnly);
1381 }
1382
1383 - (unsigned long)size
1384 {
1385     return [self _inputElementImpl]->size();
1386 }
1387
1388 - (void)setSize:(unsigned long)size
1389 {
1390     [self _inputElementImpl]->setSize(size);
1391 }
1392
1393 - (NSString *)src
1394 {
1395     return [self _inputElementImpl]->src();
1396 }
1397
1398 - (void)setSrc:(NSString *)src
1399 {
1400     [self _inputElementImpl]->setSrc(src);
1401 }
1402
1403 - (long)tabIndex
1404 {
1405     return [self _inputElementImpl]->tabIndex();
1406 }
1407
1408 - (void)setTabIndex:(long)tabIndex
1409 {
1410     [self _inputElementImpl]->setTabIndex(tabIndex);
1411 }
1412
1413 - (NSString *)type
1414 {
1415     return [self _inputElementImpl]->type();
1416 }
1417
1418 - (void)setType:(NSString *)type
1419 {
1420     [self _inputElementImpl]->setType(type);
1421 }
1422
1423 - (NSString *)useMap
1424 {
1425     return [self _inputElementImpl]->useMap();
1426 }
1427
1428 - (void)setUseMap:(NSString *)useMap
1429 {
1430     [self _inputElementImpl]->setUseMap(useMap);
1431 }
1432
1433 - (NSString *)value
1434 {
1435     return [self _inputElementImpl]->value();
1436 }
1437
1438 - (void)setValue:(NSString *)value
1439 {
1440     [self _inputElementImpl]->setValue(value);
1441 }
1442
1443 - (void)blur
1444 {
1445     [self _inputElementImpl]->blur();
1446 }
1447
1448 - (void)focus
1449 {
1450     [self _inputElementImpl]->focus();
1451 }
1452
1453 - (void)select
1454 {
1455     [self _inputElementImpl]->select();
1456 }
1457
1458 - (void)click
1459 {
1460     [self _inputElementImpl]->click(false);
1461 }
1462
1463 @end
1464
1465 @implementation DOMHTMLInputElement (DOMHTMLInputElementExtensions)
1466
1467 - (BOOL)isTextField
1468 {
1469     static NSArray *textInputTypes = nil;
1470 #ifndef NDEBUG
1471     static NSArray *nonTextInputTypes = nil;
1472 #endif
1473     
1474     NSString *type = [self type];
1475     
1476     // No type at all is treated as text type
1477     if ([type length] == 0)
1478         return YES;
1479     
1480     if (textInputTypes == nil)
1481         textInputTypes = [[NSSet alloc] initWithObjects:@"text", @"password", @"search", nil];
1482     
1483     BOOL isText = [textInputTypes containsObject:[type lowercaseString]];
1484     
1485 #ifndef NDEBUG
1486     if (nonTextInputTypes == nil)
1487         nonTextInputTypes = [[NSSet alloc] initWithObjects:@"isindex", @"checkbox", @"radio", @"submit", @"reset", @"file", @"hidden", @"image", @"button", @"range", nil];
1488     
1489     // Catch cases where a new input type has been added that's not in these lists.
1490     ASSERT(isText || [nonTextInputTypes containsObject:[type lowercaseString]]);
1491 #endif    
1492     
1493     return isText;
1494 }
1495
1496 @end
1497
1498
1499 @implementation DOMHTMLTextAreaElement
1500
1501 - (HTMLTextAreaElementImpl *)_textAreaElementImpl
1502 {
1503     return static_cast<HTMLTextAreaElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1504 }
1505
1506 - (NSString *)defaultValue
1507 {
1508     return [self _textAreaElementImpl]->defaultValue();
1509 }
1510
1511 - (void)setDefaultValue:(NSString *)defaultValue
1512 {
1513     [self _textAreaElementImpl]->setDefaultValue(defaultValue);
1514 }
1515
1516 - (DOMHTMLFormElement *)form
1517 {
1518     return [DOMHTMLFormElement _formElementWithImpl:[self _textAreaElementImpl]->form()];
1519 }
1520
1521 - (NSString *)accessKey
1522 {
1523     return [self _textAreaElementImpl]->getAttribute(HTMLAttributes::accesskey());
1524 }
1525
1526 - (void)setAccessKey:(NSString *)accessKey
1527 {
1528     [self _textAreaElementImpl]->setAttribute(HTMLAttributes::accesskey(), accessKey);
1529 }
1530
1531 - (long)cols
1532 {
1533     return [self _textAreaElementImpl]->getAttribute(HTMLAttributes::cols()).toInt();
1534 }
1535
1536 - (void)setCols:(long)cols
1537 {
1538     DOMString value(QString::number(cols));
1539     [self _textAreaElementImpl]->setAttribute(HTMLAttributes::cols(), value);
1540 }
1541
1542 - (BOOL)disabled
1543 {
1544     return [self _textAreaElementImpl]->getAttribute(HTMLAttributes::disabled()).isNull();
1545 }
1546
1547 - (void)setDisabled:(BOOL)disabled
1548 {
1549     [self _textAreaElementImpl]->setAttribute(HTMLAttributes::disabled(), disabled ? "" : 0);
1550 }
1551
1552 - (NSString *)name
1553 {
1554     return [self _textAreaElementImpl]->name();
1555 }
1556
1557 - (void)setName:(NSString *)name
1558 {
1559     [self _textAreaElementImpl]->setName(name);
1560 }
1561
1562 - (BOOL)readOnly
1563 {
1564     return [self _textAreaElementImpl]->getAttribute(HTMLAttributes::readonly()).isNull();
1565 }
1566
1567 - (void)setReadOnly:(BOOL)readOnly
1568 {
1569     [self _textAreaElementImpl]->setAttribute(HTMLAttributes::readonly(), readOnly ? "" : 0);
1570 }
1571
1572 - (long)rows
1573 {
1574     return [self _textAreaElementImpl]->getAttribute(HTMLAttributes::rows()).toInt();
1575 }
1576
1577 - (void)setRows:(long)rows
1578 {
1579         DOMString value(QString::number(rows));
1580     [self _textAreaElementImpl]->setAttribute(HTMLAttributes::rows(), value);
1581 }
1582
1583 - (long)tabIndex
1584 {
1585     return [self _textAreaElementImpl]->tabIndex();
1586 }
1587
1588 - (void)setTabIndex:(long)tabIndex
1589 {
1590     [self _textAreaElementImpl]->setTabIndex(tabIndex);
1591 }
1592
1593 - (NSString *)type
1594 {
1595     return [self _textAreaElementImpl]->type();
1596 }
1597
1598 - (void)setType:(NSString *)type
1599 {
1600     ASSERT_WITH_MESSAGE(0, "not implemented");
1601 }
1602
1603 - (NSString *)value
1604 {
1605     return [self _textAreaElementImpl]->value();
1606 }
1607
1608 - (void)setValue:(NSString *)value
1609 {
1610     [self _textAreaElementImpl]->setValue(value);
1611 }
1612
1613 - (void)blur
1614 {
1615     [self _textAreaElementImpl]->blur();
1616 }
1617
1618 - (void)focus
1619 {
1620     [self _textAreaElementImpl]->focus();
1621 }
1622
1623 - (void)select
1624 {
1625     [self _textAreaElementImpl]->select();
1626 }
1627
1628 @end
1629
1630 @implementation DOMHTMLButtonElement
1631
1632 - (HTMLButtonElementImpl *)_buttonElementImpl
1633 {
1634     return static_cast<HTMLButtonElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1635 }
1636
1637 - (DOMHTMLFormElement *)form
1638 {
1639     return [DOMHTMLFormElement _formElementWithImpl:[self _buttonElementImpl]->form()];
1640 }
1641
1642 - (NSString *)accessKey
1643 {
1644     return [self _buttonElementImpl]->getAttribute(HTMLAttributes::accesskey());
1645 }
1646
1647 - (void)setAccessKey:(NSString *)accessKey
1648 {
1649     [self _buttonElementImpl]->setAttribute(HTMLAttributes::accesskey(), accessKey);
1650 }
1651
1652 - (BOOL)disabled
1653 {
1654     return [self _buttonElementImpl]->getAttribute(HTMLAttributes::disabled()).isNull();
1655 }
1656
1657 - (void)setDisabled:(BOOL)disabled
1658 {
1659     [self _buttonElementImpl]->setAttribute(HTMLAttributes::disabled(), disabled ? "" : 0);
1660 }
1661
1662 - (NSString *)name
1663 {
1664     return [self _buttonElementImpl]->name();
1665 }
1666
1667 - (void)setName:(NSString *)name
1668 {
1669     [self _buttonElementImpl]->setName(name);
1670 }
1671
1672 - (long)tabIndex
1673 {
1674     return [self _buttonElementImpl]->tabIndex();
1675 }
1676
1677 - (void)setTabIndex:(long)tabIndex
1678 {
1679     [self _buttonElementImpl]->setTabIndex(tabIndex);
1680 }
1681
1682 - (NSString *)type
1683 {
1684     return [self _buttonElementImpl]->type();
1685 }
1686
1687 - (NSString *)value
1688 {
1689     return [self _buttonElementImpl]->getAttribute(HTMLAttributes::value());
1690 }
1691
1692 - (void)setValue:(NSString *)value
1693 {
1694     [self _buttonElementImpl]->setAttribute(HTMLAttributes::value(), value);
1695 }
1696
1697 @end
1698
1699 @implementation DOMHTMLLabelElement
1700
1701 - (HTMLLabelElementImpl *)_labelElementImpl
1702 {
1703     return static_cast<HTMLLabelElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1704 }
1705
1706 - (DOMHTMLFormElement *)form
1707 {
1708     ElementImpl *formElement = [self _labelElementImpl]->formElement();
1709     if (!formElement)
1710         return 0;
1711     return [DOMHTMLFormElement _formElementWithImpl:static_cast<HTMLGenericFormElementImpl *>(formElement)->form()];
1712 }
1713
1714 - (NSString *)accessKey
1715 {
1716     return [self _labelElementImpl]->getAttribute(HTMLAttributes::accesskey());
1717 }
1718
1719 - (void)setAccessKey:(NSString *)accessKey
1720 {
1721     [self _labelElementImpl]->setAttribute(HTMLAttributes::accesskey(), accessKey);
1722 }
1723
1724 - (NSString *)htmlFor
1725 {
1726     return [self _labelElementImpl]->getAttribute(HTMLAttributes::forAttr());
1727 }
1728
1729 - (void)setHtmlFor:(NSString *)htmlFor
1730 {
1731     [self _labelElementImpl]->setAttribute(HTMLAttributes::forAttr(), htmlFor);
1732 }
1733
1734 @end
1735
1736 @implementation DOMHTMLFieldSetElement
1737
1738 - (HTMLFieldSetElementImpl *)_fieldSetElementImpl
1739 {
1740     return static_cast<HTMLFieldSetElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1741 }
1742
1743 - (DOMHTMLFormElement *)form
1744 {
1745     return [DOMHTMLFormElement _formElementWithImpl:[self _fieldSetElementImpl]->form()];
1746 }
1747
1748 @end
1749
1750 @implementation DOMHTMLLegendElement
1751
1752 - (HTMLLegendElementImpl *)_legendElementImpl
1753 {
1754     return static_cast<HTMLLegendElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1755 }
1756
1757 - (DOMHTMLFormElement *)form
1758 {
1759     return [DOMHTMLFormElement _formElementWithImpl:[self _legendElementImpl]->form()];
1760 }
1761
1762 - (NSString *)accessKey
1763 {
1764     return [self _legendElementImpl]->getAttribute(HTMLAttributes::accesskey());
1765 }
1766
1767 - (void)setAccessKey:(NSString *)accessKey
1768 {
1769     [self _legendElementImpl]->setAttribute(HTMLAttributes::accesskey(), accessKey);
1770 }
1771
1772 - (NSString *)align
1773 {
1774     return [self _legendElementImpl]->getAttribute(HTMLAttributes::align());
1775 }
1776
1777 - (void)setAlign:(NSString *)align
1778 {
1779     [self _legendElementImpl]->setAttribute(HTMLAttributes::align(), align);
1780 }
1781
1782 @end
1783
1784 @implementation DOMHTMLUListElement
1785
1786 - (HTMLUListElementImpl *)_uListElementImpl
1787 {
1788     return static_cast<HTMLUListElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1789 }
1790
1791 - (BOOL)compact
1792 {
1793     return [self _uListElementImpl]->getAttribute(HTMLAttributes::compact()).isNull();
1794 }
1795
1796 - (void)setCompact:(BOOL)compact
1797 {
1798     [self _uListElementImpl]->setAttribute(HTMLAttributes::compact(), compact ? "" : 0);
1799 }
1800
1801 - (NSString *)type
1802 {
1803     return [self _uListElementImpl]->getAttribute(HTMLAttributes::type());
1804 }
1805
1806 - (void)setType:(NSString *)type
1807 {
1808     [self _uListElementImpl]->setAttribute(HTMLAttributes::type(), type);
1809 }
1810
1811 @end
1812
1813 @implementation DOMHTMLOListElement
1814
1815 - (HTMLOListElementImpl *)_oListElementImpl
1816 {
1817     return static_cast<HTMLOListElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1818 }
1819
1820 - (BOOL)compact
1821 {
1822     return [self _oListElementImpl]->compact();
1823 }
1824
1825 - (void)setCompact:(BOOL)compact
1826 {
1827     [self _oListElementImpl]->setCompact(compact);
1828 }
1829
1830 - (long)start
1831 {
1832     return [self _oListElementImpl]->getAttribute(HTMLAttributes::start()).toInt();
1833 }
1834
1835 - (void)setStart:(long)start
1836 {
1837         DOMString value(QString::number(start));
1838     [self _oListElementImpl]->setAttribute(HTMLAttributes::start(), value);
1839 }
1840
1841 - (NSString *)type
1842 {
1843     return [self _oListElementImpl]->getAttribute(HTMLAttributes::type());
1844 }
1845
1846 - (void)setType:(NSString *)type
1847 {
1848     [self _oListElementImpl]->setAttribute(HTMLAttributes::type(), type);
1849 }
1850
1851 @end
1852
1853 @implementation DOMHTMLDListElement
1854
1855 - (HTMLDListElementImpl *)_dListElementImpl
1856 {
1857     return static_cast<HTMLDListElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1858 }
1859
1860 - (BOOL)compact
1861 {
1862     return [self _dListElementImpl]->getAttribute(HTMLAttributes::compact()).isNull();
1863 }
1864
1865 - (void)setCompact:(BOOL)compact
1866 {
1867     [self _dListElementImpl]->setAttribute(HTMLAttributes::compact(), compact ? "" : 0);
1868 }
1869
1870 @end
1871
1872 @implementation DOMHTMLDirectoryElement
1873
1874 - (HTMLDirectoryElementImpl *)_directoryListElementImpl
1875 {
1876     return static_cast<HTMLDirectoryElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1877 }
1878
1879 - (BOOL)compact
1880 {
1881     return [self _directoryListElementImpl]->getAttribute(HTMLAttributes::compact()).isNull();
1882 }
1883
1884 - (void)setCompact:(BOOL)compact
1885 {
1886     [self _directoryListElementImpl]->setAttribute(HTMLAttributes::compact(), compact ? "" : 0);
1887 }
1888
1889 @end
1890
1891 @implementation DOMHTMLMenuElement
1892
1893 - (HTMLMenuElementImpl *)_menuListElementImpl
1894 {
1895     return static_cast<HTMLMenuElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1896 }
1897
1898 - (BOOL)compact
1899 {
1900     return [self _menuListElementImpl]->getAttribute(HTMLAttributes::compact()).isNull();
1901 }
1902
1903 - (void)setCompact:(BOOL)compact
1904 {
1905     [self _menuListElementImpl]->setAttribute(HTMLAttributes::compact(), compact ? "" : 0);
1906 }
1907
1908 @end
1909
1910 @implementation DOMHTMLLIElement
1911
1912 - (HTMLLIElementImpl *)_liElementImpl
1913 {
1914     return static_cast<HTMLLIElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1915 }
1916
1917 - (NSString *)type
1918 {
1919     return [self _liElementImpl]->type();
1920 }
1921
1922 - (void)setType:(NSString *)type
1923 {
1924     [self _liElementImpl]->setType(type);
1925 }
1926
1927 - (long)value
1928 {
1929     return [self _liElementImpl]->value();
1930 }
1931
1932 - (void)setValue:(long)value
1933 {
1934     [self _liElementImpl]->setValue(value);
1935 }
1936
1937 @end
1938
1939 @implementation DOMHTMLQuoteElement
1940
1941 - (HTMLElementImpl *)_quoteElementImpl
1942 {
1943     return static_cast<HTMLElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1944 }
1945
1946 - (NSString *)cite
1947 {
1948     return [self _quoteElementImpl]->getAttribute(HTMLAttributes::cite());
1949 }
1950
1951 - (void)setCite:(NSString *)cite
1952 {
1953     [self _quoteElementImpl]->setAttribute(HTMLAttributes::cite(), cite);
1954 }
1955
1956 @end
1957
1958 @implementation DOMHTMLDivElement
1959
1960 - (HTMLDivElementImpl *)_divElementImpl
1961 {
1962     return static_cast<HTMLDivElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1963 }
1964
1965 - (NSString *)align
1966 {
1967     return [self _divElementImpl]->getAttribute(HTMLAttributes::align());
1968 }
1969
1970 - (void)setAlign:(NSString *)align
1971 {
1972     [self _divElementImpl]->setAttribute(HTMLAttributes::align(), align);
1973 }
1974
1975 @end
1976
1977 @implementation DOMHTMLParagraphElement
1978
1979 - (HTMLParagraphElementImpl *)_paragraphElementImpl
1980 {
1981     return static_cast<HTMLParagraphElementImpl *>(DOM_cast<NodeImpl *>(_internal));
1982 }
1983
1984 - (NSString *)align
1985 {
1986     return [self _paragraphElementImpl]->getAttribute(HTMLAttributes::align());
1987 }
1988
1989 - (void)setAlign:(NSString *)align
1990 {
1991     [self _paragraphElementImpl]->setAttribute(HTMLAttributes::align(), align);
1992 }
1993
1994 @end
1995
1996 @implementation DOMHTMLHeadingElement
1997
1998 - (HTMLHeadingElementImpl *)_headingElementImpl
1999 {
2000     return static_cast<HTMLHeadingElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2001 }
2002
2003 - (NSString *)align
2004 {
2005     return [self _headingElementImpl]->getAttribute(HTMLAttributes::align());
2006 }
2007
2008 - (void)setAlign:(NSString *)align
2009 {
2010     [self _headingElementImpl]->setAttribute(HTMLAttributes::align(), align);
2011 }
2012
2013 @end
2014
2015 @implementation DOMHTMLPreElement
2016
2017 - (HTMLPreElementImpl *)_preElementImpl
2018 {
2019     return static_cast<HTMLPreElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2020 }
2021
2022 - (long)width
2023 {
2024     return [self _preElementImpl]->getAttribute(HTMLAttributes::width()).toInt();
2025 }
2026
2027 - (void)setWidth:(long)width
2028 {
2029     DOMString string(QString::number(width));
2030     [self _preElementImpl]->setAttribute(HTMLAttributes::width(), string);
2031 }
2032
2033 @end
2034
2035 @implementation DOMHTMLBRElement
2036
2037 - (HTMLBRElementImpl *)_BRElementImpl
2038 {
2039     return static_cast<HTMLBRElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2040 }
2041
2042 - (NSString *)clear
2043 {
2044     return [self _BRElementImpl]->getAttribute(HTMLAttributes::clear());
2045 }
2046
2047 - (void)setClear:(NSString *)clear
2048 {
2049     [self _BRElementImpl]->setAttribute(HTMLAttributes::clear(), clear);
2050 }
2051
2052 @end
2053
2054 @implementation DOMHTMLBaseFontElement
2055
2056 - (HTMLBaseFontElementImpl *)_baseFontElementImpl
2057 {
2058     return static_cast<HTMLBaseFontElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2059 }
2060
2061 - (NSString *)color
2062 {
2063     return [self _baseFontElementImpl]->getAttribute(HTMLAttributes::color());
2064 }
2065
2066 - (void)setColor:(NSString *)color
2067 {
2068     [self _baseFontElementImpl]->setAttribute(HTMLAttributes::color(), color);
2069 }
2070
2071 - (NSString *)face
2072 {
2073     return [self _baseFontElementImpl]->getAttribute(HTMLAttributes::face());
2074 }
2075
2076 - (void)setFace:(NSString *)face
2077 {
2078     [self _baseFontElementImpl]->setAttribute(HTMLAttributes::face(), face);
2079 }
2080
2081 - (NSString *)size
2082 {
2083     return [self _baseFontElementImpl]->getAttribute(HTMLAttributes::size());
2084 }
2085
2086 - (void)setSize:(NSString *)size
2087 {
2088     [self _baseFontElementImpl]->setAttribute(HTMLAttributes::size(), size);
2089 }
2090
2091 @end
2092
2093 @implementation DOMHTMLFontElement
2094
2095 - (HTMLFontElementImpl *)_fontElementImpl
2096 {
2097     return static_cast<HTMLFontElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2098 }
2099
2100 - (NSString *)color
2101 {
2102     return [self _fontElementImpl]->getAttribute(HTMLAttributes::color());
2103 }
2104
2105 - (void)setColor:(NSString *)color
2106 {
2107     [self _fontElementImpl]->setAttribute(HTMLAttributes::color(), color);
2108 }
2109
2110 - (NSString *)face
2111 {
2112     return [self _fontElementImpl]->getAttribute(HTMLAttributes::face());
2113 }
2114
2115 - (void)setFace:(NSString *)face
2116 {
2117     [self _fontElementImpl]->setAttribute(HTMLAttributes::face(), face);
2118 }
2119
2120 - (NSString *)size
2121 {
2122     return [self _fontElementImpl]->getAttribute(HTMLAttributes::size());
2123 }
2124
2125 - (void)setSize:(NSString *)size
2126 {
2127     [self _fontElementImpl]->setAttribute(HTMLAttributes::size(), size);
2128 }
2129
2130 @end
2131
2132 @implementation DOMHTMLHRElement
2133
2134 - (HTMLHRElementImpl *)_HRElementImpl
2135 {
2136     return static_cast<HTMLHRElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2137 }
2138
2139 - (NSString *)align
2140 {
2141     return [self _HRElementImpl]->getAttribute(HTMLAttributes::align());
2142 }
2143
2144 - (void)setAlign:(NSString *)align
2145 {
2146     [self _HRElementImpl]->setAttribute(HTMLAttributes::align(), align);
2147 }
2148
2149 - (BOOL)noShade
2150 {
2151     return [self _HRElementImpl]->getAttribute(HTMLAttributes::noshade()).isNull();
2152 }
2153
2154 - (void)setNoShade:(BOOL)noShade
2155 {
2156     [self _HRElementImpl]->setAttribute(HTMLAttributes::noshade(), noShade ? "" : 0);
2157 }
2158
2159 - (NSString *)size
2160 {
2161     return [self _HRElementImpl]->getAttribute(HTMLAttributes::size());
2162 }
2163
2164 - (void)setSize:(NSString *)size
2165 {
2166     [self _HRElementImpl]->setAttribute(HTMLAttributes::size(), size);
2167 }
2168
2169 - (NSString *)width
2170 {
2171     return [self _HRElementImpl]->getAttribute(HTMLAttributes::width());
2172 }
2173
2174 - (void)setWidth:(NSString *)width
2175 {
2176     [self _HRElementImpl]->setAttribute(HTMLAttributes::width(), width);
2177 }
2178
2179 @end
2180
2181 @implementation DOMHTMLModElement
2182
2183 - (HTMLElementImpl *)_modElementImpl
2184 {
2185     return static_cast<HTMLElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2186 }
2187
2188 - (NSString *)cite
2189 {
2190     return [self _modElementImpl]->getAttribute(HTMLAttributes::cite());
2191 }
2192
2193 - (void)setCite:(NSString *)cite
2194 {
2195     [self _modElementImpl]->setAttribute(HTMLAttributes::cite(), cite);
2196 }
2197
2198 - (NSString *)dateTime
2199 {
2200     return [self _modElementImpl]->getAttribute(HTMLAttributes::datetime());
2201 }
2202
2203 - (void)setDateTime:(NSString *)dateTime
2204 {
2205     [self _modElementImpl]->setAttribute(HTMLAttributes::datetime(), dateTime);
2206 }
2207
2208 @end
2209
2210 @implementation DOMHTMLAnchorElement
2211
2212 - (HTMLAnchorElementImpl *)_anchorElementImpl
2213 {
2214     return static_cast<HTMLAnchorElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2215 }
2216
2217 - (NSString *)accessKey
2218 {
2219     return [self _anchorElementImpl]->getAttribute(HTMLAttributes::accesskey());
2220 }
2221
2222 - (void)setAccessKey:(NSString *)accessKey
2223 {
2224     [self _anchorElementImpl]->setAttribute(HTMLAttributes::accesskey(), accessKey);
2225 }
2226
2227 - (NSString *)charset
2228 {
2229     return [self _anchorElementImpl]->getAttribute(HTMLAttributes::charset());
2230 }
2231
2232 - (void)setCharset:(NSString *)charset
2233 {
2234     [self _anchorElementImpl]->setAttribute(HTMLAttributes::charset(), charset);
2235 }
2236
2237 - (NSString *)coords
2238 {
2239     return [self _anchorElementImpl]->getAttribute(HTMLAttributes::coords());
2240 }
2241
2242 - (void)setCoords:(NSString *)coords
2243 {
2244     [self _anchorElementImpl]->setAttribute(HTMLAttributes::coords(), coords);
2245 }
2246
2247 - (NSString *)href
2248 {
2249     return [self _anchorElementImpl]->href();
2250 }
2251
2252 - (void)setHref:(NSString *)href
2253 {
2254     [self _anchorElementImpl]->setAttribute(HTMLAttributes::href(), href);
2255 }
2256
2257 - (NSString *)hreflang
2258 {
2259     return [self _anchorElementImpl]->hreflang();
2260 }
2261
2262 - (void)setHreflang:(NSString *)hreflang
2263 {
2264     [self _anchorElementImpl]->setHreflang(hreflang);
2265 }
2266
2267 - (NSString *)name
2268 {
2269     return [self _anchorElementImpl]->name();
2270 }
2271
2272 - (void)setName:(NSString *)name
2273 {
2274     [self _anchorElementImpl]->setName(name);
2275 }
2276
2277 - (NSString *)rel
2278 {
2279     return [self _anchorElementImpl]->rel();
2280 }
2281
2282 - (void)setRel:(NSString *)rel
2283 {
2284     [self _anchorElementImpl]->setRel(rel);
2285 }
2286
2287 - (NSString *)rev
2288 {
2289     return [self _anchorElementImpl]->rev();
2290 }
2291
2292 - (void)setRev:(NSString *)rev
2293 {
2294     [self _anchorElementImpl]->setRev(rev);
2295 }
2296
2297 - (NSString *)shape
2298 {
2299     return [self _anchorElementImpl]->shape();
2300 }
2301
2302 - (void)setShape:(NSString *)shape
2303 {
2304     [self _anchorElementImpl]->setShape(shape);
2305 }
2306
2307 - (long)tabIndex
2308 {
2309     return [self _anchorElementImpl]->tabIndex();
2310 }
2311
2312 - (void)setTabIndex:(long)tabIndex
2313 {
2314     [self _anchorElementImpl]->setTabIndex(tabIndex);
2315 }
2316
2317 - (NSString *)target
2318 {
2319     return [self _anchorElementImpl]->getAttribute(HTMLAttributes::target());
2320 }
2321
2322 - (void)setTarget:(NSString *)target
2323 {
2324     [self _anchorElementImpl]->setAttribute(HTMLAttributes::target(), target);
2325 }
2326
2327 - (NSString *)type
2328 {
2329     return [self _anchorElementImpl]->getAttribute(HTMLAttributes::type());
2330 }
2331
2332 - (void)setType:(NSString *)type
2333 {
2334     [self _anchorElementImpl]->setAttribute(HTMLAttributes::type(), type);
2335 }
2336
2337 - (void)blur
2338 {
2339     HTMLAnchorElementImpl *impl = [self _anchorElementImpl];
2340     if (impl->getDocument()->focusNode() == impl)
2341         impl->getDocument()->setFocusNode(0);
2342 }
2343
2344 - (void)focus
2345 {
2346     HTMLAnchorElementImpl *impl = [self _anchorElementImpl];
2347     impl->getDocument()->setFocusNode(static_cast<ElementImpl*>(impl));
2348 }
2349
2350 @end
2351
2352 @implementation DOMHTMLImageElement
2353
2354 - (HTMLImageElementImpl *)_imageElementImpl
2355 {
2356     return static_cast<HTMLImageElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2357 }
2358
2359 - (NSString *)name
2360 {
2361     return [self _imageElementImpl]->getAttribute(HTMLAttributes::name());
2362 }
2363
2364 - (void)setName:(NSString *)name
2365 {
2366     [self _imageElementImpl]->setAttribute(HTMLAttributes::name(), name);
2367 }
2368
2369 - (NSString *)align
2370 {
2371     return [self _imageElementImpl]->getAttribute(HTMLAttributes::align());
2372 }
2373
2374 - (void)setAlign:(NSString *)align
2375 {
2376     [self _imageElementImpl]->setAttribute(HTMLAttributes::align(), align);
2377 }
2378
2379 - (NSString *)alt
2380 {
2381     return [self _imageElementImpl]->getAttribute(HTMLAttributes::alt());
2382 }
2383
2384 - (void)setAlt:(NSString *)alt
2385 {
2386     [self _imageElementImpl]->setAttribute(HTMLAttributes::alt(), alt);
2387 }
2388
2389 - (NSString *)border
2390 {
2391     return [self _imageElementImpl]->getAttribute(HTMLAttributes::border());
2392 }
2393
2394 - (void)setBorder:(NSString *)border
2395 {
2396     [self _imageElementImpl]->setAttribute(HTMLAttributes::border(), border);
2397 }
2398
2399 - (long)height
2400 {
2401     return [self _imageElementImpl]->getAttribute(HTMLAttributes::height()).toInt();
2402 }
2403
2404 - (void)setHeight:(long)height
2405 {
2406     DOMString string(QString::number(height));
2407     [self _imageElementImpl]->setAttribute(HTMLAttributes::height(), string);
2408 }
2409
2410 - (long)hspace
2411 {
2412     return [self _imageElementImpl]->getAttribute(HTMLAttributes::hspace()).toInt();
2413 }
2414
2415 - (void)setHspace:(long)hspace
2416 {
2417     DOMString string(QString::number(hspace));
2418     [self _imageElementImpl]->setAttribute(HTMLAttributes::hspace(), string);
2419 }
2420
2421 - (BOOL)isMap
2422 {
2423     return [self _imageElementImpl]->getAttribute(HTMLAttributes::ismap()).isNull();
2424 }
2425
2426 - (void)setIsMap:(BOOL)isMap
2427 {
2428     [self _imageElementImpl]->setAttribute(HTMLAttributes::ismap(), isMap ? "" : 0);
2429 }
2430
2431 - (NSString *)longDesc
2432 {
2433     return [self _imageElementImpl]->getAttribute(HTMLAttributes::longdesc());
2434 }
2435
2436 - (void)setLongDesc:(NSString *)longDesc
2437 {
2438     [self _imageElementImpl]->setAttribute(HTMLAttributes::longdesc(), longDesc);
2439 }
2440
2441 - (NSString *)src
2442 {
2443     return [self _imageElementImpl]->src();
2444 }
2445
2446 - (void)setSrc:(NSString *)src
2447 {
2448     [self _imageElementImpl]->setAttribute(HTMLAttributes::src(), src);
2449 }
2450
2451 - (NSString *)useMap
2452 {
2453     return [self _imageElementImpl]->getAttribute(HTMLAttributes::usemap());
2454 }
2455
2456 - (void)setUseMap:(NSString *)useMap
2457 {
2458     [self _imageElementImpl]->setAttribute(HTMLAttributes::usemap(), useMap);
2459 }
2460
2461 - (long)vspace
2462 {
2463     return [self _imageElementImpl]->getAttribute(HTMLAttributes::vspace()).toInt();
2464 }
2465
2466 - (void)setVspace:(long)vspace
2467 {
2468     DOMString string(QString::number(vspace));
2469     [self _imageElementImpl]->setAttribute(HTMLAttributes::vspace(), string);
2470 }
2471
2472 - (long)width
2473 {
2474     return [self _imageElementImpl]->getAttribute(HTMLAttributes::width()).toInt();
2475 }
2476
2477 - (void)setWidth:(long)width
2478 {
2479     DOMString string(QString::number(width));
2480     [self _imageElementImpl]->setAttribute(HTMLAttributes::width(), string);
2481 }
2482
2483 @end
2484
2485 @implementation DOMHTMLObjectElement
2486
2487 - (HTMLObjectElementImpl *)_objectElementImpl
2488 {
2489     return static_cast<HTMLObjectElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2490 }
2491
2492 - (DOMHTMLFormElement *)form
2493 {
2494     return [DOMHTMLFormElement _formElementWithImpl:[self _objectElementImpl]->form()];
2495 }
2496
2497 - (NSString *)code
2498 {
2499     return [self _objectElementImpl]->getAttribute(HTMLAttributes::code());
2500 }
2501
2502 - (void)setCode:(NSString *)code
2503 {
2504     [self _objectElementImpl]->setAttribute(HTMLAttributes::code(), code);
2505 }
2506
2507 - (NSString *)align
2508 {
2509     return [self _objectElementImpl]->getAttribute(HTMLAttributes::align());
2510 }
2511
2512 - (void)setAlign:(NSString *)align
2513 {
2514     [self _objectElementImpl]->setAttribute(HTMLAttributes::align(), align);
2515 }
2516
2517 - (NSString *)archive
2518 {
2519     return [self _objectElementImpl]->getAttribute(HTMLAttributes::archive());
2520 }
2521
2522 - (void)setArchive:(NSString *)archive
2523 {
2524     [self _objectElementImpl]->setAttribute(HTMLAttributes::archive(), archive);
2525 }
2526
2527 - (NSString *)border
2528 {
2529     return [self _objectElementImpl]->getAttribute(HTMLAttributes::border());
2530 }
2531
2532 - (void)setBorder:(NSString *)border
2533 {
2534     [self _objectElementImpl]->setAttribute(HTMLAttributes::border(), border);
2535 }
2536
2537 - (NSString *)codeBase
2538 {
2539     return [self _objectElementImpl]->getAttribute(HTMLAttributes::codebase());
2540 }
2541
2542 - (void)setCodeBase:(NSString *)codeBase
2543 {
2544     [self _objectElementImpl]->setAttribute(HTMLAttributes::codebase(), codeBase);
2545 }
2546
2547 - (NSString *)codeType
2548 {
2549     return [self _objectElementImpl]->getAttribute(HTMLAttributes::codetype());
2550 }
2551
2552 - (void)setCodeType:(NSString *)codeType
2553 {
2554     [self _objectElementImpl]->setAttribute(HTMLAttributes::codetype(), codeType);
2555 }
2556
2557 - (NSString *)data
2558 {
2559     return [self _objectElementImpl]->getAttribute(HTMLAttributes::data());
2560 }
2561
2562 - (void)setData:(NSString *)data
2563 {
2564     [self _objectElementImpl]->setAttribute(HTMLAttributes::data(), data);
2565 }
2566
2567 - (BOOL)declare
2568 {
2569     return [self _objectElementImpl]->getAttribute(HTMLAttributes::declare()).isNull();
2570 }
2571
2572 - (void)setDeclare:(BOOL)declare
2573 {
2574     [self _objectElementImpl]->setAttribute(HTMLAttributes::declare(), declare ? "" : 0);
2575 }
2576
2577 - (NSString *)height
2578 {
2579     return [self _objectElementImpl]->getAttribute(HTMLAttributes::height());
2580 }
2581
2582 - (void)setHeight:(NSString *)height
2583 {
2584     [self _objectElementImpl]->setAttribute(HTMLAttributes::height(), height);
2585 }
2586
2587 - (long)hspace
2588 {
2589     return [self _objectElementImpl]->getAttribute(HTMLAttributes::hspace()).toInt();
2590 }
2591
2592 - (void)setHspace:(long)hspace
2593 {
2594     DOMString string(QString::number(hspace));
2595     [self _objectElementImpl]->setAttribute(HTMLAttributes::hspace(), string);
2596 }
2597
2598 - (NSString *)name
2599 {
2600     return [self _objectElementImpl]->getAttribute(HTMLAttributes::name());
2601 }
2602
2603 - (void)setName:(NSString *)name
2604 {
2605     [self _objectElementImpl]->setAttribute(HTMLAttributes::name(), name);
2606 }
2607
2608 - (NSString *)standby
2609 {
2610     return [self _objectElementImpl]->getAttribute(HTMLAttributes::standby());
2611 }
2612
2613 - (void)setStandby:(NSString *)standby
2614 {
2615     [self _objectElementImpl]->setAttribute(HTMLAttributes::standby(), standby);
2616 }
2617
2618 - (long)tabIndex
2619 {
2620     return [self _objectElementImpl]->getAttribute(HTMLAttributes::tabindex()).toInt();
2621 }
2622
2623 - (void)setTabIndex:(long)tabIndex
2624 {
2625     DOMString string(QString::number(tabIndex));
2626     [self _objectElementImpl]->setAttribute(HTMLAttributes::tabindex(), string);
2627 }
2628
2629 - (NSString *)type
2630 {
2631     return [self _objectElementImpl]->getAttribute(HTMLAttributes::type());
2632 }
2633
2634 - (void)setType:(NSString *)type
2635 {
2636     [self _objectElementImpl]->setAttribute(HTMLAttributes::type(), type);
2637 }
2638
2639 - (NSString *)useMap
2640 {
2641     return [self _objectElementImpl]->getAttribute(HTMLAttributes::usemap());
2642 }
2643
2644 - (void)setUseMap:(NSString *)useMap
2645 {
2646     [self _objectElementImpl]->setAttribute(HTMLAttributes::usemap(), useMap);
2647 }
2648
2649 - (long)vspace
2650 {
2651     return [self _objectElementImpl]->getAttribute(HTMLAttributes::vspace()).toInt();
2652 }
2653
2654 - (void)setVspace:(long)vspace
2655 {
2656     DOMString string(QString::number(vspace));
2657     [self _objectElementImpl]->setAttribute(HTMLAttributes::vspace(), string);
2658 }
2659
2660 - (NSString *)width
2661 {
2662     return [self _objectElementImpl]->getAttribute(HTMLAttributes::width());
2663 }
2664
2665 - (void)setWidth:(NSString *)width
2666 {
2667     [self _objectElementImpl]->setAttribute(HTMLAttributes::width(), width);
2668 }
2669
2670 - (DOMDocument *)contentDocument
2671 {
2672     return [DOMDocument _documentWithImpl:[self _objectElementImpl]->contentDocument()];
2673 }
2674
2675 @end
2676
2677 @implementation DOMHTMLParamElement
2678
2679 - (HTMLParamElementImpl *)_paramElementImpl
2680 {
2681     return static_cast<HTMLParamElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2682 }
2683
2684 - (NSString *)name
2685 {
2686     return [self _paramElementImpl]->getAttribute(HTMLAttributes::name());
2687 }
2688
2689 - (void)setName:(NSString *)name
2690 {
2691     [self _paramElementImpl]->setAttribute(HTMLAttributes::name(), name);
2692 }
2693
2694 - (NSString *)type
2695 {
2696     return [self _paramElementImpl]->getAttribute(HTMLAttributes::type());
2697 }
2698
2699 - (void)setType:(NSString *)type
2700 {
2701     [self _paramElementImpl]->setAttribute(HTMLAttributes::type(), type);
2702 }
2703
2704 - (NSString *)value
2705 {
2706     return [self _paramElementImpl]->getAttribute(HTMLAttributes::value());
2707 }
2708
2709 - (void)setValue:(NSString *)value
2710 {
2711     [self _paramElementImpl]->setAttribute(HTMLAttributes::value(), value);
2712 }
2713
2714 - (NSString *)valueType
2715 {
2716     return [self _paramElementImpl]->getAttribute(HTMLAttributes::valuetype());
2717 }
2718
2719 - (void)setValueType:(NSString *)valueType
2720 {
2721     [self _paramElementImpl]->setAttribute(HTMLAttributes::valuetype(), valueType);
2722 }
2723
2724 @end
2725
2726 @implementation DOMHTMLAppletElement
2727
2728 - (HTMLAppletElementImpl *)_appletElementImpl
2729 {
2730     return static_cast<HTMLAppletElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2731 }
2732
2733 - (NSString *)align
2734 {
2735     return [self _appletElementImpl]->getAttribute(HTMLAttributes::align());
2736 }
2737
2738 - (void)setAlign:(NSString *)align
2739 {
2740     [self _appletElementImpl]->setAttribute(HTMLAttributes::align(), align);
2741 }
2742
2743 - (NSString *)alt
2744 {
2745     return [self _appletElementImpl]->getAttribute(HTMLAttributes::alt());
2746 }
2747
2748 - (void)setAlt:(NSString *)alt
2749 {
2750     [self _appletElementImpl]->setAttribute(HTMLAttributes::alt(), alt);
2751 }
2752
2753 - (NSString *)archive
2754 {
2755     return [self _appletElementImpl]->getAttribute(HTMLAttributes::archive());
2756 }
2757
2758 - (void)setArchive:(NSString *)archive
2759 {
2760     [self _appletElementImpl]->setAttribute(HTMLAttributes::archive(), archive);
2761 }
2762
2763 - (NSString *)code
2764 {
2765     return [self _appletElementImpl]->getAttribute(HTMLAttributes::code());
2766 }
2767
2768 - (void)setCode:(NSString *)code
2769 {
2770     [self _appletElementImpl]->setAttribute(HTMLAttributes::code(), code);
2771 }
2772
2773 - (NSString *)codeBase
2774 {
2775     return [self _appletElementImpl]->getAttribute(HTMLAttributes::codebase());
2776 }
2777
2778 - (void)setCodeBase:(NSString *)codeBase
2779 {
2780     [self _appletElementImpl]->setAttribute(HTMLAttributes::codebase(), codeBase);
2781 }
2782
2783 - (NSString *)height
2784 {
2785     return [self _appletElementImpl]->getAttribute(HTMLAttributes::height());
2786 }
2787
2788 - (void)setHeight:(NSString *)height
2789 {
2790     [self _appletElementImpl]->setAttribute(HTMLAttributes::height(), height);
2791 }
2792
2793 - (long)hspace
2794 {
2795     return [self _appletElementImpl]->getAttribute(HTMLAttributes::hspace()).toInt();
2796 }
2797
2798 - (void)setHspace:(long)hspace
2799 {
2800     DOMString string(QString::number(hspace));
2801     [self _appletElementImpl]->setAttribute(HTMLAttributes::hspace(), string);
2802 }
2803
2804 - (NSString *)name
2805 {
2806     return [self _appletElementImpl]->getAttribute(HTMLAttributes::name());
2807 }
2808
2809 - (void)setName:(NSString *)name
2810 {
2811     [self _appletElementImpl]->setAttribute(HTMLAttributes::name(), name);
2812 }
2813
2814 - (NSString *)object
2815 {
2816     return [self _appletElementImpl]->getAttribute(HTMLAttributes::object());
2817 }
2818
2819 - (void)setObject:(NSString *)object
2820 {
2821     [self _appletElementImpl]->setAttribute(HTMLAttributes::object(), object);
2822 }
2823
2824 - (long)vspace
2825 {
2826     return [self _appletElementImpl]->getAttribute(HTMLAttributes::vspace()).toInt();
2827 }
2828
2829 - (void)setVspace:(long)vspace
2830 {
2831     DOMString string(QString::number(vspace));
2832     [self _appletElementImpl]->setAttribute(HTMLAttributes::vspace(), string);
2833 }
2834
2835 - (NSString *)width
2836 {
2837     return [self _appletElementImpl]->getAttribute(HTMLAttributes::width());
2838 }
2839
2840 - (void)setWidth:(NSString *)width
2841 {
2842     [self _appletElementImpl]->setAttribute(HTMLAttributes::width(), width);
2843 }
2844
2845 @end
2846
2847 @implementation DOMHTMLMapElement
2848
2849 - (HTMLMapElementImpl *)_mapElementImpl
2850 {
2851     return static_cast<HTMLMapElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2852 }
2853
2854 - (DOMHTMLCollection *)areas
2855 {
2856     HTMLCollectionImpl *collection = new HTMLCollectionImpl([self _mapElementImpl], HTMLCollectionImpl::MAP_AREAS);
2857     return [DOMHTMLCollection _collectionWithImpl:collection];
2858 }
2859
2860 - (NSString *)name
2861 {
2862     return [self _mapElementImpl]->getAttribute(HTMLAttributes::name());
2863 }
2864
2865 - (void)setName:(NSString *)name
2866 {
2867     [self _mapElementImpl]->setAttribute(HTMLAttributes::name(), name);
2868 }
2869
2870 @end
2871
2872 @implementation DOMHTMLAreaElement
2873
2874 - (HTMLAreaElementImpl *)_areaElementImpl
2875 {
2876     return static_cast<HTMLAreaElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2877 }
2878
2879 - (NSString *)accessKey
2880 {
2881     return [self _areaElementImpl]->getAttribute(HTMLAttributes::accesskey());
2882 }
2883
2884 - (void)setAccessKey:(NSString *)accessKey
2885 {
2886     [self _areaElementImpl]->setAttribute(HTMLAttributes::accesskey(), accessKey);
2887 }
2888
2889 - (NSString *)alt
2890 {
2891     return [self _areaElementImpl]->getAttribute(HTMLAttributes::alt());
2892 }
2893
2894 - (void)setAlt:(NSString *)alt
2895 {
2896     [self _areaElementImpl]->setAttribute(HTMLAttributes::alt(), alt);
2897 }
2898
2899 - (NSString *)coords
2900 {
2901     return [self _areaElementImpl]->getAttribute(HTMLAttributes::coords());
2902 }
2903
2904 - (void)setCoords:(NSString *)coords
2905 {
2906     [self _areaElementImpl]->setAttribute(HTMLAttributes::coords(), coords);
2907 }
2908
2909 - (NSString *)href
2910 {
2911     return [self _areaElementImpl]->href();
2912 }
2913
2914 - (void)setHref:(NSString *)href
2915 {
2916     [self _areaElementImpl]->setAttribute(HTMLAttributes::href(), href);
2917 }
2918
2919 - (BOOL)noHref
2920 {
2921     return [self _areaElementImpl]->getAttribute(HTMLAttributes::nohref()).isNull();
2922 }
2923
2924 - (void)setNoHref:(BOOL)noHref
2925 {
2926     [self _areaElementImpl]->setAttribute(HTMLAttributes::nohref(), noHref ? "" : 0);
2927 }
2928
2929 - (NSString *)shape
2930 {
2931     return [self _areaElementImpl]->getAttribute(HTMLAttributes::shape());
2932 }
2933
2934 - (void)setShape:(NSString *)shape
2935 {
2936     [self _areaElementImpl]->setAttribute(HTMLAttributes::shape(), shape);
2937 }
2938
2939 - (long)tabIndex
2940 {
2941     return [self _areaElementImpl]->getAttribute(HTMLAttributes::tabindex()).toInt();
2942 }
2943
2944 - (void)setTabIndex:(long)tabIndex
2945 {
2946     DOMString string(QString::number(tabIndex));
2947     [self _areaElementImpl]->setAttribute(HTMLAttributes::tabindex(), string);
2948 }
2949
2950 - (NSString *)target
2951 {
2952     return [self _areaElementImpl]->getAttribute(HTMLAttributes::target());
2953 }
2954
2955 - (void)setTarget:(NSString *)target
2956 {
2957     [self _areaElementImpl]->setAttribute(HTMLAttributes::target(), target);
2958 }
2959
2960 @end
2961
2962 @implementation DOMHTMLScriptElement
2963
2964 - (HTMLScriptElementImpl *)_scriptElementImpl
2965 {
2966     return static_cast<HTMLScriptElementImpl *>(DOM_cast<NodeImpl *>(_internal));
2967 }
2968
2969 - (NSString *)text
2970 {
2971     return [self _scriptElementImpl]->getAttribute(HTMLAttributes::text());
2972 }
2973
2974 - (void)setText:(NSString *)text
2975 {
2976     [self _scriptElementImpl]->setAttribute(HTMLAttributes::text(), text);
2977 }
2978
2979 - (NSString *)htmlFor
2980 {
2981     ASSERT_WITH_MESSAGE(0, "not implemented by khtml");
2982     return nil;
2983 }
2984
2985 - (void)setHtmlFor:(NSString *)htmlFor
2986 {
2987     ASSERT_WITH_MESSAGE(0, "not implemented by khtml");
2988 }
2989
2990 - (NSString *)event
2991 {
2992     ASSERT_WITH_MESSAGE(0, "not implemented by khtml");
2993     return nil;
2994 }
2995
2996 - (void)setEvent:(NSString *)event
2997 {
2998     ASSERT_WITH_MESSAGE(0, "not implemented by khtml");
2999 }
3000
3001 - (NSString *)charset
3002 {
3003     return [self _scriptElementImpl]->getAttribute(HTMLAttributes::charset());
3004 }
3005
3006 - (void)setCharset:(NSString *)charset
3007 {
3008     [self _scriptElementImpl]->setAttribute(HTMLAttributes::charset(), charset);
3009 }
3010
3011 - (BOOL)defer
3012 {
3013     return [self _scriptElementImpl]->getAttribute(HTMLAttributes::defer()).isNull();
3014 }
3015
3016 - (void)setDefer:(BOOL)defer
3017 {
3018     [self _scriptElementImpl]->setAttribute(HTMLAttributes::defer(), defer ? "" : 0);
3019 }
3020
3021 - (NSString *)src
3022 {
3023     return [self _scriptElementImpl]->getAttribute(HTMLAttributes::src());
3024 }
3025
3026 - (void)setSrc:(NSString *)src
3027 {
3028     [self _scriptElementImpl]->setAttribute(HTMLAttributes::src(), src);
3029 }
3030
3031 - (NSString *)type
3032 {
3033     return [self _scriptElementImpl]->getAttribute(HTMLAttributes::type());
3034 }
3035
3036 - (void)setType:(NSString *)type
3037 {
3038     [self _scriptElementImpl]->setAttribute(HTMLAttributes::type(), type);
3039 }
3040
3041 @end
3042
3043 @implementation DOMHTMLTableCaptionElement
3044
3045 - (NSString *)align
3046 {
3047     return [self _tableCaptionElementImpl]->getAttribute(HTMLAttributes::align());
3048 }
3049
3050 - (void)setAlign:(NSString *)align
3051 {
3052     [self _tableCaptionElementImpl]->setAttribute(HTMLAttributes::align(), align);
3053 }
3054
3055 @end
3056
3057 @implementation DOMHTMLTableCaptionElement (WebCoreInternal)
3058
3059 + (DOMHTMLTableCaptionElement *)_tableCaptionElementWithImpl:(HTMLTableCaptionElementImpl *)impl
3060 {
3061     return static_cast<DOMHTMLTableCaptionElement *>([DOMNode _nodeWithImpl:impl]);
3062 }
3063
3064 - (HTMLTableCaptionElementImpl *)_tableCaptionElementImpl
3065 {
3066     return static_cast<HTMLTableCaptionElementImpl *>(DOM_cast<NodeImpl *>(_internal));
3067 }
3068
3069 @end
3070
3071 @implementation DOMHTMLTableSectionElement
3072
3073 - (NSString *)align
3074 {
3075     return [self _tableSectionElementImpl]->getAttribute(HTMLAttributes::align());
3076 }
3077
3078 - (void)setAlign:(NSString *)align
3079 {
3080     [self _tableSectionElementImpl]->setAttribute(HTMLAttributes::align(), align);
3081 }
3082
3083 - (NSString *)ch
3084 {
3085     return [self _tableSectionElementImpl]->getAttribute(HTMLAttributes::charoff());
3086 }
3087
3088 - (void)setCh:(NSString *)ch
3089 {
3090     [self _tableSectionElementImpl]->setAttribute(HTMLAttributes::charoff(), ch);
3091 }
3092
3093 - (NSString *)chOff
3094 {
3095     return [self _tableSectionElementImpl]->getAttribute(HTMLAttributes::charoff());
3096 }
3097
3098 - (void)setChOff:(NSString *)chOff
3099 {
3100     [self _tableSectionElementImpl]->setAttribute(HTMLAttributes::charoff(), chOff);
3101 }
3102
3103 - (NSString *)vAlign
3104 {
3105     return [self _tableSectionElementImpl]->getAttribute(HTMLAttributes::valign());
3106 }
3107
3108 - (void)setVAlign:(NSString *)vAlign
3109 {
3110     [self _tableSectionElementImpl]->setAttribute(HTMLAttributes::valign(), vAlign);
3111 }
3112
3113 - (DOMHTMLCollection *)rows
3114 {
3115     HTMLCollectionImpl *collection = new HTMLCollectionImpl([self _tableSectionElementImpl], HTMLCollectionImpl::TABLE_ROWS);
3116     return [DOMHTMLCollection _collectionWithImpl:collection];
3117 }
3118
3119 - (DOMHTMLElement *)insertRow:(long)index
3120 {
3121     int exceptioncode = 0;
3122     HTMLElementImpl *impl = [self _tableSectionElementImpl]->insertRow(index, exceptioncode);
3123     raiseOnDOMError(exceptioncode);
3124     return [DOMHTMLElement _elementWithImpl:impl];
3125 }
3126
3127 - (void)deleteRow:(long)index
3128 {
3129     int exceptioncode = 0;
3130     [self _tableSectionElementImpl]->deleteRow(index, exceptioncode);
3131     raiseOnDOMError(exceptioncode);
3132 }
3133
3134 @end
3135
3136 @implementation DOMHTMLTableSectionElement (WebCoreInternal)
3137
3138 + (DOMHTMLTableSectionElement *)_tableSectionElementWithImpl:(HTMLTableSectionElementImpl *)impl
3139 {
3140     return static_cast<DOMHTMLTableSectionElement *>([DOMNode _nodeWithImpl:impl]);
3141 }
3142
3143 - (HTMLTableSectionElementImpl *)_tableSectionElementImpl
3144 {
3145     return static_cast<HTMLTableSectionElementImpl *>(DOM_cast<NodeImpl *>(_internal));
3146 }
3147
3148 @end
3149
3150 @implementation DOMHTMLTableElement
3151
3152 - (DOMHTMLTableCaptionElement *)caption
3153 {
3154     return [DOMHTMLTableCaptionElement _tableCaptionElementWithImpl:[self _tableElementImpl]->caption()];
3155 }
3156
3157 - (void)setCaption:(DOMHTMLTableCaptionElement *)caption
3158 {
3159     [self _tableElementImpl]->setCaption([caption _tableCaptionElementImpl]);
3160 }
3161
3162 - (DOMHTMLTableSectionElement *)tHead
3163 {
3164     return [DOMHTMLTableSectionElement _tableSectionElementWithImpl:[self _tableElementImpl]->tHead()];
3165 }
3166
3167 - (void)setTHead:(DOMHTMLTableSectionElement *)tHead
3168 {
3169     [self _tableElementImpl]->setTHead([tHead _tableSectionElementImpl]);
3170 }
3171
3172 - (DOMHTMLTableSectionElement *)tFoot
3173 {
3174     return [DOMHTMLTableSectionElement _tableSectionElementWithImpl:[self _tableElementImpl]->tFoot()];
3175 }
3176
3177 - (void)setTFoot:(DOMHTMLTableSectionElement *)tFoot
3178 {
3179     [self _tableElementImpl]->setTFoot([tFoot _tableSectionElementImpl]);
3180 }
3181
3182 - (DOMHTMLCollection *)rows
3183 {
3184     HTMLCollectionImpl *collection = new HTMLCollectionImpl([self _tableElementImpl], HTMLCollectionImpl::TABLE_ROWS);
3185     return [DOMHTMLCollection _collectionWithImpl:collection];
3186 }
3187
3188 - (DOMHTMLCollection *)tBodies
3189 {
3190     HTMLCollectionImpl *collection = new HTMLCollectionImpl([self _tableElementImpl], HTMLCollectionImpl::TABLE_TBODIES);
3191     return [DOMHTMLCollection _collectionWithImpl:collection];
3192 }
3193
3194 - (NSString *)align
3195 {
3196     return [self _tableElementImpl]->getAttribute(HTMLAttributes::align());
3197 }
3198
3199 - (void)setAlign:(NSString *)align
3200 {
3201     [self _tableElementImpl]->setAttribute(HTMLAttributes::align(), align);
3202 }
3203
3204 - (NSString *)bgColor
3205 {
3206     return [self _tableElementImpl]->getAttribute(HTMLAttributes::bgcolor());
3207 }
3208
3209 - (void)setBgColor:(NSString *)bgColor
3210 {
3211     [self _tableElementImpl]->setAttribute(HTMLAttributes::bgcolor(), bgColor);
3212 }
3213
3214 - (NSString *)border
3215 {
3216     return [self _tableElementImpl]->getAttribute(HTMLAttributes::border());
3217 }
3218
3219 - (void)setBorder:(NSString *)border
3220 {
3221     [self _tableElementImpl]->setAttribute(HTMLAttributes::border(), border);
3222 }
3223
3224 - (NSString *)cellPadding
3225 {
3226     return [self _tableElementImpl]->getAttribute(HTMLAttributes::cellpadding());
3227 }
3228
3229 - (void)setCellPadding:(NSString *)cellPadding
3230 {
3231     [self _tableElementImpl]->setAttribute(HTMLAttributes::cellpadding(), cellPadding);
3232 }
3233
3234 - (NSString *)cellSpacing
3235 {
3236     return [self _tableElementImpl]->getAttribute(HTMLAttributes::cellspacing());
3237 }
3238
3239 - (void)setCellSpacing:(NSString *)cellSpacing
3240 {
3241     [self _tableElementImpl]->setAttribute(HTMLAttributes::cellspacing(), cellSpacing);
3242 }
3243
3244 - (NSString *)frameBorders
3245 {
3246     return [self _tableElementImpl]->getAttribute(HTMLAttributes::frame());
3247 }
3248
3249 - (void)setFrameBorders:(NSString *)frameBorders
3250 {
3251     [self _tableElementImpl]->setAttribute(HTMLAttributes::frame(), frameBorders);
3252 }
3253
3254 - (NSString *)rules
3255 {
3256     return [self _tableElementImpl]->getAttribute(HTMLAttributes::rules());
3257 }
3258
3259 - (void)setRules:(NSString *)rules
3260 {
3261     [self _tableElementImpl]->setAttribute(HTMLAttributes::rules(), rules);
3262 }
3263
3264 - (NSString *)summary
3265 {
3266     return [self _tableElementImpl]->getAttribute(HTMLAttributes::summary());
3267 }
3268
3269 - (void)setSummary:(NSString *)summary
3270 {
3271     [self _tableElementImpl]->setAttribute(HTMLAttributes::summary(), summary);
3272 }
3273
3274 - (NSString *)width
3275 {
3276     return [self _tableElementImpl]->getAttribute(HTMLAttributes::width());
3277 }
3278
3279 - (void)setWidth:(NSString *)width
3280 {
3281     [self _tableElementImpl]->setAttribute(HTMLAttributes::width(), width);
3282 }
3283
3284 - (DOMHTMLElement *)createTHead
3285 {
3286     HTMLTableSectionElementImpl *impl = static_cast<HTMLTableSectionElementImpl *>([self _tableElementImpl]->createTHead());
3287     return [DOMHTMLTableSectionElement _tableSectionElementWithImpl:impl];
3288 }
3289
3290 - (void)deleteTHead
3291 {
3292     [self _tableElementImpl]->deleteTHead();
3293 }
3294
3295 - (DOMHTMLElement *)createTFoot
3296 {
3297     HTMLTableSectionElementImpl *impl = static_cast<HTMLTableSectionElementImpl *>([self _tableElementImpl]->createTFoot());
3298     return [DOMHTMLTableSectionElement _tableSectionElementWithImpl:impl];
3299 }
3300
3301 - (void)deleteTFoot
3302 {
3303     [self _tableElementImpl]->deleteTFoot();
3304 }
3305
3306 - (DOMHTMLElement *)createCaption
3307 {
3308     HTMLTableCaptionElementImpl *impl = static_cast<HTMLTableCaptionElementImpl *>([self _tableElementImpl]->createCaption());
3309     return [DOMHTMLTableCaptionElement _tableCaptionElementWithImpl:impl];
3310 }
3311
3312 - (void)deleteCaption
3313 {
3314     [self _tableElementImpl]->deleteCaption();
3315 }
3316
3317 - (DOMHTMLElement *)insertRow:(long)index
3318 {
3319     int exceptioncode = 0;
3320     HTMLTableElementImpl *impl = static_cast<HTMLTableElementImpl *>([self _tableElementImpl]->insertRow(index, exceptioncode));
3321     raiseOnDOMError(exceptioncode);
3322     return [DOMHTMLTableElement _tableElementWithImpl:impl];
3323 }
3324
3325 - (void)deleteRow:(long)index
3326 {
3327     int exceptioncode = 0;
3328     [self _tableElementImpl]->deleteRow(index, exceptioncode);
3329     raiseOnDOMError(exceptioncode);
3330 }
3331
3332 @end
3333
3334 @implementation DOMHTMLTableElement (WebCoreInternal)
3335
3336 + (DOMHTMLTableElement *)_tableElementWithImpl:(HTMLTableElementImpl *)impl
3337 {
3338     return static_cast<DOMHTMLTableElement *>([DOMNode _nodeWithImpl:impl]);
3339 }
3340
3341 - (HTMLTableElementImpl *)_tableElementImpl
3342 {
3343     return static_cast<HTMLTableElementImpl *>(DOM_cast<NodeImpl *>(_internal));
3344 }
3345
3346 @end
3347
3348 @implementation DOMHTMLTableColElement
3349
3350 - (HTMLTableColElementImpl *)_tableColElementImpl
3351 {
3352     return static_cast<HTMLTableColElementImpl *>(DOM_cast<NodeImpl *>(_internal));
3353 }
3354
3355 - (NSString *)align
3356 {
3357     return [self _tableColElementImpl]->getAttribute(HTMLAttributes::align());
3358 }
3359
3360 - (void)setAlign:(NSString *)align
3361 {
3362     [self _tableColElementImpl]->setAttribute(HTMLAttributes::align(), align);
3363 }
3364
3365 - (NSString *)ch
3366 {
3367     return [self _tableColElementImpl]->getAttribute(HTMLAttributes::charoff());
3368 }
3369
3370 - (void)setCh:(NSString *)ch
3371 {
3372     [self _tableColElementImpl]->setAttribute(HTMLAttributes::charoff(), ch);
3373 }
3374
3375 - (NSString *)chOff
3376 {
3377     return [self _tableColElementImpl]->getAttribute(HTMLAttributes::charoff());
3378 }
3379
3380 - (void)setChOff:(NSString *)chOff
3381 {
3382     [self _tableColElementImpl]->setAttribute(HTMLAttributes::charoff(), chOff);
3383 }
3384
3385 - (long)span
3386 {
3387     return [self _tableColElementImpl]->getAttribute(HTMLAttributes::span()).toInt();
3388 }
3389
3390 - (void)setSpan:(long)span
3391 {
3392     DOMString string(QString::number(span));
3393     [self _tableColElementImpl]->setAttribute(HTMLAttributes::span(), string);
3394 }
3395
3396 - (NSString *)vAlign
3397 {
3398     return [self _tableColElementImpl]->getAttribute(HTMLAttributes::valign());
3399 }
3400
3401 - (void)setVAlign:(NSString *)vAlign
3402 {
3403     [self _tableColElementImpl]->setAttribute(HTMLAttributes::valign(), vAlign);
3404 }
3405
3406 - (NSString *)width
3407 {
3408     return [self _tableColElementImpl]->getAttribute(HTMLAttributes::width());
3409 }
3410
3411 - (void)setWidth:(NSString *)width
3412 {
3413     [self _tableColElementImpl]->setAttribute(HTMLAttributes::width(), width);
3414 }
3415
3416 @end
3417
3418 @implementation DOMHTMLTableRowElement
3419
3420 - (HTMLTableRowElementImpl *)_tableRowElementImpl
3421 {
3422     return static_cast<HTMLTableRowElementImpl *>(DOM_cast<NodeImpl *>(_internal));
3423 }
3424
3425 - (long)rowIndex
3426 {
3427     return [self _tableRowElementImpl]->rowIndex();
3428 }
3429
3430 - (long)sectionRowIndex
3431 {
3432     return [self _tableRowElementImpl]->sectionRowIndex();
3433 }
3434
3435 - (DOMHTMLCollection *)cells
3436 {
3437     HTMLCollectionImpl *collection = new HTMLCollectionImpl([self _tableRowElementImpl], HTMLCollectionImpl::TR_CELLS);
3438     return [DOMHTMLCollection _collectionWithImpl:collection];
3439 }
3440
3441 - (NSString *)align
3442 {
3443     return [self _tableRowElementImpl]->getAttribute(HTMLAttributes::align());
3444 }
3445
3446 - (void)setAlign:(NSString *)align
3447 {
3448     [self _tableRowElementImpl]->setAttribute(HTMLAttributes::align(), align);
3449 }
3450
3451 - (NSString *)bgColor
3452 {
3453     return [self _tableRowElementImpl]->getAttribute(HTMLAttributes::bgcolor());
3454 }
3455
3456 - (void)setBgColor:(NSString *)bgColor
3457 {
3458     [self _tableRowElementImpl]->setAttribute(HTMLAttributes::bgcolor(), bgColor);
3459 }
3460
3461 - (NSString *)ch
3462 {
3463     return [self _tableRowElementImpl]->getAttribute(HTMLAttributes::charoff());
3464 }
3465
3466 - (void)setCh:(NSString *)ch
3467 {
3468     [self _tableRowElementImpl]->setAttribute(HTMLAttributes::charoff(), ch);
3469 }
3470
3471 - (NSString *)chOff
3472 {
3473     return [self _tableRowElementImpl]->getAttribute(HTMLAttributes::charoff());
3474 }
3475
3476 - (void)setChOff:(NSString *)chOff
3477 {
3478     [self _tableRowElementImpl]->setAttribute(HTMLAttributes::charoff(), chOff);
3479 }
3480
3481 - (NSString *)vAlign
3482 {
3483     return [self _tableRowElementImpl]->getAttribute(HTMLAttributes::valign());
3484 }
3485
3486 - (void)setVAlign:(NSString *)vAlign
3487 {
3488     [self _tableRowElementImpl]->setAttribute(HTMLAttributes::valign(), vAlign);
3489 }
3490
3491 - (DOMHTMLElement *)insertCell:(long)index
3492 {
3493     int exceptioncode = 0;
3494     HTMLTableCellElementImpl *impl = static_cast<HTMLTableCellElementImpl *>([self _tableRowElementImpl]->insertCell(index, exceptioncode));
3495     raiseOnDOMError(exceptioncode);
3496     return [DOMHTMLTableCellElement _tableCellElementWithImpl:impl];
3497 }
3498
3499 - (void)deleteCell:(long)index
3500 {
3501     int exceptioncode = 0;
3502     [self _tableRowElementImpl]->deleteCell(index, exceptioncode);
3503     raiseOnDOMError(exceptioncode);
3504 }
3505
3506 @end
3507
3508 @implementation DOMHTMLTableCellElement
3509
3510 - (long)cellIndex
3511 {
3512     return [self _tableCellElementImpl]->cellIndex();
3513 }
3514
3515 - (NSString *)abbr
3516 {
3517     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::abbr());
3518 }
3519
3520 - (void)setAbbr:(NSString *)abbr
3521 {
3522     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::abbr(), abbr);
3523 }
3524
3525 - (NSString *)align
3526 {
3527     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::align());
3528 }
3529
3530 - (void)setAlign:(NSString *)align
3531 {
3532     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::align(), align);
3533 }
3534
3535 - (NSString *)axis
3536 {
3537     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::axis());
3538 }
3539
3540 - (void)setAxis:(NSString *)axis
3541 {
3542     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::axis(), axis);
3543 }
3544
3545 - (NSString *)bgColor
3546 {
3547     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::bgcolor());
3548 }
3549
3550 - (void)setBgColor:(NSString *)bgColor
3551 {
3552     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::bgcolor(), bgColor);
3553 }
3554
3555 - (NSString *)ch
3556 {
3557     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::charoff());
3558 }
3559
3560 - (void)setCh:(NSString *)ch
3561 {
3562     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::charoff(), ch);
3563 }
3564
3565 - (NSString *)chOff
3566 {
3567     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::charoff());
3568 }
3569
3570 - (void)setChOff:(NSString *)chOff
3571 {
3572     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::charoff(), chOff);
3573 }
3574
3575 - (long)colSpan
3576 {
3577     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::colspan()).toInt();
3578 }
3579
3580 - (void)setColSpan:(long)colSpan
3581 {
3582     DOMString string(QString::number(colSpan));
3583     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::colspan(), string);
3584 }
3585
3586 - (NSString *)headers
3587 {
3588     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::headers());
3589 }
3590
3591 - (void)setHeaders:(NSString *)headers
3592 {
3593     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::headers(), headers);
3594 }
3595
3596 - (NSString *)height
3597 {
3598     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::height());
3599 }
3600
3601 - (void)setHeight:(NSString *)height
3602 {
3603     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::height(), height);
3604 }
3605
3606 - (BOOL)noWrap
3607 {
3608     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::nowrap()).isNull();
3609 }
3610
3611 - (void)setNoWrap:(BOOL)noWrap
3612 {
3613     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::nowrap(), noWrap ? "" : 0);
3614 }
3615
3616 - (long)rowSpan
3617 {
3618     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::rowspan()).toInt();
3619 }
3620
3621 - (void)setRowSpan:(long)rowSpan
3622 {
3623     DOMString string(QString::number(rowSpan));
3624     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::rowspan(), string);
3625 }
3626
3627 - (NSString *)scope
3628 {
3629     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::scope());
3630 }
3631
3632 - (void)setScope:(NSString *)scope
3633 {
3634     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::scope(), scope);
3635 }
3636
3637 - (NSString *)vAlign
3638 {
3639     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::valign());
3640 }
3641
3642 - (void)setVAlign:(NSString *)vAlign
3643 {
3644     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::valign(), vAlign);
3645 }
3646
3647 - (NSString *)width
3648 {
3649     return [self _tableCellElementImpl]->getAttribute(HTMLAttributes::width());
3650 }
3651
3652 - (void)setWidth:(NSString *)width
3653 {
3654     [self _tableCellElementImpl]->setAttribute(HTMLAttributes::width(), width);
3655 }
3656
3657 @end
3658
3659 @implementation DOMHTMLTableCellElement (WebCoreInternal)
3660
3661 + (DOMHTMLTableCellElement *)_tableCellElementWithImpl:(HTMLTableCellElementImpl *)impl
3662 {
3663     return static_cast<DOMHTMLTableCellElement *>([DOMNode _nodeWithImpl:impl]);
3664 }
3665
3666 - (HTMLTableCellElementImpl *)_tableCellElementImpl
3667 {
3668     return static_cast<HTMLTableCellElementImpl *>(DOM_cast<NodeImpl *>(_internal));
3669 }
3670
3671 @end
3672
3673 @implementation DOMHTMLFrameSetElement
3674
3675 - (HTMLFrameSetElementImpl *)_frameSetElementImpl
3676 {
3677     return static_cast<HTMLFrameSetElementImpl *>(DOM_cast<NodeImpl *>(_internal));
3678 }
3679
3680 - (NSString *)rows
3681 {
3682     return [self _frameSetElementImpl]->getAttribute(HTMLAttributes::rows());
3683 }
3684
3685 - (void)setRows:(NSString *)rows
3686 {
3687     [self _frameSetElementImpl]->setAttribute(HTMLAttributes::rows(), rows);
3688 }
3689
3690 - (NSString *)cols
3691 {
3692     return [self _frameSetElementImpl]->getAttribute(HTMLAttributes::cols());
3693 }
3694
3695 - (void)setCols:(NSString *)cols
3696 {
3697     [self _frameSetElementImpl]->setAttribute(HTMLAttributes::cols(), cols);
3698 }
3699
3700 @end
3701
3702 @implementation DOMHTMLFrameElement
3703
3704 - (HTMLFrameElementImpl *)_frameElementImpl
3705 {
3706     return static_cast<HTMLFrameElementImpl *>(DOM_cast<NodeImpl *>(_internal));
3707 }
3708
3709 - (NSString *)frameBorder
3710 {
3711     return [self _frameElementImpl]->getAttribute(HTMLAttributes::frameborder());
3712 }
3713
3714 - (void)setFrameBorder:(NSString *)frameBorder
3715 {
3716     [self _frameElementImpl]->setAttribute(HTMLAttributes::frameborder(), frameBorder);
3717 }
3718
3719 - (NSString *)longDesc
3720 {
3721     return [self _frameElementImpl]->getAttribute(HTMLAttributes::longdesc());
3722 }
3723
3724 - (void)setLongDesc:(NSString *)longDesc
3725 {
3726     [self _frameElementImpl]->setAttribute(HTMLAttributes::longdesc(), longDesc);
3727 }
3728
3729 - (NSString *)marginHeight
3730 {
3731     return [self _frameElementImpl]->getAttribute(HTMLAttributes::marginheight());
3732 }
3733
3734 - (void)setMarginHeight:(NSString *)marginHeight
3735 {
3736     [self _frameElementImpl]->setAttribute(HTMLAttributes::marginheight(), marginHeight);
3737 }
3738
3739 - (NSString *)marginWidth
3740 {
3741     return [self _frameElementImpl]->getAttribute(HTMLAttributes::marginwidth());
3742 }
3743
3744 - (void)setMarginWidth:(NSString *)marginWidth
3745 {
3746     [self _frameElementImpl]->setAttribute(HTMLAttributes::marginwidth(), marginWidth);
3747 }
3748
3749 - (NSString *)name
3750 {
3751     return [self _frameElementImpl]->getAttribute(HTMLAttributes::name());
3752 }
3753
3754 - (void)setName:(NSString *)name
3755 {
3756     [self _frameElementImpl]->setAttribute(HTMLAttributes::name(), name);
3757 }
3758
3759 - (BOOL)noResize
3760 {
3761     return [self _frameElementImpl]->getAttribute(HTMLAttributes::noresize()).isNull();
3762 }
3763
3764 - (void)setNoResize:(BOOL)noResize
3765 {
3766     [self _frameElementImpl]->setAttribute(HTMLAttributes::noresize(), noResize ? "" : 0);
3767 }
3768
3769 - (NSString *)scrolling
3770 {
3771     return [self _frameElementImpl]->getAttribute(HTMLAttributes::scrolling());
3772 }
3773
3774 - (void)setScrolling:(NSString *)scrolling
3775 {
3776     [self _frameElementImpl]->setAttribute(HTMLAttributes::scrolling(), scrolling);
3777 }
3778
3779 - (NSString *)src
3780 {
3781     return [self _frameElementImpl]->getAttribute(HTMLAttributes::src());
3782 }
3783
3784 - (void)setSrc:(NSString *)src
3785 {
3786     [self _frameElementImpl]->setAttribute(HTMLAttributes::src(), src);
3787 }
3788
3789 - (DOMDocument *)contentDocument
3790 {
3791     return [DOMDocument _documentWithImpl:[self _frameElementImpl]->contentDocument()];
3792 }
3793
3794 @end
3795
3796 @implementation DOMHTMLIFrameElement
3797
3798 - (HTMLIFrameElementImpl *)_IFrameElementImpl
3799 {
3800     return static_cast<HTMLIFrameElementImpl *>(DOM_cast<NodeImpl *>(_internal));
3801 }
3802
3803 - (NSString *)align
3804 {
3805     return [self _IFrameElementImpl]->getAttribute(HTMLAttributes::align());
3806 }
3807
3808 - (void)setAlign:(NSString *)align
3809 {
3810     [self _IFrameElementImpl]->setAttribute(HTMLAttributes::align(), align);
3811 }
3812
3813 - (NSString *)frameBorder
3814 {
3815     return [self _IFrameElementImpl]->getAttribute(HTMLAttributes::frameborder());
3816 }
3817
3818 - (void)setFrameBorder:(NSString *)frameBorder
3819 {
3820     [self _IFrameElementImpl]->setAttribute(HTMLAttributes::frameborder(), frameBorder);
3821 }
3822
3823 - (NSString *)height
3824 {
3825     return [self _IFrameElementImpl]->getAttribute(HTMLAttributes::height());
3826 }
3827
3828 - (void)setHeight:(NSString *)height
3829 {
3830     [self _IFrameElementImpl]->setAttribute(HTMLAttributes::height(), height);
3831 }
3832
3833 - (NSString *)longDesc
3834 {
3835     return [self _IFrameElementImpl]->getAttribute(HTMLAttributes::longdesc());
3836 }
3837
3838 - (void)setLongDesc:(NSString *)longDesc
3839 {
3840     [self _IFrameElementImpl]->setAttribute(HTMLAttributes::longdesc(), longDesc);
3841 }
3842
3843 - (NSString *)marginHeight
3844 {
3845     return [self _IFrameElementImpl]->getAttribute(HTMLAttributes::marginheight());
3846 }
3847
3848 - (void)setMarginHeight:(NSString *)marginHeight
3849 {
3850     [self _IFrameElementImpl]->setAttribute(HTMLAttributes::marginheight(), marginHeight);
3851 }
3852
3853 - (NSString *)marginWidth
3854 {
3855     return [self _IFrameElementImpl]->getAttribute(HTMLAttributes::marginwidth());
3856 }
3857
3858 - (void)setMarginWidth:(NSString *)marginWidth
3859 {
3860     [self _IFrameElementImpl]->setAttribute(HTMLAttributes::marginwidth(), marginWidth);
3861 }
3862
3863 - (NSString *)name
3864 {
3865     return [self _IFrameElementImpl]->getAttribute(HTMLAttributes::name());
3866 }
3867
3868 - (void)setName:(NSString *)name
3869 {
3870     [self _IFrameElementImpl]->setAttribute(HTMLAttributes::name(), name);
3871 }
3872
3873 - (BOOL)noResize
3874 {
3875     return [self _IFrameElementImpl]->getAttribute(HTMLAttributes::noresize()).isNull();
3876 }
3877
3878 - (void)setNoResize:(BOOL)noResize
3879 {
3880     [self _IFrameElementImpl]->setAttribute(HTMLAttributes::noresize(), noResize ? "" : 0);
3881 }
3882
3883 - (NSString *)scrolling
3884 {
3885     return [self _IFrameElementImpl]->getAttribute(HTMLAttributes::scrolling());
3886 }
3887
3888 - (void)setScrolling:(NSString *)scrolling
3889 {
3890     [self _IFrameElementImpl]->setAttribute(HTMLAttributes::scrolling(), scrolling);
3891 }
3892
3893 - (NSString *)src
3894 {
3895     return [self _IFrameElementImpl]->getAttribute(HTMLAttributes::src());
3896 }
3897
3898 - (void)setSrc:(NSString *)src
3899 {
3900     [self _IFrameElementImpl]->setAttribute(HTMLAttributes::src(), src);
3901 }
3902
3903 - (NSString *)width
3904 {
3905     return [self _IFrameElementImpl]->getAttribute(HTMLAttributes::width());
3906 }
3907
3908 - (void)setWidth:(NSString *)width
3909 {
3910     [self _IFrameElementImpl]->setAttribute(HTMLAttributes::width(), width);
3911 }
3912
3913 - (DOMDocument *)contentDocument
3914 {
3915     return [DOMDocument _documentWithImpl:[self _IFrameElementImpl]->contentDocument()];
3916 }
3917
3918 @end
3919
3920 #pragma mark DOM EXTENSIONS
3921
3922 @implementation DOMHTMLEmbedElement
3923
3924 - (HTMLEmbedElementImpl *)_embedElementImpl
3925 {
3926     return static_cast<HTMLEmbedElementImpl *>(DOM_cast<NodeImpl *>(_internal));
3927 }
3928
3929 - (NSString *)align
3930 {
3931     return [self _embedElementImpl]->getAttribute(HTMLAttributes::align());
3932 }
3933
3934 - (void)setAlign:(NSString *)align
3935 {
3936     [self _embedElementImpl]->setAttribute(HTMLAttributes::align(), align);
3937 }
3938
3939 - (long)height
3940 {
3941     return [self _embedElementImpl]->getAttribute(HTMLAttributes::height()).toInt();
3942 }
3943
3944 - (void)setHeight:(long)height
3945 {
3946     DOMString string(QString::number(height));
3947     [self _embedElementImpl]->setAttribute(HTMLAttributes::height(), string);
3948 }
3949
3950 - (NSString *)name
3951 {
3952     return [self _embedElementImpl]->getAttribute(HTMLAttributes::name());
3953 }
3954
3955 - (void)setName:(NSString *)name
3956 {
3957     [self _embedElementImpl]->setAttribute(HTMLAttributes::name(), name);
3958 }
3959
3960 - (NSString *)src
3961 {
3962     return [self _embedElementImpl]->getAttribute(HTMLAttributes::src());
3963 }
3964
3965 - (void)setSrc:(NSString *)src
3966 {
3967     [self _embedElementImpl]->setAttribute(HTMLAttributes::src(), src);
3968 }
3969
3970 - (NSString *)type
3971 {
3972     return [self _embedElementImpl]->getAttribute(HTMLAttributes::type());
3973 }
3974
3975 - (void)setType:(NSString *)type
3976 {
3977     [self _embedElementImpl]->setAttribute(HTMLAttributes::type(), type);
3978 }
3979
3980 - (long)width
3981 {
3982     return [self _embedElementImpl]->getAttribute(HTMLAttributes::width()).toInt();
3983 }
3984
3985 - (void)setWidth:(long)width
3986 {
3987     DOMString string(QString::number(width));
3988     [self _embedElementImpl]->setAttribute(HTMLAttributes::width(), string);
3989 }
3990
3991 @end