From 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 27 Jun 2017 06:07:23 +0000 Subject: webkitgtk-2.16.5 --- Source/WebCore/svg/SVGPathElement.h | 106 ++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 53 deletions(-) (limited to 'Source/WebCore/svg/SVGPathElement.h') diff --git a/Source/WebCore/svg/SVGPathElement.h b/Source/WebCore/svg/SVGPathElement.h index bb66d01c1..3f47105b4 100644 --- a/Source/WebCore/svg/SVGPathElement.h +++ b/Source/WebCore/svg/SVGPathElement.h @@ -18,17 +18,15 @@ * Boston, MA 02110-1301, USA. */ -#ifndef SVGPathElement_h -#define SVGPathElement_h +#pragma once -#if ENABLE(SVG) #include "SVGAnimatedBoolean.h" #include "SVGAnimatedNumber.h" #include "SVGExternalResourcesRequired.h" #include "SVGGraphicsElement.h" #include "SVGNames.h" #include "SVGPathByteStream.h" -#include "SVGPathSegList.h" +#include "SVGPathSegListValues.h" namespace WebCore { @@ -51,89 +49,91 @@ class SVGPathSegCurvetoCubicSmoothAbs; class SVGPathSegCurvetoCubicSmoothRel; class SVGPathSegCurvetoQuadraticSmoothAbs; class SVGPathSegCurvetoQuadraticSmoothRel; -class SVGPathSegListPropertyTearOff; +class SVGPathSegList; +class SVGPoint; class SVGPathElement final : public SVGGraphicsElement, public SVGExternalResourcesRequired { public: - static PassRefPtr create(const QualifiedName&, Document&); + static Ref create(const QualifiedName&, Document&); - float getTotalLength(); - SVGPoint getPointAtLength(float distance); - unsigned getPathSegAtLength(float distance); - - PassRefPtr createSVGPathSegClosePath(SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegMovetoAbs(float x, float y, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegMovetoRel(float x, float y, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegLinetoAbs(float x, float y, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegLinetoRel(float x, float y, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegArcRel(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegLinetoHorizontalAbs(float x, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegLinetoHorizontalRel(float x, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegLinetoVerticalAbs(float y, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegLinetoVerticalRel(float y, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y, SVGPathSegRole role = PathSegUndefinedRole); - PassRefPtr createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y, SVGPathSegRole role = PathSegUndefinedRole); + float getTotalLength() const; + Ref getPointAtLength(float distance) const; + unsigned getPathSegAtLength(float distance) const; + + Ref createSVGPathSegClosePath(SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegMovetoAbs(float x, float y, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegMovetoRel(float x, float y, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegLinetoAbs(float x, float y, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegLinetoRel(float x, float y, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegArcRel(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegLinetoHorizontalAbs(float x, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegLinetoHorizontalRel(float x, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegLinetoVerticalAbs(float y, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegLinetoVerticalRel(float y, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y, SVGPathSegRole = PathSegUndefinedRole); + Ref createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y, SVGPathSegRole = PathSegUndefinedRole); // Used in the bindings only. - SVGPathSegListPropertyTearOff* pathSegList(); - SVGPathSegListPropertyTearOff* animatedPathSegList(); - SVGPathSegListPropertyTearOff* normalizedPathSegList(); - SVGPathSegListPropertyTearOff* animatedNormalizedPathSegList(); + Ref pathSegList(); + Ref animatedPathSegList(); + RefPtr normalizedPathSegList(); + RefPtr animatedNormalizedPathSegList(); - SVGPathByteStream* pathByteStream() const; + const SVGPathByteStream& pathByteStream() const; void pathSegListChanged(SVGPathSegRole, ListModification = ListModificationUnknown); - virtual FloatRect getBBox(StyleUpdateStrategy = AllowStyleUpdate) override; + FloatRect getBBox(StyleUpdateStrategy = AllowStyleUpdate) final; static const SVGPropertyInfo* dPropertyInfo(); bool isAnimValObserved() const { return m_isAnimValObserved; } + WeakPtr createWeakPtr() const { return m_weakPtrFactory.createWeakPtr(); } + + void animatedPropertyWillBeDeleted(); + + size_t approximateMemoryCost() const final; + private: SVGPathElement(const QualifiedName&, Document&); - virtual bool isValid() const override { return SVGTests::isValid(); } - virtual bool supportsFocus() const override { return true; } + bool isValid() const final { return SVGTests::isValid(); } - bool isSupportedAttribute(const QualifiedName&); - virtual void parseAttribute(const QualifiedName&, const AtomicString&) override; - virtual void svgAttributeChanged(const QualifiedName&) override; - virtual bool supportsMarkers() const override { return true; } + static bool isSupportedAttribute(const QualifiedName&); + void parseAttribute(const QualifiedName&, const AtomicString&) final; + void svgAttributeChanged(const QualifiedName&) final; + bool supportsMarkers() const final { return true; } // Custom 'd' property static void synchronizeD(SVGElement* contextElement); - static PassRefPtr lookupOrCreateDWrapper(SVGElement* contextElement); + static Ref lookupOrCreateDWrapper(SVGElement* contextElement); BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGPathElement) DECLARE_ANIMATED_NUMBER(PathLength, pathLength) - DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired) + DECLARE_ANIMATED_BOOLEAN_OVERRIDE(ExternalResourcesRequired, externalResourcesRequired) END_DECLARE_ANIMATED_PROPERTIES - virtual RenderPtr createElementRenderer(PassRef) override; + RenderPtr createElementRenderer(RenderStyle&&, const RenderTreePosition&) final; - virtual Node::InsertionNotificationRequest insertedInto(ContainerNode&) override; - virtual void removedFrom(ContainerNode&) override; + Node::InsertionNotificationRequest insertedInto(ContainerNode&) final; + void removedFrom(ContainerNode&) final; void invalidateMPathDependencies(); private: - std::unique_ptr m_pathByteStream; - mutable SVGSynchronizableAnimatedProperty m_pathSegList; + SVGPathByteStream m_pathByteStream; + mutable SVGSynchronizableAnimatedProperty m_pathSegList; + WeakPtrFactory m_weakPtrFactory; bool m_isAnimValObserved; }; -NODE_TYPE_CASTS(SVGPathElement) - } // namespace WebCore - -#endif // ENABLE(SVG) -#endif -- cgit v1.2.1