From 40736c5763bf61337c8c14e16d8587db021a87d4 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 6 Jan 2012 14:44:00 +0100 Subject: Imported WebKit commit 2ea9d364d0f6efa8fa64acf19f451504c59be0e4 (http://svn.webkit.org/repository/webkit/trunk@104285) --- Source/WebKit/chromium/src/WebInputElement.cpp | 239 +++++++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 Source/WebKit/chromium/src/WebInputElement.cpp (limited to 'Source/WebKit/chromium/src/WebInputElement.cpp') diff --git a/Source/WebKit/chromium/src/WebInputElement.cpp b/Source/WebKit/chromium/src/WebInputElement.cpp new file mode 100644 index 000000000..5dadb0cf8 --- /dev/null +++ b/Source/WebKit/chromium/src/WebInputElement.cpp @@ -0,0 +1,239 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "WebInputElement.h" + +#include "HTMLInputElement.h" +#include "HTMLNames.h" +#include "RenderObject.h" +#include "RenderTextControlSingleLine.h" +#include "TextControlInnerElements.h" +#include "platform/WebString.h" +#include + +using namespace WebCore; + +namespace WebKit { + +bool WebInputElement::isTextField() const +{ + return constUnwrap()->isTextField(); +} + +bool WebInputElement::isText() const +{ + return constUnwrap()->isText(); +} + +bool WebInputElement::isPasswordField() const +{ + return constUnwrap()->isPasswordField(); +} + +bool WebInputElement::isImageButton() const +{ + return constUnwrap()->isImageButton(); +} + +bool WebInputElement::autoComplete() const +{ + return constUnwrap()->shouldAutocomplete(); +} + +int WebInputElement::maxLength() const +{ + return constUnwrap()->maxLength(); +} + +bool WebInputElement::isActivatedSubmit() const +{ + return constUnwrap()->isActivatedSubmit(); +} + +void WebInputElement::setActivatedSubmit(bool activated) +{ + unwrap()->setActivatedSubmit(activated); +} + +int WebInputElement::size() const +{ + return constUnwrap()->size(); +} + +void WebInputElement::setValue(const WebString& value, bool sendChangeEvent) +{ + unwrap()->setValue(value, sendChangeEvent); +} + +WebString WebInputElement::value() const +{ + return constUnwrap()->value(); +} + +void WebInputElement::setSuggestedValue(const WebString& value) +{ + unwrap()->setSuggestedValue(value); +} + +WebString WebInputElement::suggestedValue() const +{ + return constUnwrap()->suggestedValue(); +} + +void WebInputElement::setPlaceholder(const WebString& value) +{ + unwrap()->setPlaceholder(value); +} + +WebString WebInputElement::placeholder() const +{ + return constUnwrap()->placeholder(); +} + +bool WebInputElement::isAutofilled() const +{ + return constUnwrap()->isAutofilled(); +} + +void WebInputElement::setAutofilled(bool autofilled) +{ + unwrap()->setAutofilled(autofilled); +} + +void WebInputElement::setSelectionRange(int start, int end) +{ + unwrap()->setSelectionRange(start, end); +} + +int WebInputElement::selectionStart() const +{ + return constUnwrap()->selectionStart(); +} + +int WebInputElement::selectionEnd() const +{ + return constUnwrap()->selectionEnd(); +} + +bool WebInputElement::isValidValue(const WebString& value) const +{ + return constUnwrap()->isValidValue(value); +} + +bool WebInputElement::isChecked() const +{ + return constUnwrap()->checked(); +} + +bool WebInputElement::isSpeechInputEnabled() const +{ +#if ENABLE(INPUT_SPEECH) + return constUnwrap()->isSpeechEnabled(); +#else + return false; +#endif +} + +WebInputElement::SpeechInputState WebInputElement::getSpeechInputState() const +{ +#if ENABLE(INPUT_SPEECH) + RenderObject* renderer = constUnwrap()->renderer(); + if (!renderer) + return Idle; + + RenderTextControlSingleLine* control = toRenderTextControlSingleLine(renderer); + InputFieldSpeechButtonElement* speechButton = toInputFieldSpeechButtonElement(control->speechButtonElement()); + if (speechButton) + return static_cast(speechButton->state()); +#endif + + return Idle; +} + +void WebInputElement::startSpeechInput() +{ +#if ENABLE(INPUT_SPEECH) + RenderObject* renderer = constUnwrap()->renderer(); + if (!renderer) + return; + + RenderTextControlSingleLine* control = toRenderTextControlSingleLine(renderer); + InputFieldSpeechButtonElement* speechButton = toInputFieldSpeechButtonElement(control->speechButtonElement()); + if (speechButton) + speechButton->startSpeechInput(); +#endif +} + +void WebInputElement::stopSpeechInput() +{ +#if ENABLE(INPUT_SPEECH) + RenderObject* renderer = constUnwrap()->renderer(); + if (!renderer) + return; + + RenderTextControlSingleLine* control = toRenderTextControlSingleLine(renderer); + InputFieldSpeechButtonElement* speechButton = toInputFieldSpeechButtonElement(control->speechButtonElement()); + if (speechButton) + speechButton->stopSpeechInput(); +#endif +} + +int WebInputElement::defaultMaxLength() +{ + return HTMLInputElement::maximumLength; +} + +WebInputElement::WebInputElement(const PassRefPtr& elem) + : WebFormControlElement(elem) +{ +} + +WebInputElement& WebInputElement::operator=(const PassRefPtr& elem) +{ + m_private = elem; + return *this; +} + +WebInputElement::operator PassRefPtr() const +{ + return static_cast(m_private.get()); +} + +WebInputElement* toWebInputElement(WebElement* webElement) +{ + HTMLInputElement* inputElement = webElement->unwrap()->toInputElement(); + if (!inputElement) + return 0; + + return static_cast(webElement); +} + +} // namespace WebKit -- cgit v1.2.1