OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Rob Buis <buis@kde.org> |
4 * Copyright (C) 2007 Apple Inc. All rights reserved. | 4 * Copyright (C) 2007 Apple Inc. All rights reserved. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 #include "core/rendering/svg/RenderSVGResource.h" | 44 #include "core/rendering/svg/RenderSVGResource.h" |
45 #include "core/rendering/svg/RenderSVGRoot.h" | 45 #include "core/rendering/svg/RenderSVGRoot.h" |
46 #include "core/rendering/svg/RenderSVGViewportContainer.h" | 46 #include "core/rendering/svg/RenderSVGViewportContainer.h" |
47 #include "core/svg/SVGAngleTearOff.h" | 47 #include "core/svg/SVGAngleTearOff.h" |
48 #include "core/svg/SVGElementInstance.h" | 48 #include "core/svg/SVGElementInstance.h" |
49 #include "core/svg/SVGNumberTearOff.h" | 49 #include "core/svg/SVGNumberTearOff.h" |
50 #include "core/svg/SVGPreserveAspectRatio.h" | 50 #include "core/svg/SVGPreserveAspectRatio.h" |
51 #include "core/svg/SVGRectTearOff.h" | 51 #include "core/svg/SVGRectTearOff.h" |
52 #include "core/svg/SVGTransform.h" | 52 #include "core/svg/SVGTransform.h" |
53 #include "core/svg/SVGTransformList.h" | 53 #include "core/svg/SVGTransformList.h" |
| 54 #include "core/svg/SVGTransformTearOff.h" |
54 #include "core/svg/SVGViewElement.h" | 55 #include "core/svg/SVGViewElement.h" |
55 #include "core/svg/SVGViewSpec.h" | 56 #include "core/svg/SVGViewSpec.h" |
56 #include "core/svg/animation/SMILTimeContainer.h" | 57 #include "core/svg/animation/SMILTimeContainer.h" |
57 #include "platform/FloatConversion.h" | 58 #include "platform/FloatConversion.h" |
58 #include "platform/LengthFunctions.h" | 59 #include "platform/LengthFunctions.h" |
59 #include "platform/geometry/FloatRect.h" | 60 #include "platform/geometry/FloatRect.h" |
60 #include "platform/transforms/AffineTransform.h" | 61 #include "platform/transforms/AffineTransform.h" |
61 #include "wtf/StdLibExtras.h" | 62 #include "wtf/StdLibExtras.h" |
62 | 63 |
63 namespace WebCore { | 64 namespace WebCore { |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 PassRefPtr<SVGAngleTearOff> SVGSVGElement::createSVGAngle() | 393 PassRefPtr<SVGAngleTearOff> SVGSVGElement::createSVGAngle() |
393 { | 394 { |
394 return SVGAngleTearOff::create(SVGAngle::create(), 0, PropertyIsNotAnimVal); | 395 return SVGAngleTearOff::create(SVGAngle::create(), 0, PropertyIsNotAnimVal); |
395 } | 396 } |
396 | 397 |
397 PassRefPtr<SVGPointTearOff> SVGSVGElement::createSVGPoint() | 398 PassRefPtr<SVGPointTearOff> SVGSVGElement::createSVGPoint() |
398 { | 399 { |
399 return SVGPointTearOff::create(SVGPoint::create(), 0, PropertyIsNotAnimVal); | 400 return SVGPointTearOff::create(SVGPoint::create(), 0, PropertyIsNotAnimVal); |
400 } | 401 } |
401 | 402 |
402 SVGMatrix SVGSVGElement::createSVGMatrix() | 403 PassRefPtr<SVGMatrixTearOff> SVGSVGElement::createSVGMatrix() |
403 { | 404 { |
404 return SVGMatrix(); | 405 return SVGMatrixTearOff::create(AffineTransform()); |
405 } | 406 } |
406 | 407 |
407 PassRefPtr<SVGRectTearOff> SVGSVGElement::createSVGRect() | 408 PassRefPtr<SVGRectTearOff> SVGSVGElement::createSVGRect() |
408 { | 409 { |
409 return SVGRectTearOff::create(SVGRect::create(), 0, PropertyIsNotAnimVal); | 410 return SVGRectTearOff::create(SVGRect::create(), 0, PropertyIsNotAnimVal); |
410 } | 411 } |
411 | 412 |
412 SVGTransform SVGSVGElement::createSVGTransform() | 413 PassRefPtr<SVGTransformTearOff> SVGSVGElement::createSVGTransform() |
413 { | 414 { |
414 return SVGTransform(SVGTransform::SVG_TRANSFORM_MATRIX); | 415 return SVGTransformTearOff::create(SVGTransform::create(SVG_TRANSFORM_MATRIX
), 0, PropertyIsNotAnimVal); |
415 } | 416 } |
416 | 417 |
417 SVGTransform SVGSVGElement::createSVGTransformFromMatrix(const SVGMatrix& matrix
) | 418 PassRefPtr<SVGTransformTearOff> SVGSVGElement::createSVGTransformFromMatrix(Pass
RefPtr<SVGMatrixTearOff> matrix) |
418 { | 419 { |
419 return SVGTransform(static_cast<const AffineTransform&>(matrix)); | 420 return SVGTransformTearOff::create(SVGTransform::create(matrix->value()), 0,
PropertyIsNotAnimVal); |
420 } | 421 } |
421 | 422 |
422 AffineTransform SVGSVGElement::localCoordinateSpaceTransform(SVGElement::CTMScop
e mode) const | 423 AffineTransform SVGSVGElement::localCoordinateSpaceTransform(SVGElement::CTMScop
e mode) const |
423 { | 424 { |
424 AffineTransform viewBoxTransform; | 425 AffineTransform viewBoxTransform; |
425 if (!hasEmptyViewBox()) { | 426 if (!hasEmptyViewBox()) { |
426 FloatSize size = currentViewportSize(); | 427 FloatSize size = currentViewportSize(); |
427 viewBoxTransform = viewBoxToViewTransform(size.width(), size.height()); | 428 viewBoxTransform = viewBoxToViewTransform(size.width(), size.height()); |
428 } | 429 } |
429 | 430 |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
668 ASSERT(renderer()); | 669 ASSERT(renderer()); |
669 return renderer()->style()->height(); | 670 return renderer()->style()->height(); |
670 } | 671 } |
671 | 672 |
672 AffineTransform SVGSVGElement::viewBoxToViewTransform(float viewWidth, float vie
wHeight) const | 673 AffineTransform SVGSVGElement::viewBoxToViewTransform(float viewWidth, float vie
wHeight) const |
673 { | 674 { |
674 if (!m_useCurrentView || !m_viewSpec) | 675 if (!m_useCurrentView || !m_viewSpec) |
675 return SVGFitToViewBox::viewBoxToViewTransform(currentViewBoxRect(), pre
serveAspectRatio()->currentValue(), viewWidth, viewHeight); | 676 return SVGFitToViewBox::viewBoxToViewTransform(currentViewBoxRect(), pre
serveAspectRatio()->currentValue(), viewWidth, viewHeight); |
676 | 677 |
677 AffineTransform ctm = SVGFitToViewBox::viewBoxToViewTransform(currentViewBox
Rect(), m_viewSpec->preserveAspectRatio()->currentValue(), viewWidth, viewHeight
); | 678 AffineTransform ctm = SVGFitToViewBox::viewBoxToViewTransform(currentViewBox
Rect(), m_viewSpec->preserveAspectRatio()->currentValue(), viewWidth, viewHeight
); |
678 const SVGTransformList& transformList = m_viewSpec->transformBaseValue(); | 679 RefPtr<SVGTransformList> transformList = m_viewSpec->transform(); |
679 if (transformList.isEmpty()) | 680 if (transformList->isEmpty()) |
680 return ctm; | 681 return ctm; |
681 | 682 |
682 AffineTransform transform; | 683 AffineTransform transform; |
683 if (transformList.concatenate(transform)) | 684 if (transformList->concatenate(transform)) |
684 ctm *= transform; | 685 ctm *= transform; |
685 | 686 |
686 return ctm; | 687 return ctm; |
687 } | 688 } |
688 | 689 |
689 void SVGSVGElement::setupInitialView(const String& fragmentIdentifier, Element*
anchorNode) | 690 void SVGSVGElement::setupInitialView(const String& fragmentIdentifier, Element*
anchorNode) |
690 { | 691 { |
691 RenderObject* renderer = this->renderer(); | 692 RenderObject* renderer = this->renderer(); |
692 SVGViewSpec* view = m_viewSpec.get(); | 693 SVGViewSpec* view = m_viewSpec.get(); |
693 if (view) | 694 if (view) |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
777 continue; | 778 continue; |
778 | 779 |
779 Element* element = toElement(node); | 780 Element* element = toElement(node); |
780 if (element->getIdAttribute() == id) | 781 if (element->getIdAttribute() == id) |
781 return element; | 782 return element; |
782 } | 783 } |
783 return 0; | 784 return 0; |
784 } | 785 } |
785 | 786 |
786 } | 787 } |
OLD | NEW |