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