diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/layout/ng/inline/ng_line_truncator.h')
-rw-r--r-- | chromium/third_party/blink/renderer/core/layout/ng/inline/ng_line_truncator.h | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/chromium/third_party/blink/renderer/core/layout/ng/inline/ng_line_truncator.h b/chromium/third_party/blink/renderer/core/layout/ng/inline/ng_line_truncator.h index 83bfbd120b1..0c507997ad2 100644 --- a/chromium/third_party/blink/renderer/core/layout/ng/inline/ng_line_truncator.h +++ b/chromium/third_party/blink/renderer/core/layout/ng/inline/ng_line_truncator.h @@ -12,6 +12,7 @@ namespace blink { +class NGInlineLayoutStateStack; class NGLineInfo; // A class to truncate lines and place ellipsis, invoked by the CSS @@ -21,7 +22,7 @@ class CORE_EXPORT NGLineTruncator final { STACK_ALLOCATED(); public: - NGLineTruncator(NGInlineNode& node, const NGLineInfo& line_info); + NGLineTruncator(const NGLineInfo& line_info); // Truncate |line_box| and place ellipsis. Returns the new inline-size of the // |line_box|. @@ -29,19 +30,23 @@ class CORE_EXPORT NGLineTruncator final { // |line_box| should be after bidi reorder, but before box fragments are // created. LayoutUnit TruncateLine(LayoutUnit line_width, - NGLineBoxFragmentBuilder::ChildList* line_box); + NGLineBoxFragmentBuilder::ChildList* line_box, + NGInlineLayoutStateStack* box_states); private: - base::Optional<LayoutUnit> EllipsisOffset(LayoutUnit line_width, - LayoutUnit ellipsis_width, - bool is_first_child, - NGLineBoxFragmentBuilder::Child*); - bool TruncateChild(LayoutUnit space_for_this_child, - bool is_first_child, - NGLineBoxFragmentBuilder::Child* child); + bool EllipsizeChild( + LayoutUnit line_width, + LayoutUnit ellipsis_width, + bool is_first_child, + NGLineBoxFragmentBuilder::Child*, + scoped_refptr<const NGPhysicalTextFragment>* truncated_fragment); + bool TruncateChild( + LayoutUnit space_for_this_child, + bool is_first_child, + const NGLineBoxFragmentBuilder::Child& child, + scoped_refptr<const NGPhysicalTextFragment>* truncated_fragment); void HideChild(NGLineBoxFragmentBuilder::Child* child); - NGInlineNode& node_; scoped_refptr<const ComputedStyle> line_style_; LayoutUnit available_width_; TextDirection line_direction_; |