chromium/third_party/blink/renderer/core/layout/column_layout_algorithm.cc

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "third_party/blink/renderer/core/layout/column_layout_algorithm.h"

#include <algorithm>

#include "base/not_fatal_until.h"
#include "third_party/blink/renderer/core/layout/block_layout_algorithm.h"
#include "third_party/blink/renderer/core/layout/block_layout_algorithm_utils.h"
#include "third_party/blink/renderer/core/layout/column_spanner_path.h"
#include "third_party/blink/renderer/core/layout/constraint_space_builder.h"
#include "third_party/blink/renderer/core/layout/fragmentation_utils.h"
#include "third_party/blink/renderer/core/layout/geometry/fragment_geometry.h"
#include "third_party/blink/renderer/core/layout/geometry/logical_size.h"
#include "third_party/blink/renderer/core/layout/geometry/margin_strut.h"
#include "third_party/blink/renderer/core/layout/geometry/writing_mode_converter.h"
#include "third_party/blink/renderer/core/layout/length_utils.h"
#include "third_party/blink/renderer/core/layout/list/unpositioned_list_marker.h"
#include "third_party/blink/renderer/core/layout/logical_box_fragment.h"
#include "third_party/blink/renderer/core/layout/out_of_flow_layout_part.h"
#include "third_party/blink/renderer/core/layout/physical_box_fragment.h"
#include "third_party/blink/renderer/core/layout/simplified_oof_layout_algorithm.h"
#include "third_party/blink/renderer/core/layout/table/table_layout_utils.h"
#include "third_party/blink/renderer/core/style/computed_style.h"

namespace blink {

namespace {

// An itinerary of multicol container parts to walk separately for layout. A
// part is either a chunk of regular column content, or a column spanner.
class MulticolPartWalker {};

void MulticolPartWalker::Next() {}

void MulticolPartWalker::MoveToSpanner(
    BlockNode spanner,
    const BlockBreakToken* next_column_token) {}

void MulticolPartWalker::AddNextColumnBreakToken(
    const BlockBreakToken& next_column_token) {}

void MulticolPartWalker::UpdateNextColumnBreakToken(
    const FragmentBuilder::ChildrenVector& children) {}

void MulticolPartWalker::UpdateCurrent() {}

void MulticolPartWalker::MoveToNext() {}

BlockNode GetSpannerFromPath(const ColumnSpannerPath* path) {}

}  // namespace

ColumnLayoutAlgorithm::ColumnLayoutAlgorithm(
    const LayoutAlgorithmParams& params)
    :{}

const LayoutResult* ColumnLayoutAlgorithm::Layout() {}

MinMaxSizesResult ColumnLayoutAlgorithm::ComputeMinMaxSizes(
    const MinMaxSizesFloatInput&) {}

const PhysicalBoxFragment& ColumnLayoutAlgorithm::CreateEmptyColumn(
    const BlockNode& node,
    const ConstraintSpace& parent_space,
    const PhysicalBoxFragment& previous_column) {}

MinMaxSizesResult ColumnLayoutAlgorithm::ComputeSpannersMinMaxSizes(
    const BlockNode& search_parent) const {}

BreakStatus ColumnLayoutAlgorithm::LayoutChildren() {}

struct ResultWithOffset {};

const LayoutResult* ColumnLayoutAlgorithm::LayoutRow(
    const BlockBreakToken* next_column_token,
    LayoutUnit minimum_column_block_size,
    MarginStrut* margin_strut) {}

BreakStatus ColumnLayoutAlgorithm::LayoutSpanner(
    BlockNode spanner_node,
    const BlockBreakToken* break_token,
    MarginStrut* margin_strut) {}

void ColumnLayoutAlgorithm::AttemptToPositionListMarker(
    const PhysicalBoxFragment& child_fragment,
    LayoutUnit block_offset) {}

void ColumnLayoutAlgorithm::PositionAnyUnclaimedListMarker() {}

void ColumnLayoutAlgorithm::PropagateBaselineFromChild(
    const PhysicalBoxFragment& child,
    LayoutUnit block_offset) {}

LayoutUnit ColumnLayoutAlgorithm::ResolveColumnAutoBlockSize(
    const LogicalSize& column_size,
    LayoutUnit row_offset,
    LayoutUnit available_outer_space,
    const BlockBreakToken* child_break_token,
    bool balance_columns) {}

LayoutUnit ColumnLayoutAlgorithm::ResolveColumnAutoBlockSizeInternal(
    const LogicalSize& column_size,
    LayoutUnit row_offset,
    LayoutUnit available_outer_space,
    const BlockBreakToken* child_break_token,
    bool balance_columns) {}

// Constrain a balanced column block size to not overflow the multicol
// container.
LayoutUnit ColumnLayoutAlgorithm::ConstrainColumnBlockSize(
    LayoutUnit size,
    LayoutUnit row_offset,
    LayoutUnit available_outer_space) const {}

ConstraintSpace ColumnLayoutAlgorithm::CreateConstraintSpaceForBalancing(
    const LogicalSize& column_size) const {}

ConstraintSpace ColumnLayoutAlgorithm::CreateConstraintSpaceForSpanner(
    const BlockNode& spanner,
    LayoutUnit block_offset) const {}

ConstraintSpace ColumnLayoutAlgorithm::CreateConstraintSpaceForMinMax() const {}

LayoutUnit ColumnLayoutAlgorithm::TotalColumnBlockSize() const {}

}  // namespace blink

WTF_ALLOW_CLEAR_UNUSED_SLOTS_WITH_MEM_FUNCTIONS()