Enlarge nearest-airport marquee text to size 2
The scrolling "nearest airport" line on the Location Presets screen was hard to read at size 1. setupMarquee() now measures text width at size 2 (matching what drawMarquee() actually renders), and drawMarquee() resets back to size 1 on both return paths so it doesn't leak into subsequently drawn UI (e.g. the Back button). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -188,8 +188,15 @@ namespace {
|
|||||||
// anderer Standort aktiviert wurde) - merkt sich Text + Ringpuffer und
|
// anderer Standort aktiviert wurde) - merkt sich Text + Ringpuffer und
|
||||||
// setzt den Scroll-Fortschritt zurueck.
|
// setzt den Scroll-Fortschritt zurueck.
|
||||||
void setupMarquee(TFT_eSPI& tft, const String& text, int16_t viewportW) {
|
void setupMarquee(TFT_eSPI& tft, const String& text, int16_t viewportW) {
|
||||||
|
// WICHTIG: textWidth() haengt von der aktuell gesetzten Textgroesse
|
||||||
|
// ab. Der Marquee wird in Size 2 gezeichnet (siehe drawMarquee),
|
||||||
|
// also muss hier ebenfalls Size 2 aktiv sein, sonst wird die
|
||||||
|
// Breite falsch (zu schmal) gemessen und der Text ragt beim
|
||||||
|
// Zeichnen ueber den verfuegbaren Platz hinaus.
|
||||||
|
tft.setTextSize(2);
|
||||||
airportMarquee.text = text;
|
airportMarquee.text = text;
|
||||||
airportMarquee.needsScroll = tft.textWidth(text) > viewportW;
|
airportMarquee.needsScroll = tft.textWidth(text) > viewportW;
|
||||||
|
tft.setTextSize(1);
|
||||||
String withGap = text + " "; // 5 Leerzeichen Luecke vor der Wiederholung
|
String withGap = text + " "; // 5 Leerzeichen Luecke vor der Wiederholung
|
||||||
airportMarquee.ring = withGap + withGap;
|
airportMarquee.ring = withGap + withGap;
|
||||||
airportMarquee.charOffset = 0;
|
airportMarquee.charOffset = 0;
|
||||||
@@ -213,10 +220,16 @@ namespace {
|
|||||||
|
|
||||||
tft.fillRect(x, y - h + 4, w, h, TFT_BLACK);
|
tft.fillRect(x, y - h + 4, w, h, TFT_BLACK);
|
||||||
tft.setTextColor(TFT_DARKGREEN, TFT_BLACK);
|
tft.setTextColor(TFT_DARKGREEN, TFT_BLACK);
|
||||||
|
// Groessere Schrift fuer den Nearest-Airport-Marquee (auf Wunsch
|
||||||
|
// vergroessert von Size 1 auf Size 2) - nach dem Zeichnen wieder auf
|
||||||
|
// Size 1 zurueckstellen, damit nachfolgender Code (z.B. der
|
||||||
|
// "Zurueck"-Button) nicht versehentlich auch vergroessert wird.
|
||||||
|
tft.setTextSize(2);
|
||||||
tft.setCursor(x, y);
|
tft.setCursor(x, y);
|
||||||
|
|
||||||
if (!airportMarquee.needsScroll) {
|
if (!airportMarquee.needsScroll) {
|
||||||
tft.print(airportMarquee.text);
|
tft.print(airportMarquee.text);
|
||||||
|
tft.setTextSize(1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -231,6 +244,7 @@ namespace {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tft.print(marqueeWindow(tft, airportMarquee.ring, airportMarquee.charOffset, w));
|
tft.print(marqueeWindow(tft, airportMarquee.ring, airportMarquee.charOffset, w));
|
||||||
|
tft.setTextSize(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void runInfoScreen(TFT_eSPI& tft) {
|
void runInfoScreen(TFT_eSPI& tft) {
|
||||||
|
|||||||
Reference in New Issue
Block a user