mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-30 04:39:06 +00:00
LibWeb: Add layout objects for fieldset and legend
Add the boilerplate code for the layout objects that represent the `<fieldset>` and `<legend>` elements. Using these, we can make progress towards laying out these two elements per the spec at https://html.spec.whatwg.org/multipage/rendering.html#the-fieldset-and-legend-elements.
This commit is contained in:
parent
b342758dbf
commit
a820308a02
Notes:
github-actions[bot]
2024-11-19 13:32:03 +00:00
Author: https://github.com/kostyafarber
Commit: a820308a02
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2127
Reviewed-by: https://github.com/kalenikaliaksandr
12 changed files with 173 additions and 0 deletions
37
Libraries/LibWeb/Layout/FieldSetBox.h
Normal file
37
Libraries/LibWeb/Layout/FieldSetBox.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* Copyright (c) 2024, Kostya Farber <kostya.farber@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <LibWeb/Forward.h>
|
||||
#include <LibWeb/Layout/BlockContainer.h>
|
||||
namespace Web::Layout {
|
||||
|
||||
class FieldSetBox final : public BlockContainer {
|
||||
JS_CELL(FieldSetBox, BlockContainer);
|
||||
JS_DECLARE_ALLOCATOR(FieldSetBox);
|
||||
|
||||
public:
|
||||
FieldSetBox(DOM::Document&, DOM::Element&, CSS::StyleProperties);
|
||||
virtual ~FieldSetBox() override;
|
||||
|
||||
DOM::Element& dom_node() { return static_cast<DOM::Element&>(*BlockContainer::dom_node()); }
|
||||
DOM::Element const& dom_node() const { return static_cast<DOM::Element const&>(*BlockContainer::dom_node()); }
|
||||
|
||||
void layout_legend() const;
|
||||
|
||||
private:
|
||||
bool has_rendered_legend() const;
|
||||
virtual bool is_fieldset_box() const final
|
||||
{
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
inline bool Node::fast_is<FieldSetBox>() const { return is_fieldset_box(); }
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue