/* * Copyright 2016 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkSVGSVG_DEFINED #define SkSVGSVG_DEFINED #include "experimental/svg/model/SkSVGContainer.h" #include "experimental/svg/model/SkSVGTypes.h" #include "src/core/SkTLazy.h" class SkSVGLengthContext; class SkSVGSVG : public SkSVGContainer { public: ~SkSVGSVG() override = default; static sk_sp Make() { return sk_sp(new SkSVGSVG()); } void setX(const SkSVGLength&); void setY(const SkSVGLength&); void setWidth(const SkSVGLength&); void setHeight(const SkSVGLength&); void setViewBox(const SkSVGViewBoxType&); SkSize intrinsicSize(const SkSVGLengthContext&) const; protected: bool onPrepareToRender(SkSVGRenderContext*) const override; void onSetAttribute(SkSVGAttribute, const SkSVGValue&) override; private: SkSVGSVG(); SkSVGLength fX = SkSVGLength(0); SkSVGLength fY = SkSVGLength(0); SkSVGLength fWidth = SkSVGLength(100, SkSVGLength::Unit::kPercentage); SkSVGLength fHeight = SkSVGLength(100, SkSVGLength::Unit::kPercentage); SkTLazy fViewBox; typedef SkSVGContainer INHERITED; }; #endif // SkSVGSVG_DEFINED