mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 13:43:28 +00:00
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>
This commit is contained in:
parent
4db7519032
commit
93c901bc7d
3 changed files with 55 additions and 6 deletions
34
boot/scene.c
34
boot/scene.c
|
@ -759,10 +759,42 @@ void scene_highlight_first(struct scene *scn)
|
|||
}
|
||||
}
|
||||
|
||||
int scene_set_open(struct scene *scn, uint id, bool open)
|
||||
static int scene_obj_open(struct scene *scn, struct scene_obj *obj)
|
||||
{
|
||||
int ret;
|
||||
|
||||
switch (obj->type) {
|
||||
case SCENEOBJT_NONE:
|
||||
case SCENEOBJT_IMAGE:
|
||||
case SCENEOBJT_MENU:
|
||||
case SCENEOBJT_TEXT:
|
||||
break;
|
||||
case SCENEOBJT_TEXTLINE:
|
||||
ret = scene_textline_open(scn,
|
||||
(struct scene_obj_textline *)obj);
|
||||
if (ret)
|
||||
return log_msg_ret("op", ret);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int scene_set_open(struct scene *scn, uint id, bool open)
|
||||
{
|
||||
struct scene_obj *obj;
|
||||
int ret;
|
||||
|
||||
obj = scene_obj_find(scn, id, SCENEOBJT_NONE);
|
||||
if (!obj)
|
||||
return log_msg_ret("find", -ENOENT);
|
||||
|
||||
if (open) {
|
||||
ret = scene_obj_open(scn, obj);
|
||||
if (ret)
|
||||
return log_msg_ret("op", ret);
|
||||
}
|
||||
|
||||
ret = scene_obj_flag_clrset(scn, id, SCENEOF_OPEN,
|
||||
open ? SCENEOF_OPEN : 0);
|
||||
if (ret)
|
||||
|
|
|
@ -278,4 +278,26 @@ void scene_menu_calc_bbox(struct scene_obj_menu *menu,
|
|||
int scene_obj_calc_bbox(struct scene_obj *obj, struct vidconsole_bbox *bbox,
|
||||
struct vidconsole_bbox *label_bbox);
|
||||
|
||||
/**
|
||||
* scene_textline_open() - Open a textline object
|
||||
*
|
||||
* Set up the text editor ready for use
|
||||
*
|
||||
* @scn: Scene containing the textline
|
||||
* @tline: textline object
|
||||
* Return: 0 if OK, -ve on error
|
||||
*/
|
||||
int scene_textline_open(struct scene *scn, struct scene_obj_textline *tline);
|
||||
|
||||
/**
|
||||
* scene_textline_close() - Close a textline object
|
||||
*
|
||||
* Close out the text editor after use
|
||||
*
|
||||
* @scn: Scene containing the textline
|
||||
* @tline: textline object
|
||||
* Return: 0 if OK, -ve on error
|
||||
*/
|
||||
int scene_textline_close(struct scene *scn, struct scene_obj_textline *tline);
|
||||
|
||||
#endif /* __SCENE_INTERNAL_H */
|
||||
|
|
|
@ -227,8 +227,3 @@ int scene_textline_open(struct scene *scn, struct scene_obj_textline *tline)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int scene_textline_close(struct scene *scn, struct scene_obj_textline *tline)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue