#pragma once
#include "SVGAnimatedBoolean.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGGraphicsElement.h"
namespace WebCore {
class SVGGElement final : public SVGGraphicsElement, public SVGExternalResourcesRequired {
WTF_MAKE_ISO_ALLOCATED(SVGGElement);
public:
static Ref<SVGGElement> create(const QualifiedName&, Document&);
static Ref<SVGGElement> create(Document&);
private:
SVGGElement(const QualifiedName&, Document&);
RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) final;
using AttributeOwnerProxy = SVGAttributeOwnerProxyImpl<SVGGElement, SVGGraphicsElement, SVGExternalResourcesRequired>;
const SVGAttributeOwnerProxy& attributeOwnerProxy() const final { return m_attributeOwnerProxy; }
void parseAttribute(const QualifiedName&, const AtomicString&) final;
void svgAttributeChanged(const QualifiedName&) final;
bool isValid() const final { return SVGTests::isValid(); }
bool rendererIsNeeded(const RenderStyle&) final;
AttributeOwnerProxy m_attributeOwnerProxy { *this };
};
}