Browse Source

LibWeb: Add fast_is<T>() for SVGPaintable

Andreas Kling 1 năm trước cách đây
mục cha
commit
3ff5beb229

+ 1 - 0
Userland/Libraries/LibWeb/Painting/Paintable.h

@@ -199,6 +199,7 @@ public:
     [[nodiscard]] virtual bool is_paintable_box() const { return false; }
     [[nodiscard]] virtual bool is_paintable_box() const { return false; }
     [[nodiscard]] virtual bool is_paintable_with_lines() const { return false; }
     [[nodiscard]] virtual bool is_paintable_with_lines() const { return false; }
     [[nodiscard]] virtual bool is_inline_paintable() const { return false; }
     [[nodiscard]] virtual bool is_inline_paintable() const { return false; }
+    [[nodiscard]] virtual bool is_svg_paintable() const { return false; }
 
 
     DOM::Document const& document() const { return layout_node().document(); }
     DOM::Document const& document() const { return layout_node().document(); }
     DOM::Document& document() { return layout_node().document(); }
     DOM::Document& document() { return layout_node().document(); }

+ 5 - 0
Userland/Libraries/LibWeb/Painting/SVGPaintable.h

@@ -18,9 +18,14 @@ public:
     Layout::SVGBox const& layout_box() const;
     Layout::SVGBox const& layout_box() const;
 
 
 protected:
 protected:
+    virtual bool is_svg_paintable() const override { return true; }
+
     SVGPaintable(Layout::SVGBox const&);
     SVGPaintable(Layout::SVGBox const&);
 
 
     virtual CSSPixelRect compute_absolute_rect() const override;
     virtual CSSPixelRect compute_absolute_rect() const override;
 };
 };
 
 
+template<>
+inline bool Paintable::fast_is<SVGPaintable>() const { return is_svg_paintable(); }
+
 }
 }