#
4db75190 |
|
01-Oct-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add basic support for textline objects A textline is a line of text which can be edited by the user. It has a maximum length (in chracters) but otherwise there are no restrictions. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
93f99b35 |
|
01-Oct-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add some scene fields needed for text entry Add the CLI state, a buffer to hold the old value of the text being edited and a place to save vidconsole entry context. These will be use by the textline object. Set an upper limit on the maximum number of characters in a textline object supported by expo, at least for now. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d88edd2b |
|
01-Oct-2023 |
Simon Glass <sjg@chromium.org> |
expo: Allow highlighting other scene-object types So far only menus can be highlighted. With the coming addition of text lines we need to be able to highlight other objects. Add a function to determine whether an object can be highlighted. 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 |
#
ac897385 |
|
02-Oct-2023 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' Signed-off-by: Tom Rini <trini@konsulko.com>
|
#
a3a057f8 |
|
08-Sep-2023 |
Massimo Pegorer <massimo.pegorer+oss@gmail.com> |
expo: Fix documentation reference Fix typo: doc/develop/expo.rst instead of doc/developer/expo.rst Signed-off-by: Massimo Pegorer <massimo.pegorer+oss@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
eb6c71b5 |
|
14-Aug-2023 |
Simon Glass <sjg@chromium.org> |
expo: cedit: Support writing settings to CMOS RAM Add a command to write cedit settings to CMOS RAM so that it can be preserved across a reboot. This uses a simple bit-encoding, where each field has a 'bit position' and a 'bit length' in the schema. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
040b0468 |
|
14-Aug-2023 |
Simon Glass <sjg@chromium.org> |
expo: Split out cedit into its own header Before adding more functions to this interface, create a new header for the configuration editor. Fix up the expo header guard while we are here. 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> |
#
82cafee1 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Support building an expo from a description file The only way to create an expo at present is by calling the functions to create each object. It is useful to have more data-driven approach, where the objects can be specified in a suitable file format and created from that. This makes testing easier as well. Add support for describing an expo in a devicetree node. This allows more complex tests to be set up, as well as providing an easier format for users. It also provides a better basis for the upcoming configuration editor. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4e64beeb |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Implement the keypress logic for popup menus In 'popup' mode, the expo allows moving around the objects in a scene. When 'enter' is pressed on a menu, it opens and the user can move around the items in the menu. Implement this using keypress handles and actions. 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> |
#
3f33b9c7 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Rename EXPOACT_POINT to EXPOACT_POINT_ITEM At present we only support a single menu, so all that can be pointed to is the current menu item. Rename this action so that we can also add an action for pointing to an object. This will allow cycling through the objects in a scene. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d3db0216 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Support drawing of popup menus At present only a single menu is supported. All items are shown and a pointer object points to the current item. Add support for multiple menus, one of which is highlighted, indicated by the highlight_id property in the scene. The highlighted menu item has a SCENEOF_POINT flag, indicating that it is currently pointed to. The popup menu is normally closed, in which case it shows only the current menu item. When it is opened, it shows all items, allowing the user to select one. Rather than requiring the menu item to have a description, require it to have a label. Use the label (only) for the popup menu. With this, most of the drawing and layout logic is complete. 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> |
#
ae45d6cf |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add width and height to objects At present objects only have a position so it is not possible to determine the amount of space they take up on the display. Add width and height properties, using a struct to keep all the dimensions together. For now this is not used. Future work will set up these new properties. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9af34150 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Allow setting the start of the dynamic-ID range Provide a way to set this value so that it is easy to separate the statically allocated IDs (generated by the caller) from those generated dynamically by expo itself. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5904d953 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Rename exp_set_text_mode() Rename this function to match its peers, using the full "expo' prefix. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
42b18494 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Store the console in the expo Rather than finding this each time, keep a pointer to it. This simplifies the code a little. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
def898c4 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Convert to using a string ID for the scene title This is easier to deal with if it uses the existing string handling, since we will be able to use translations, etc. in the future. Update it to use an ID instead of a string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
87c6f8a4 |
|
06-Jan-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add basic implementation An expo is a way of presenting and collecting information from the user. It consists of a collection of 'scenes' of which only one is presented at a time. An expo is typically used to show a boot menu and allow settings to be changed. One created, the same expo can be automatically presented in graphical form using a vidconsole, or in text form on a serial console. Add an initial implementation of the expo itself. Supports for scenes and objects is provided later. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ac897385 |
|
02-Oct-2023 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' Signed-off-by: Tom Rini <trini@konsulko.com>
|
#
a3a057f8 |
|
08-Sep-2023 |
Massimo Pegorer <massimo.pegorer+oss@gmail.com> |
expo: Fix documentation reference Fix typo: doc/develop/expo.rst instead of doc/developer/expo.rst Signed-off-by: Massimo Pegorer <massimo.pegorer+oss@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
eb6c71b5 |
|
14-Aug-2023 |
Simon Glass <sjg@chromium.org> |
expo: cedit: Support writing settings to CMOS RAM Add a command to write cedit settings to CMOS RAM so that it can be preserved across a reboot. This uses a simple bit-encoding, where each field has a 'bit position' and a 'bit length' in the schema. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
040b0468 |
|
14-Aug-2023 |
Simon Glass <sjg@chromium.org> |
expo: Split out cedit into its own header Before adding more functions to this interface, create a new header for the configuration editor. Fix up the expo header guard while we are here. 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> |
#
82cafee1 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Support building an expo from a description file The only way to create an expo at present is by calling the functions to create each object. It is useful to have more data-driven approach, where the objects can be specified in a suitable file format and created from that. This makes testing easier as well. Add support for describing an expo in a devicetree node. This allows more complex tests to be set up, as well as providing an easier format for users. It also provides a better basis for the upcoming configuration editor. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4e64beeb |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Implement the keypress logic for popup menus In 'popup' mode, the expo allows moving around the objects in a scene. When 'enter' is pressed on a menu, it opens and the user can move around the items in the menu. Implement this using keypress handles and actions. 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> |
#
3f33b9c7 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Rename EXPOACT_POINT to EXPOACT_POINT_ITEM At present we only support a single menu, so all that can be pointed to is the current menu item. Rename this action so that we can also add an action for pointing to an object. This will allow cycling through the objects in a scene. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d3db0216 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Support drawing of popup menus At present only a single menu is supported. All items are shown and a pointer object points to the current item. Add support for multiple menus, one of which is highlighted, indicated by the highlight_id property in the scene. The highlighted menu item has a SCENEOF_POINT flag, indicating that it is currently pointed to. The popup menu is normally closed, in which case it shows only the current menu item. When it is opened, it shows all items, allowing the user to select one. Rather than requiring the menu item to have a description, require it to have a label. Use the label (only) for the popup menu. With this, most of the drawing and layout logic is complete. 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> |
#
ae45d6cf |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add width and height to objects At present objects only have a position so it is not possible to determine the amount of space they take up on the display. Add width and height properties, using a struct to keep all the dimensions together. For now this is not used. Future work will set up these new properties. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9af34150 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Allow setting the start of the dynamic-ID range Provide a way to set this value so that it is easy to separate the statically allocated IDs (generated by the caller) from those generated dynamically by expo itself. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5904d953 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Rename exp_set_text_mode() Rename this function to match its peers, using the full "expo' prefix. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
42b18494 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Store the console in the expo Rather than finding this each time, keep a pointer to it. This simplifies the code a little. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
def898c4 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Convert to using a string ID for the scene title This is easier to deal with if it uses the existing string handling, since we will be able to use translations, etc. in the future. Update it to use an ID instead of a string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
87c6f8a4 |
|
06-Jan-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add basic implementation An expo is a way of presenting and collecting information from the user. It consists of a collection of 'scenes' of which only one is presented at a time. An expo is typically used to show a boot menu and allow settings to be changed. One created, the same expo can be automatically presented in graphical form using a vidconsole, or in text form on a serial console. Add an initial implementation of the expo itself. Supports for scenes and objects is provided later. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a3a057f8 |
|
08-Sep-2023 |
Massimo Pegorer <massimo.pegorer+oss@gmail.com> |
expo: Fix documentation reference Fix typo: doc/develop/expo.rst instead of doc/developer/expo.rst Signed-off-by: Massimo Pegorer <massimo.pegorer+oss@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
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> |
#
82cafee1 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Support building an expo from a description file The only way to create an expo at present is by calling the functions to create each object. It is useful to have more data-driven approach, where the objects can be specified in a suitable file format and created from that. This makes testing easier as well. Add support for describing an expo in a devicetree node. This allows more complex tests to be set up, as well as providing an easier format for users. It also provides a better basis for the upcoming configuration editor. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4e64beeb |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Implement the keypress logic for popup menus In 'popup' mode, the expo allows moving around the objects in a scene. When 'enter' is pressed on a menu, it opens and the user can move around the items in the menu. Implement this using keypress handles and actions. 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> |
#
3f33b9c7 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Rename EXPOACT_POINT to EXPOACT_POINT_ITEM At present we only support a single menu, so all that can be pointed to is the current menu item. Rename this action so that we can also add an action for pointing to an object. This will allow cycling through the objects in a scene. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d3db0216 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Support drawing of popup menus At present only a single menu is supported. All items are shown and a pointer object points to the current item. Add support for multiple menus, one of which is highlighted, indicated by the highlight_id property in the scene. The highlighted menu item has a SCENEOF_POINT flag, indicating that it is currently pointed to. The popup menu is normally closed, in which case it shows only the current menu item. When it is opened, it shows all items, allowing the user to select one. Rather than requiring the menu item to have a description, require it to have a label. Use the label (only) for the popup menu. With this, most of the drawing and layout logic is complete. 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> |
#
ae45d6cf |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add width and height to objects At present objects only have a position so it is not possible to determine the amount of space they take up on the display. Add width and height properties, using a struct to keep all the dimensions together. For now this is not used. Future work will set up these new properties. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9af34150 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Allow setting the start of the dynamic-ID range Provide a way to set this value so that it is easy to separate the statically allocated IDs (generated by the caller) from those generated dynamically by expo itself. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5904d953 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Rename exp_set_text_mode() Rename this function to match its peers, using the full "expo' prefix. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
42b18494 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Store the console in the expo Rather than finding this each time, keep a pointer to it. This simplifies the code a little. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
def898c4 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Convert to using a string ID for the scene title This is easier to deal with if it uses the existing string handling, since we will be able to use translations, etc. in the future. Update it to use an ID instead of a string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
87c6f8a4 |
|
06-Jan-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add basic implementation An expo is a way of presenting and collecting information from the user. It consists of a collection of 'scenes' of which only one is presented at a time. An expo is typically used to show a boot menu and allow settings to be changed. One created, the same expo can be automatically presented in graphical form using a vidconsole, or in text form on a serial console. Add an initial implementation of the expo itself. Supports for scenes and objects is provided later. 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> |
#
82cafee1 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Support building an expo from a description file The only way to create an expo at present is by calling the functions to create each object. It is useful to have more data-driven approach, where the objects can be specified in a suitable file format and created from that. This makes testing easier as well. Add support for describing an expo in a devicetree node. This allows more complex tests to be set up, as well as providing an easier format for users. It also provides a better basis for the upcoming configuration editor. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4e64beeb |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Implement the keypress logic for popup menus In 'popup' mode, the expo allows moving around the objects in a scene. When 'enter' is pressed on a menu, it opens and the user can move around the items in the menu. Implement this using keypress handles and actions. 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> |
#
3f33b9c7 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Rename EXPOACT_POINT to EXPOACT_POINT_ITEM At present we only support a single menu, so all that can be pointed to is the current menu item. Rename this action so that we can also add an action for pointing to an object. This will allow cycling through the objects in a scene. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d3db0216 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Support drawing of popup menus At present only a single menu is supported. All items are shown and a pointer object points to the current item. Add support for multiple menus, one of which is highlighted, indicated by the highlight_id property in the scene. The highlighted menu item has a SCENEOF_POINT flag, indicating that it is currently pointed to. The popup menu is normally closed, in which case it shows only the current menu item. When it is opened, it shows all items, allowing the user to select one. Rather than requiring the menu item to have a description, require it to have a label. Use the label (only) for the popup menu. With this, most of the drawing and layout logic is complete. 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> |
#
ae45d6cf |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add width and height to objects At present objects only have a position so it is not possible to determine the amount of space they take up on the display. Add width and height properties, using a struct to keep all the dimensions together. For now this is not used. Future work will set up these new properties. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9af34150 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Allow setting the start of the dynamic-ID range Provide a way to set this value so that it is easy to separate the statically allocated IDs (generated by the caller) from those generated dynamically by expo itself. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5904d953 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Rename exp_set_text_mode() Rename this function to match its peers, using the full "expo' prefix. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
42b18494 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Store the console in the expo Rather than finding this each time, keep a pointer to it. This simplifies the code a little. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
def898c4 |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
expo: Convert to using a string ID for the scene title This is easier to deal with if it uses the existing string handling, since we will be able to use translations, etc. in the future. Update it to use an ID instead of a string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
87c6f8a4 |
|
06-Jan-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add basic implementation An expo is a way of presenting and collecting information from the user. It consists of a collection of 'scenes' of which only one is presented at a time. An expo is typically used to show a boot menu and allow settings to be changed. One created, the same expo can be automatically presented in graphical form using a vidconsole, or in text form on a serial console. Add an initial implementation of the expo itself. Supports for scenes and objects is provided later. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
87c6f8a4 |
|
06-Jan-2023 |
Simon Glass <sjg@chromium.org> |
expo: Add basic implementation An expo is a way of presenting and collecting information from the user. It consists of a collection of 'scenes' of which only one is presented at a time. An expo is typically used to show a boot menu and allow settings to be changed. One created, the same expo can be automatically presented in graphical form using a vidconsole, or in text form on a serial console. Add an initial implementation of the expo itself. Supports for scenes and objects is provided later. Signed-off-by: Simon Glass <sjg@chromium.org> |