massive changes in sprite and fonts

This commit is contained in:
2026-01-11 14:06:31 +01:00
parent a4346aa4f1
commit 172ee138da
9 changed files with 1385 additions and 1403 deletions
+9 -4
View File
@@ -9,6 +9,8 @@ private:
int yPos;
int maxWidth;
int xPos;
int usedX;
int usedY;
int textWidth;
unsigned long lastTick;
unsigned long holdTick;
@@ -19,9 +21,9 @@ private:
static const unsigned long HOLD_DURATION = 2000;
public:
ScrollingTextDisplay(TFT_eSprite* spr, int y, int maxW)
ScrollingTextDisplay(TFT_eSprite* spr, int y, int maxW, int spriteX, int spriteY)
: sprite(spr), yPos(y), maxWidth(maxW),
xPos(0), textWidth(0), lastTick(0), holdTick(0), isScrolling(false), postDrawCallback(nullptr) {}
xPos(0), usedX(spriteX), usedY(spriteY), textWidth(0), lastTick(0), holdTick(0), isScrolling(false), postDrawCallback(nullptr) {}
void setPostDrawCallback(std::function<void(TFT_eSprite*, bool)> callback) {
postDrawCallback = callback;
@@ -71,12 +73,15 @@ public:
private:
void drawText(const String& text, bool status, uint16_t activeColor, uint16_t activeSmooth, uint16_t dropoutColor, uint16_t dropoutSmooth, uint16_t backgroundColor) {
sprite->fillSprite(backgroundColor);
sprite->fillSprite(TFT_TRANSPARENT);
sprite->setViewport(0, 0, usedX, usedY);
sprite->fillRect(0, 0, usedX, usedY, backgroundColor);
if(status) sprite->setTextColor(activeColor, activeSmooth, false);
else sprite->setTextColor(dropoutColor, dropoutSmooth, false);
sprite->drawString(text, xPos, 0);
if(isScrolling) sprite->drawString(text, xPos + textWidth, 0);
if(postDrawCallback) postDrawCallback(sprite, false);
sprite->pushSprite(35, yPos);
sprite->pushSprite(35, yPos, TFT_TRANSPARENT);
sprite->resetViewport();
}
};