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;
|
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,
|
ret = scene_obj_flag_clrset(scn, id, SCENEOF_OPEN,
|
||||||
open ? SCENEOF_OPEN : 0);
|
open ? SCENEOF_OPEN : 0);
|
||||||
if (ret)
|
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,
|
int scene_obj_calc_bbox(struct scene_obj *obj, struct vidconsole_bbox *bbox,
|
||||||
struct vidconsole_bbox *label_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 */
|
#endif /* __SCENE_INTERNAL_H */
|
||||||
|
|
|
@ -227,8 +227,3 @@ int scene_textline_open(struct scene *scn, struct scene_obj_textline *tline)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int scene_textline_close(struct scene *scn, struct scene_obj_textline *tline)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue