#include "config.h"
#include "SVGDocument.h"
#include "SVGSVGElement.h"
#include "SVGViewSpec.h"
namespace WebCore {
SVGDocument::SVGDocument(Frame* frame, const URL& url)
: XMLDocument(frame, url, SVGDocumentClass)
{
}
SVGSVGElement* SVGDocument::rootElement(const Document& document)
{
auto* element = document.documentElement();
if (!is<SVGSVGElement>(element))
return nullptr;
return downcast<SVGSVGElement>(element);
}
bool SVGDocument::zoomAndPanEnabled() const
{
auto* element = rootElement(*this);
if (!element)
return false;
return (element->useCurrentView() ? element->currentView().zoomAndPan() : element->zoomAndPan()) == SVGZoomAndPanMagnify;
}
void SVGDocument::startPan(const FloatPoint& start)
{
auto* element = rootElement(*this);
if (!element)
return;
m_panningOffset = start - element->currentTranslateValue();
}
void SVGDocument::updatePan(const FloatPoint& position) const
{
auto* element = rootElement(*this);
if (!element)
return;
element->setCurrentTranslate(position - m_panningOffset);
}
Ref<Document> SVGDocument::cloneDocumentWithoutChildren() const
{
return create(nullptr, url());
}
}