Go to the documentation of this file.
35 TextParser(
const Rect& bounds) : bounds(bounds)
51 return object.release();
69 if(this->font != font) {
88 if(scale != options.
scale) {
91 options.
scale = scale;
117 if(options.
style != style) {
121 options.
style = style;
137 if(align != textAlign) {
150 if(align != lineAlign) {
228 clip = bounds.
size();
237 void parse(
const TextAsset& asset, uint32_t start,
size_t size);
242 curSeg = breakSeg = lineSeg =
nullptr;
243 textHeight += lineHeight;
244 cursor.
y += lineHeight;
245 breakIndex = lineHeight = 0;
250 curSeg = breakSeg = lineSeg = startSeg =
nullptr;
251 breakIndex = lineHeight = textHeight = ystart = 0;
259 uint32_t breakIndex{0};
261 TextObject::FontElement* curFont{
nullptr};
262 TextObject::ColorElement* curColor{
nullptr};
266 char breakChar{
'\0'};
267 std::unique_ptr<TextObject> object;
269 bool overflow{
false};
270 mutable const Font* font{
nullptr};
271 mutable const TypeFace* typeface{
nullptr};
272 TextOptions options{};
276 TextObject::RunElement* startSeg{
nullptr};
277 TextObject::RunElement* lineSeg{
nullptr};
278 TextObject::RunElement* curSeg{
nullptr};
282 static Font* defaultFont;
288 class TextBuilder :
public TextParser,
public Print
309 size_t write(
const uint8_t* buffer,
size_t size)
override
312 stream->
write(buffer, size);
313 parse(text, pos, size);
Read/write stream using expandable memory buffer.
Definition: MemoryDataStream.h:26
Scale scale
Definition: Asset.h:476
const Font & getFont() const
Base class for a loaded font.
Definition: Asset.h:590
const TextOptions & getOptions() const
Definition: TextBuilder.h:148
size_t write(const uint8_t *buffer, size_t size) override
Write chars to end of stream.
TextObject * release()
Definition: TextBuilder.h:83
TextBuilder(AssetList &assets, const Rect &bounds)
Definition: TextBuilder.h:310
const Rect & getBounds() const
Definition: TextBuilder.h:78
T y
Definition: Libraries/Graphics/src/include/Graphics/Types.h:154
Location and size of rectangular area (x, y, w, h)
Definition: Libraries/Graphics/src/include/Graphics/Types.h:306
void setFont(const Font *font)
Definition: TextBuilder.h:102
void addStyle(FontStyles style)
Definition: TextBuilder.h:163
void setColor(const Brush &fore, const Brush &back={})
Definition: TextBuilder.h:230
Align getLineAlign() const
Definition: TextBuilder.h:194
void setStyle(FontStyles style)
Definition: TextBuilder.h:153
void setLineAlign(Align align)
Definition: TextBuilder.h:186
void setWrap(bool wrap)
Definition: TextBuilder.h:270
T * addObject(T *obj)
Add a new object to the scene.
Definition: Scene.h:108
The source of colour for drawing.
Definition: Asset.h:271
void resetClip()
Definition: TextBuilder.h:263
Brush back
Definition: Asset.h:475
TextObject * commit(SceneObject &scene)
Definition: TextBuilder.h:92
size_t getLength() const
Definition: Asset.h:720
void setBackColor(const Brush &color)
Definition: TextBuilder.h:246
TPoint< int16_t > Point
Definition: Libraries/Graphics/src/include/Graphics/Types.h:299
void setCursor(Point pt)
Set location to start new text segment.
Definition: TextBuilder.h:207
uint16_t getTextHeight() const
Definition: TextBuilder.h:143
const Rect & getClip() const
Definition: TextBuilder.h:258
void setScale(Scale scale)
Definition: TextBuilder.h:124
Definition: Libraries/Graphics/src/include/Graphics/Object.h:1052
constexpr uint8_t scaleY() const
Definition: Libraries/Graphics/src/include/Graphics/Types.h:791
A Scene containing multiple objects.
Definition: Scene.h:50
Align
Definition: Libraries/Graphics/src/include/Graphics/Types.h:74
size_t write(uint8_t c) override
Writes a single character to output stream.
Definition: TextBuilder.h:323
virtual size_t write(uint8_t c)=0
Writes a single character to output stream.
Align getTextAlign() const
Definition: TextBuilder.h:181
Definition: Libraries/Graphics/src/include/Graphics/Types.h:751
void parse(const TextAsset &asset, uint32_t start, size_t size)
A block of text consisting of zero or more segments.
Definition: Libraries/Graphics/src/include/Graphics/Object.h:922
Provides formatted output to stream.
Definition: Print.h:36
FontStyles style
Definition: Asset.h:477
void setForeColor(const Brush &color)
Definition: TextBuilder.h:241
void removeStyle(FontStyles style)
Definition: TextBuilder.h:168
Size size() const
Definition: Libraries/Graphics/src/include/Graphics/Types.h:466
Base class for a loaded typeface, e.g. Sans 16pt bold.
Definition: Asset.h:524
Brush fore
Definition: Asset.h:474
Point getCursor() const
Definition: TextBuilder.h:199
TextParser(const Rect &bounds)
Definition: TextBuilder.h:73
static void setDefaultFont(Font *font)
Definition: TextBuilder.h:97
void moveCursor(Point offset)
Definition: TextBuilder.h:220
void setClip(const Rect &r)
Definition: TextBuilder.h:251
const TypeFace & getTypeFace() const
void setTextAlign(Align align)
Definition: TextBuilder.h:173
Rect intersect(Rect r1, const Rect &r2)
Definition: Libraries/Graphics/src/include/Graphics/Types.h:601