#include "third_party/blink/renderer/core/layout/mathml/math_scripts_layout_algorithm.h"
#include "third_party/blink/renderer/core/layout/block_break_token.h"
#include "third_party/blink/renderer/core/layout/length_utils.h"
#include "third_party/blink/renderer/core/layout/logical_box_fragment.h"
#include "third_party/blink/renderer/core/layout/mathml/math_layout_utils.h"
#include "third_party/blink/renderer/platform/heap/collection_support/clear_collection_scope.h"
namespace blink {
namespace {
MathConstants;
static bool IsPrescriptDelimiter(const BlockNode& blockNode) { … }
LayoutUnit GetSpaceAfterScript(const ComputedStyle& style) { … }
struct ScriptsVerticalParameters { … };
ScriptsVerticalParameters GetScriptsVerticalParameters(
const ComputedStyle& style) { … }
}
MathScriptsLayoutAlgorithm::MathScriptsLayoutAlgorithm(
const LayoutAlgorithmParams& params)
: … { … }
void MathScriptsLayoutAlgorithm::GatherChildren(
BlockNode* base,
HeapVector<SubSupPair>* sub_sup_pairs,
BlockNode* prescripts,
unsigned* first_prescript_index,
BoxFragmentBuilder* container_builder) const { … }
MathScriptsLayoutAlgorithm::VerticalMetrics
MathScriptsLayoutAlgorithm::GetVerticalMetrics(
const ChildAndMetrics& base_metrics,
const ChildrenAndMetrics& sub_metrics,
const ChildrenAndMetrics& sup_metrics) const { … }
MathScriptsLayoutAlgorithm::ChildAndMetrics
MathScriptsLayoutAlgorithm::LayoutAndGetMetrics(BlockNode child) const { … }
const LayoutResult* MathScriptsLayoutAlgorithm::Layout() { … }
MinMaxSizesResult MathScriptsLayoutAlgorithm::ComputeMinMaxSizes(
const MinMaxSizesFloatInput&) { … }
}