/* * Copyright (c) 2021, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Web::Layout { struct FlexItem; class FlexFormattingContext final : public FormattingContext { public: FlexFormattingContext(Box& containing_block, FormattingContext* parent); ~FlexFormattingContext(); virtual bool inhibits_floating() const override { return true; } virtual void run(Box&, LayoutMode) override; private: void generate_anonymous_flex_items(Box& flex_container, Vector&); bool is_row_layout() const { return m_flex_direction == CSS::FlexDirection::Row || m_flex_direction == CSS::FlexDirection::RowReverse; } CSS::FlexDirection m_flex_direction {}; }; }