#ifndef SVGDocument_h
#define SVGDocument_h
#if ENABLE(SVG)
#include "Document.h"
#include "FloatPoint.h"
namespace WebCore {
class DOMImplementation;
class SVGElement;
class SVGSVGElement;
class SVGDocument FINAL : public Document {
public:
static PassRefPtr<SVGDocument> create(Frame* frame, const KURL& url)
{
return adoptRef(new SVGDocument(frame, url));
}
SVGSVGElement* rootElement() const;
void dispatchZoomEvent(float prevScale, float newScale);
void dispatchScrollEvent();
bool zoomAndPanEnabled() const;
void startPan(const FloatPoint& start);
void updatePan(const FloatPoint& pos) const;
private:
SVGDocument(Frame*, const KURL&);
virtual bool childShouldCreateRenderer(const NodeRenderingContext&) const;
FloatPoint m_translate;
};
inline SVGDocument* toSVGDocument(Document* document)
{
ASSERT_WITH_SECURITY_IMPLICATION(!document || document->isSVGDocument());
return static_cast<SVGDocument*>(document);
}
inline const SVGDocument* toSVGDocument(const Document* document)
{
ASSERT_WITH_SECURITY_IMPLICATION(!document || document->isSVGDocument());
return static_cast<const SVGDocument*>(document);
}
void toSVGDocument(const SVGDocument*);
}
#endif // ENABLE(SVG)
#endif // SVGDocument_h