summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/Layout/CanvasBox.h
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2022-03-10 14:02:25 +0100
committerAndreas Kling <kling@serenityos.org>2022-03-11 00:21:49 +0100
commit02b316fd5cc2039a30cab33edee4595900cb35aa (patch)
tree22c7ac3c6c93d97fd7548a2b1286516260545a05 /Userland/Libraries/LibWeb/Layout/CanvasBox.h
parentf6497b64ac52674e99564d83c4fad6229d06b1ef (diff)
downloadserenity-02b316fd5cc2039a30cab33edee4595900cb35aa.zip
LibWeb: Let Paintable perform the painting
This patch adds a bunch of Paintable subclasses, each corresponding to the Layout::Node subclasses that had a paint() override. All painting logic is moved from layout nodes into their corresponding paintables. Paintables are now created by asking a Layout::Box to produce one: static NonnullOwnPtr<Paintable> Layout::Box::create_paintable() Note that inline nodes still have their painting logic. Since they are not boxes, and all paintables have a corresponding box, we'll need to come up with some other solution for them.
Diffstat (limited to 'Userland/Libraries/LibWeb/Layout/CanvasBox.h')
-rw-r--r--Userland/Libraries/LibWeb/Layout/CanvasBox.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/Userland/Libraries/LibWeb/Layout/CanvasBox.h b/Userland/Libraries/LibWeb/Layout/CanvasBox.h
index 3e1d9a5ab5..8f0df09308 100644
--- a/Userland/Libraries/LibWeb/Layout/CanvasBox.h
+++ b/Userland/Libraries/LibWeb/Layout/CanvasBox.h
@@ -17,9 +17,10 @@ public:
virtual ~CanvasBox() override;
virtual void prepare_for_replaced_layout() override;
- virtual void paint(PaintContext&, Painting::PaintPhase) override;
const HTML::HTMLCanvasElement& dom_node() const { return static_cast<const HTML::HTMLCanvasElement&>(ReplacedBox::dom_node()); }
+
+ virtual OwnPtr<Painting::Paintable> create_paintable() const override;
};
}