This series collects together some new features for expo to make it more useful for boot menus:
- measurement and display of multi-line text objects - internal alignment for objects (e.g. centred text) - editable strings in text fields - new 'box' object to draw a rectangle - highlighting of menu items, rather than just relying on a pointer Expo's boot menu is restructured so that it is possible to iterate through various bootdevs and update the menu as new ones are found. This is more in keeping with how bootstd works. A new textedit object is added, intended to provide a simple text editor. Future work will complete this. With this series the boot menu has a better layout and appearance. Simon Glass (52): video: Make white-on-black a video-device property sandbox: Select white-on-black video: Add a test for font measurement video: Begin support for measuring multiple lines of text video: truetype: Fill in the measured line video: truetype: Support newlines in the measured string video: truetype: Support a limit on the width of a line video: Add a way to write a partial string to the console console: Support a format string for stderr output test: video: Export the video-checking functions video: Allow console output to be silenced video: Add a function to draw a rectangle expo: Add CLI context to the expo expo: Add a function to poll for input expo: Destroy the cedit expo when done expo: Create a rendering test for cedit expo: Move cedit-state fields into expo expo: Test some cedit actions expo: Provide access to the current menu item expo: Adjust how menu items are highlighted expo: Split bootflow_menu_run() into two pieces expo: Split bootflow_menu_new() into two pieces expo: Allow adding a single bootflow to a menu expo: Rename scene_dim to scene_obj_bbox expo: Rename x and y in struct scene_obj_bbox expo: Use an abuf to hold strings expo: Separate dimensions from the bounding box expo: Make bounding-box calculation more flexible expo: Support setting the size and bounds of an object expo: Line up all menu objects expo: Create a struct for generic text attributes expo: Move text-rendering into its own function expo: Tidy up scene_txt_render() expo: Allow strings to be editable expo: Check the screen contents after rendering expo: Support rendering multiple lines of text expo: Support white-on-black in the theme expo: Implement a box expo: Support object alignment expo: Begin implementation of a text editor expo: Use a simpler name for USB media expo: Drop the gap between groups of menu items expo: Add forward declarations to scene_internal.h expo: Support highlighting menu items expo: Adjust expo_poll() to avoid looping forever expo: Drop the render from expo_poll() expo: Provide a way to position things relative to display expo: Improve the visual appearance of the menu expo: Update bootflow_menu_poll() to return a sequence ID expo: Split setting up the menu from adding items expo: Set up menu fully in bootflow_menu_start() expo: Drop the special theme code for bootflow_menu arch/sandbox/dts/test.dts | 1 + boot/Makefile | 2 +- boot/bootflow_internal.h | 11 +- boot/bootflow_menu.c | 371 ++++++++++++----------- boot/cedit.c | 138 +++++---- boot/expo.c | 70 ++++- boot/scene.c | 471 +++++++++++++++++++++++------- boot/scene_internal.h | 71 ++++- boot/scene_menu.c | 143 ++++++--- boot/scene_textedit.c | 60 ++++ boot/scene_textline.c | 44 +-- cmd/bootflow.c | 40 ++- cmd/cedit.c | 2 + common/console.c | 18 ++ doc/develop/expo.rst | 34 +++ drivers/video/console_truetype.c | 88 +++++- drivers/video/vidconsole-uclass.c | 33 ++- drivers/video/video-uclass.c | 52 +++- include/bootflow.h | 77 ++++- include/cedit.h | 13 + include/console.h | 15 + include/expo.h | 293 +++++++++++++++++-- include/test/video.h | 45 +++ include/video.h | 31 +- include/video_console.h | 83 +++++- test/boot/bootflow.c | 9 +- test/boot/cedit.c | 66 ++++- test/boot/expo.c | 214 +++++++++++--- test/dm/video.c | 352 +++++++++++++++------- 29 files changed, 2200 insertions(+), 647 deletions(-) create mode 100644 boot/scene_textedit.c create mode 100644 include/test/video.h -- 2.43.0 base-commit: 189e422e7768427f886294d5a9cb0b2e4948a5a5 branch: schd