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