summaryrefslogtreecommitdiffstats
path: root/khtml/dom/html_form.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'khtml/dom/html_form.cpp')
-rw-r--r--khtml/dom/html_form.cpp1302
1 files changed, 1302 insertions, 0 deletions
diff --git a/khtml/dom/html_form.cpp b/khtml/dom/html_form.cpp
new file mode 100644
index 000000000..e1c94e6bf
--- /dev/null
+++ b/khtml/dom/html_form.cpp
@@ -0,0 +1,1302 @@
+/**
+ * This file is part of the DOM implementation for KDE.
+ *
+ * (C) 1999 Lars Knoll (knoll@kde.org)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+// --------------------------------------------------------------------------
+
+#include "dom/html_form.h"
+#include "dom/dom_exception.h"
+#include "dom/dom_doc.h"
+
+#include "html/html_formimpl.h"
+#include "html/html_miscimpl.h"
+
+#include "xml/dom_docimpl.h"
+#include "misc/htmlhashes.h"
+
+using namespace DOM;
+
+HTMLButtonElement::HTMLButtonElement() : HTMLElement()
+{
+}
+
+HTMLButtonElement::HTMLButtonElement(const HTMLButtonElement &other) : HTMLElement(other)
+{
+}
+
+HTMLButtonElement::HTMLButtonElement(HTMLButtonElementImpl *impl) : HTMLElement(impl)
+{
+}
+
+HTMLButtonElement &HTMLButtonElement::operator = (const Node &other)
+{
+ assignOther( other, ID_BUTTON );
+ return *this;
+}
+
+HTMLButtonElement &HTMLButtonElement::operator = (const HTMLButtonElement &other)
+{
+ HTMLElement::operator = (other);
+ return *this;
+}
+
+HTMLButtonElement::~HTMLButtonElement()
+{
+}
+
+HTMLFormElement HTMLButtonElement::form() const
+{
+ return Element::form();
+}
+
+DOMString HTMLButtonElement::accessKey() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_ACCESSKEY);
+}
+
+void HTMLButtonElement::setAccessKey( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_ACCESSKEY, value);
+}
+
+bool HTMLButtonElement::disabled() const
+{
+ if(!impl) return 0;
+ return !static_cast<ElementImpl*>(impl)->getAttribute(ATTR_DISABLED).isNull();
+}
+
+void HTMLButtonElement::setDisabled( bool _disabled )
+{
+ if (impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_DISABLED, _disabled ? "" : 0);
+}
+
+DOMString HTMLButtonElement::name() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_NAME);
+}
+
+void HTMLButtonElement::setName( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_NAME, value);
+}
+
+void HTMLButtonElement::focus( )
+{
+ if(impl)
+ static_cast<HTMLButtonElementImpl*>(impl)->focus();
+}
+
+void HTMLButtonElement::blur( )
+{
+ if(impl)
+ static_cast<HTMLButtonElementImpl*>(impl)->blur();
+}
+
+long HTMLButtonElement::tabIndex() const
+{
+ if(!impl) return 0;
+ return static_cast<ElementImpl*>(impl)->tabIndex();
+}
+
+void HTMLButtonElement::setTabIndex( long _tabIndex )
+{
+ if (!impl) return;
+ static_cast<ElementImpl*>(impl)->setTabIndex(_tabIndex);
+}
+
+DOMString HTMLButtonElement::type() const
+{
+ if(!impl) return DOMString();
+ return static_cast<HTMLButtonElementImpl*>(impl)->type();
+}
+
+DOMString HTMLButtonElement::value() const
+{
+ if(!impl) return DOMString();
+ DOMString s = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_VALUE);
+ if (s.isNull()) return DOMString("");
+ return s;
+}
+
+void HTMLButtonElement::setValue( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_VALUE, value);
+}
+
+// --------------------------------------------------------------------------
+
+HTMLFieldSetElement::HTMLFieldSetElement() : HTMLElement()
+{
+}
+
+HTMLFieldSetElement::HTMLFieldSetElement(const HTMLFieldSetElement &other) : HTMLElement(other)
+{
+}
+
+HTMLFieldSetElement::HTMLFieldSetElement(HTMLFieldSetElementImpl *impl) : HTMLElement(impl)
+{
+}
+
+HTMLFieldSetElement &HTMLFieldSetElement::operator = (const Node &other)
+{
+ assignOther( other, ID_FIELDSET );
+ return *this;
+}
+
+HTMLFieldSetElement &HTMLFieldSetElement::operator = (const HTMLFieldSetElement &other)
+{
+ HTMLElement::operator = (other);
+ return *this;
+}
+
+HTMLFieldSetElement::~HTMLFieldSetElement()
+{
+}
+
+HTMLFormElement HTMLFieldSetElement::form() const
+{
+ return Element::form();
+}
+
+// --------------------------------------------------------------------------
+
+HTMLFormElement::HTMLFormElement() : HTMLElement()
+{
+}
+
+HTMLFormElement::HTMLFormElement(const HTMLFormElement &other) : HTMLElement(other)
+{
+}
+
+HTMLFormElement::HTMLFormElement(HTMLFormElementImpl *impl) : HTMLElement(impl)
+{
+}
+
+HTMLFormElement &HTMLFormElement::operator = (const Node &other)
+{
+ assignOther( other, ID_FORM );
+ return *this;
+}
+
+HTMLFormElement &HTMLFormElement::operator = (const HTMLFormElement &other)
+{
+ HTMLElement::operator = (other);
+ return *this;
+}
+
+HTMLFormElement::~HTMLFormElement()
+{
+}
+
+HTMLCollection HTMLFormElement::elements() const
+{
+ if(!impl) return HTMLCollection();
+ return HTMLFormCollection(impl);
+}
+
+long HTMLFormElement::length() const
+{
+ if(!impl) return 0;
+ return static_cast<HTMLFormElementImpl*>(impl)->length();
+}
+
+DOMString HTMLFormElement::name() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_NAME);
+}
+
+void HTMLFormElement::setName( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_NAME, value);
+}
+
+DOMString HTMLFormElement::acceptCharset() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_ACCEPT_CHARSET);
+}
+
+void HTMLFormElement::setAcceptCharset( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_ACCEPT_CHARSET, value);
+}
+
+DOMString HTMLFormElement::action() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_ACTION);
+}
+
+void HTMLFormElement::setAction( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_ACTION, value);
+}
+
+DOMString HTMLFormElement::enctype() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_ENCTYPE);
+}
+
+void HTMLFormElement::setEnctype( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_ENCTYPE, value);
+}
+
+DOMString HTMLFormElement::method() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_METHOD);
+}
+
+void HTMLFormElement::setMethod( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_METHOD, value);
+}
+
+DOMString HTMLFormElement::target() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_TARGET);
+}
+
+void HTMLFormElement::setTarget( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_TARGET, value);
+}
+
+void HTMLFormElement::submit( )
+{
+ if(impl) static_cast<HTMLFormElementImpl*>(impl)->submit( );
+}
+
+void HTMLFormElement::reset( )
+{
+ if(impl) static_cast<HTMLFormElementImpl*>(impl)->reset( );
+}
+
+// --------------------------------------------------------------------------
+
+HTMLInputElement::HTMLInputElement() : HTMLElement()
+{
+}
+
+HTMLInputElement::HTMLInputElement(const HTMLInputElement &other) : HTMLElement(other)
+{
+}
+
+HTMLInputElement::HTMLInputElement(HTMLInputElementImpl *impl) : HTMLElement(impl)
+{
+}
+
+HTMLInputElement &HTMLInputElement::operator = (const Node &other)
+{
+ assignOther( other, ID_INPUT );
+ return *this;
+}
+
+HTMLInputElement &HTMLInputElement::operator = (const HTMLInputElement &other)
+{
+ HTMLElement::operator = (other);
+ return *this;
+}
+
+HTMLInputElement::~HTMLInputElement()
+{
+}
+
+DOMString HTMLInputElement::defaultValue() const
+{
+ if(!impl) return DOMString();
+ DOMString s = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_VALUE);
+ if (s.isNull()) return DOMString("");
+ return s;
+
+}
+
+void HTMLInputElement::setDefaultValue( const DOMString &value )
+{
+ if(impl) ((ElementImpl *)impl)->setAttribute(ATTR_VALUE, value);
+}
+
+bool HTMLInputElement::defaultChecked() const
+{
+ if(!impl) return 0;
+ return !((ElementImpl *)impl)->getAttribute(ATTR_CHECKED).isNull();
+}
+
+void HTMLInputElement::setDefaultChecked( bool _defaultChecked )
+{
+ if(impl)
+ ((ElementImpl *)impl)->setAttribute(ATTR_CHECKED, _defaultChecked ? "" : 0);
+}
+
+HTMLFormElement HTMLInputElement::form() const
+{
+ return Element::form();
+}
+
+DOMString HTMLInputElement::accept() const
+{
+ if(!impl) return DOMString();
+ return ((ElementImpl *)impl)->getAttribute(ATTR_ACCEPT);
+}
+
+void HTMLInputElement::setAccept( const DOMString &value )
+{
+ if(impl) ((ElementImpl *)impl)->setAttribute(ATTR_ACCEPT, value);
+}
+
+DOMString HTMLInputElement::accessKey() const
+{
+ if(!impl) return DOMString();
+ return ((ElementImpl *)impl)->getAttribute(ATTR_ACCESSKEY);
+}
+
+void HTMLInputElement::setAccessKey( const DOMString &value )
+{
+ if(impl) ((ElementImpl *)impl)->setAttribute(ATTR_ACCESSKEY, value);
+}
+
+DOMString HTMLInputElement::align() const
+{
+ if(!impl) return DOMString();
+ return ((ElementImpl *)impl)->getAttribute(ATTR_ALIGN);
+}
+
+void HTMLInputElement::setAlign( const DOMString &value )
+{
+ if(impl) ((ElementImpl *)impl)->setAttribute(ATTR_ALIGN, value);
+}
+
+DOMString HTMLInputElement::alt() const
+{
+ if(!impl) return DOMString();
+ return ((ElementImpl *)impl)->getAttribute(ATTR_ALT);
+}
+
+void HTMLInputElement::setAlt( const DOMString &value )
+{
+ if(impl) ((ElementImpl *)impl)->setAttribute(ATTR_ALT, value);
+}
+
+bool HTMLInputElement::checked() const
+{
+ if(!impl) return 0;
+ return ((HTMLInputElementImpl*)impl)->checked();
+}
+
+void HTMLInputElement::setChecked( bool _checked )
+{
+ if(impl)
+ ((HTMLInputElementImpl*)impl)->setChecked(_checked);
+}
+
+bool HTMLInputElement::indeterminate() const
+{
+ if(!impl) return 0;
+ return ((HTMLInputElementImpl*)impl)->indeterminate();
+}
+
+void HTMLInputElement::setIndeterminate( bool _indeterminate )
+{
+ if(impl)
+ ((HTMLInputElementImpl*)impl)->setIndeterminate(_indeterminate);
+}
+
+bool HTMLInputElement::disabled() const
+{
+ if(!impl) return 0;
+ return !((ElementImpl *)impl)->getAttribute(ATTR_DISABLED).isNull();
+}
+
+void HTMLInputElement::setDisabled( bool _disabled )
+{
+ if(impl)
+ {
+ ((ElementImpl *)impl)->setAttribute(ATTR_DISABLED, _disabled ? "" : 0);
+ }
+}
+
+long HTMLInputElement::maxLength() const
+{
+ if(!impl) return 0;
+ return ((HTMLInputElementImpl *)impl)->getAttribute(ATTR_MAXLENGTH).toInt();
+}
+
+void HTMLInputElement::setMaxLength( long _maxLength )
+{
+ if(impl) {
+ DOMString value(QString::number(_maxLength));
+ ((ElementImpl *)impl)->setAttribute(ATTR_MAXLENGTH,value);
+ }
+}
+
+DOMString HTMLInputElement::name() const
+{
+ if(!impl) return DOMString();
+ return static_cast<HTMLInputElementImpl* const>(impl)->name();
+}
+
+void HTMLInputElement::setName( const DOMString &value )
+{
+ if(impl) static_cast<HTMLInputElementImpl*>(impl)->setName(value);
+}
+
+bool HTMLInputElement::readOnly() const
+{
+ if(!impl) return 0;
+ return !static_cast<ElementImpl*>(impl)->getAttribute(ATTR_READONLY).isNull();
+}
+
+void HTMLInputElement::setReadOnly( bool _readOnly )
+{
+ if(impl)
+ static_cast<ElementImpl*>(impl)->setAttribute(ATTR_READONLY, _readOnly ? "" : 0);
+}
+
+/* The next two are provided for backwards compatibility. */
+DOMString HTMLInputElement::size() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_SIZE);
+}
+
+void HTMLInputElement::setSize( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_SIZE, value);
+}
+
+long HTMLInputElement::getSize() const
+{
+ if(!impl) return 0;
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_SIZE).toInt();
+}
+
+void HTMLInputElement::setSize( long value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_SIZE, QString::number(value));
+}
+
+DOMString HTMLInputElement::src() const
+{
+ if(!impl) return DOMString();
+ DOMString s = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_SRC);
+ return !s.isNull() ? impl->getDocument()->completeURL( s.string() ) : s;
+}
+
+void HTMLInputElement::setSrc( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_SRC, value);
+}
+
+long HTMLInputElement::tabIndex() const
+{
+ if(!impl) return 0;
+ return static_cast<ElementImpl*>(impl)->tabIndex();
+}
+
+void HTMLInputElement::setTabIndex( long _tabIndex )
+{
+ if (!impl) return;
+ static_cast<ElementImpl*>(impl)->setTabIndex(_tabIndex);
+}
+
+DOMString HTMLInputElement::type() const
+{
+ if(!impl) return DOMString();
+ return ((HTMLInputElementImpl *)impl)->type();
+}
+
+void HTMLInputElement::setType(const DOMString& _type)
+{
+ if (!impl) return;
+ static_cast<HTMLInputElementImpl*>(impl)->setType(_type);
+}
+
+DOMString HTMLInputElement::useMap() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_USEMAP);
+}
+
+void HTMLInputElement::setUseMap( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_USEMAP, value);
+}
+
+DOMString HTMLInputElement::value() const
+{
+ if(!impl) return DOMString();
+ return ((HTMLInputElementImpl*)impl)->value();
+}
+
+void HTMLInputElement::setValue( const DOMString &value )
+{
+ if (impl)
+ ((HTMLInputElementImpl*)impl)->setValue(value);
+
+}
+
+void HTMLInputElement::blur( )
+{
+ if(impl)
+ ((HTMLInputElementImpl*)impl)->blur();
+}
+
+void HTMLInputElement::focus( )
+{
+ if(impl)
+ ((HTMLInputElementImpl*)impl)->focus();
+}
+
+void HTMLInputElement::select( )
+{
+ if(impl)
+ ((HTMLInputElementImpl *)impl)->select( );
+}
+
+void HTMLInputElement::click( )
+{
+ if(impl)
+ ((HTMLInputElementImpl *)impl)->click( );
+}
+
+long HTMLInputElement::selectionStart()
+{
+ if (impl)
+ return ((HTMLInputElementImpl *)impl)->selectionStart( );
+ return -1;
+}
+
+long HTMLInputElement::selectionEnd()
+{
+ if (impl)
+ return ((HTMLInputElementImpl *)impl)->selectionEnd( );
+ return -1;
+}
+
+void HTMLInputElement::setSelectionStart(long pos)
+{
+ if (impl)
+ ((HTMLInputElementImpl *)impl)->setSelectionStart( pos );
+}
+
+void HTMLInputElement::setSelectionEnd(long pos)
+{
+ if (impl)
+ ((HTMLInputElementImpl *)impl)->setSelectionEnd( pos );
+}
+
+void HTMLInputElement::setSelectionRange(long start, long end)
+{
+ if (impl)
+ ((HTMLInputElementImpl *)impl)->setSelectionRange( start, end );
+}
+
+// --------------------------------------------------------------------------
+
+HTMLLabelElement::HTMLLabelElement() : HTMLElement()
+{
+}
+
+HTMLLabelElement::HTMLLabelElement(const HTMLLabelElement &other) : HTMLElement(other)
+{
+}
+
+HTMLLabelElement::HTMLLabelElement(HTMLLabelElementImpl *impl) : HTMLElement(impl)
+{
+}
+
+HTMLLabelElement &HTMLLabelElement::operator = (const Node &other)
+{
+ assignOther( other, ID_LABEL );
+ return *this;
+}
+
+HTMLLabelElement &HTMLLabelElement::operator = (const HTMLLabelElement &other)
+{
+ HTMLElement::operator = (other);
+ return *this;
+}
+
+HTMLLabelElement::~HTMLLabelElement()
+{
+}
+
+DOMString HTMLLabelElement::accessKey() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_ACCESSKEY);
+}
+
+void HTMLLabelElement::setAccessKey( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_ACCESSKEY, value);
+}
+
+DOMString HTMLLabelElement::htmlFor() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_FOR);
+}
+
+void HTMLLabelElement::setHtmlFor( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_FOR, value);
+}
+
+// --------------------------------------------------------------------------
+
+HTMLLegendElement::HTMLLegendElement() : HTMLElement()
+{
+}
+
+HTMLLegendElement::HTMLLegendElement(const HTMLLegendElement &other) : HTMLElement(other)
+{
+}
+
+HTMLLegendElement::HTMLLegendElement(HTMLLegendElementImpl *impl) : HTMLElement(impl)
+{
+}
+
+HTMLLegendElement &HTMLLegendElement::operator = (const Node &other)
+{
+ assignOther( other, ID_LEGEND );
+ return *this;
+}
+
+HTMLLegendElement &HTMLLegendElement::operator = (const HTMLLegendElement &other)
+{
+ HTMLElement::operator = (other);
+ return *this;
+}
+
+HTMLLegendElement::~HTMLLegendElement()
+{
+}
+
+HTMLFormElement HTMLLegendElement::form() const
+{
+ return Element::form();
+}
+
+DOMString HTMLLegendElement::accessKey() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_ACCESSKEY);
+}
+
+void HTMLLegendElement::setAccessKey( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_ACCESSKEY, value);
+}
+
+DOMString HTMLLegendElement::align() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_ALIGN);
+}
+
+void HTMLLegendElement::setAlign( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_ALIGN, value);
+}
+
+// --------------------------------------------------------------------------
+
+HTMLOptGroupElement::HTMLOptGroupElement() : HTMLElement()
+{
+}
+
+HTMLOptGroupElement::HTMLOptGroupElement(const HTMLOptGroupElement &other) : HTMLElement(other)
+{
+}
+
+HTMLOptGroupElement::HTMLOptGroupElement(HTMLOptGroupElementImpl *impl) : HTMLElement(impl)
+{
+}
+
+HTMLOptGroupElement &HTMLOptGroupElement::operator = (const Node &other)
+{
+ assignOther( other, ID_OPTGROUP );
+ return *this;
+}
+
+HTMLOptGroupElement &HTMLOptGroupElement::operator = (const HTMLOptGroupElement &other)
+{
+ HTMLElement::operator = (other);
+ return *this;
+}
+
+HTMLOptGroupElement::~HTMLOptGroupElement()
+{
+}
+
+bool HTMLOptGroupElement::disabled() const
+{
+ if(!impl) return 0;
+ return !static_cast<ElementImpl*>(impl)->getAttribute(ATTR_DISABLED).isNull();
+}
+
+void HTMLOptGroupElement::setDisabled( bool _disabled )
+{
+ if(impl)
+ static_cast<ElementImpl*>(impl)->setAttribute(ATTR_DISABLED, _disabled ? "" : 0);
+}
+
+DOMString HTMLOptGroupElement::label() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_LABEL);
+}
+
+void HTMLOptGroupElement::setLabel( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_LABEL, value);
+}
+
+// --------------------------------------------------------------------------
+
+HTMLSelectElement::HTMLSelectElement() : HTMLElement()
+{
+}
+
+HTMLSelectElement::HTMLSelectElement(const HTMLSelectElement &other) : HTMLElement(other)
+{
+}
+
+HTMLSelectElement::HTMLSelectElement(HTMLSelectElementImpl *impl) : HTMLElement(impl)
+{
+}
+
+HTMLSelectElement &HTMLSelectElement::operator = (const Node &other)
+{
+ assignOther( other, ID_SELECT );
+ return *this;
+}
+
+HTMLSelectElement &HTMLSelectElement::operator = (const HTMLSelectElement &other)
+{
+ HTMLElement::operator = (other);
+ return *this;
+}
+
+HTMLSelectElement::~HTMLSelectElement()
+{
+}
+
+DOMString HTMLSelectElement::type() const
+{
+ if(!impl) return DOMString();
+ return ((HTMLSelectElementImpl *)impl)->type();
+}
+
+long HTMLSelectElement::selectedIndex() const
+{
+ if(!impl) return 0;
+ return ((HTMLSelectElementImpl *)impl)->selectedIndex();
+}
+
+void HTMLSelectElement::setSelectedIndex( long _selectedIndex )
+{
+ if(impl)
+ ((HTMLSelectElementImpl *)impl)->setSelectedIndex(_selectedIndex);
+}
+
+DOMString HTMLSelectElement::value() const
+{
+ if(!impl) return DOMString();
+ return static_cast<HTMLSelectElementImpl*>(impl)->value();
+}
+
+void HTMLSelectElement::setValue( const DOMString &value )
+{
+ if(!impl || value.isNull()) return;
+ static_cast<HTMLSelectElementImpl*>(impl)->setValue(value.implementation());
+}
+
+long HTMLSelectElement::length() const
+{
+ if(!impl) return 0;
+ return ((HTMLSelectElementImpl *)impl)->length();
+}
+
+HTMLFormElement HTMLSelectElement::form() const
+{
+ return Element::form();
+}
+
+HTMLCollection HTMLSelectElement::options() const
+{
+ if(!impl) return HTMLCollection();
+ return HTMLCollection(impl, HTMLCollectionImpl::SELECT_OPTIONS);
+}
+
+bool HTMLSelectElement::disabled() const
+{
+ if(!impl) return 0;
+ return !static_cast<ElementImpl*>(impl)->getAttribute(ATTR_DISABLED).isNull();
+}
+
+void HTMLSelectElement::setDisabled( bool _disabled )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_DISABLED, _disabled ? "" : 0);
+}
+
+
+bool HTMLSelectElement::multiple() const
+{
+ if(!impl) return 0;
+ return !static_cast<ElementImpl*>(impl)->getAttribute(ATTR_MULTIPLE).isNull();
+}
+
+void HTMLSelectElement::setMultiple( bool _multiple )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_MULTIPLE, _multiple ? "" : 0);
+}
+
+DOMString HTMLSelectElement::name() const
+{
+ if(!impl) return DOMString();
+ return static_cast<HTMLSelectElementImpl* const>(impl)->name();
+}
+
+void HTMLSelectElement::setName( const DOMString &value )
+{
+ if(impl) static_cast<HTMLSelectElementImpl*>(impl)->setName(value);
+}
+
+long HTMLSelectElement::size() const
+{
+ if(!impl) return 0;
+ return ((HTMLSelectElementImpl *)impl)->getAttribute(ATTR_SIZE).toInt();
+}
+
+void HTMLSelectElement::setSize( long _size )
+{
+
+ if(impl) {
+ DOMString value(QString::number(_size));
+ static_cast<ElementImpl*>(impl)->setAttribute(ATTR_SIZE,value);
+ }
+}
+
+long HTMLSelectElement::tabIndex() const
+{
+ if(!impl) return 0;
+ return static_cast<ElementImpl*>(impl)->tabIndex();
+}
+
+void HTMLSelectElement::setTabIndex( long _tabIndex )
+{
+ if (!impl) return;
+ static_cast<ElementImpl*>(impl)->setTabIndex(_tabIndex);
+}
+
+void HTMLSelectElement::add( const HTMLElement &element, const HTMLElement &before )
+{
+ if (!impl)
+ throw DOMException(DOMException::NOT_FOUND_ERR);
+
+ int exceptioncode = 0;
+ static_cast<HTMLSelectElementImpl*>(impl)->add( element, before, exceptioncode );
+ if ( exceptioncode )
+ throw DOMException( exceptioncode );
+}
+
+void HTMLSelectElement::remove( long index )
+{
+ if(impl) static_cast<HTMLSelectElementImpl*>(impl)->remove( index );
+}
+
+void HTMLSelectElement::blur( )
+{
+ if(impl)
+ ((HTMLSelectElementImpl*)impl)->blur();
+}
+
+void HTMLSelectElement::focus( )
+{
+ if(impl)
+ ((HTMLSelectElementImpl*)impl)->focus();
+}
+
+// --------------------------------------------------------------------------
+
+HTMLTextAreaElement::HTMLTextAreaElement() : HTMLElement()
+{
+}
+
+HTMLTextAreaElement::HTMLTextAreaElement(const HTMLTextAreaElement &other) : HTMLElement(other)
+{
+}
+
+HTMLTextAreaElement::HTMLTextAreaElement(HTMLTextAreaElementImpl *impl) : HTMLElement(impl)
+{
+}
+
+HTMLTextAreaElement &HTMLTextAreaElement::operator = (const Node &other)
+{
+ assignOther( other, ID_TEXTAREA );
+ return *this;
+}
+
+HTMLTextAreaElement &HTMLTextAreaElement::operator = (const HTMLTextAreaElement &other)
+{
+ HTMLElement::operator = (other);
+ return *this;
+}
+
+HTMLTextAreaElement::~HTMLTextAreaElement()
+{
+}
+
+DOMString HTMLTextAreaElement::defaultValue() const
+{
+ if(!impl) return DOMString();
+ return ((HTMLTextAreaElementImpl *)impl)->defaultValue();
+}
+
+void HTMLTextAreaElement::setDefaultValue( const DOMString &value )
+{
+ if (impl) ((HTMLTextAreaElementImpl *)impl)->setDefaultValue(value);
+}
+
+HTMLFormElement HTMLTextAreaElement::form() const
+{
+ return Element::form();
+}
+
+DOMString HTMLTextAreaElement::accessKey() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_ACCESSKEY);
+}
+
+void HTMLTextAreaElement::setAccessKey( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_ACCESSKEY, value);
+}
+
+long HTMLTextAreaElement::cols() const
+{
+ if(!impl) return 0;
+ return ((HTMLTextAreaElementImpl *)impl)->getAttribute(ATTR_COLS).toInt();
+}
+
+void HTMLTextAreaElement::setCols( long _cols )
+{
+
+ if(impl) {
+ DOMString value(QString::number(_cols));
+ static_cast<ElementImpl*>(impl)->setAttribute(ATTR_COLS,value);
+ }
+}
+
+bool HTMLTextAreaElement::disabled() const
+{
+ if(!impl) return 0;
+ return !static_cast<ElementImpl*>(impl)->getAttribute(ATTR_DISABLED).isNull();
+}
+
+void HTMLTextAreaElement::setDisabled( bool _disabled )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_DISABLED, _disabled ? "" : 0);
+}
+
+DOMString HTMLTextAreaElement::name() const
+{
+ if(!impl) return DOMString();
+ return static_cast<HTMLTextAreaElementImpl* const>(impl)->name();
+}
+
+void HTMLTextAreaElement::setName( const DOMString &value )
+{
+ if(impl) static_cast<HTMLTextAreaElementImpl*>(impl)->setName(value);
+}
+
+bool HTMLTextAreaElement::readOnly() const
+{
+ if(!impl) return 0;
+ return !static_cast<ElementImpl*>(impl)->getAttribute(ATTR_READONLY).isNull();
+}
+
+void HTMLTextAreaElement::setReadOnly( bool _readOnly )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_READONLY, _readOnly ? "" : 0);
+}
+
+long HTMLTextAreaElement::rows() const
+{
+ if(!impl) return 0;
+ return ((HTMLTextAreaElementImpl *)impl)->getAttribute(ATTR_ROWS).toInt();
+}
+
+void HTMLTextAreaElement::setRows( long _rows )
+{
+
+ if(impl) {
+ DOMString value(QString::number(_rows));
+ static_cast<ElementImpl*>(impl)->setAttribute(ATTR_ROWS,value);
+ }
+}
+
+long HTMLTextAreaElement::tabIndex() const
+{
+ if(!impl) return 0;
+ return static_cast<ElementImpl*>(impl)->tabIndex();
+}
+
+void HTMLTextAreaElement::setTabIndex( long _tabIndex )
+{
+ if (!impl) return;
+ static_cast<ElementImpl*>(impl)->setTabIndex(_tabIndex);
+}
+
+DOMString HTMLTextAreaElement::type() const
+{
+ if(!impl) return DOMString();
+ return ((HTMLTextAreaElementImpl *)impl)->type();
+}
+
+DOMString HTMLTextAreaElement::value() const
+{
+ if(!impl) return DOMString();
+ return ((HTMLTextAreaElementImpl *)impl)->value();
+}
+
+void HTMLTextAreaElement::setValue( const DOMString &value )
+{
+ if(impl) ((HTMLTextAreaElementImpl *)impl)->setValue(value);
+}
+
+void HTMLTextAreaElement::blur( )
+{
+ if(impl)
+ ((HTMLTextAreaElementImpl*)impl)->blur();
+}
+
+void HTMLTextAreaElement::focus( )
+{
+ if(impl)
+ ((HTMLTextAreaElementImpl*)impl)->focus();
+}
+
+void HTMLTextAreaElement::select( )
+{
+ if(impl)
+ ((HTMLTextAreaElementImpl *)impl)->select( );
+}
+
+long HTMLTextAreaElement::selectionStart()
+{
+ if (impl)
+ return ((HTMLTextAreaElementImpl *)impl)->selectionStart( );
+ return 0;
+}
+
+long HTMLTextAreaElement::selectionEnd()
+{
+ if (impl)
+ return ((HTMLTextAreaElementImpl *)impl)->selectionEnd( );
+ return 0;
+}
+
+long HTMLTextAreaElement::textLength()
+{
+ if (impl)
+ return ((HTMLTextAreaElementImpl *)impl)->textLength( );
+ return 0;
+}
+
+void HTMLTextAreaElement::setSelectionStart(long pos)
+{
+ if (impl)
+ ((HTMLTextAreaElementImpl *)impl)->setSelectionStart( pos );
+}
+
+void HTMLTextAreaElement::setSelectionEnd(long pos)
+{
+ if (impl)
+ ((HTMLTextAreaElementImpl *)impl)->setSelectionEnd( pos );
+}
+
+void HTMLTextAreaElement::setSelectionRange(long start, long end)
+{
+ if (impl)
+ ((HTMLTextAreaElementImpl *)impl)->setSelectionRange( start, end );
+}
+
+// --------------------------------------------------------------------------
+
+HTMLOptionElement::HTMLOptionElement() : HTMLElement()
+{
+}
+
+HTMLOptionElement::HTMLOptionElement(const HTMLOptionElement &other) : HTMLElement(other)
+{
+}
+
+HTMLOptionElement::HTMLOptionElement(HTMLOptionElementImpl *impl) : HTMLElement(impl)
+{
+}
+
+HTMLOptionElement &HTMLOptionElement::operator = (const Node &other)
+{
+ assignOther( other, ID_OPTION );
+ return *this;
+}
+
+HTMLOptionElement &HTMLOptionElement::operator = (const HTMLOptionElement &other)
+{
+ HTMLElement::operator = (other);
+ return *this;
+}
+
+HTMLOptionElement::~HTMLOptionElement()
+{
+}
+
+HTMLFormElement HTMLOptionElement::form() const
+{
+ return Element::form();
+}
+
+bool HTMLOptionElement::defaultSelected() const
+{
+ if(!impl) return 0;
+ return !static_cast<ElementImpl*>(impl)->getAttribute(ATTR_SELECTED).isNull();
+}
+
+void HTMLOptionElement::setDefaultSelected( bool _defaultSelected )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_SELECTED, _defaultSelected ? "" : 0);
+}
+
+DOMString HTMLOptionElement::text() const
+{
+ if(!impl) return DOMString();
+ return ((HTMLOptionElementImpl *)impl)->text();
+}
+
+long HTMLOptionElement::index() const
+{
+ if(!impl) return 0;
+ return ((HTMLOptionElementImpl *)impl)->index();
+}
+
+void HTMLOptionElement::setIndex( long /*_index*/ )
+{
+ throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR);
+}
+
+bool HTMLOptionElement::disabled() const
+{
+ if(!impl) return 0;
+ return !static_cast<ElementImpl*>(impl)->getAttribute(ATTR_DISABLED).isNull();
+}
+
+void HTMLOptionElement::setDisabled( bool _disabled )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_DISABLED, _disabled ? "" : 0);
+}
+
+DOMString HTMLOptionElement::label() const
+{
+ if(!impl) return DOMString();
+ return static_cast<ElementImpl*>(impl)->getAttribute(ATTR_LABEL);
+}
+
+void HTMLOptionElement::setLabel( const DOMString &value )
+{
+ if(impl) static_cast<ElementImpl*>(impl)->setAttribute(ATTR_LABEL, value);
+}
+
+bool HTMLOptionElement::selected() const
+{
+ if(!impl) return 0;
+ return ((HTMLOptionElementImpl *)impl)->selected();
+}
+
+void HTMLOptionElement::setSelected(bool _selected) {
+ if(!impl) return;
+ ((HTMLOptionElementImpl *)impl)->setSelected(_selected);
+}
+
+DOMString HTMLOptionElement::value() const
+{
+ if(!impl) return DOMString();
+ return static_cast<HTMLOptionElementImpl*>(impl)->value();
+}
+
+void HTMLOptionElement::setValue( const DOMString &value )
+{
+ if(impl) static_cast<HTMLOptionElementImpl*>(impl)->setValue(value.implementation());
+}
+
+// -----------------------------------------------------------------------------
+
+HTMLIsIndexElement::HTMLIsIndexElement() : HTMLElement()
+{
+}
+
+HTMLIsIndexElement::HTMLIsIndexElement(const HTMLIsIndexElement &other) : HTMLElement(other)
+{
+}
+
+HTMLIsIndexElement::HTMLIsIndexElement(HTMLIsIndexElementImpl *impl) : HTMLElement(impl)
+{
+}
+
+HTMLIsIndexElement &HTMLIsIndexElement::operator = (const Node &other)
+{
+ assignOther( other, ID_ISINDEX );
+ return *this;
+}
+
+HTMLIsIndexElement &HTMLIsIndexElement::operator = (const HTMLIsIndexElement &other)
+{
+ HTMLElement::operator = (other);
+ return *this;
+}
+
+HTMLIsIndexElement::~HTMLIsIndexElement()
+{
+}
+
+HTMLFormElement HTMLIsIndexElement::form() const
+{
+ return Element::form();
+}
+
+DOMString HTMLIsIndexElement::prompt() const
+{
+ if(!impl) return DOMString();
+ return static_cast<HTMLIsIndexElementImpl*>(impl)->prompt();
+}
+
+void HTMLIsIndexElement::setPrompt( const DOMString &value )
+{
+ if(impl) static_cast<HTMLIsIndexElementImpl*>(impl)->setPrompt(value);
+}