chromium/third_party/blink/renderer/core/layout/inline/logical_line_builder.cc

// Copyright 2016 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/inline/logical_line_builder.h"

#include <algorithm>

#include "base/containers/adapters.h"
#include "third_party/blink/renderer/core/layout/disable_layout_side_effects_scope.h"
#include "third_party/blink/renderer/core/layout/inline/inline_box_state.h"
#include "third_party/blink/renderer/core/layout/inline/inline_child_layout_context.h"
#include "third_party/blink/renderer/core/layout/inline/inline_item_result_ruby_column.h"
#include "third_party/blink/renderer/core/layout/inline/inline_layout_algorithm.h"
#include "third_party/blink/renderer/core/layout/inline/inline_node.h"
#include "third_party/blink/renderer/core/layout/inline/justification_utils.h"
#include "third_party/blink/renderer/core/layout/inline/line_breaker.h"
#include "third_party/blink/renderer/core/layout/inline/line_info.h"
#include "third_party/blink/renderer/core/layout/inline/logical_line_item.h"
#include "third_party/blink/renderer/core/layout/inline/ruby_utils.h"
#include "third_party/blink/renderer/core/layout/layout_text_combine.h"
#include "third_party/blink/renderer/core/layout/logical_box_fragment.h"
#include "third_party/blink/renderer/platform/text/bidi_paragraph.h"

namespace blink {

LogicalLineBuilder::LogicalLineBuilder(InlineNode node,
                                       const ConstraintSpace& constraint_space,
                                       const InlineBreakToken* break_token,
                                       InlineLayoutStateStack* state_stack,
                                       InlineChildLayoutContext* context)
    :{}

void LogicalLineBuilder::CreateLine(LineInfo* line_info,
                                    LogicalLineItems* line_box,
                                    InlineLayoutAlgorithm* main_line_helper) {}

InlineBoxState* LogicalLineBuilder::HandleItemResults(
    const LineInfo& line_info,
    InlineItemResults& line_items,
    LogicalLineItems* line_box,
    InlineLayoutAlgorithm* main_line_helper,
    InlineBoxState* box) {}

InlineBoxState* LogicalLineBuilder::HandleOpenTag(
    const InlineItem& item,
    const InlineItemResult& item_result,
    LogicalLineItems* line_box) {}

InlineBoxState* LogicalLineBuilder::HandleCloseTag(
    const InlineItem& item,
    const InlineItemResult& item_result,
    LogicalLineItems* line_box,
    InlineBoxState* box) {}

void LogicalLineBuilder::PlaceControlItem(const InlineItem& item,
                                          const String& text_content,
                                          InlineItemResult* item_result,
                                          LogicalLineItems* line_box,
                                          InlineBoxState* box) {}

void LogicalLineBuilder::PlaceHyphen(const InlineItemResult& item_result,
                                     LayoutUnit hyphen_inline_size,
                                     LogicalLineItems* line_box,
                                     InlineBoxState* box) {}

InlineBoxState* LogicalLineBuilder::PlaceAtomicInline(
    const InlineItem& item,
    InlineItemResult* item_result,
    LogicalLineItems* line_box) {}

// Place a LayoutResult into the line box.
void LogicalLineBuilder::PlaceLayoutResult(InlineItemResult* item_result,
                                           LogicalLineItems* line_box,
                                           InlineBoxState* box,
                                           LayoutUnit inline_offset) {}

void LogicalLineBuilder::PlaceInitialLetterBox(const InlineItem& item,
                                               InlineItemResult* item_result,
                                               LogicalLineItems* line_box) {}

InlineBoxState* LogicalLineBuilder::PlaceRubyColumn(
    const LineInfo& line_info,
    InlineItemResult& item_result,
    LogicalLineItems& line_box,
    InlineBoxState* box) {}

void LogicalLineBuilder::PlaceRubyAnnotation(
    InlineItemResult& item_result,
    std::optional<LayoutUnit> line_available_size,
    wtf_size_t index,
    LineInfo& annotation_line,
    LogicalRubyColumn& logical_column) {}

// Place a list marker.
void LogicalLineBuilder::PlaceListMarker(const InlineItem& item,
                                         InlineItemResult* item_result) {}

void LogicalLineBuilder::BidiReorder(
    TextDirection base_direction,
    LogicalLineItems* line_box,
    HeapVector<Member<LogicalRubyColumn>>& column_list) {}

void LogicalLineBuilder::RebuildBoxStates(const LineInfo& line_info,
                                          wtf_size_t start_item_index,
                                          wtf_size_t end_item_index) {}

}  // namespace blink