feat: add Char Test screen and extend Lemon font to Greek/Cyrillic

- Add CharTestScreen showing sample characters from 11 scripts
  (PL, DE, CS, FR, NO, HU, HR, TR, LT, Cyrillic, Greek) as raw
  UTF-8 to verify native font rendering without transliteration
- Add "Char Test" entry to ToolsScreen menu
- Regenerate LemonFont.h from lemon.bdf with full U+0020–U+04FF
  range: 1074 BDF glyphs + 174 placeholders, 4111 bitmap bytes;
  adds Greek (137 glyphs) and Cyrillic (256 glyphs) coverage;
  also fixes space advance (DWIDTH=5, was BBX+1=1)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-05-17 23:34:44 +02:00
co-authored by Claude Sonnet 4.6
parent dbda484f2b
commit 50eb58c276
5 changed files with 1516 additions and 358 deletions
@@ -127,6 +127,7 @@ static const uint16_t HP_ALL = 0x01FF;
#include "NearbyScreen.h"
#include "DashboardConfigScreen.h"
#include "AutoAdvertScreen.h"
#include "CharTestScreen.h"
#include "ToolsScreen.h"
// ── HomeScreen ────────────────────────────────────────────────────────────────
@@ -808,6 +809,7 @@ void UITask::begin(DisplayDriver* display, SensorManager* sensors, NodePrefs* no
nearby_screen = new NearbyScreen(this);
dashboard_config = new DashboardConfigScreen(this, node_prefs);
auto_advert_screen = new AutoAdvertScreen(this, node_prefs);
char_test_screen = new CharTestScreen(this);
setCurrScreen(splash);
applyBrightness();
@@ -847,6 +849,11 @@ void UITask::gotoAutoAdvertScreen() {
setCurrScreen(auto_advert_screen);
}
void UITask::gotoCharTestScreen() {
((CharTestScreen*)char_test_screen)->enter();
setCurrScreen(char_test_screen);
}
void UITask::playMelody(const char* melody) {
#ifdef PIN_BUZZER
buzzer.playForced(melody);