OLD | NEW |
1 /** | 1 /** |
2 * Copyright (C) 2007 Rob Buis <buis@kde.org> | 2 * Copyright (C) 2007 Rob Buis <buis@kde.org> |
3 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> | 3 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> |
4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> | 4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> |
5 * Copyright (C) 2009 Google, Inc. All rights reserved. | 5 * Copyright (C) 2009 Google, Inc. All rights reserved. |
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 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 #ifndef SVGLayoutSupport_h | 24 #ifndef SVGLayoutSupport_h |
25 #define SVGLayoutSupport_h | 25 #define SVGLayoutSupport_h |
26 | 26 |
27 #include "core/layout/LayoutObject.h" | 27 #include "core/layout/LayoutObject.h" |
28 #include "core/style/SVGComputedStyleDefs.h" | 28 #include "core/style/SVGComputedStyleDefs.h" |
29 #include "platform/graphics/DashArray.h" | 29 #include "platform/graphics/DashArray.h" |
| 30 #include "wtf/Allocator.h" |
30 | 31 |
31 namespace blink { | 32 namespace blink { |
32 | 33 |
33 class AffineTransform; | 34 class AffineTransform; |
34 class FloatPoint; | 35 class FloatPoint; |
35 class FloatRect; | 36 class FloatRect; |
36 class PaintInvalidationState; | 37 class PaintInvalidationState; |
37 class LayoutRect; | 38 class LayoutRect; |
38 class LayoutGeometryMap; | 39 class LayoutGeometryMap; |
39 class LayoutBoxModelObject; | 40 class LayoutBoxModelObject; |
40 class LayoutObject; | 41 class LayoutObject; |
41 class ComputedStyle; | 42 class ComputedStyle; |
42 class LayoutSVGRoot; | 43 class LayoutSVGRoot; |
43 class SVGLengthContext; | 44 class SVGLengthContext; |
44 class StrokeData; | 45 class StrokeData; |
45 class TransformState; | 46 class TransformState; |
46 | 47 |
47 class SVGLayoutSupport { | 48 class SVGLayoutSupport { |
| 49 STATIC_ONLY(SVGLayoutSupport); |
48 public: | 50 public: |
49 // Shares child layouting code between LayoutSVGRoot/LayoutSVG(Hidden)Contai
ner | 51 // Shares child layouting code between LayoutSVGRoot/LayoutSVG(Hidden)Contai
ner |
50 static void layoutChildren(LayoutObject*, bool selfNeedsLayout); | 52 static void layoutChildren(LayoutObject*, bool selfNeedsLayout); |
51 | 53 |
52 // Layout resources used by this node. | 54 // Layout resources used by this node. |
53 static void layoutResourcesIfNeeded(const LayoutObject*); | 55 static void layoutResourcesIfNeeded(const LayoutObject*); |
54 | 56 |
55 // Helper function determining whether overflow is hidden. | 57 // Helper function determining whether overflow is hidden. |
56 static bool isOverflowHidden(const LayoutObject*); | 58 static bool isOverflowHidden(const LayoutObject*); |
57 | 59 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 | 106 |
105 static AffineTransform deprecatedCalculateTransformToLayer(const LayoutObjec
t*); | 107 static AffineTransform deprecatedCalculateTransformToLayer(const LayoutObjec
t*); |
106 static float calculateScreenFontSizeScalingFactor(const LayoutObject*); | 108 static float calculateScreenFontSizeScalingFactor(const LayoutObject*); |
107 | 109 |
108 private: | 110 private: |
109 static void updateObjectBoundingBox(FloatRect& objectBoundingBox, bool& obje
ctBoundingBoxValid, LayoutObject* other, FloatRect otherBoundingBox); | 111 static void updateObjectBoundingBox(FloatRect& objectBoundingBox, bool& obje
ctBoundingBoxValid, LayoutObject* other, FloatRect otherBoundingBox); |
110 static bool layoutSizeOfNearestViewportChanged(const LayoutObject* start); | 112 static bool layoutSizeOfNearestViewportChanged(const LayoutObject* start); |
111 }; | 113 }; |
112 | 114 |
113 class SubtreeContentTransformScope { | 115 class SubtreeContentTransformScope { |
| 116 STACK_ALLOCATED(); |
114 public: | 117 public: |
115 SubtreeContentTransformScope(const AffineTransform&); | 118 SubtreeContentTransformScope(const AffineTransform&); |
116 ~SubtreeContentTransformScope(); | 119 ~SubtreeContentTransformScope(); |
117 | 120 |
118 private: | 121 private: |
119 AffineTransform m_savedContentTransformation; | 122 AffineTransform m_savedContentTransformation; |
120 }; | 123 }; |
121 | 124 |
122 template <typename LayoutObjectType> | 125 template <typename LayoutObjectType> |
123 bool SVGLayoutSupport::computeHasNonIsolatedBlendingDescendants(const LayoutObje
ctType* object) | 126 bool SVGLayoutSupport::computeHasNonIsolatedBlendingDescendants(const LayoutObje
ctType* object) |
124 { | 127 { |
125 for (LayoutObject* child = object->firstChild(); child; child = child->nextS
ibling()) { | 128 for (LayoutObject* child = object->firstChild(); child; child = child->nextS
ibling()) { |
126 if (child->isBlendingAllowed() && child->style()->hasBlendMode()) | 129 if (child->isBlendingAllowed() && child->style()->hasBlendMode()) |
127 return true; | 130 return true; |
128 if (child->hasNonIsolatedBlendingDescendants() && !willIsolateBlendingDe
scendantsForObject(child)) | 131 if (child->hasNonIsolatedBlendingDescendants() && !willIsolateBlendingDe
scendantsForObject(child)) |
129 return true; | 132 return true; |
130 } | 133 } |
131 return false; | 134 return false; |
132 } | 135 } |
133 | 136 |
134 } // namespace blink | 137 } // namespace blink |
135 | 138 |
136 #endif // SVGLayoutSupport_h | 139 #endif // SVGLayoutSupport_h |
OLD | NEW |