feat(l1): one title bar, page dots, disclosure marks and push buttons

drawScreenHeader replaces drawCenteredHeader on every ui-new screen: the
title in normal case, page dots instead of "TRAIL 1/3", the menu hint, no
icon (the screen was just picked by one). Accordions in Settings and Tools
show a disclosure triangle instead of +/-, Tools sections drop their icons.
Form "[Save]" rows and "+ Send" share drawButton; form fields use valueRow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-10-02 08:45:05 +02:00
co-authored by Claude Opus 5.5
parent 4ba171d6d8
commit 6d8e56fbd0
18 changed files with 159 additions and 104 deletions
@@ -124,14 +124,12 @@ public:
// Waypoint management UI owns the screen while active.
if (_wp.active()) return _wp.render(display);
// Title carries the view counter so the bottom hint row can be reclaimed
// for content.
const char* base = (_view == V_MAP) ? (_map_grid ? "TRAIL MAP+" : "TRAIL MAP")
: (_view == V_LIST) ? "TRAIL LIST"
: "TRAIL";
char title[20];
snprintf(title, sizeof(title), "%s %d/%d", base, (int)_view + 1, (int)V_COUNT);
display.drawCenteredHeader(title);
// The title bar carries the view dots so the bottom hint row can be
// reclaimed for content.
const char* title = (_view == V_MAP) ? (_map_grid ? "Trail map+" : "Trail map")
: (_view == V_LIST) ? "Trail list"
: "Trail";
drawScreenHeader(display, title, (int)_view, (int)V_COUNT);
if (_view == V_MAP) renderMap(display);
else if (_view == V_LIST) renderList(display);