This commit is contained in:
MarekZegare4
2026-09-08 14:05:46 +00:00
parent 6fcf75e43d
commit b783a85ca1
10 changed files with 182 additions and 97 deletions
+11 -2
View File
@@ -1910,8 +1910,17 @@ pixel sizes</strong> — derive everything from these:</p>
in the header, so the menu is discoverable without already knowing the
shortcut; <code>menu_open</code> highlights it while the menu is actually up.</li>
<li><code>drawSelectionRow(x, y, w, h, sel)</code> — the highlight bar behind a list row.</li>
<li><code>drawTextEllipsized(x, y, max_w, str)</code> — truncates with <code></code>; <strong>use this for
any user string</strong> (names, labels) so long/UTF-8 text can't overrun.</li>
<li><code>drawTextEllipsized(x, y, max_w, str, selected=false)</code> — truncates with <code></code>;
<strong>use this for any user string</strong> (names, labels) so long/UTF-8 text can't
overrun. Pass <code>selected=true</code> for the currently-selected row and the text
that doesn't fit marquee-scrolls into view (pause → scroll to the end →
pause → scroll back), instead of just sitting behind the ellipsis; returns
the ms until the next redraw is needed for that animation to stay smooth
(0 when nothing is scrolling) — thread it into your screen's own <code>render()</code>
return value the same way you already clamp for anything else that needs a
faster redraw. Only one row UI-wide marquees at a time (whichever is
currently selected), so there's no risk of two animations racing each
other for the shared timing state.</li>
<li><code>drawTextCentered(mid_x, y, str)</code>.</li>
<li><code>translateUTF8ToBlocks(dst, src, n)</code> — map UTF-8 to the panel's glyph set for
<em>display only</em>. Never run text through it before sending it over the air or