Revert "Expose more methods on `ui.Paragraph`: lines (#46125)"
This reverts commit 2805f091788e970d0ab670dd2096ae74e3a7bae3.
diff --git a/lib/ui/dart_ui.cc b/lib/ui/dart_ui.cc
index 6b048b4..310de11 100644
--- a/lib/ui/dart_ui.cc
+++ b/lib/ui/dart_ui.cc
@@ -218,9 +218,6 @@
V(Paragraph, didExceedMaxLines, 1) \
V(Paragraph, dispose, 1) \
V(Paragraph, getLineBoundary, 2) \
- V(Paragraph, getLineMetricsAt, 3) \
- V(Paragraph, getLineNumberAt, 2) \
- V(Paragraph, getNumberOfLines, 1) \
V(Paragraph, getPositionForOffset, 3) \
V(Paragraph, getRectsForPlaceholders, 1) \
V(Paragraph, getRectsForRange, 5) \
diff --git a/lib/ui/text.dart b/lib/ui/text.dart
index 276c326..8bf5a8c 100644
--- a/lib/ui/text.dart
+++ b/lib/ui/text.dart
@@ -2772,18 +2772,6 @@
required this.lineNumber,
});
- LineMetrics._(
- this.hardBreak,
- this.ascent,
- this.descent,
- this.unscaledAscent,
- this.height,
- this.width,
- this.left,
- this.baseline,
- this.lineNumber,
- );
-
/// True if this line ends with an explicit line break (e.g. '\n') or is the end
/// of the paragraph. False otherwise.
final bool hardBreak;
@@ -3004,32 +2992,6 @@
/// to repeatedly call this. Instead, cache the results.
List<LineMetrics> computeLineMetrics();
- /// Returns the [LineMetrics] for the line at `lineNumber`, or null if the
- /// given `lineNumber` is greater than or equal to [numberOfLines].
- LineMetrics? getLineMetricsAt(int lineNumber);
-
- /// The total number of visible lines in the paragraph.
- ///
- /// Returns a non-negative number. If `maxLines` is non-null, the value of
- /// [numberOfLines] never exceeds `maxLines`.
- int get numberOfLines;
-
- /// Returns the line number of the line that contains the code unit that
- /// `codeUnitOffset` points to.
- ///
- /// This method returns null if the given `codeUnitOffset` is out of bounds, or
- /// is logically after the last visible codepoint. This includes the case where
- /// its codepoint belongs to a visible line, but the text layout library
- /// replaced it with an ellipsis.
- ///
- /// If the target code unit points to a control character that introduces
- /// mandatory line breaks (most notably the line feed character `LF`, typically
- /// represented in strings as the escape sequence "\n"), to conform to
- /// [the unicode rules](https://unicode.org/reports/tr14/#LB4), the control
- /// character itself is always considered to be at the end of "current" line
- /// rather than the beginning of the new line.
- int? getLineNumberAt(int codeUnitOffset);
-
/// Release the resources used by this object. The object is no longer usable
/// after this method is called.
void dispose();
@@ -3208,23 +3170,6 @@
external Float64List _computeLineMetrics();
@override
- LineMetrics? getLineMetricsAt(int lineNumber) => _getLineMetricsAt(lineNumber, LineMetrics._);
- @Native<Handle Function(Pointer<Void>, Uint32, Handle)>(symbol: 'Paragraph::getLineMetricsAt')
- external LineMetrics? _getLineMetricsAt(int lineNumber, Function constructor);
-
- @override
- @Native<Uint32 Function(Pointer<Void>)>(symbol: 'Paragraph::getNumberOfLines')
- external int get numberOfLines;
-
- @override
- int? getLineNumberAt(int codeUnitOffset) {
- final int lineNumber = _getLineNumber(codeUnitOffset);
- return lineNumber < 0 ? null : lineNumber;
- }
- @Native<Int32 Function(Pointer<Void>, Uint32)>(symbol: 'Paragraph::getLineNumberAt')
- external int _getLineNumber(int codeUnitOffset);
-
- @override
void dispose() {
assert(!_disposed);
assert(() {
diff --git a/lib/ui/text/paragraph.cc b/lib/ui/text/paragraph.cc
index fedf84e..624ed14 100644
--- a/lib/ui/text/paragraph.cc
+++ b/lib/ui/text/paragraph.cc
@@ -8,14 +8,10 @@
#include "flutter/common/task_runners.h"
#include "flutter/fml/logging.h"
#include "flutter/fml/task_runner.h"
-#include "third_party/dart/runtime/include/dart_api.h"
-#include "third_party/skia/modules/skparagraph/include/DartTypes.h"
-#include "third_party/skia/modules/skparagraph/include/Paragraph.h"
#include "third_party/tonic/converter/dart_converter.h"
#include "third_party/tonic/dart_args.h"
#include "third_party/tonic/dart_binding_macros.h"
#include "third_party/tonic/dart_library_natives.h"
-#include "third_party/tonic/logging/dart_invoke.h"
namespace flutter {
@@ -126,12 +122,12 @@
return tonic::DartConverter<decltype(result)>::ToDart(result);
}
-Dart_Handle Paragraph::getLineBoundary(unsigned utf16Offset) {
+Dart_Handle Paragraph::getLineBoundary(unsigned offset) {
std::vector<txt::LineMetrics> metrics = m_paragraph->GetLineMetrics();
int line_start = -1;
int line_end = -1;
for (txt::LineMetrics& line : metrics) {
- if (utf16Offset >= line.start_index && utf16Offset <= line.end_index) {
+ if (offset >= line.start_index && offset <= line.end_index) {
line_start = line.start_index;
line_end = line.end_index;
break;
@@ -141,7 +137,7 @@
return tonic::DartConverter<decltype(result)>::ToDart(result);
}
-tonic::Float64List Paragraph::computeLineMetrics() const {
+tonic::Float64List Paragraph::computeLineMetrics() {
std::vector<txt::LineMetrics> metrics = m_paragraph->GetLineMetrics();
// Layout:
@@ -169,42 +165,6 @@
return result;
}
-Dart_Handle Paragraph::getLineMetricsAt(int lineNumber,
- Dart_Handle constructor) const {
- skia::textlayout::LineMetrics line;
- const bool found = m_paragraph->GetLineMetricsAt(lineNumber, &line);
- if (!found) {
- return Dart_Null();
- }
- std::array<Dart_Handle, 9> arguments = {
- Dart_NewBoolean(line.fHardBreak),
- Dart_NewDouble(line.fAscent),
- Dart_NewDouble(line.fDescent),
- Dart_NewDouble(line.fUnscaledAscent),
- // We add then round to get the height. The
- // definition of height here is different
- // than the one in LibTxt.
- Dart_NewDouble(round(line.fAscent + line.fDescent)),
- Dart_NewDouble(line.fWidth),
- Dart_NewDouble(line.fLeft),
- Dart_NewDouble(line.fBaseline),
- Dart_NewInteger(line.fLineNumber),
- };
-
- Dart_Handle handle =
- Dart_InvokeClosure(constructor, arguments.size(), arguments.data());
- tonic::CheckAndHandleError(handle);
- return handle;
-}
-
-size_t Paragraph::getNumberOfLines() const {
- return m_paragraph->GetNumberOfLines();
-}
-
-int Paragraph::getLineNumberAt(size_t utf16Offset) const {
- return m_paragraph->GetLineNumberAt(utf16Offset);
-}
-
void Paragraph::dispose() {
m_paragraph.reset();
ClearDartWrapper();
diff --git a/lib/ui/text/paragraph.h b/lib/ui/text/paragraph.h
index 311c33a..1a5d821 100644
--- a/lib/ui/text/paragraph.h
+++ b/lib/ui/text/paragraph.h
@@ -47,10 +47,7 @@
Dart_Handle getPositionForOffset(double dx, double dy);
Dart_Handle getWordBoundary(unsigned offset);
Dart_Handle getLineBoundary(unsigned offset);
- tonic::Float64List computeLineMetrics() const;
- Dart_Handle getLineMetricsAt(int lineNumber, Dart_Handle constructor) const;
- size_t getNumberOfLines() const;
- int getLineNumberAt(size_t utf16Offset) const;
+ tonic::Float64List computeLineMetrics();
void dispose();
diff --git a/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart b/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart
index bc98818..dff531d 100644
--- a/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart
+++ b/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart
@@ -3237,18 +3237,6 @@
List<SkLineMetrics> getLineMetrics() =>
_getLineMetrics().toDart.cast<SkLineMetrics>();
- @JS('getLineMetricsAt')
- external SkLineMetrics? _getLineMetricsAt(JSNumber index);
- SkLineMetrics? getLineMetricsAt(double index) => _getLineMetricsAt(index.toJS);
-
- @JS('getNumberOfLines')
- external JSNumber _getNumberOfLines();
- double getNumberOfLines() => _getNumberOfLines().toDartDouble;
-
- @JS('getLineNumberAt')
- external JSNumber _getLineNumberAt(JSNumber index);
- double getLineNumberAt(double index) => _getLineNumberAt(index.toJS).toDartDouble;
-
@JS('getLongestLine')
external JSNumber _getLongestLine();
double getLongestLine() => _getLongestLine().toDartDouble;
diff --git a/lib/web_ui/lib/src/engine/canvaskit/text.dart b/lib/web_ui/lib/src/engine/canvaskit/text.dart
index 6284ffe..0948916 100644
--- a/lib/web_ui/lib/src/engine/canvaskit/text.dart
+++ b/lib/web_ui/lib/src/engine/canvaskit/text.dart
@@ -728,26 +728,6 @@
return result;
}
- @override
- ui.LineMetrics? getLineMetricsAt(int lineNumber) {
- assert(!_disposed, 'Paragraph has been disposed.');
- final SkLineMetrics? metrics = skiaObject.getLineMetricsAt(lineNumber.toDouble());
- return metrics == null ? null : CkLineMetrics._(metrics);
- }
-
- @override
- int get numberOfLines {
- assert(!_disposed, 'Paragraph has been disposed.');
- return skiaObject.getNumberOfLines().toInt();
- }
-
- @override
- int? getLineNumberAt(int codeUnitOffset) {
- assert(!_disposed, 'Paragraph has been disposed.');
- final int lineNumber = skiaObject.getLineNumberAt(codeUnitOffset.toDouble()).toInt();
- return lineNumber >= 0 ? lineNumber : null;
- }
-
bool _disposed = false;
@override
diff --git a/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/paragraph.dart b/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/paragraph.dart
index af721f7..c00c1bc 100644
--- a/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/paragraph.dart
+++ b/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/paragraph.dart
@@ -102,15 +102,6 @@
bool get didExceedMaxLines => paragraphGetDidExceedMaxLines(handle);
@override
- int get numberOfLines => paragraphGetLineCount(handle);
-
- @override
- int? getLineNumberAt(int codeUnitOffset) {
- final int lineNumber = paragraphGetLineNumberAt(handle, codeUnitOffset);
- return lineNumber >= 0 ? lineNumber : null;
- }
-
- @override
void layout(ui.ParagraphConstraints constraints) {
paragraphLayout(handle, constraints.width);
if (!_hasCheckedForMissingCodePoints) {
@@ -223,12 +214,6 @@
(int index) => SkwasmLineMetrics._(paragraphGetLineMetricsAtIndex(handle, index))
);
}
-
- @override
- ui.LineMetrics? getLineMetricsAt(int index) {
- final LineMetricsHandle lineMetrics = paragraphGetLineMetricsAtIndex(handle, index);
- return lineMetrics == nullptr ? SkwasmLineMetrics._(lineMetrics) : null;
- }
}
void withScopedFontList(
diff --git a/lib/web_ui/lib/src/engine/text/canvas_paragraph.dart b/lib/web_ui/lib/src/engine/text/canvas_paragraph.dart
index c749a85..f527d57 100644
--- a/lib/web_ui/lib/src/engine/text/canvas_paragraph.dart
+++ b/lib/web_ui/lib/src/engine/text/canvas_paragraph.dart
@@ -40,7 +40,7 @@
final EngineParagraphStyle paragraphStyle;
/// The full textual content of the paragraph.
- final String plainText;
+ late String plainText;
/// Whether this paragraph can be drawn on a bitmap canvas.
///
@@ -221,12 +221,17 @@
@override
ui.TextRange getLineBoundary(ui.TextPosition position) {
- if (lines.isEmpty) {
- return ui.TextRange.empty;
+ final int index = position.offset;
+
+ int i;
+ for (i = 0; i < lines.length - 1; i++) {
+ final ParagraphLine line = lines[i];
+ if (index >= line.startIndex && index < line.endIndex) {
+ break;
+ }
}
- final int? lineNumber = getLineNumberAt(position.offset);
- // Fallback to the last line for backward compatibility.
- final ParagraphLine line = lineNumber != null ? lines[lineNumber] : lines.last;
+
+ final ParagraphLine line = lines[i];
return ui.TextRange(start: line.startIndex, end: line.endIndex - line.trailingNewlines);
}
@@ -235,32 +240,6 @@
return lines.map((ParagraphLine line) => line.lineMetrics).toList();
}
- @override
- EngineLineMetrics? getLineMetricsAt(int lineNumber) {
- return 0 <= lineNumber && lineNumber < lines.length
- ? lines[lineNumber].lineMetrics
- : null;
- }
-
- @override
- int get numberOfLines => lines.length;
-
- @override
- int? getLineNumberAt(int codeUnitOffset) => _findLine(codeUnitOffset, 0, lines.length);
-
- int? _findLine(int codeUnitOffset, int startLine, int endLine) {
- if (endLine <= startLine || codeUnitOffset < lines[startLine].startIndex || lines[endLine - 1].endIndex <= codeUnitOffset) {
- return null;
- }
- if (endLine == startLine + 1) {
- return startLine;
- }
- // endLine >= startLine + 2 thus we have
- // startLine + 1 <= midIndex <= endLine - 1
- final int midIndex = (startLine + endLine) ~/ 2;
- return _findLine(codeUnitOffset, midIndex, endLine) ?? _findLine(codeUnitOffset, startLine, midIndex);
- }
-
bool _disposed = false;
@override
diff --git a/lib/web_ui/lib/src/engine/text/layout_service.dart b/lib/web_ui/lib/src/engine/text/layout_service.dart
index d03a70b..ae46ae6 100644
--- a/lib/web_ui/lib/src/engine/text/layout_service.dart
+++ b/lib/web_ui/lib/src/engine/text/layout_service.dart
@@ -390,10 +390,7 @@
// it possible to do hit testing. Once we find the box, we look inside that
// box to find where exactly the `offset` is located.
- final ParagraphLine? line = _findLineForY(offset.dy);
- if (line == null) {
- return const ui.TextPosition(offset: 0);
- }
+ final ParagraphLine line = _findLineForY(offset.dy);
// [offset] is to the left of the line.
if (offset.dx <= line.left) {
return ui.TextPosition(
@@ -419,10 +416,7 @@
return ui.TextPosition(offset: line.startIndex);
}
- ParagraphLine? _findLineForY(double y) {
- if (lines.isEmpty) {
- return null;
- }
+ ParagraphLine _findLineForY(double y) {
// We could do a binary search here but it's not worth it because the number
// of line is typically low, and each iteration is a cheap comparison of
// doubles.
diff --git a/lib/web_ui/lib/text.dart b/lib/web_ui/lib/text.dart
index ba09ee5..5d39948 100644
--- a/lib/web_ui/lib/text.dart
+++ b/lib/web_ui/lib/text.dart
@@ -695,9 +695,6 @@
TextRange getLineBoundary(TextPosition position);
List<TextBox> getBoxesForPlaceholders();
List<LineMetrics> computeLineMetrics();
- LineMetrics? getLineMetricsAt(int lineNumber);
- int get numberOfLines;
- int? getLineNumberAt(int codeUnitOffset);
void dispose();
bool get debugDisposed;
}
diff --git a/lib/web_ui/skwasm/text/paragraph.cpp b/lib/web_ui/skwasm/text/paragraph.cpp
index a44baf4..dcd1cd2 100644
--- a/lib/web_ui/skwasm/text/paragraph.cpp
+++ b/lib/web_ui/skwasm/text/paragraph.cpp
@@ -74,18 +74,14 @@
SKWASM_EXPORT int paragraph_getLineNumberAt(Paragraph* paragraph,
size_t characterIndex) {
- return paragraph->getLineNumberAtUTF16Offset(characterIndex);
+ return paragraph->getLineNumberAt(characterIndex);
}
SKWASM_EXPORT LineMetrics* paragraph_getLineMetricsAtIndex(Paragraph* paragraph,
- size_t lineNumber) {
+ size_t index) {
auto metrics = new LineMetrics();
- if (paragraph->getLineMetricsAt(lineNumber, metrics)) {
- return metrics;
- } else {
- delete metrics;
- return nullptr;
- }
+ paragraph->getLineMetricsAt(index, metrics);
+ return metrics;
}
struct TextBoxList {
diff --git a/lib/web_ui/test/canvaskit/text_test.dart b/lib/web_ui/test/canvaskit/text_test.dart
index 2c788cf..2446145 100644
--- a/lib/web_ui/test/canvaskit/text_test.dart
+++ b/lib/web_ui/test/canvaskit/text_test.dart
@@ -124,43 +124,6 @@
});
});
- test('empty paragraph', () {
- const double fontSize = 10.0;
- final ui.Paragraph paragraph = ui.ParagraphBuilder(CkParagraphStyle(
- fontSize: fontSize,
- )).build();
- paragraph.layout(const ui.ParagraphConstraints(width: double.infinity));
-
- expect(paragraph.getLineMetricsAt(0), isNull);
- expect(paragraph.numberOfLines, 0);
- expect(paragraph.getLineNumberAt(0), isNull);
- });
-
- test('Basic line related metrics', () {
- const double fontSize = 10;
- final ui.ParagraphBuilder builder = ui.ParagraphBuilder(CkParagraphStyle(
- fontStyle: ui.FontStyle.normal,
- fontWeight: ui.FontWeight.normal,
- fontSize: fontSize,
- maxLines: 1,
- ellipsis: 'BBB',
- ))..addText('A' * 100);
- final ui.Paragraph paragraph = builder.build();
- paragraph.layout(const ui.ParagraphConstraints(width: 100.0));
-
- expect(paragraph.numberOfLines, 1);
-
- expect(paragraph.getLineMetricsAt(-1), isNull);
- expect(paragraph.getLineMetricsAt(0), isNotNull);
- expect(paragraph.getLineMetricsAt(1), isNull);
-
- expect(paragraph.getLineNumberAt(-1), isNull);
- expect(paragraph.getLineNumberAt(0), 0);
- expect(paragraph.getLineNumberAt(6), 0);
- // The last 3 characters on the first line are ellipsized with BBB.
- expect(paragraph.getLineMetricsAt(7), isNull);
- });
-
test('rounding hack disabled by default', () {
expect(ui.ParagraphBuilder.shouldDisableRoundingHack, isTrue);
diff --git a/lib/web_ui/test/html/text_test.dart b/lib/web_ui/test/html/text_test.dart
index fc0db1f..d9c7780 100644
--- a/lib/web_ui/test/html/text_test.dart
+++ b/lib/web_ui/test/html/text_test.dart
@@ -79,6 +79,10 @@
expect(paragraph.height, fontSize * 2.0); // because it wraps
expect(paragraph.width, fontSize * 5.0);
expect(paragraph.minIntrinsicWidth, fontSize * 4.0);
+
+ // TODO(yjbanov): due to https://github.com/flutter/flutter/issues/21965
+ // Flutter reports a different number. Ours is correct
+ // though.
expect(paragraph.maxIntrinsicWidth, fontSize * 9.0);
expect(paragraph.alphabeticBaseline, fontSize * .8);
expect(
@@ -90,31 +94,6 @@
}
});
- test('Basic line related metrics', () {
- const double fontSize = 10;
- final ParagraphBuilder builder = ParagraphBuilder(ParagraphStyle(
- fontStyle: FontStyle.normal,
- fontWeight: FontWeight.normal,
- fontSize: fontSize,
- maxLines: 1,
- ellipsis: 'BBB',
- ))..addText('A' * 100);
- final Paragraph paragraph = builder.build();
- paragraph.layout(const ParagraphConstraints(width: 100.0));
-
- expect(paragraph.numberOfLines, 1);
-
- expect(paragraph.getLineMetricsAt(-1), isNull);
- expect(paragraph.getLineMetricsAt(0), isNotNull);
- expect(paragraph.getLineMetricsAt(1), isNull);
-
- expect(paragraph.getLineNumberAt(-1), isNull);
- expect(paragraph.getLineNumberAt(0), 0);
- expect(paragraph.getLineNumberAt(6), 0);
- // The last 3 characters on the first line are ellipsized with BBB.
- expect(paragraph.getLineNumberAt(7), isNull);
- });
-
test('Can disable rounding hack', () {
if (!ParagraphBuilder.shouldDisableRoundingHack) {
ParagraphBuilder.setDisableRoundingHack(true);
diff --git a/testing/dart/paragraph_test.dart b/testing/dart/paragraph_test.dart
index 4af61bb..771cf98 100644
--- a/testing/dart/paragraph_test.dart
+++ b/testing/dart/paragraph_test.dart
@@ -219,74 +219,6 @@
expect(line.end, 10);
});
- test('getLineMetricsAt', () {
- const double fontSize = 10.0;
- final ParagraphBuilder builder = ParagraphBuilder(ParagraphStyle(
- fontSize: fontSize,
- textDirection: TextDirection.rtl,
- height: 2.0,
- ));
- builder.addText('Test\npppp');
- final Paragraph paragraph = builder.build();
- paragraph.layout(const ParagraphConstraints(width: 100.0));
- final LineMetrics? line = paragraph.getLineMetricsAt(1);
- expect(line?.hardBreak, isTrue);
- expect(line?.ascent, 15.0);
- expect(line?.descent, 5.0);
- expect(line?.height, 20.0);
- expect(line?.width, 4 * 10.0);
- expect(line?.left, 100.0 - 40.0);
- expect(line?.baseline, 20.0 + 15.0);
- expect(line?.lineNumber, 1);
- });
-
- test('line number', () {
- const double fontSize = 10.0;
- final ParagraphBuilder builder = ParagraphBuilder(ParagraphStyle(fontSize: fontSize));
- builder.addText('Test\n\nTest');
- final Paragraph paragraph = builder.build();
- paragraph.layout(const ParagraphConstraints(width: 100.0));
- expect(paragraph.numberOfLines, 3);
- expect(paragraph.getLineNumberAt(4), 0); // first LF
- expect(paragraph.getLineNumberAt(5), 1); // second LF
- expect(paragraph.getLineNumberAt(6), 2); // "T" in the second "Test"
- });
-
- test('empty paragraph', () {
- const double fontSize = 10.0;
- final Paragraph paragraph = ParagraphBuilder(ParagraphStyle(
- fontSize: fontSize,
- )).build();
- paragraph.layout(const ParagraphConstraints(width: double.infinity));
-
- expect(paragraph.getLineMetricsAt(0), isNull);
- expect(paragraph.numberOfLines, 0);
- expect(paragraph.getLineNumberAt(0), isNull);
- });
-
- test('OOB indices as input', () {
- const double fontSize = 10.0;
- final ParagraphBuilder builder = ParagraphBuilder(ParagraphStyle(
- fontSize: fontSize,
- maxLines: 1,
- ellipsis: 'BBB',
- ))..addText('A' * 100);
- final Paragraph paragraph = builder.build();
- paragraph.layout(const ParagraphConstraints(width: 100));
-
- expect(paragraph.numberOfLines, 1);
-
- expect(paragraph.getLineMetricsAt(-1), isNull);
- expect(paragraph.getLineMetricsAt(0), isNotNull);
- expect(paragraph.getLineMetricsAt(1), isNull);
-
- expect(paragraph.getLineNumberAt(-1), isNull);
- expect(paragraph.getLineNumberAt(0), 0);
- expect(paragraph.getLineNumberAt(6), 0);
- // The last 3 characters on the first line are ellipsized with BBB.
- expect(paragraph.getLineMetricsAt(7), isNull);
- });
-
test('painting a disposed paragraph does not crash', () {
final Paragraph paragraph = ParagraphBuilder(ParagraphStyle()).build();
paragraph.dispose();
diff --git a/third_party/txt/src/skia/paragraph_skia.cc b/third_party/txt/src/skia/paragraph_skia.cc
index cbb7b85..67d67b1 100644
--- a/third_party/txt/src/skia/paragraph_skia.cc
+++ b/third_party/txt/src/skia/paragraph_skia.cc
@@ -301,11 +301,6 @@
return line_metrics_.value();
}
-bool ParagraphSkia::GetLineMetricsAt(int lineNumber,
- skt::LineMetrics* lineMetrics) const {
- return paragraph_->getLineMetricsAt(lineNumber, lineMetrics);
-};
-
double ParagraphSkia::GetMinIntrinsicWidth() {
return SkScalarToDouble(paragraph_->getMinIntrinsicWidth());
}
@@ -383,14 +378,6 @@
return Paragraph::Range<size_t>(range.start, range.end);
}
-size_t ParagraphSkia::GetNumberOfLines() const {
- return paragraph_->lineNumber();
-}
-
-int ParagraphSkia::GetLineNumberAt(size_t codeUnitIndex) const {
- return paragraph_->getLineNumberAtUTF16Offset(codeUnitIndex);
-}
-
TextStyle ParagraphSkia::SkiaToTxt(const skt::TextStyle& skia) {
TextStyle txt;
diff --git a/third_party/txt/src/skia/paragraph_skia.h b/third_party/txt/src/skia/paragraph_skia.h
index bc23b78..5779445 100644
--- a/third_party/txt/src/skia/paragraph_skia.h
+++ b/third_party/txt/src/skia/paragraph_skia.h
@@ -50,14 +50,6 @@
std::vector<LineMetrics>& GetLineMetrics() override;
- bool GetLineMetricsAt(
- int lineNumber,
- skia::textlayout::LineMetrics* lineMetrics) const override;
-
- size_t GetNumberOfLines() const override;
-
- int GetLineNumberAt(size_t utf16Offset) const override;
-
bool DidExceedMaxLines() override;
void Layout(double width) override;
diff --git a/third_party/txt/src/txt/paragraph.h b/third_party/txt/src/txt/paragraph.h
index b8ee55d..2d736fb 100644
--- a/third_party/txt/src/txt/paragraph.h
+++ b/third_party/txt/src/txt/paragraph.h
@@ -22,8 +22,6 @@
#include "line_metrics.h"
#include "paragraph_style.h"
#include "third_party/skia/include/core/SkRect.h"
-#include "third_party/skia/modules/skparagraph/include/Metrics.h"
-#include "third_party/skia/modules/skparagraph/include/Paragraph.h"
class SkCanvas;
@@ -180,22 +178,6 @@
virtual Range<size_t> GetWordBoundary(size_t offset) = 0;
virtual std::vector<LineMetrics>& GetLineMetrics() = 0;
-
- virtual bool GetLineMetricsAt(
- int lineNumber,
- skia::textlayout::LineMetrics* lineMetrics) const = 0;
-
- // Returns the total number of visible lines in the paragraph.
- virtual size_t GetNumberOfLines() const = 0;
-
- // Returns the zero-indexed line number that contains the given code unit
- // offset. Returns -1 if the given offset is out of bounds, or points to a
- // codepoint that is logically after the last visible codepoint.
- //
- // If the offset points to a hard line break, this method returns the line
- // number of the line this hard line break breaks, intead of the new line it
- // creates.
- virtual int GetLineNumberAt(size_t utf16Offset) const = 0;
};
} // namespace txt