// Copyright 2023 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_POSITION_AREA_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_POSITION_AREA_H_ #include <optional> #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/css/anchor_query.h" #include "third_party/blink/renderer/core/css/css_anchor_query_enums.h" #include "third_party/blink/renderer/core/style/computed_style_constants.h" #include "third_party/blink/renderer/platform/geometry/layout_unit.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" namespace blink { class WritingDirectionMode; // Possible region end points for a computed <position-area-span> enum class PositionAreaRegion : uint8_t { … }; // Represents the computed value for the position-area property. Each span is // represented by two end points. That is: // // "span-all" -> (kAll, kAll) // "center" -> (kCenter, kCenter) // "span-right" -> (kCenter, kRight) // "span-left" -> (kLeft, kCenter) // "top" -> (kTop, kTop) // // The axes are not ordered in a particular block/inline or vertical/ // horizontal order because the axes will be resolved at layout time (see // ToPhysical() below). class CORE_EXPORT PositionArea { … }; // Used to store inset offsets on ComputedStyle for adjusting the // containing-block rectangle. All zeros means a span-all position-area is applied. // Non-zero values refer to an anchor edge offset relative to the containing // block rectangle. struct PositionAreaOffsets { … }; } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_POSITION_AREA_H_