Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / web / WebFormControlElement.cpp
index d833087..f2d91c1 100644 (file)
  */
 
 #include "config.h"
-#include "WebFormControlElement.h"
+#include "public/web/WebFormControlElement.h"
 
 #include "core/html/HTMLFormControlElement.h"
 #include "core/html/HTMLFormElement.h"
+#include "core/html/HTMLInputElement.h"
+#include "core/html/HTMLSelectElement.h"
+#include "core/html/HTMLTextAreaElement.h"
+
 #include "wtf/PassRefPtr.h"
 
 using namespace WebCore;
@@ -79,23 +83,123 @@ WebString WebFormControlElement::nameForAutofill() const
     return constUnwrap<HTMLFormControlElement>()->nameForAutofill();
 }
 
+bool WebFormControlElement::autoComplete() const
+{
+    if (isHTMLInputElement(*m_private))
+        return constUnwrap<HTMLInputElement>()->shouldAutocomplete();
+    if (isHTMLTextAreaElement(*m_private))
+        return constUnwrap<HTMLTextAreaElement>()->shouldAutocomplete();
+    return false;
+}
+
+void WebFormControlElement::setValue(const WebString& value, bool sendEvents)
+{
+    if (isHTMLInputElement(*m_private))
+        unwrap<HTMLInputElement>()->setValue(value, sendEvents ? DispatchInputAndChangeEvent : DispatchNoEvent);
+    else if (isHTMLTextAreaElement(*m_private))
+        unwrap<HTMLTextAreaElement>()->setValue(value, sendEvents ? DispatchInputAndChangeEvent : DispatchNoEvent);
+    else if (isHTMLSelectElement(*m_private))
+        unwrap<HTMLSelectElement>()->setValue(value, sendEvents);
+}
+
+WebString WebFormControlElement::value() const
+{
+    if (isHTMLInputElement(*m_private))
+        return constUnwrap<HTMLInputElement>()->value();
+    if (isHTMLTextAreaElement(*m_private))
+        return constUnwrap<HTMLTextAreaElement>()->value();
+    if (isHTMLSelectElement(*m_private))
+        return constUnwrap<HTMLSelectElement>()->value();
+    return WebString();
+}
+
+void WebFormControlElement::setSuggestedValue(const WebString& value)
+{
+    if (isHTMLInputElement(*m_private))
+        unwrap<HTMLInputElement>()->setSuggestedValue(value);
+    else if (isHTMLTextAreaElement(*m_private))
+        unwrap<HTMLTextAreaElement>()->setSuggestedValue(value);
+    else if (isHTMLSelectElement(*m_private))
+        unwrap<HTMLSelectElement>()->setSuggestedValue(value);
+}
+
+WebString WebFormControlElement::suggestedValue() const
+{
+    if (isHTMLInputElement(*m_private))
+        return constUnwrap<HTMLInputElement>()->suggestedValue();
+    if (isHTMLTextAreaElement(*m_private))
+        return constUnwrap<HTMLTextAreaElement>()->suggestedValue();
+    if (isHTMLSelectElement(*m_private))
+        return constUnwrap<HTMLSelectElement>()->suggestedValue();
+    return WebString();
+}
+
+WebString WebFormControlElement::editingValue() const
+{
+    if (isHTMLInputElement(*m_private))
+        return constUnwrap<HTMLInputElement>()->innerTextValue();
+    if (isHTMLTextAreaElement(*m_private))
+        return constUnwrap<HTMLTextAreaElement>()->innerTextValue();
+    return WebString();
+}
+
+void WebFormControlElement::setSelectionRange(int start, int end)
+{
+    if (isHTMLInputElement(*m_private))
+        unwrap<HTMLInputElement>()->setSelectionRange(start, end);
+    else if (isHTMLTextAreaElement(*m_private))
+        unwrap<HTMLTextAreaElement>()->setSelectionRange(start, end);
+}
+
+int WebFormControlElement::selectionStart() const
+{
+    if (isHTMLInputElement(*m_private))
+        return constUnwrap<HTMLInputElement>()->selectionStart();
+    if (isHTMLTextAreaElement(*m_private))
+        return constUnwrap<HTMLTextAreaElement>()->selectionStart();
+    return 0;
+}
+
+int WebFormControlElement::selectionEnd() const
+{
+    if (isHTMLInputElement(*m_private))
+        return constUnwrap<HTMLInputElement>()->selectionEnd();
+    if (isHTMLTextAreaElement(*m_private))
+        return constUnwrap<HTMLTextAreaElement>()->selectionEnd();
+    return 0;
+}
+
+WebString WebFormControlElement::directionForFormData() const
+{
+    if (isHTMLInputElement(*m_private))
+        return constUnwrap<HTMLInputElement>()->directionForFormData();
+    if (isHTMLTextAreaElement(*m_private))
+        return constUnwrap<HTMLTextAreaElement>()->directionForFormData();
+    return WebString();
+}
+
+bool WebFormControlElement::isActivatedSubmit() const
+{
+    return constUnwrap<HTMLFormControlElement>()->isActivatedSubmit();
+}
+
 WebFormElement WebFormControlElement::form() const
 {
     return WebFormElement(constUnwrap<HTMLFormControlElement>()->form());
 }
 
-WebFormControlElement::WebFormControlElement(const PassRefPtr<HTMLFormControlElement>& elem)
+WebFormControlElement::WebFormControlElement(const PassRefPtrWillBeRawPtr<HTMLFormControlElement>& elem)
     : WebElement(elem)
 {
 }
 
-WebFormControlElement& WebFormControlElement::operator=(const PassRefPtr<HTMLFormControlElement>& elem)
+WebFormControlElement& WebFormControlElement::operator=(const PassRefPtrWillBeRawPtr<HTMLFormControlElement>& elem)
 {
     m_private = elem;
     return *this;
 }
 
-WebFormControlElement::operator PassRefPtr<HTMLFormControlElement>() const
+WebFormControlElement::operator PassRefPtrWillBeRawPtr<HTMLFormControlElement>() const
 {
     return toHTMLFormControlElement(m_private.get());
 }