summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/layout/ng/inline/ng_line_truncator.h
diff options
context:
space:
mode:
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.h25
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_;