diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/svg/svg_view_spec.h')
-rw-r--r-- | chromium/third_party/blink/renderer/core/svg/svg_view_spec.h | 42 |
1 files changed, 11 insertions, 31 deletions
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_view_spec.h b/chromium/third_party/blink/renderer/core/svg/svg_view_spec.h index 7c82fa4a0c7..ff9fa2a4b77 100644 --- a/chromium/third_party/blink/renderer/core/svg/svg_view_spec.h +++ b/chromium/third_party/blink/renderer/core/svg/svg_view_spec.h @@ -25,58 +25,38 @@ namespace blink { -class FloatRect; class SVGPreserveAspectRatio; class SVGRect; -class SVGSVGElement; class SVGTransformList; +class SVGViewElement; -class SVGViewSpec final : public GarbageCollectedFinalized<SVGViewSpec>, - public SVGZoomAndPan { +class SVGViewSpec final : public GarbageCollectedFinalized<SVGViewSpec> { public: - static SVGViewSpec* CreateForElement(SVGSVGElement&); + static SVGViewSpec* CreateFromFragment(const String&); + static SVGViewSpec* CreateForViewElement(const SVGViewElement&); - bool ParseViewSpec(const String&); - void Reset(); - template <typename T> - void InheritViewAttributesFromElement(T&); - - SVGRect* ViewBox() { return view_box_; } - SVGPreserveAspectRatio* PreserveAspectRatio() { + const SVGRect* ViewBox() const { return view_box_; } + const SVGPreserveAspectRatio* PreserveAspectRatio() const { return preserve_aspect_ratio_; } - SVGTransformList* Transform() { return transform_; } + const SVGTransformList* Transform() const { return transform_; } + SVGZoomAndPanType ZoomAndPan() const { return zoom_and_pan_; } - virtual void Trace(blink::Visitor*); + void Trace(Visitor*); private: SVGViewSpec(); + bool ParseViewSpec(const String&); template <typename CharType> bool ParseViewSpecInternal(const CharType* ptr, const CharType* end); - void SetViewBox(const FloatRect&); - void SetPreserveAspectRatio(const SVGPreserveAspectRatio&); - Member<SVGRect> view_box_; Member<SVGPreserveAspectRatio> preserve_aspect_ratio_; Member<SVGTransformList> transform_; + SVGZoomAndPanType zoom_and_pan_; }; -template <typename T> -void SVGViewSpec::InheritViewAttributesFromElement(T& inherit_from_element) { - if (inherit_from_element.HasValidViewBox()) - SetViewBox(inherit_from_element.viewBox()->CurrentValue()->Value()); - - if (inherit_from_element.preserveAspectRatio()->IsSpecified()) { - SetPreserveAspectRatio( - *inherit_from_element.preserveAspectRatio()->CurrentValue()); - } - - if (inherit_from_element.hasAttribute(SVGNames::zoomAndPanAttr)) - setZoomAndPan(inherit_from_element.zoomAndPan()); -} - } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_VIEW_SPEC_H_ |