2022-10-03 16:25:42 +00:00
|
|
|
#ifndef SVGELEMENT_H
|
|
|
|
#define SVGELEMENT_H
|
|
|
|
|
|
|
|
#include "graphicselement.h"
|
|
|
|
|
|
|
|
namespace lunasvg {
|
|
|
|
|
2022-10-16 10:31:43 +00:00
|
|
|
class TreeBuilder;
|
2022-10-03 16:25:42 +00:00
|
|
|
class LayoutSymbol;
|
|
|
|
|
2023-07-29 10:37:05 +00:00
|
|
|
class SVGElement : public GraphicsElement {
|
2022-10-03 16:25:42 +00:00
|
|
|
public:
|
|
|
|
SVGElement();
|
|
|
|
|
|
|
|
Length x() const;
|
|
|
|
Length y() const;
|
|
|
|
Length width() const;
|
|
|
|
Length height() const;
|
|
|
|
|
|
|
|
Rect viewBox() const;
|
|
|
|
PreserveAspectRatio preserveAspectRatio() const;
|
2022-10-16 10:31:43 +00:00
|
|
|
std::unique_ptr<LayoutSymbol> build(const TreeBuilder* builder) const;
|
2022-10-03 16:25:42 +00:00
|
|
|
|
|
|
|
void layout(LayoutContext* context, LayoutContainer* current) const;
|
|
|
|
std::unique_ptr<Node> clone() const;
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace lunasvg
|
|
|
|
|
|
|
|
#endif // SVGELEMENT_H
|