mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-08-03 10:46:12 +00:00
feat(keyboard): hold-Enter accent popup; relocate cursor-mode trigger
Replaces the 8 separate Latin-diacritic alt-alphabet pages (Polish, Czech, Slovak, German, French, Spanish, Portuguese, Nordic) with one popup: Hold Enter on a Latin letter that has accented variants (a c d e i l n o r s t u y z) opens a floating horizontal strip of that letter's accents, anchored over its own row so the grid stays visible underneath (LEFT/ RIGHT picks, Enter inserts via a new shared insertGlyph() helper, Cancel dismisses). Holding a letter with no variants is a no-op. Cyrillic/Greek remain full alt-alphabet pages; NodePrefs::keyboard_alt_alphabet shrinks from 11 to 3 values accordingly -- an old saved Polish..Nordic value just clamps to Latin via DataStore.cpp's existing range check, no migration code needed. Freeing Hold-Enter on letter cells required moving cursor-mode's own trigger: UP from the top letter row now enters it instead of wrapping to the special row. To keep that wrap reachable, cursor mode's UP/DOWN (Home/End) continue the wrap once already at that boundary -- UP again lands on the special row, DOWN again back on the letter grid -- reusing the same proportional column mapping the old direct wrap used. Diagnostics' font-coverage sample swaps its 8 per-language lines for one line sampling the new accent table. Docs (message_screen, settings_screen, solo_ui_framework) and release-notes updated to match. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -175,20 +175,14 @@ class DiagnosticsScreen : public UIScreen {
|
||||
// One sample line per script/keyboard alphabet the UI font claims to cover
|
||||
// (all inside the U+0020-04FF glyph range the OLED misc-fixed / e-ink Lemon
|
||||
// fonts carry), so the font's coverage can be checked by eye on real
|
||||
// hardware. Per-language lines use the same 2-letter codes as
|
||||
// KeyboardWidget::altAlphabetHint and each shows that language's own
|
||||
// non-ASCII letters (see KeyboardWidget.h's KB_*_CHARS tables).
|
||||
// hardware. "Acc" samples one variant from each KeyboardWidget.h
|
||||
// KB_ACCENT_VARIANTS group (the Hold-Enter accent popup that replaced the
|
||||
// old per-language alt-alphabet pages) so every accented letter actually
|
||||
// reachable in the UI still gets an eyeball check.
|
||||
void buildFontLines() {
|
||||
_line_count = 0;
|
||||
addLine("Latin ABCabc xyz");
|
||||
addLine("PL ąćęłńóśźż");
|
||||
addLine("CZ áčďéěíňóřš");
|
||||
addLine("SK áäčďíĺľňôŕ");
|
||||
addLine("DE äöüß");
|
||||
addLine("FR àâçéèêëîïœ");
|
||||
addLine("ES áéíñóúü");
|
||||
addLine("PT áàâãçéêíóôõú");
|
||||
addLine("ND åäæöø");
|
||||
addLine("Acc áçďéíłñóřśťúýź");
|
||||
addLine("Grk ΑΒΓ αβγξω"); // ΑΒΓ αβγξω
|
||||
addLine("Cyr АБВ абвжя"); // АБВ абвжя
|
||||
addLine("Num 0123456789");
|
||||
|
||||
Reference in New Issue
Block a user