Index: Source/core/html/ImageInputType.cpp |
diff --git a/Source/core/html/ImageInputType.cpp b/Source/core/html/ImageInputType.cpp |
deleted file mode 100644 |
index 06ada941de3b14c6facd5527998969ebfd0152c2..0000000000000000000000000000000000000000 |
--- a/Source/core/html/ImageInputType.cpp |
+++ /dev/null |
@@ -1,222 +0,0 @@ |
-/* |
- * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. |
- * Copyright (C) 2010 Google Inc. All rights reserved. |
- * Copyright (C) 2012 Samsung Electronics. All rights reserved. |
- * |
- * 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 "config.h" |
-#include "core/html/ImageInputType.h" |
- |
-#include "HTMLNames.h" |
-#include "core/dom/MouseEvent.h" |
-#include "core/fetch/ImageResource.h" |
-#include "core/html/FormDataList.h" |
-#include "core/html/HTMLFormElement.h" |
-#include "core/html/HTMLImageLoader.h" |
-#include "core/html/HTMLInputElement.h" |
-#include "core/html/InputTypeNames.h" |
-#include "core/html/parser/HTMLParserIdioms.h" |
-#include "core/rendering/RenderImage.h" |
-#include "wtf/PassOwnPtr.h" |
- |
-namespace WebCore { |
- |
-using namespace HTMLNames; |
- |
-inline ImageInputType::ImageInputType(HTMLInputElement* element) |
- : BaseButtonInputType(element) |
-{ |
-} |
- |
-PassRefPtr<InputType> ImageInputType::create(HTMLInputElement* element) |
-{ |
- return adoptRef(new ImageInputType(element)); |
-} |
- |
-const AtomicString& ImageInputType::formControlType() const |
-{ |
- return InputTypeNames::image(); |
-} |
- |
-bool ImageInputType::isFormDataAppendable() const |
-{ |
- return true; |
-} |
- |
-bool ImageInputType::appendFormData(FormDataList& encoding, bool) const |
-{ |
- if (!element()->isActivatedSubmit()) |
- return false; |
- const AtomicString& name = element()->name(); |
- if (name.isEmpty()) { |
- encoding.appendData("x", m_clickLocation.x()); |
- encoding.appendData("y", m_clickLocation.y()); |
- return true; |
- } |
- |
- DEFINE_STATIC_LOCAL(String, dotXString, (".x")); |
- DEFINE_STATIC_LOCAL(String, dotYString, (".y")); |
- encoding.appendData(name + dotXString, m_clickLocation.x()); |
- encoding.appendData(name + dotYString, m_clickLocation.y()); |
- |
- if (!element()->value().isEmpty()) |
- encoding.appendData(name, element()->value()); |
- return true; |
-} |
- |
-bool ImageInputType::supportsValidation() const |
-{ |
- return false; |
-} |
- |
-void ImageInputType::handleDOMActivateEvent(Event* event) |
-{ |
- RefPtr<HTMLInputElement> element = this->element(); |
- if (element->isDisabledFormControl() || !element->form()) |
- return; |
- element->setActivatedSubmit(true); |
- if (event->underlyingEvent() && event->underlyingEvent()->isMouseEvent()) { |
- MouseEvent* mouseEvent = toMouseEvent(event->underlyingEvent()); |
- m_clickLocation = IntPoint(mouseEvent->offsetX(), mouseEvent->offsetY()); |
- } else |
- m_clickLocation = IntPoint(); |
- element->form()->prepareForSubmission(event); // Event handlers can run. |
- element->setActivatedSubmit(false); |
- event->setDefaultHandled(); |
-} |
- |
-RenderObject* ImageInputType::createRenderer(RenderStyle*) const |
-{ |
- RenderImage* image = new RenderImage(element()); |
- image->setImageResource(RenderImageResource::create()); |
- return image; |
-} |
- |
-void ImageInputType::altAttributeChanged() |
-{ |
- RenderImage* image = toRenderImage(element()->renderer()); |
- if (!image) |
- return; |
- image->updateAltText(); |
-} |
- |
-void ImageInputType::srcAttributeChanged() |
-{ |
- if (!element()->renderer()) |
- return; |
- element()->imageLoader()->updateFromElementIgnoringPreviousError(); |
-} |
- |
-void ImageInputType::attach() |
-{ |
- BaseButtonInputType::attach(); |
- |
- HTMLImageLoader* imageLoader = element()->imageLoader(); |
- imageLoader->updateFromElement(); |
- |
- RenderImage* renderer = toRenderImage(element()->renderer()); |
- if (!renderer) |
- return; |
- |
- if (imageLoader->hasPendingBeforeLoadEvent()) |
- return; |
- |
- RenderImageResource* imageResource = renderer->imageResource(); |
- imageResource->setImageResource(imageLoader->image()); |
- |
- // If we have no image at all because we have no src attribute, set |
- // image height and width for the alt text instead. |
- if (!imageLoader->image() && !imageResource->cachedImage()) |
- renderer->setImageSizeForAltText(); |
-} |
- |
-bool ImageInputType::shouldRespectAlignAttribute() |
-{ |
- return true; |
-} |
- |
-bool ImageInputType::canBeSuccessfulSubmitButton() |
-{ |
- return true; |
-} |
- |
-bool ImageInputType::isImageButton() const |
-{ |
- return true; |
-} |
- |
-bool ImageInputType::isEnumeratable() |
-{ |
- return false; |
-} |
- |
-bool ImageInputType::shouldRespectHeightAndWidthAttributes() |
-{ |
- return true; |
-} |
- |
-unsigned ImageInputType::height() const |
-{ |
- RefPtr<HTMLInputElement> element = this->element(); |
- |
- if (!element->renderer()) { |
- // Check the attribute first for an explicit pixel value. |
- unsigned height; |
- if (parseHTMLNonNegativeInteger(element->fastGetAttribute(heightAttr), height)) |
- return height; |
- |
- // If the image is available, use its height. |
- if (element->hasImageLoader()) { |
- HTMLImageLoader* imageLoader = element->imageLoader(); |
- if (imageLoader->image()) |
- return imageLoader->image()->imageSizeForRenderer(element->renderer(), 1).height(); |
- } |
- } |
- |
- element->document().updateLayout(); |
- |
- RenderBox* box = element->renderBox(); |
- return box ? adjustForAbsoluteZoom(box->contentHeight(), box) : 0; |
-} |
- |
-unsigned ImageInputType::width() const |
-{ |
- RefPtr<HTMLInputElement> element = this->element(); |
- |
- if (!element->renderer()) { |
- // Check the attribute first for an explicit pixel value. |
- unsigned width; |
- if (parseHTMLNonNegativeInteger(element->fastGetAttribute(widthAttr), width)) |
- return width; |
- |
- // If the image is available, use its width. |
- if (element->hasImageLoader()) { |
- HTMLImageLoader* imageLoader = element->imageLoader(); |
- if (imageLoader->image()) |
- return imageLoader->image()->imageSizeForRenderer(element->renderer(), 1).width(); |
- } |
- } |
- |
- element->document().updateLayout(); |
- |
- RenderBox* box = element->renderBox(); |
- return box ? adjustForAbsoluteZoom(box->contentWidth(), box) : 0; |
-} |
- |
-} // namespace WebCore |