5#ifndef FLUTTER_TXT_SRC_TXT_PARAGRAPH_H_
6#define FLUTTER_TXT_SRC_TXT_PARAGRAPH_H_
11#include "third_party/skia/include/core/SkFont.h"
12#include "third_party/skia/include/core/SkRect.h"
13#include "third_party/skia/modules/skparagraph/include/Metrics.h"
14#include "third_party/skia/modules/skparagraph/include/Paragraph.h"
44 kIncludeLineSpacingMiddle,
46 kIncludeLineSpacingTop,
48 kIncludeLineSpacingBottom,
169 skia::textlayout::Paragraph::GlyphInfo* glyphInfo)
const = 0;
174 skia::textlayout::Paragraph::GlyphInfo* glyphInfo)
const = 0;
184 skia::textlayout::LineMetrics* lineMetrics)
const = 0;
virtual double GetLongestLine()=0
virtual ~Paragraph()=default
virtual std::vector< TextBox > GetRectsForRange(size_t start, size_t end, RectHeightStyle rect_height_style, RectWidthStyle rect_width_style)=0
virtual void Layout(double width)=0
virtual bool GetGlyphInfoAt(unsigned offset, skia::textlayout::Paragraph::GlyphInfo *glyphInfo) const =0
virtual std::vector< LineMetrics > & GetLineMetrics()=0
virtual size_t GetNumberOfLines() const =0
virtual bool GetClosestGlyphInfoAtCoordinate(double dx, double dy, skia::textlayout::Paragraph::GlyphInfo *glyphInfo) const =0
virtual bool DidExceedMaxLines()=0
virtual double GetHeight()=0
virtual bool GetLineMetricsAt(int lineNumber, skia::textlayout::LineMetrics *lineMetrics) const =0
virtual double GetMinIntrinsicWidth()=0
virtual double GetAlphabeticBaseline()=0
virtual int GetLineNumberAt(size_t utf16Offset) const =0
virtual bool Paint(flutter::DisplayListBuilder *builder, double x, double y)=0
virtual PositionWithAffinity GetGlyphPositionAtCoordinate(double dx, double dy)=0
virtual Range< size_t > GetWordBoundary(size_t offset)=0
virtual double GetMaxIntrinsicWidth()=0
virtual double GetIdeographicBaseline()=0
virtual std::vector< TextBox > GetRectsForPlaceholders()=0
virtual double GetMaxWidth()=0
PositionWithAffinity(size_t p, Affinity a)
bool operator==(const Range< T > &other) const
TextBox(SkRect r, TextDirection d)