1 /* 2 * Copyright (C) 2006 Apple Computer, Inc. 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Library General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Library General Public License for more details. 13 * 14 * You should have received a copy of the GNU Library General Public License 15 * along with this library; see the file COPYING.LIB. If not, write to 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 * Boston, MA 02110-1301, USA. 18 */ 19 20 #ifndef RenderSVGBlock_h 21 #define RenderSVGBlock_h 22 23 #include "core/rendering/RenderBlockFlow.h" 24 25 namespace blink { 26 27 class SVGElement; 28 29 class RenderSVGBlock : public RenderBlockFlow { 30 public: 31 explicit RenderSVGBlock(SVGElement*); 32 33 virtual LayoutRect visualOverflowRect() const OVERRIDE FINAL; 34 35 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const RenderLayerModelObject* paintInvalidationContainer, const PaintInvalidationState* = 0) const OVERRIDE FINAL; 36 virtual void computeFloatRectForPaintInvalidation(const RenderLayerModelObject* paintInvalidationContainer, FloatRect&, const PaintInvalidationState*) const OVERRIDE FINAL; 37 38 virtual void mapLocalToContainer(const RenderLayerModelObject* paintInvalidationContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0, const PaintInvalidationState* = 0) const OVERRIDE FINAL; 39 virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const OVERRIDE FINAL; 40 localTransform()41 virtual AffineTransform localTransform() const OVERRIDE FINAL { return m_localTransform; } 42 layerTypeRequired()43 virtual LayerType layerTypeRequired() const OVERRIDE FINAL { return NoLayer; } 44 45 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&) OVERRIDE; 46 47 protected: 48 virtual void willBeDestroyed() OVERRIDE; 49 50 AffineTransform m_localTransform; 51 52 private: 53 virtual void updateFromStyle() OVERRIDE FINAL; 54 isSVG()55 virtual bool isSVG() const OVERRIDE FINAL { return true; } 56 57 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) const OVERRIDE FINAL; 58 59 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OVERRIDE FINAL; 60 61 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) OVERRIDE; 62 }; 63 64 } 65 #endif 66