diff options
author | Andreas Kling <kling@serenityos.org> | 2022-03-10 14:02:25 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-03-11 00:21:49 +0100 |
commit | 02b316fd5cc2039a30cab33edee4595900cb35aa (patch) | |
tree | 22c7ac3c6c93d97fd7548a2b1286516260545a05 /Userland/Libraries/LibWeb/Layout/CanvasBox.h | |
parent | f6497b64ac52674e99564d83c4fad6229d06b1ef (diff) | |
download | serenity-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.h | 3 |
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; }; } |