OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> |
4 * Copyright (C) 2005 Alexander Kellett <lypanov@kde.org> | 4 * Copyright (C) 2005 Alexander Kellett <lypanov@kde.org> |
5 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> | 5 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> |
6 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
11 * version 2 of the License, or (at your option) any later version. | 11 * version 2 of the License, or (at your option) any later version. |
12 * | 12 * |
13 * This library is distributed in the hope that it will be useful, | 13 * This library is distributed in the hope that it will be useful, |
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
16 * Library General Public License for more details. | 16 * Library General Public License for more details. |
17 * | 17 * |
18 * You should have received a copy of the GNU Library General Public License | 18 * You should have received a copy of the GNU Library General Public License |
19 * along with this library; see the file COPYING.LIB. If not, write to | 19 * along with this library; see the file COPYING.LIB. If not, write to |
20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
21 * Boston, MA 02110-1301, USA. | 21 * Boston, MA 02110-1301, USA. |
22 */ | 22 */ |
23 | 23 |
24 #include "config.h" | 24 #include "config.h" |
25 | 25 |
26 #include "core/svg/SVGMaskElement.h" | 26 #include "core/svg/SVGMaskElement.h" |
27 | 27 |
28 #include "core/rendering/svg/RenderSVGResourceMasker.h" | 28 #include "core/layout/svg/LayoutSVGResourceMasker.h" |
29 | 29 |
30 namespace blink { | 30 namespace blink { |
31 | 31 |
32 inline SVGMaskElement::SVGMaskElement(Document& document) | 32 inline SVGMaskElement::SVGMaskElement(Document& document) |
33 : SVGElement(SVGNames::maskTag, document) | 33 : SVGElement(SVGNames::maskTag, document) |
34 , m_x(SVGAnimatedLength::create(this, SVGNames::xAttr, SVGLength::create(Len
gthModeWidth), AllowNegativeLengths)) | 34 , m_x(SVGAnimatedLength::create(this, SVGNames::xAttr, SVGLength::create(Len
gthModeWidth), AllowNegativeLengths)) |
35 , m_y(SVGAnimatedLength::create(this, SVGNames::yAttr, SVGLength::create(Len
gthModeHeight), AllowNegativeLengths)) | 35 , m_y(SVGAnimatedLength::create(this, SVGNames::yAttr, SVGLength::create(Len
gthModeHeight), AllowNegativeLengths)) |
36 , m_width(SVGAnimatedLength::create(this, SVGNames::widthAttr, SVGLength::cr
eate(LengthModeWidth), ForbidNegativeLengths)) | 36 , m_width(SVGAnimatedLength::create(this, SVGNames::widthAttr, SVGLength::cr
eate(LengthModeWidth), ForbidNegativeLengths)) |
37 , m_height(SVGAnimatedLength::create(this, SVGNames::heightAttr, SVGLength::
create(LengthModeHeight), ForbidNegativeLengths)) | 37 , m_height(SVGAnimatedLength::create(this, SVGNames::heightAttr, SVGLength::
create(LengthModeHeight), ForbidNegativeLengths)) |
38 , m_maskUnits(SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::create(this
, SVGNames::maskUnitsAttr, SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)) | 38 , m_maskUnits(SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::create(this
, SVGNames::maskUnitsAttr, SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)) |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 } | 98 } |
99 | 99 |
100 SVGElement::InvalidationGuard invalidationGuard(this); | 100 SVGElement::InvalidationGuard invalidationGuard(this); |
101 | 101 |
102 if (attrName == SVGNames::xAttr | 102 if (attrName == SVGNames::xAttr |
103 || attrName == SVGNames::yAttr | 103 || attrName == SVGNames::yAttr |
104 || attrName == SVGNames::widthAttr | 104 || attrName == SVGNames::widthAttr |
105 || attrName == SVGNames::heightAttr) | 105 || attrName == SVGNames::heightAttr) |
106 updateRelativeLengthsInformation(); | 106 updateRelativeLengthsInformation(); |
107 | 107 |
108 RenderSVGResourceContainer* renderer = toRenderSVGResourceContainer(this->re
nderer()); | 108 LayoutSVGResourceContainer* renderer = toLayoutSVGResourceContainer(this->re
nderer()); |
109 if (renderer) | 109 if (renderer) |
110 renderer->invalidateCacheAndMarkForLayout(); | 110 renderer->invalidateCacheAndMarkForLayout(); |
111 } | 111 } |
112 | 112 |
113 void SVGMaskElement::childrenChanged(const ChildrenChange& change) | 113 void SVGMaskElement::childrenChanged(const ChildrenChange& change) |
114 { | 114 { |
115 SVGElement::childrenChanged(change); | 115 SVGElement::childrenChanged(change); |
116 | 116 |
117 if (change.byParser) | 117 if (change.byParser) |
118 return; | 118 return; |
119 | 119 |
120 if (LayoutObject* object = renderer()) | 120 if (LayoutObject* object = renderer()) |
121 object->setNeedsLayoutAndFullPaintInvalidation(); | 121 object->setNeedsLayoutAndFullPaintInvalidation(); |
122 } | 122 } |
123 | 123 |
124 LayoutObject* SVGMaskElement::createRenderer(const LayoutStyle&) | 124 LayoutObject* SVGMaskElement::createRenderer(const LayoutStyle&) |
125 { | 125 { |
126 return new RenderSVGResourceMasker(this); | 126 return new LayoutSVGResourceMasker(this); |
127 } | 127 } |
128 | 128 |
129 bool SVGMaskElement::selfHasRelativeLengths() const | 129 bool SVGMaskElement::selfHasRelativeLengths() const |
130 { | 130 { |
131 return m_x->currentValue()->isRelative() | 131 return m_x->currentValue()->isRelative() |
132 || m_y->currentValue()->isRelative() | 132 || m_y->currentValue()->isRelative() |
133 || m_width->currentValue()->isRelative() | 133 || m_width->currentValue()->isRelative() |
134 || m_height->currentValue()->isRelative(); | 134 || m_height->currentValue()->isRelative(); |
135 } | 135 } |
136 | 136 |
137 } // namespace blink | 137 } // namespace blink |
OLD | NEW |