From: Simon Glass <simon.glass@canonical.com> So far textlines are mostly used in cedits as a way to enter textual information. For non-popup expos, textlines are not yet fully plumbed in. This series adds a way to send keypresses to a highlighted textline, adds a test for this case and fixes various minor issues to make this all work. One noteable change is renumbering the BKEY enum. At present the values conflict with the control keys used by CLI processing, so for example, expo is unable to distinguish an up-arrow from a backspace. Tests which use textedits mostly need to run with the console active, since a silent console suppresses output of the text in the textedit. In fact, at present cedit_render_lineedit() does not work unless the previous test ran first. A new UTF_NO_SILENT test flag is added to make this problem easier to discover/debug. This series also resolves an issue where the 'cedit dump' is never enabled due to a typo in the Kconfig item. With that fixed, the dump format is converted to use hex (U-Boot convention). The expo menu and cedit implementations are updated to use better names for objects. This series also includes some documentation updates, since much of the debugging methods used are not explicitly described. This should make it easier for others to make improvements. With all of this complete, it is possible to have a password field in a menu item and to enter text into it, even with a non-popup expo. It also becomes easier to debug such issues in future. Simon Glass (22): CLAUDE.md: Update build and coding conventions cmd: cedit: Fix CONFIG_CMD_EDIT_DUMP typo expo: Use textline consistently in tests video: Document the quirk in truetype_get_cursor_info() test: Add a flag for test which need console output doc: expo: Move test-mode docs up a little doc: test: Document assertion macros doc: expo: Add documentation for writing and debugging tests expo: Use hex format when dumping the expo expo: Add prompt_id to struct scene expo: Use better names for child objects in expo_build expo: Use better names for objects in bootflow_menu_add() expo: Fix textline edit text not updating in bootflow menu test: cedit: Use UTF_NO_SILENT test: cedit: Allow cedit_render_lineedit() to run alone expo: Refactor scene_send_key() to use a current object expo: Add scene_render_obj() to render by object ID expo: Correct rendering of textlines when open menu: Start bootmenu_key values at 0x100 expo: Always send keys to highlighted textline expo: Consider an item selected when a password is entered test: expo: Add a test for textline rendering in an expo CLAUDE.md | 7 +- boot/bootflow_menu.c | 44 +++++-- boot/cedit.c | 11 +- boot/expo_build.c | 52 +++++--- boot/expo_dump.c | 51 ++++---- boot/scene.c | 63 +++++---- boot/scene_internal.h | 9 ++ boot/scene_textline.c | 29 ++--- cmd/cedit.c | 8 +- doc/arch/sandbox/sandbox.rst | 5 +- doc/develop/expo.rst | 211 +++++++++++++++++++++++++++++-- doc/develop/tests_writing.rst | 106 ++++++++++++++++ drivers/video/console_truetype.c | 6 +- include/expo.h | 2 + include/menu.h | 10 +- include/test/test.h | 17 +-- test/boot/cedit.c | 18 +-- test/boot/expo.c | 120 +++++++++++++++++- test/test-main.c | 3 +- 19 files changed, 630 insertions(+), 142 deletions(-) -- 2.43.0 base-commit: c4c9d1231df690a8ff716535703232987db77524 branch: sech