#ifndef KCanvas_RenderSVGImage_H
#define KCanvas_RenderSVGImage_H
#if SVG_SUPPORT
#include "RenderImage.h"
#include "AffineTransform.h"
namespace WebCore
{
class SVGImageElement;
class SVGPreserveAspectRatio;
class RenderSVGImage : public RenderImage {
public:
RenderSVGImage(SVGImageElement *impl);
virtual ~RenderSVGImage();
virtual AffineTransform localTransform() const { return m_transform; }
virtual void setLocalTransform(const AffineTransform& transform) { m_transform = transform; }
virtual FloatRect relativeBBox(bool includeStroke = true) const;
virtual IntRect getAbsoluteRepaintRect();
virtual void absoluteRects(DeprecatedValueList<IntRect>& rects, int tx, int ty);
virtual void imageChanged(CachedImage*);
void adjustRectsForAspectRatio(FloatRect& destRect, FloatRect& srcRect, SVGPreserveAspectRatio *aspectRatio);
virtual void paint(PaintInfo& paintInfo, int parentX, int parentY);
virtual void layout();
bool requiresLayer();
virtual void computeAbsoluteRepaintRect(IntRect& r, bool f);
virtual bool RenderSVGImage::nodeAtPoint(NodeInfo& info, int _x, int _y, int _tx, int _ty, HitTestAction hitTestAction);
private:
void translateForAttributes();
AffineTransform translationForAttributes();
AffineTransform m_transform;
IntRect m_absoluteBounds;
};
}
#endif // SVG_SUPPORT
#endif