summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/Layout
diff options
context:
space:
mode:
authorSam Atkins <atkinssj@serenityos.org>2022-02-11 12:32:55 +0000
committerAndreas Kling <kling@serenityos.org>2022-02-11 21:38:27 +0100
commit326a5a82ebef1146def6e04f1930ef8c054a59bf (patch)
treeb79d3603cf57b75c89a822f158611af8aab24587 /Userland/Libraries/LibWeb/Layout
parent49fe232bc78caa7900b95f80d6823fee2cc30781 (diff)
downloadserenity-326a5a82ebef1146def6e04f1930ef8c054a59bf.zip
LibWeb: Move SVGPathElement methods into SVGGeometryElement
From the spec: > Interface SVGGeometryElement represents SVG elements whose rendering > is defined by geometry with an equivalent path, and which can be > filled and stroked. This includes paths and the basic shapes. - https://svgwg.org/svg2-draft/types.html#InterfaceSVGGeometryElement Making them all create an SVGPathBox, and return a Path from get_path(), means we can implement the "basic shapes" using the path system we already have. :^)
Diffstat (limited to 'Userland/Libraries/LibWeb/Layout')
-rw-r--r--Userland/Libraries/LibWeb/Layout/SVGPathBox.cpp12
-rw-r--r--Userland/Libraries/LibWeb/Layout/SVGPathBox.h8
2 files changed, 10 insertions, 10 deletions
diff --git a/Userland/Libraries/LibWeb/Layout/SVGPathBox.cpp b/Userland/Libraries/LibWeb/Layout/SVGPathBox.cpp
index 01c25706da..f9bc85b6e9 100644
--- a/Userland/Libraries/LibWeb/Layout/SVGPathBox.cpp
+++ b/Userland/Libraries/LibWeb/Layout/SVGPathBox.cpp
@@ -11,7 +11,7 @@
namespace Web::Layout {
-SVGPathBox::SVGPathBox(DOM::Document& document, SVG::SVGPathElement& element, NonnullRefPtr<CSS::StyleProperties> properties)
+SVGPathBox::SVGPathBox(DOM::Document& document, SVG::SVGGeometryElement& element, NonnullRefPtr<CSS::StyleProperties> properties)
: SVGGraphicsBox(document, element, properties)
{
}
@@ -26,8 +26,8 @@ void SVGPathBox::paint(PaintContext& context, PaintPhase phase)
if (phase != PaintPhase::Foreground)
return;
- auto& path_element = dom_node();
- auto& path = path_element.get_path();
+ auto& geometry_element = dom_node();
+ auto& path = geometry_element.get_path();
Gfx::AntiAliasingPainter painter { context.painter() };
auto& svg_context = context.svg_context();
@@ -35,7 +35,7 @@ void SVGPathBox::paint(PaintContext& context, PaintPhase phase)
auto offset = absolute_position();
painter.translate(offset);
- if (auto fill_color = path_element.fill_color().value_or(svg_context.fill_color()); fill_color.alpha() > 0) {
+ if (auto fill_color = geometry_element.fill_color().value_or(svg_context.fill_color()); fill_color.alpha() > 0) {
// We need to fill the path before applying the stroke, however the filled
// path must be closed, whereas the stroke path may not necessary be closed.
// Copy the path and close it for filling, but use the previous path for stroke
@@ -49,11 +49,11 @@ void SVGPathBox::paint(PaintContext& context, PaintPhase phase)
Gfx::Painter::WindingRule::EvenOdd);
}
- if (auto stroke_color = path_element.stroke_color().value_or(svg_context.stroke_color()); stroke_color.alpha() > 0) {
+ if (auto stroke_color = geometry_element.stroke_color().value_or(svg_context.stroke_color()); stroke_color.alpha() > 0) {
painter.stroke_path(
path,
stroke_color,
- path_element.stroke_width().value_or(svg_context.stroke_width()));
+ geometry_element.stroke_width().value_or(svg_context.stroke_width()));
}
painter.translate(-offset);
diff --git a/Userland/Libraries/LibWeb/Layout/SVGPathBox.h b/Userland/Libraries/LibWeb/Layout/SVGPathBox.h
index 9521c4cc03..624826d9e0 100644
--- a/Userland/Libraries/LibWeb/Layout/SVGPathBox.h
+++ b/Userland/Libraries/LibWeb/Layout/SVGPathBox.h
@@ -7,17 +7,17 @@
#pragma once
#include <LibWeb/Layout/SVGGraphicsBox.h>
-#include <LibWeb/SVG/SVGPathElement.h>
+#include <LibWeb/SVG/SVGGeometryElement.h>
namespace Web::Layout {
class SVGPathBox final : public SVGGraphicsBox {
public:
- SVGPathBox(DOM::Document&, SVG::SVGPathElement&, NonnullRefPtr<CSS::StyleProperties>);
+ SVGPathBox(DOM::Document&, SVG::SVGGeometryElement&, NonnullRefPtr<CSS::StyleProperties>);
virtual ~SVGPathBox() override = default;
- SVG::SVGPathElement& dom_node() { return verify_cast<SVG::SVGPathElement>(SVGGraphicsBox::dom_node()); }
- SVG::SVGPathElement const& dom_node() const { return verify_cast<SVG::SVGPathElement>(SVGGraphicsBox::dom_node()); }
+ SVG::SVGGeometryElement& dom_node() { return verify_cast<SVG::SVGGeometryElement>(SVGGraphicsBox::dom_node()); }
+ SVG::SVGGeometryElement const& dom_node() const { return verify_cast<SVG::SVGGeometryElement>(SVGGraphicsBox::dom_node()); }
virtual void paint(PaintContext& context, PaintPhase phase) override;