| Message ID | 20251207201628.2882382-1-sjg@u-boot.org |
|---|---|
| Headers |
Return-Path: <concept-bounces+u-boot-concept=u-boot.org@u-boot.org> 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 <u-boot-concept@u-boot.org>; 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 <u-boot-concept@u-boot.org>; 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 <u-boot-concept@u-boot.org>; 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 <sjg@u-boot.org> To: U-Boot Concept <concept@u-boot.org> 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 <xypron.glpk@gmx.de>, Simon Glass <simon.glass@canonical.com> 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 <concept.u-boot.org> Archived-At: <https://lists.u-boot.org/archives/list/concept@u-boot.org/message/LRF56JMVUP34Y4CZT33M3XB5EWURC7FA/> List-Archive: <https://lists.u-boot.org/archives/list/concept@u-boot.org/> List-Help: <mailto:concept-request@u-boot.org?subject=help> List-Owner: <mailto:concept-owner@u-boot.org> List-Post: <mailto:concept@u-boot.org> List-Subscribe: <mailto:concept-join@u-boot.org> List-Unsubscribe: <mailto:concept-leave@u-boot.org> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit |
| Series |
expo: Expand docs, dump and textlines in non-popup expos
|
|
Message
Simon Glass
Dec. 7, 2025, 8:15 p.m. UTC
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(-)