15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org> 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org> 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This library is free software; you can redistribute it and/or 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modify it under the terms of the GNU Library General Public 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * License as published by the Free Software Foundation; either 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * version 2 of the License, or (at your option) any later version. 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This library is distributed in the hope that it will be useful, 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Library General Public License for more details. 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * You should have received a copy of the GNU Library General Public License 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * along with this library; see the file COPYING.LIB. If not, write to 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Boston, MA 02110-1301, USA. 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef SVGImageElement_h 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SVGImageElement_h 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 24e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#include "SVGNames.h" 2553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/svg/SVGAnimatedBoolean.h" 2653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/svg/SVGAnimatedLength.h" 2753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/svg/SVGAnimatedPreserveAspectRatio.h" 2853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/svg/SVGExternalResourcesRequired.h" 29591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "core/svg/SVGGraphicsElement.h" 3053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/svg/SVGImageLoader.h" 3153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/svg/SVGURIReference.h" 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)namespace WebCore { 345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 35591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochclass SVGImageElement FINAL : public SVGGraphicsElement, 3653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) public SVGExternalResourcesRequired, 3753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) public SVGURIReference { 385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)public: 3951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) static PassRefPtr<SVGImageElement> create(Document&); 408abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) 418abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) bool currentFrameHasSingleSecurityOrigin() const; 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)private: 4451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) explicit SVGImageElement(Document&); 4502772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual bool isValid() const { return SVGTests::isValid(); } 47fff8884795cb540f87cf6e6d67b629519b00eb8bBen Murdoch virtual bool supportsFocus() const OVERRIDE { return hasFocusEventListeners(); } 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool isSupportedAttribute(const QualifiedName&); 50926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE; 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual bool isPresentationAttribute(const QualifiedName&) const OVERRIDE; 52926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStylePropertySet*) OVERRIDE; 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual void svgAttributeChanged(const QualifiedName&); 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 55521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles) virtual void attach(const AttachContext& = AttachContext()) OVERRIDE; 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE; 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 58591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch virtual RenderObject* createRenderer(RenderStyle*); 59926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 608abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) virtual const AtomicString imageSourceURL() const OVERRIDE; 615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual void addSubresourceAttributeURLs(ListHashSet<KURL>&) const; 625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual bool haveLoadedRequiredResources(); 645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual bool selfHasRelativeLengths() const; 661e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) virtual void didMoveToNewDocument(Document& oldDocument) OVERRIDE; 675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGImageElement) 695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DECLARE_ANIMATED_LENGTH(X, x) 705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DECLARE_ANIMATED_LENGTH(Y, y) 715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DECLARE_ANIMATED_LENGTH(Width, width) 725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DECLARE_ANIMATED_LENGTH(Height, height) 735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DECLARE_ANIMATED_PRESERVEASPECTRATIO(PreserveAspectRatio, preserveAspectRatio) 745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DECLARE_ANIMATED_STRING(Href, href) 755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired) 765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) END_DECLARE_ANIMATED_PROPERTIES 775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) SVGImageLoader m_imageLoader; 795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 811e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)DEFINE_NODE_TYPE_CASTS(SVGImageElement, hasTagName(SVGNames::imageTag)); 82e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} // namespace WebCore 845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif 86