
Having this here instead of in ReplacedBox means we can access it when figuring out what the "preferred aspect ratio" is. There's some inconsistency between specs about what this is called, but they're moving towards referring to this as "natural width/height/ aspect-ratio", so let's copy that terminology.
31 lines
733 B
C++
31 lines
733 B
C++
/*
|
|
* Copyright (c) 2020-2022, Andreas Kling <kling@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <LibGfx/Painter.h>
|
|
#include <LibWeb/Layout/CanvasBox.h>
|
|
#include <LibWeb/Painting/CanvasPaintable.h>
|
|
|
|
namespace Web::Layout {
|
|
|
|
CanvasBox::CanvasBox(DOM::Document& document, HTML::HTMLCanvasElement& element, NonnullRefPtr<CSS::StyleProperties> style)
|
|
: ReplacedBox(document, element, move(style))
|
|
{
|
|
}
|
|
|
|
CanvasBox::~CanvasBox() = default;
|
|
|
|
void CanvasBox::prepare_for_replaced_layout()
|
|
{
|
|
set_natural_width(dom_node().width());
|
|
set_natural_height(dom_node().height());
|
|
}
|
|
|
|
JS::GCPtr<Painting::Paintable> CanvasBox::create_paintable() const
|
|
{
|
|
return Painting::CanvasPaintable::create(*this);
|
|
}
|
|
|
|
}
|