
This should allow us to add a Element::attribute which returns an Optional<String>. Eventually all callers should be ported to switch from the DeprecatedString version, but in the meantime, this should allow us to port some more IDL interfaces away from DeprecatedString.
44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
/*
|
|
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <LibWeb/DOM/Document.h>
|
|
#include <LibWeb/HTML/BrowsingContext.h>
|
|
#include <LibWeb/Layout/FrameBox.h>
|
|
#include <LibWeb/Layout/Viewport.h>
|
|
#include <LibWeb/Painting/NestedBrowsingContextPaintable.h>
|
|
|
|
namespace Web::Layout {
|
|
|
|
FrameBox::FrameBox(DOM::Document& document, DOM::Element& element, NonnullRefPtr<CSS::StyleProperties> style)
|
|
: ReplacedBox(document, element, move(style))
|
|
{
|
|
}
|
|
|
|
FrameBox::~FrameBox() = default;
|
|
|
|
void FrameBox::prepare_for_replaced_layout()
|
|
{
|
|
VERIFY(dom_node().nested_browsing_context());
|
|
|
|
// FIXME: Do proper error checking, etc.
|
|
set_natural_width(dom_node().deprecated_attribute(HTML::AttributeNames::width).to_int().value_or(300));
|
|
set_natural_height(dom_node().deprecated_attribute(HTML::AttributeNames::height).to_int().value_or(150));
|
|
}
|
|
|
|
void FrameBox::did_set_content_size()
|
|
{
|
|
ReplacedBox::did_set_content_size();
|
|
|
|
VERIFY(dom_node().nested_browsing_context());
|
|
dom_node().nested_browsing_context()->set_size(paintable_box()->content_size());
|
|
}
|
|
|
|
JS::GCPtr<Painting::Paintable> FrameBox::create_paintable() const
|
|
{
|
|
return Painting::NestedBrowsingContextPaintable::create(*this);
|
|
}
|
|
|
|
}
|