blob: 894b00c4a227a8802d92a137f327495286c620c4 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "core/layout/ng/ng_block_layout_algorithm.h"
#include "core/layout/LayoutBox.h"
#include "core/layout/ng/ng_constraint_space.h"
#include "core/layout/ng/ng_fragment.h"
#include "core/layout/ng/ng_length_utils.h"
#include "core/style/ComputedStyle.h"
#include "platform/LengthFunctions.h"
namespace blink {
NGBlockLayoutAlgorithm::NGBlockLayoutAlgorithm(
PassRefPtr<const ComputedStyle> style,
NGBox firstChild)
: m_style(style), m_firstChild(firstChild) {}
NGFragment* NGBlockLayoutAlgorithm::layout(
const NGConstraintSpace& constraintSpace) {
LayoutUnit inlineSize =
computeInlineSizeForFragment(constraintSpace, *m_style);
for (NGBox curr = m_firstChild; curr; curr.nextSibling()) {
curr.layout(constraintSpace);
}
LayoutUnit blockSize =
computeBlockSizeForFragment(constraintSpace, *m_style, LayoutUnit());
return new NGFragment(inlineSize, blockSize, inlineSize, blockSize);
}
} // namespace blink