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) {
194 if(options.
fore == fore && options.
back == back) {
228 clip = bounds.
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;
255 void addTextSegment(
Point textpos, uint16_t endx,
const TextAsset& asset, uint16_t start, uint8_t length);
259 uint32_t breakIndex{0};
260 const TextAsset* curAsset{
nullptr};
261 TextObject::FontElement* curFont{
nullptr};
262 TextObject::ColorElement* curColor{
nullptr};
263 TextObject::RunElement* breakSeg{
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{};
273 uint16_t lineHeight{0};
274 uint16_t textHeight{0};
276 TextObject::RunElement* startSeg{
nullptr};
277 TextObject::RunElement* lineSeg{
nullptr};
278 TextObject::RunElement* curSeg{
nullptr};
282 static Font* defaultFont;
309 size_t write(
const uint8_t* buffer,
size_t size)
override
312 stream->
write(buffer, size);
313 parse(text, pos, size);
The source of colour for drawing.
Definition: Asset.h:253
Base class for a loaded font.
Definition: Asset.h:572
Definition: Libraries/Graphics/src/include/Graphics/Types.h:733
constexpr uint8_t scaleY() const
Definition: Libraries/Graphics/src/include/Graphics/Types.h:772
A Scene containing multiple objects.
Definition: Scene.h:32
T * addObject(T *obj)
Add a new object to the scene.
Definition: Scene.h:70
size_t getLength() const
Definition: Asset.h:701
Simplifies construction of TextObject instances.
Definition: TextBuilder.h:289
size_t write(uint8_t c) override
Writes a single character to output stream.
Definition: TextBuilder.h:304
TextBuilder(SceneObject &scene)
Definition: TextBuilder.h:298
virtual size_t write(uint8_t c)=0
Writes a single character to output stream.
size_t write(const uint8_t *buffer, size_t size) override
Writes characters from a buffer to output stream.
Definition: TextBuilder.h:309
TextBuilder(AssetList &assets, const Rect &bounds)
Definition: TextBuilder.h:291
A block of text consisting of zero or more segments.
Definition: Libraries/Graphics/src/include/Graphics/Object.h:902
Brush back
Definition: Asset.h:456
FontStyles style
Definition: Asset.h:458
Brush fore
Definition: Asset.h:455
Scale scale
Definition: Asset.h:457
Simplifies construction of TextObject instances.
Definition: TextBuilder.h:33
static void setDefaultFont(Font *font)
Definition: TextBuilder.h:59
Align getTextAlign() const
Definition: TextBuilder.h:143
const Rect & getBounds() const
Definition: TextBuilder.h:40
void setScale(Scale scale)
Definition: TextBuilder.h:86
void setFont(const Font &font)
Definition: TextBuilder.h:77
void setClip(const Rect &r)
Definition: TextBuilder.h:213
TextParser(const Rect &bounds)
Definition: TextBuilder.h:35
Point getCursor() const
Definition: TextBuilder.h:161
void setCursor(int16_t x, int16_t y)
Definition: TextBuilder.h:177
void setForeColor(const Brush &color)
Definition: TextBuilder.h:203
void moveCursor(Point offset)
Definition: TextBuilder.h:182
void setScale(uint8_t size)
Definition: TextBuilder.h:100
void resetClip()
Definition: TextBuilder.h:225
void moveCursor(int16_t x, int16_t y)
Definition: TextBuilder.h:187
void addStyle(FontStyles style)
Definition: TextBuilder.h:125
const Font & getFont() const
void setStyle(FontStyles style)
Definition: TextBuilder.h:115
void setBackColor(const Brush &color)
Definition: TextBuilder.h:208
void setScale(uint8_t sx, uint8_t sy)
Definition: TextBuilder.h:95
uint16_t getTextHeight() const
Definition: TextBuilder.h:105
void parse(const TextAsset &asset, uint32_t start, size_t size)
void removeStyle(FontStyles style)
Definition: TextBuilder.h:130
const TextOptions & getOptions() const
Definition: TextBuilder.h:110
Align getLineAlign() const
Definition: TextBuilder.h:156
void setTextAlign(Align align)
Definition: TextBuilder.h:135
TextObject * commit(SceneObject &scene)
Definition: TextBuilder.h:54
const TypeFace & getTypeFace() const
const Rect & getClip() const
Definition: TextBuilder.h:220
void setWrap(bool wrap)
Definition: TextBuilder.h:232
void setFont(const Font *font)
Definition: TextBuilder.h:64
TextObject * release()
Definition: TextBuilder.h:45
void setColor(const Brush &fore, const Brush &back={})
Definition: TextBuilder.h:192
void setLineAlign(Align align)
Definition: TextBuilder.h:148
void setCursor(Point pt)
Set location to start new text segment.
Definition: TextBuilder.h:169
Base class for a loaded typeface, e.g. Sans 16pt bold.
Definition: Asset.h:506
bool add(ObjectType *object)
Definition: LinkedObjectList.h:134
Read/write stream using expandable memory buffer.
Definition: MemoryDataStream.h:27
size_t write(const uint8_t *buffer, size_t size) override
Write chars to end of stream.
Provides formatted output to stream.
Definition: Print.h:37
virtual size_t write(uint8_t c)=0
Writes a single character to output stream.
Rect intersect(Rect r1, const Rect &r2)
Definition: Libraries/Graphics/src/include/Graphics/Types.h:582
Align
Definition: Libraries/Graphics/src/include/Graphics/Types.h:55
TPoint< int16_t > Point
Definition: Libraries/Graphics/src/include/Graphics/Types.h:280
Location and size of rectangular area (x, y, w, h)
Definition: Libraries/Graphics/src/include/Graphics/Types.h:287
Size size() const
Definition: Libraries/Graphics/src/include/Graphics/Types.h:447
T y
Definition: Libraries/Graphics/src/include/Graphics/Types.h:135