#
c4fea34f |
|
01-Oct-2023 |
Simon Glass <sjg@chromium.org> |
expo: Plumb in textlines to a scene Provide an implementation for textlines in the scene code, so that they are displayed correctly. Provide a way to have a border around the textline, with the internal part being the same colour as the background. This looks more natural. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
93c901bc |
|
01-Oct-2023 |
Simon Glass <sjg@chromium.org> |
expo: Support opening a textline This object needs special handling when it is opened, to set up the CLI and the vidconsole context. Add special support for this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
94598d5b |
|
01-Oct-2023 |
Simon Glass <sjg@chromium.org> |
expo: Allow rendering the background of any object So far only menus have a background. When other object types are rendered, they may have a background too. Make this code more generic so it will be usable by new object types. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
8bc69b4b |
|
01-Oct-2023 |
Simon Glass <sjg@chromium.org> |
expo: Make calculation of an object bounding box generic We want to support this for any object, not just menus. Move the code around to allow this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
909c486d |
|
01-Oct-2023 |
Simon Glass <sjg@chromium.org> |
expo: Fix up comments for get_cur_menuitem_text() et al This internal function could use a comment. Add one. Also tidy up a few other comments. Signed-off-by: Simon Glass <sjg@chromium.org> fixup: comments |
#
cfc402db |
|
14-Aug-2023 |
Simon Glass <sjg@chromium.org> |
expo: cedit: Support reading settings from CMOS RAM Add a command to read edit settings from CMOS RAM, using the cedit definition to indicate which registers and bits are used. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
6e648fa7 |
|
14-Aug-2023 |
Simon Glass <sjg@chromium.org> |
expo: Export scene_menuitem_find() for use in internal code Make this function available to other expo code so we can use it to look up a menu item. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
f2eb6ad5 |
|
14-Aug-2023 |
Simon Glass <sjg@chromium.org> |
expo: Provide a way to iterate through all scene objects For some operations it is necessary to process all objects in an expo. Provide an iterator to handle this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
633b3dc7 |
|
14-Aug-2023 |
Simon Glass <sjg@chromium.org> |
expo: Make scene_obj_find() take a const scene This does not change the scene, so mark the pointer const. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a0874dc4 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add a configuration editor Add a new 'cedit' command which allows editing configuration using an expo. The configuration items appear as menus on the display. This is extremely basic, only supporting menus and not providing any way to load or save the configuration. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4c87e073 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Draw the current opened menu on top When a menu is opened, it must be displayed over all other objects in the scene, so that all its items are visible. Handle this by drawing the menu object a second time, after all other objects have been drawn. Draw all of the objects which are dependent on the menu object. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
756c9559 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Draw popup menus in both opened and closed states When a popup menu is closed it shows only the selected item. When it is open it shows a background and all items, with a highlight that can be moved between the items. Add the drawing logic for this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2e593897 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Support simple themes It is a pain to manually set the fonts of all objects to be consistent. Some spacing settings are also better set globally than by manually positioning each object. Add a 'theme' to the expo, to hold this information. For now it includes only the font size. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
699b0acb |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Set up the width and height of objects Provide a way to set the full dimensions of objects, i.e. including the width and height. For menus, calculate the bounding box of all objects in the menu. Set all labels to be the same size, so that highlighting works correct, once implemented. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ce72c9ec |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Use flags for objects We currently have just a 'hide' property for each object. In preparation for adding more properties, convert the struct to use a flags value, instead of individual booleans. This is more extensible. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d2043b56 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Correct some header-file comments The use of Returns instead of @return still confuses me. Fix some problems that have crept in. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5e2607ae |
|
06-Jan-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add support for scenes A scene is a single screen within an expo. It is possible to move between scenes but only one can be displayed at once. Add a basic implementation. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
cfc402db |
|
14-Aug-2023 |
Simon Glass <sjg@chromium.org> |
expo: cedit: Support reading settings from CMOS RAM Add a command to read edit settings from CMOS RAM, using the cedit definition to indicate which registers and bits are used. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
6e648fa7 |
|
14-Aug-2023 |
Simon Glass <sjg@chromium.org> |
expo: Export scene_menuitem_find() for use in internal code Make this function available to other expo code so we can use it to look up a menu item. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
f2eb6ad5 |
|
14-Aug-2023 |
Simon Glass <sjg@chromium.org> |
expo: Provide a way to iterate through all scene objects For some operations it is necessary to process all objects in an expo. Provide an iterator to handle this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
633b3dc7 |
|
14-Aug-2023 |
Simon Glass <sjg@chromium.org> |
expo: Make scene_obj_find() take a const scene This does not change the scene, so mark the pointer const. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a0874dc4 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add a configuration editor Add a new 'cedit' command which allows editing configuration using an expo. The configuration items appear as menus on the display. This is extremely basic, only supporting menus and not providing any way to load or save the configuration. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4c87e073 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Draw the current opened menu on top When a menu is opened, it must be displayed over all other objects in the scene, so that all its items are visible. Handle this by drawing the menu object a second time, after all other objects have been drawn. Draw all of the objects which are dependent on the menu object. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
756c9559 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Draw popup menus in both opened and closed states When a popup menu is closed it shows only the selected item. When it is open it shows a background and all items, with a highlight that can be moved between the items. Add the drawing logic for this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2e593897 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Support simple themes It is a pain to manually set the fonts of all objects to be consistent. Some spacing settings are also better set globally than by manually positioning each object. Add a 'theme' to the expo, to hold this information. For now it includes only the font size. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
699b0acb |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Set up the width and height of objects Provide a way to set the full dimensions of objects, i.e. including the width and height. For menus, calculate the bounding box of all objects in the menu. Set all labels to be the same size, so that highlighting works correct, once implemented. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ce72c9ec |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Use flags for objects We currently have just a 'hide' property for each object. In preparation for adding more properties, convert the struct to use a flags value, instead of individual booleans. This is more extensible. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d2043b56 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Correct some header-file comments The use of Returns instead of @return still confuses me. Fix some problems that have crept in. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5e2607ae |
|
06-Jan-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add support for scenes A scene is a single screen within an expo. It is possible to move between scenes but only one can be displayed at once. Add a basic implementation. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a0874dc4 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add a configuration editor Add a new 'cedit' command which allows editing configuration using an expo. The configuration items appear as menus on the display. This is extremely basic, only supporting menus and not providing any way to load or save the configuration. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4c87e073 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Draw the current opened menu on top When a menu is opened, it must be displayed over all other objects in the scene, so that all its items are visible. Handle this by drawing the menu object a second time, after all other objects have been drawn. Draw all of the objects which are dependent on the menu object. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
756c9559 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Draw popup menus in both opened and closed states When a popup menu is closed it shows only the selected item. When it is open it shows a background and all items, with a highlight that can be moved between the items. Add the drawing logic for this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2e593897 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Support simple themes It is a pain to manually set the fonts of all objects to be consistent. Some spacing settings are also better set globally than by manually positioning each object. Add a 'theme' to the expo, to hold this information. For now it includes only the font size. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
699b0acb |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Set up the width and height of objects Provide a way to set the full dimensions of objects, i.e. including the width and height. For menus, calculate the bounding box of all objects in the menu. Set all labels to be the same size, so that highlighting works correct, once implemented. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ce72c9ec |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Use flags for objects We currently have just a 'hide' property for each object. In preparation for adding more properties, convert the struct to use a flags value, instead of individual booleans. This is more extensible. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d2043b56 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Correct some header-file comments The use of Returns instead of @return still confuses me. Fix some problems that have crept in. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5e2607ae |
|
06-Jan-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add support for scenes A scene is a single screen within an expo. It is possible to move between scenes but only one can be displayed at once. Add a basic implementation. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5e2607ae |
|
06-Jan-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add support for scenes A scene is a single screen within an expo. It is possible to move between scenes but only one can be displayed at once. Add a basic implementation. Signed-off-by: Simon Glass <sjg@chromium.org> |