| 228 | } |
| 229 | |
| 230 | List<StringView> TextPainter::wrapTextViews(StringView s, Maybe<unsigned> wrapWidth) { |
| 231 | List<StringView> views = {}; |
| 232 | auto last = views.end(); |
| 233 | unsigned curLine = 0; |
| 234 | TextPainter::WrapTextCallback textCallback = [&](StringView text, unsigned line) { |
| 235 | if (line == curLine && last != views.end() && last->end() == text.begin()) { |
| 236 | *last = StringView(last->utf8Ptr(), last->utf8Size() + text.utf8Size()); |
| 237 | } else { |
| 238 | last = views.insert(views.end(), text); |
| 239 | curLine = line; |
| 240 | } |
| 241 | return true; |
| 242 | }; |
| 243 | |
| 244 | processWrapText(s, wrapWidth.ptr(), textCallback); |
| 245 | |
| 246 | return views; |
| 247 | } |
| 248 | |
| 249 | StringList TextPainter::wrapText(StringView s, Maybe<unsigned> wrapWidth) { |
| 250 | StringList result; |