BBS: TELESC.NET.BR Assunto: src/syncterm/Wren.adoc src/syncterm/scripts/auto/connected/keys_defaul De: Deuc¨ Data: Sun, 3 May 2026 21:44:11 -0700 ----------------------------------------------------------- https://gitlab.synchro.net/main/sbbs/-/commit/76a3f347979081df508310b6 Modified Files: src/syncterm/Wren.adoc src/syncterm/scripts/auto/connected/keys_default.wren src/syncterm/scripts/syncterm.wren ui_list.wren ui_list_test.wren ui_pane.wren ui_widget.wren src/syncterm/term.c wren_bind.c wren_bind_conn.c wren_bind_conn.h Log Message: SyncTERM: move Alt-M to Wren; add ListView padding + Pane auto-sizing The Alt-M music-mode picker is now a Wren Hook.onKey handler in keys_default.wren that opens a Pane + ListView modal. The C case-block in term.c is gone; music_control() itself stays for the Alt-Z popup-menu's SM_MUSIC entry. C primitives added so the script can do its job: * CTerm.music = i (setter; clamps to legal range) * Host.musicNames (Listbuilt from music_names[]) * Host.musicHelp (returns music_helpbuf) UI library changes the picker exposed: * ListView always reserves a 1-cell padding between the frame and the items on the side that doesn't have a scrollbar (both sides when no scrollbar is shown at all). The previous behaviour let long items butt against the frame. * Widget.preferredWidth / preferredHeight -- new base getters returning null ("no preference, fill what's given"). ListView overrides them with the smallest cell budget that displays every item without truncation. * Pane.fitContent() sizes the pane around its single child's preferred size, including the title bar's required width and the corner-button cluster. titleAsBar mode reserves a 1-cell padding around the title (`title + 4`); frameTitle mode uses the existing `title + 6` (corners + brackets + spaces). * Pane.centerOnScreen() repositions the pane after fitContent. The Alt-M handler is now ~15 lines: build the list, add to pane, fit + center, run. No hardcoded widths, no manual inner-bounds math. Wren.adoc updated with the new accessors, the Widget / Pane / ListView additions, the title-mode geometry rules, and a small auto-sized list-in-pane example mirroring the music picker. n --- mSynchronetn hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net ----------------------------------------------------------- [Voltar]