expo: Rename scene_dim to scene_obj_bbox
At present we assume that each object is a simple box and that it fills
the whole box.
This is quite limiting for text objects, which we may want to centre
within the box. We need a position within the box where drawing starts.
Rename the scene_dim struct to indicate that it is a bounding box.
Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/boot/scene.c b/boot/scene.c
index 90b4ccf..a0060c6 100644
--- a/boot/scene.c
+++ b/boot/scene.c
@@ -210,8 +210,8 @@
obj = scene_obj_find(scn, id, SCENEOBJT_NONE);
if (!obj)
return log_msg_ret("find", -ENOENT);
- obj->dim.x = x;
- obj->dim.y = y;
+ obj->bbox.x = x;
+ obj->bbox.y = y;
return 0;
}
@@ -223,8 +223,8 @@
obj = scene_obj_find(scn, id, SCENEOBJT_NONE);
if (!obj)
return log_msg_ret("find", -ENOENT);
- obj->dim.w = w;
- obj->dim.h = h;
+ obj->bbox.w = w;
+ obj->bbox.h = h;
return 0;
}
@@ -368,8 +368,8 @@
struct udevice *cons = text_mode ? NULL : exp->cons;
int x, y, ret;
- x = obj->dim.x;
- y = obj->dim.y;
+ x = obj->bbox.x;
+ y = obj->bbox.y;
switch (obj->type) {
case SCENEOBJT_NONE:
@@ -419,8 +419,8 @@
if (obj->flags & SCENEOF_POINT) {
vidconsole_push_colour(cons, fore, back, &old);
video_fill_part(dev, x - theme->menu_inset, y,
- x + obj->dim.w,
- y + obj->dim.h,
+ x + obj->bbox.w,
+ y + obj->bbox.h,
vid_priv->colour_bg);
}
vidconsole_set_cursor_pos(cons, x, y);
@@ -765,8 +765,8 @@
ret = scene_obj_get_hw(scn, obj->id, &width);
if (ret < 0)
return log_msg_ret("get", ret);
- obj->dim.w = width;
- obj->dim.h = ret;
+ obj->bbox.w = width;
+ obj->bbox.h = ret;
}
break;
}
@@ -915,15 +915,15 @@
if (!obj)
return log_msg_ret("obj", -ENOENT);
if (bbox->valid) {
- bbox->x0 = min(bbox->x0, obj->dim.x - inset);
- bbox->y0 = min(bbox->y0, obj->dim.y);
- bbox->x1 = max(bbox->x1, obj->dim.x + obj->dim.w + inset);
- bbox->y1 = max(bbox->y1, obj->dim.y + obj->dim.h);
+ bbox->x0 = min(bbox->x0, obj->bbox.x - inset);
+ bbox->y0 = min(bbox->y0, obj->bbox.y);
+ bbox->x1 = max(bbox->x1, obj->bbox.x + obj->bbox.w + inset);
+ bbox->y1 = max(bbox->y1, obj->bbox.y + obj->bbox.h);
} else {
- bbox->x0 = obj->dim.x - inset;
- bbox->y0 = obj->dim.y;
- bbox->x1 = obj->dim.x + obj->dim.w + inset;
- bbox->y1 = obj->dim.y + obj->dim.h;
+ bbox->x0 = obj->bbox.x - inset;
+ bbox->y0 = obj->bbox.y;
+ bbox->x1 = obj->bbox.x + obj->bbox.w + inset;
+ bbox->y1 = obj->bbox.y + obj->bbox.h;
bbox->valid = true;
}
diff --git a/boot/scene_menu.c b/boot/scene_menu.c
index 6a2f5b6..20a6a6b 100644
--- a/boot/scene_menu.c
+++ b/boot/scene_menu.c
@@ -102,7 +102,7 @@
label = scene_obj_find(scn, item->label_id, SCENEOBJT_NONE);
ret = scene_obj_set_pos(scn, menu->pointer_id,
- menu->obj.dim.x + 200, label->dim.y);
+ menu->obj.bbox.x + 200, label->bbox.y);
if (ret < 0)
return log_msg_ret("ptr", ret);
}
@@ -186,8 +186,8 @@
}
if (bbox.valid) {
- menu->obj.dim.w = bbox.x1 - bbox.x0;
- menu->obj.dim.h = bbox.y1 - bbox.y0;
+ menu->obj.bbox.w = bbox.x1 - bbox.x0;
+ menu->obj.bbox.h = bbox.y1 - bbox.y0;
}
return 0;
@@ -205,12 +205,12 @@
int x, y;
int ret;
- x = menu->obj.dim.x;
- y = menu->obj.dim.y;
+ x = menu->obj.bbox.x;
+ y = menu->obj.bbox.y;
if (menu->title_id) {
int width;
- ret = scene_obj_set_pos(scn, menu->title_id, menu->obj.dim.x, y);
+ ret = scene_obj_set_pos(scn, menu->title_id, menu->obj.bbox.x, y);
if (ret < 0)
return log_msg_ret("tit", ret);
diff --git a/boot/scene_textline.c b/boot/scene_textline.c
index 90642a3..5b4e21e 100644
--- a/boot/scene_textline.c
+++ b/boot/scene_textline.c
@@ -76,11 +76,11 @@
return log_msg_ret("nom", ret);
if (bbox.valid) {
- tline->obj.dim.w = bbox.x1 - bbox.x0;
- tline->obj.dim.h = bbox.y1 - bbox.y0;
+ tline->obj.bbox.w = bbox.x1 - bbox.x0;
+ tline->obj.bbox.h = bbox.y1 - bbox.y0;
- scene_obj_set_size(scn, tline->edit_id, tline->obj.dim.w,
- tline->obj.dim.h);
+ scene_obj_set_size(scn, tline->edit_id, tline->obj.bbox.w,
+ tline->obj.bbox.h);
}
return 0;
@@ -94,16 +94,16 @@
int x, y;
int ret;
- x = tline->obj.dim.x;
- y = tline->obj.dim.y;
+ x = tline->obj.bbox.x;
+ y = tline->obj.bbox.y;
if (tline->label_id) {
- ret = scene_obj_set_pos(scn, tline->label_id, tline->obj.dim.x,
+ ret = scene_obj_set_pos(scn, tline->label_id, tline->obj.bbox.x,
y);
if (ret < 0)
return log_msg_ret("tit", ret);
ret = scene_obj_set_pos(scn, tline->edit_id,
- tline->obj.dim.x + 200, y);
+ tline->obj.bbox.x + 200, y);
if (ret < 0)
return log_msg_ret("tit", ret);
@@ -197,8 +197,8 @@
if (ret)
return log_msg_ret("sav", ret);
- vidconsole_set_cursor_visible(cons, true, txt->obj.dim.x,
- txt->obj.dim.y, scn->cls.num);
+ vidconsole_set_cursor_visible(cons, true, txt->obj.bbox.x,
+ txt->obj.bbox.y, scn->cls.num);
}
return 0;
@@ -219,7 +219,7 @@
if (!txt)
return log_msg_ret("cur", -ENOENT);
- vidconsole_set_cursor_pos(cons, txt->obj.dim.x, txt->obj.dim.y);
+ vidconsole_set_cursor_pos(cons, txt->obj.bbox.x, txt->obj.bbox.y);
vidconsole_entry_start(cons);
cli_cread_init(&scn->cls, abuf_data(&tline->buf), tline->max_chars);
scn->cls.insert = true;