| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
| 3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> |
| 4 * | 4 * |
| 5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
| 7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
| 9 * | 9 * |
| 10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 | 25 |
| 26 namespace blink { | 26 namespace blink { |
| 27 | 27 |
| 28 inline SVGTextElement::SVGTextElement(Document& doc) | 28 inline SVGTextElement::SVGTextElement(Document& doc) |
| 29 : SVGTextPositioningElement(SVGNames::textTag, doc) | 29 : SVGTextPositioningElement(SVGNames::textTag, doc) |
| 30 { | 30 { |
| 31 } | 31 } |
| 32 | 32 |
| 33 DEFINE_NODE_FACTORY(SVGTextElement) | 33 DEFINE_NODE_FACTORY(SVGTextElement) |
| 34 | 34 |
| 35 // We override SVGGraphics::animatedLocalTransform() so that the transform-origi
n | |
| 36 // is not taken into account. | |
| 37 AffineTransform SVGTextElement::animatedLocalTransform() const | |
| 38 { | |
| 39 AffineTransform matrix; | |
| 40 RenderStyle* style = renderer() ? renderer()->style() : 0; | |
| 41 | |
| 42 // if CSS property was set, use that, otherwise fallback to attribute (if se
t) | |
| 43 if (style && style->hasTransform()) { | |
| 44 TransformationMatrix t; | |
| 45 // For now, the transform-origin is not taken into account | |
| 46 // Also, any percentage values will not be taken into account | |
| 47 style->applyTransform(t, IntSize(0, 0), RenderStyle::ExcludeTransformOri
gin); | |
| 48 // Flatten any 3D transform | |
| 49 matrix = t.toAffineTransform(); | |
| 50 } else { | |
| 51 transform()->currentValue()->concatenate(matrix); | |
| 52 } | |
| 53 | |
| 54 const AffineTransform* transform = const_cast<SVGTextElement*>(this)->animat
eMotionTransform(); | |
| 55 if (transform) | |
| 56 return *transform * matrix; | |
| 57 return matrix; | |
| 58 } | |
| 59 | |
| 60 RenderObject* SVGTextElement::createRenderer(RenderStyle*) | 35 RenderObject* SVGTextElement::createRenderer(RenderStyle*) |
| 61 { | 36 { |
| 62 return new RenderSVGText(this); | 37 return new RenderSVGText(this); |
| 63 } | 38 } |
| 64 | 39 |
| 65 } | 40 } |
| OLD | NEW |