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(const RenderLayerModelObject* repaintContainer) const OVERRIDE;
virtual void computeFloatRectForRepaint(const RenderLayerModelObject* repaintContainer, FloatRect&, bool fixed = false) const OVERRIDE;
virtual LayoutRect outlineBoundsForRepaint(const RenderLayerModelObject* repaintContainer, const RenderGeometryMap*) const OVERRIDE;
virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) const;
virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const;
virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const OVERRIDE;
virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const OVERRIDE;
virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle);
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
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 HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) OVERRIDE;
virtual void absoluteFocusRingQuads(Vector<FloatQuad>&);
bool m_hasSVGShadow;
};
}
#endif // ENABLE(SVG)
#endif