From patchwork Sun Dec 7 20:15:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 56 Return-Path: X-Original-To: u-boot-concept@u-boot.org Delivered-To: u-boot-concept@u-boot.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1765138624; bh=OUmL0SAq9Cl1ykRqhoX/ez1nyVMqzolFQtIQlv/DUH4=; h=From:To:Date:CC:Subject:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=X/mryURH/ZuJ9lc1RHz9iN3XB6p+MHtg2MV5dey0Fyw8dmh9Oi581ariHsH1hJ9gd XbYxu8ZCAF22SqoImvdsPJ7Q27js+5OKbnSSmqhiu/VMIlTkg2a/PTgKQCxnXKNN5m P2HhMG1x/Eyb47+xuuRKiY265wjxF7iz86KFqDqwm5/tKuha97iWSOpz3ubGSanW5B auTtcLX7shSq8nJtisvouad/MTkUjNg6ozHllidFr0sc2MCaBDF3u2Kxw3HsreBNjS aAfciZayijmXILdyXEzTHYjOSejBjp7Z4fsrYKtZfThWIbNNh0o9SN9bpCGPAC874w VkVHG9GGWWhYg== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 479A268997 for ; Sun, 7 Dec 2025 13:17:04 -0700 (MST) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id v6iH_ilDWawc for ; Sun, 7 Dec 2025 13:17:04 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1765138624; bh=OUmL0SAq9Cl1ykRqhoX/ez1nyVMqzolFQtIQlv/DUH4=; h=From:To:Date:CC:Subject:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=X/mryURH/ZuJ9lc1RHz9iN3XB6p+MHtg2MV5dey0Fyw8dmh9Oi581ariHsH1hJ9gd XbYxu8ZCAF22SqoImvdsPJ7Q27js+5OKbnSSmqhiu/VMIlTkg2a/PTgKQCxnXKNN5m P2HhMG1x/Eyb47+xuuRKiY265wjxF7iz86KFqDqwm5/tKuha97iWSOpz3ubGSanW5B auTtcLX7shSq8nJtisvouad/MTkUjNg6ozHllidFr0sc2MCaBDF3u2Kxw3HsreBNjS aAfciZayijmXILdyXEzTHYjOSejBjp7Z4fsrYKtZfThWIbNNh0o9SN9bpCGPAC874w VkVHG9GGWWhYg== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 3450368995 for ; Sun, 7 Dec 2025 13:17:04 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1765138617; bh=chVx3ogoXsm4oWBAQ9FQaZaVARIO/rPqBqDAKEOm2vo=; h=From:To:Cc:Subject:Date:From; b=OsQbCi9AVIr3OipOWdseIROhY2tpOtnn32KlhckGjJ9wK3DRdtsk5G90bnExuRmYh 7sNDNzh7faojTd3YqK8EtnhJDxheLPcytWFCt/nL6JfvP9mO89eQ29Blz2E9azsLik o6DjaOmXzu+eqQWKakqg6+s6gFnXdbNgebkv2I+tMmSTXiHXgfkpt2+bqj2gO8AoXC TviV+5Bo70VzQLx/tXMmjgSFg/w0ktW2JmEh7S8FSIua24JUd2fyyyUQcIfdt/Lu4O RAMAGdHfPJNqQvB7bd11vD1B/v4HBUDYuBskLK7hc+cHb8RU/7Kn8g2AHQ+arQmzbm LIG8LxjggoGFw== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 0AAA65F6BF; Sun, 7 Dec 2025 13:16:57 -0700 (MST) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10026) with ESMTP id o-w3XDioR9Zp; Sun, 7 Dec 2025 13:16:56 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1765138612; bh=vE/6Zwt0cXXtw4xn7nAUNNcPb0klFayzGu3+g7oU/vI=; h=From:To:Cc:Subject:Date:From; b=Y7rduEF4iLSstwflHToElVQV2EVCFsV1zd9EqH1/AQ0uy9zC8zilUENe7EByhvdcX DLChL6ySS3qMbDJ3OAh46pbNtqEas5u4NWfXmXTidUwiAVvU8kE84/0+a6a9FWVST3 xk/CdDH4k4/J2rQMfyoo+cMFpnVXEJR3n6XAa620Gz3TsHvW6EM0CjErcvS6DveTlk sTGtVHMsFheExaXvEFiWCFylYdaBjfR1aik3oqeuYwR2X+1S0HXocS0JQyG6ZJSB2t CbPEmlnJzbjzWFB7QJ3TRU2CFIQ4txQTu9o6A1bO9iFYCla35BTdexPi5gajY9kPwl V3bZD8f+gpH/g== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id 5B6256883E; Sun, 7 Dec 2025 13:16:52 -0700 (MST) From: Simon Glass To: U-Boot Concept Date: Sun, 7 Dec 2025 13:15:57 -0700 Message-ID: <20251207201628.2882382-1-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Message-ID-Hash: LRF56JMVUP34Y4CZT33M3XB5EWURC7FA X-Message-ID-Hash: LRF56JMVUP34Y4CZT33M3XB5EWURC7FA X-MailFrom: sjg@u-boot.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Heinrich Schuchardt , Simon Glass X-Mailman-Version: 3.3.10 Precedence: list Subject: [Concept] [PATCH 00/22] expo: Expand docs, dump and textlines in non-popup expos List-Id: Discussion and patches related to U-Boot Concept Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Simon Glass 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(-)