Index: Source/core/svg/SVGFitToViewBox.cpp |
diff --git a/Source/core/svg/SVGFitToViewBox.cpp b/Source/core/svg/SVGFitToViewBox.cpp |
index bf97933cd02ffc3de12f439299671d6c08aba360..e764ee8038f80204d0b52ef792b4e3ebbf5054a3 100644 |
--- a/Source/core/svg/SVGFitToViewBox.cpp |
+++ b/Source/core/svg/SVGFitToViewBox.cpp |
@@ -1,6 +1,7 @@ |
/* |
* Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
* Copyright (C) 2004, 2005, 2006, 2007, 2010 Rob Buis <buis@kde.org> |
+ * Copyright (C) 2014 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 |
@@ -25,6 +26,7 @@ |
#include "core/dom/Attribute.h" |
#include "core/dom/Document.h" |
#include "core/svg/SVGDocumentExtensions.h" |
+#include "core/svg/SVGElement.h" |
#include "core/svg/SVGParserUtilities.h" |
#include "platform/geometry/FloatRect.h" |
#include "platform/transforms/AffineTransform.h" |
@@ -32,6 +34,17 @@ |
namespace WebCore { |
+SVGFitToViewBox::SVGFitToViewBox(SVGElement* element, PropertyMapPolicy propertyMapPolicy) |
+ : m_viewBox(SVGAnimatedRect::create(element, SVGNames::viewBoxAttr)) |
+ , m_preserveAspectRatio(SVGAnimatedPreserveAspectRatio::create(element, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio::create())) |
+{ |
+ ASSERT(element); |
+ if (propertyMapPolicy == PropertyMapPolicyAdd) { |
+ element->addToPropertyMap(m_viewBox); |
+ element->addToPropertyMap(m_preserveAspectRatio); |
+ } |
+} |
+ |
AffineTransform SVGFitToViewBox::viewBoxToViewTransform(const FloatRect& viewBoxRect, PassRefPtr<SVGPreserveAspectRatio> preserveAspectRatio, float viewWidth, float viewHeight) |
{ |
if (!viewBoxRect.width() || !viewBoxRect.height()) |
@@ -51,4 +64,10 @@ void SVGFitToViewBox::addSupportedAttributes(HashSet<QualifiedName>& supportedAt |
supportedAttributes.add(SVGNames::preserveAspectRatioAttr); |
} |
+void SVGFitToViewBox::updateViewBox(const FloatRect& rect) |
+{ |
+ ASSERT(m_viewBox); |
+ m_viewBox->baseValue()->setValue(rect); |
+} |
+ |
} |