mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-22 12:35:14 +00:00
LibWeb: Move height, min-height and max-height into LayoutStyle
This commit is contained in:
parent
ec466c0385
commit
5d86305a72
Notes:
sideshowbarker
2024-07-19 05:24:31 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/5d86305a724
4 changed files with 26 additions and 17 deletions
|
@ -670,19 +670,19 @@ void LayoutBlock::place_block_level_non_replaced_element_in_normal_flow(LayoutBl
|
|||
|
||||
void LayoutBlock::compute_height()
|
||||
{
|
||||
auto& style = this->specified_style();
|
||||
|
||||
auto specified_height = style.length_or_fallback(CSS::PropertyID::Height, Length::make_auto(), containing_block()->height());
|
||||
auto specified_max_height = style.length_or_fallback(CSS::PropertyID::MaxHeight, Length::make_auto(), containing_block()->height());
|
||||
|
||||
auto& specified_style = this->specified_style();
|
||||
auto& containing_block = *this->containing_block();
|
||||
|
||||
box_model().margin.top = style.length_or_fallback(CSS::PropertyID::MarginTop, Length::make_px(0), containing_block.width());
|
||||
box_model().margin.bottom = style.length_or_fallback(CSS::PropertyID::MarginBottom, Length::make_px(0), containing_block.width());
|
||||
box_model().border.top = style.length_or_fallback(CSS::PropertyID::BorderTopWidth, Length::make_px(0));
|
||||
box_model().border.bottom = style.length_or_fallback(CSS::PropertyID::BorderBottomWidth, Length::make_px(0));
|
||||
box_model().padding.top = style.length_or_fallback(CSS::PropertyID::PaddingTop, Length::make_px(0), containing_block.width());
|
||||
box_model().padding.bottom = style.length_or_fallback(CSS::PropertyID::PaddingBottom, Length::make_px(0), containing_block.width());
|
||||
auto specified_height = style().height().resolved_or_auto(*this, containing_block.height());
|
||||
auto specified_max_height = style().max_height().resolved_or_auto(*this, containing_block.height());
|
||||
|
||||
|
||||
box_model().margin.top = specified_style.length_or_fallback(CSS::PropertyID::MarginTop, Length::make_px(0), containing_block.width());
|
||||
box_model().margin.bottom = specified_style.length_or_fallback(CSS::PropertyID::MarginBottom, Length::make_px(0), containing_block.width());
|
||||
box_model().border.top = specified_style.length_or_fallback(CSS::PropertyID::BorderTopWidth, Length::make_px(0));
|
||||
box_model().border.bottom = specified_style.length_or_fallback(CSS::PropertyID::BorderBottomWidth, Length::make_px(0));
|
||||
box_model().padding.top = specified_style.length_or_fallback(CSS::PropertyID::PaddingTop, Length::make_px(0), containing_block.width());
|
||||
box_model().padding.bottom = specified_style.length_or_fallback(CSS::PropertyID::PaddingBottom, Length::make_px(0), containing_block.width());
|
||||
|
||||
if (!specified_height.is_auto()) {
|
||||
float used_height = specified_height.to_px(*this);
|
||||
|
|
|
@ -229,6 +229,9 @@ void LayoutNodeWithStyle::apply_style(const StyleProperties& specified_style)
|
|||
style.set_width(specified_style.length_or_fallback(CSS::PropertyID::Width, {}));
|
||||
style.set_min_width(specified_style.length_or_fallback(CSS::PropertyID::MinWidth, {}));
|
||||
style.set_max_width(specified_style.length_or_fallback(CSS::PropertyID::MaxWidth, {}));
|
||||
style.set_height(specified_style.length_or_fallback(CSS::PropertyID::Height, {}));
|
||||
style.set_min_height(specified_style.length_or_fallback(CSS::PropertyID::MinHeight, {}));
|
||||
style.set_max_height(specified_style.length_or_fallback(CSS::PropertyID::MaxHeight, {}));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -46,7 +46,6 @@ float LayoutReplaced::calculate_width() const
|
|||
// 10.3.2 [Inline,] replaced elements
|
||||
|
||||
auto& specified_style = this->specified_style();
|
||||
auto auto_value = Length::make_auto();
|
||||
auto zero_value = Length::make_px(0);
|
||||
auto& containing_block = *this->containing_block();
|
||||
|
||||
|
@ -60,7 +59,7 @@ float LayoutReplaced::calculate_width() const
|
|||
margin_right = zero_value;
|
||||
|
||||
auto specified_width = style().width().resolved_or_auto(*this, containing_block.width());
|
||||
auto specified_height = specified_style.length_or_fallback(CSS::PropertyID::Height, auto_value, containing_block.height());
|
||||
auto specified_height = style().height().resolved_or_auto(*this, containing_block.height());
|
||||
|
||||
// FIXME: Actually compute 'width'
|
||||
auto computed_width = specified_width;
|
||||
|
@ -98,12 +97,10 @@ float LayoutReplaced::calculate_height() const
|
|||
{
|
||||
// 10.6.2 Inline replaced elements, block-level replaced elements in normal flow,
|
||||
// 'inline-block' replaced elements in normal flow and floating replaced elements
|
||||
auto& style = this->specified_style();
|
||||
auto auto_value = Length::make_auto();
|
||||
auto& containing_block = *this->containing_block();
|
||||
|
||||
auto specified_width = style.length_or_fallback(CSS::PropertyID::Width, auto_value, containing_block.width());
|
||||
auto specified_height = style.length_or_fallback(CSS::PropertyID::Height, auto_value, containing_block.height());
|
||||
auto specified_width = style().width().resolved_or_auto(*this, containing_block.width());
|
||||
auto specified_height = style().height().resolved_or_auto(*this, containing_block.height());
|
||||
|
||||
float used_height = specified_height.to_px(*this);
|
||||
|
||||
|
|
|
@ -39,6 +39,9 @@ public:
|
|||
const Length& width() const { return m_width; }
|
||||
const Length& min_width() const { return m_min_width; }
|
||||
const Length& max_width() const { return m_max_width; }
|
||||
const Length& height() const { return m_height; }
|
||||
const Length& min_height() const { return m_min_height; }
|
||||
const Length& max_height() const { return m_max_height; }
|
||||
|
||||
protected:
|
||||
Optional<int> m_z_index;
|
||||
|
@ -47,6 +50,9 @@ protected:
|
|||
Length m_width;
|
||||
Length m_min_width;
|
||||
Length m_max_width;
|
||||
Length m_height;
|
||||
Length m_min_height;
|
||||
Length m_max_height;
|
||||
};
|
||||
|
||||
class ImmutableLayoutStyle final : public LayoutStyle {
|
||||
|
@ -60,6 +66,9 @@ public:
|
|||
void set_width(const Length& width) { m_width = width; }
|
||||
void set_min_width(const Length& width) { m_min_width = width; }
|
||||
void set_max_width(const Length& width) { m_max_width = width; }
|
||||
void set_height(const Length& height) { m_height = height; }
|
||||
void set_min_height(const Length& height) { m_min_height = height; }
|
||||
void set_max_height(const Length& height) { m_max_height = height; }
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue