RenderSVGModelObject.h [plain text]
#ifndef RenderSVGModelObject_h
#define RenderSVGModelObject_h
#if ENABLE(SVG)
#include "RenderObject.h"
#include "SVGRenderSupport.h"
namespace WebCore {
class SVGStyledElement;
class RenderSVGModelObject : public RenderObject {
public:
explicit RenderSVGModelObject(SVGStyledElement*);
virtual bool requiresLayer() const { return false; }
virtual LayoutRect clippedOverflowRectForRepaint(RenderBoxModelObject* repaintContainer) const;
virtual void computeFloatRectForRepaint(RenderBoxModelObject* repaintContainer, FloatRect&, bool fixed = false) const;
virtual LayoutRect outlineBoundsForRepaint(RenderBoxModelObject* repaintContainer, const RenderGeometryMap*) const;
virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) const;
virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const;
virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool useTransforms, bool fixed, TransformState&, ApplyContainerFlipOrNot = ApplyContainerFlip, bool* wasFixed = 0) const;
virtual const RenderObject* pushMappingToContainer(const RenderBoxModelObject* ancestorToStopAt, RenderGeometryMap&) const OVERRIDE;
virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle);
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
virtual void updateFromElement();
static bool checkIntersection(RenderObject*, const FloatRect&);
static bool checkEnclosure(RenderObject*, const FloatRect&);
virtual FloatRect repaintRectInLocalCoordinatesExcludingSVGShadow() const { return repaintRectInLocalCoordinates(); }
bool hasSVGShadow() const { return m_hasSVGShadow; }
void setHasSVGShadow(bool hasShadow) { m_hasSVGShadow = hasShadow; }
protected:
virtual void willBeDestroyed();
private:
bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const LayoutPoint& pointInContainer, const LayoutPoint& accumulatedOffset, HitTestAction);
bool m_hasSVGShadow;
};
}
#endif // ENABLE(SVG)
#endif