Lines Matching refs:obj

52 void scene_obj_destroy(struct scene_obj *obj)  in scene_obj_destroy()  argument
54 if (obj->type == SCENEOBJT_MENU) in scene_obj_destroy()
55 scene_menu_destroy((struct scene_obj_menu *)obj); in scene_obj_destroy()
56 free(obj->name); in scene_obj_destroy()
57 free(obj); in scene_obj_destroy()
62 struct scene_obj *obj, *next; in scene_destroy() local
64 list_for_each_entry_safe(obj, next, &scn->obj_head, sibling) in scene_destroy()
65 scene_obj_destroy(obj); in scene_destroy()
80 struct scene_obj *obj; in scene_obj_find() local
82 list_for_each_entry(obj, &scn->obj_head, sibling) { in scene_obj_find()
83 if (obj->id == id && in scene_obj_find()
84 (type == SCENEOBJT_NONE || obj->type == type)) in scene_obj_find()
85 return obj; in scene_obj_find()
93 struct scene_obj *obj; in scene_obj_find_by_name() local
95 list_for_each_entry(obj, &scn->obj_head, sibling) { in scene_obj_find_by_name()
96 if (!strcmp(name, obj->name)) in scene_obj_find_by_name()
97 return obj; in scene_obj_find_by_name()
106 struct scene_obj *obj; in scene_obj_add() local
108 obj = calloc(1, size); in scene_obj_add()
109 if (!obj) in scene_obj_add()
111 obj->name = strdup(name); in scene_obj_add()
112 if (!obj->name) { in scene_obj_add()
113 free(obj); in scene_obj_add()
117 obj->id = resolve_id(scn->expo, id); in scene_obj_add()
118 obj->scene = scn; in scene_obj_add()
119 obj->type = type; in scene_obj_add()
120 list_add_tail(&obj->sibling, &scn->obj_head); in scene_obj_add()
121 *objp = obj; in scene_obj_add()
123 return obj->id; in scene_obj_add()
143 return img->obj.id; in scene_img()
190 return txt->obj.id; in scene_txt()
211 return txt->obj.id; in scene_txt_str()
231 return box->obj.id; in scene_box()
250 struct scene_obj *obj; in scene_obj_set_pos() local
253 obj = scene_obj_find(scn, id, SCENEOBJT_NONE); in scene_obj_set_pos()
254 if (!obj) in scene_obj_set_pos()
256 w = obj->bbox.x1 - obj->bbox.x0; in scene_obj_set_pos()
257 h = obj->bbox.y1 - obj->bbox.y0; in scene_obj_set_pos()
258 obj->bbox.x0 = x; in scene_obj_set_pos()
259 obj->bbox.y0 = y; in scene_obj_set_pos()
260 obj->bbox.x1 = obj->bbox.x0 + w; in scene_obj_set_pos()
261 obj->bbox.y1 = obj->bbox.y0 + h; in scene_obj_set_pos()
268 struct scene_obj *obj; in scene_obj_set_size() local
270 obj = scene_obj_find(scn, id, SCENEOBJT_NONE); in scene_obj_set_size()
271 if (!obj) in scene_obj_set_size()
273 obj->bbox.x1 = obj->bbox.x0 + w; in scene_obj_set_size()
274 obj->bbox.y1 = obj->bbox.y0 + h; in scene_obj_set_size()
275 obj->flags |= SCENEOF_SIZE_VALID; in scene_obj_set_size()
282 struct scene_obj *obj; in scene_obj_set_width() local
284 obj = scene_obj_find(scn, id, SCENEOBJT_NONE); in scene_obj_set_width()
285 if (!obj) in scene_obj_set_width()
287 obj->bbox.x1 = obj->bbox.x0 + w; in scene_obj_set_width()
295 struct scene_obj *obj; in scene_obj_set_bbox() local
297 obj = scene_obj_find(scn, id, SCENEOBJT_NONE); in scene_obj_set_bbox()
298 if (!obj) in scene_obj_set_bbox()
300 obj->bbox.x0 = x0; in scene_obj_set_bbox()
301 obj->bbox.y0 = y0; in scene_obj_set_bbox()
302 obj->bbox.x1 = x1; in scene_obj_set_bbox()
303 obj->bbox.y1 = y1; in scene_obj_set_bbox()
304 obj->flags |= SCENEOF_SIZE_VALID; in scene_obj_set_bbox()
311 struct scene_obj *obj; in scene_obj_set_halign() local
313 obj = scene_obj_find(scn, id, SCENEOBJT_NONE); in scene_obj_set_halign()
314 if (!obj) in scene_obj_set_halign()
316 obj->horiz = aln; in scene_obj_set_halign()
323 struct scene_obj *obj; in scene_obj_set_valign() local
325 obj = scene_obj_find(scn, id, SCENEOBJT_NONE); in scene_obj_set_valign()
326 if (!obj) in scene_obj_set_valign()
328 obj->vert = aln; in scene_obj_set_valign()
347 struct scene_obj *obj; in scene_obj_flag_clrset() local
349 obj = scene_obj_find(scn, id, SCENEOBJT_NONE); in scene_obj_flag_clrset()
350 if (!obj) in scene_obj_flag_clrset()
352 obj->flags &= ~clr; in scene_obj_flag_clrset()
353 obj->flags |= set; in scene_obj_flag_clrset()
403 struct scene_obj *obj; in scene_obj_get_hw() local
405 obj = scene_obj_find(scn, id, SCENEOBJT_NONE); in scene_obj_get_hw()
406 if (!obj) in scene_obj_get_hw()
409 switch (obj->type) { in scene_obj_get_hw()
416 struct scene_obj_img *img = (struct scene_obj_img *)obj; in scene_obj_get_hw()
433 if (obj->type == SCENEOBJT_TEXT) in scene_obj_get_hw()
434 gen = &((struct scene_obj_txt *)obj)->gen; in scene_obj_get_hw()
436 gen = &((struct scene_obj_txtedit *)obj)->gen; in scene_obj_get_hw()
450 limit = obj->flags & SCENEOF_SIZE_VALID ? in scene_obj_get_hw()
451 obj->bbox.x1 - obj->bbox.x0 : -1; in scene_obj_get_hw()
476 static void scene_render_background(struct scene_obj *obj, bool box_only, in scene_render_background() argument
480 struct expo *exp = obj->scene->expo; in scene_render_background()
500 if (scene_obj_calc_bbox(obj, bbox)) in scene_render_background()
519 struct udevice *cons, struct scene_obj *obj, in scene_txt_render() argument
556 if (obj->flags & SCENEOF_POINT) { in scene_txt_render()
562 obj->bbox.x1, obj->bbox.y1, in scene_txt_render()
570 bbox.y0 = obj->bbox.y0; in scene_txt_render()
571 bbox.y1 = obj->bbox.y1; in scene_txt_render()
581 bbox.x0 = obj->bbox.x0; in scene_txt_render()
582 bbox.x1 = obj->bbox.x1; in scene_txt_render()
584 handle_alignment(obj->horiz, obj->vert, &bbox, &dims, in scene_txt_render()
585 obj->bbox.x1 - obj->bbox.x0, in scene_txt_render()
586 obj->bbox.y1 - obj->bbox.y0, &offset); in scene_txt_render()
588 x = obj->bbox.x0 + offset.xofs; in scene_txt_render()
589 y = obj->bbox.y0 + offset.yofs + mline->bbox.y0; in scene_txt_render()
595 if (obj->flags & SCENEOF_POINT) in scene_txt_render()
608 static int scene_obj_render(struct scene_obj *obj, bool text_mode) in scene_obj_render() argument
610 struct scene *scn = obj->scene; in scene_obj_render()
618 y = obj->bbox.y0; in scene_obj_render()
619 x = obj->bbox.x0 + obj->ofs.xofs; in scene_obj_render()
622 switch (obj->type) { in scene_obj_render()
626 struct scene_obj_img *img = (struct scene_obj_img *)obj; in scene_obj_render()
637 struct scene_obj_txt *txt = (struct scene_obj_txt *)obj; in scene_obj_render()
639 ret = scene_txt_render(exp, dev, cons, obj, &txt->gen, x, y, in scene_obj_render()
644 struct scene_obj_menu *menu = (struct scene_obj_menu *)obj; in scene_obj_render()
647 if (obj->flags & SCENEOF_OPEN) { in scene_obj_render()
652 scene_render_background(obj, false, false); in scene_obj_render()
673 if (obj->flags & SCENEOF_OPEN) in scene_obj_render()
674 scene_render_background(obj, true, false); in scene_obj_render()
677 struct scene_obj_box *box = (struct scene_obj_box *)obj; in scene_obj_render()
679 video_draw_box(dev, obj->bbox.x0, obj->bbox.y0, obj->bbox.x1, in scene_obj_render()
680 obj->bbox.y1, box->width, vid_priv->colour_fg); in scene_obj_render()
684 struct scene_obj_txtedit *ted = (struct scene_obj_txtedit *)obj; in scene_obj_render()
686 ret = scene_txt_render(exp, dev, cons, obj, &ted->gen, x, y, in scene_obj_render()
697 struct scene_obj *obj; in scene_calc_arrange() local
700 list_for_each_entry(obj, &scn->obj_head, sibling) { in scene_calc_arrange()
704 switch (obj->type) { in scene_calc_arrange()
714 menu = (struct scene_obj_menu *)obj, in scene_calc_arrange()
721 tline = (struct scene_obj_textline *)obj, in scene_calc_arrange()
744 struct scene_obj *obj; in scene_arrange() local
760 list_for_each_entry(obj, &scn->obj_head, sibling) { in scene_arrange()
761 handle_alignment(obj->horiz, obj->vert, &obj->bbox, &obj->dims, in scene_arrange()
762 xsize, ysize, &obj->ofs); in scene_arrange()
764 switch (obj->type) { in scene_arrange()
774 menu = (struct scene_obj_menu *)obj, in scene_arrange()
783 tline = (struct scene_obj_textline *)obj, in scene_arrange()
797 struct scene_obj *obj; in scene_render_deps() local
802 obj = scene_obj_find(scn, id, SCENEOBJT_NONE); in scene_render_deps()
803 if (!obj) in scene_render_deps()
806 if (!(obj->flags & SCENEOF_HIDE)) { in scene_render_deps()
807 ret = scene_obj_render(obj, false); in scene_render_deps()
811 switch (obj->type) { in scene_render_deps()
820 (struct scene_obj_menu *)obj); in scene_render_deps()
824 (struct scene_obj_textline *)obj); in scene_render_deps()
835 struct scene_obj *obj; in scene_render() local
838 list_for_each_entry(obj, &scn->obj_head, sibling) { in scene_render()
839 if (!(obj->flags & SCENEOF_HIDE)) { in scene_render()
840 ret = scene_obj_render(obj, exp->text_mode); in scene_render()
864 static void send_key_obj(struct scene *scn, struct scene_obj *obj, int key, in send_key_obj() argument
869 while (obj != list_first_entry(&scn->obj_head, struct scene_obj, in send_key_obj()
871 obj = list_entry(obj->sibling.prev, in send_key_obj()
873 if (scene_obj_can_highlight(obj)) { in send_key_obj()
875 event->select.id = obj->id; in send_key_obj()
882 while (!list_is_last(&obj->sibling, &scn->obj_head)) { in send_key_obj()
883 obj = list_entry(obj->sibling.next, struct scene_obj, in send_key_obj()
885 if (scene_obj_can_highlight(obj)) { in send_key_obj()
887 event->select.id = obj->id; in send_key_obj()
894 if (scene_obj_can_highlight(obj)) { in send_key_obj()
896 event->select.id = obj->id; in send_key_obj()
909 struct scene_obj *obj; in scene_send_key() local
919 obj = NULL; in scene_send_key()
921 obj = scene_obj_find(scn, scn->highlight_id, in scene_send_key()
924 if (!obj) in scene_send_key()
927 if (!(obj->flags & SCENEOF_OPEN)) { in scene_send_key()
928 send_key_obj(scn, obj, key, event); in scene_send_key()
932 switch (obj->type) { in scene_send_key()
941 menu = (struct scene_obj_menu *)obj, in scene_send_key()
950 tline = (struct scene_obj_textline *)obj, in scene_send_key()
963 list_for_each_entry(obj, &scn->obj_head, sibling) { in scene_send_key()
964 if (obj->type == SCENEOBJT_MENU) { in scene_send_key()
967 menu = (struct scene_obj_menu *)obj, in scene_send_key()
978 int scene_obj_calc_bbox(struct scene_obj *obj, struct vidconsole_bbox bbox[]) in scene_obj_calc_bbox() argument
980 switch (obj->type) { in scene_obj_calc_bbox()
988 struct scene_obj_menu *menu = (struct scene_obj_menu *)obj; in scene_obj_calc_bbox()
996 tline = (struct scene_obj_textline *)obj; in scene_obj_calc_bbox()
1008 struct scene_obj *obj; in scene_calc_dims() local
1011 list_for_each_entry(obj, &scn->obj_head, sibling) { in scene_calc_dims()
1012 switch (obj->type) { in scene_calc_dims()
1021 ret = scene_obj_get_hw(scn, obj->id, &width); in scene_calc_dims()
1024 obj->dims.x = width; in scene_calc_dims()
1025 obj->dims.y = ret; in scene_calc_dims()
1026 if (!(obj->flags & SCENEOF_SIZE_VALID)) { in scene_calc_dims()
1027 obj->bbox.x1 = obj->bbox.x0 + width; in scene_calc_dims()
1028 obj->bbox.y1 = obj->bbox.y0 + ret; in scene_calc_dims()
1029 obj->flags |= SCENEOF_SIZE_VALID; in scene_calc_dims()
1038 menu = (struct scene_obj_menu *)obj; in scene_calc_dims()
1049 tline = (struct scene_obj_textline *)obj; in scene_calc_dims()
1064 struct scene_obj *obj; in scene_apply_theme() local
1070 list_for_each_entry(obj, &scn->obj_head, sibling) { in scene_apply_theme()
1071 switch (obj->type) { in scene_apply_theme()
1079 scene_txted_set_font(scn, obj->id, NULL, in scene_apply_theme()
1083 scene_txt_set_font(scn, obj->id, NULL, in scene_apply_theme()
1103 struct scene_obj *obj; in scene_highlight_first() local
1105 list_for_each_entry(obj, &scn->obj_head, sibling) { in scene_highlight_first()
1106 if (scene_obj_can_highlight(obj)) { in scene_highlight_first()
1107 scene_set_highlight_id(scn, obj->id); in scene_highlight_first()
1113 static int scene_obj_open(struct scene *scn, struct scene_obj *obj) in scene_obj_open() argument
1117 switch (obj->type) { in scene_obj_open()
1127 (struct scene_obj_textline *)obj); in scene_obj_open()
1138 struct scene_obj *obj; in scene_set_open() local
1141 obj = scene_obj_find(scn, id, SCENEOBJT_NONE); in scene_set_open()
1142 if (!obj) in scene_set_open()
1146 ret = scene_obj_open(scn, obj); in scene_set_open()
1162 struct scene_obj *obj; in scene_iter_objs() local
1164 list_for_each_entry(obj, &scn->obj_head, sibling) { in scene_iter_objs()
1167 ret = iter(obj, priv); in scene_iter_objs()
1197 struct scene_obj *obj; in scene_bbox_union() local
1202 obj = scene_obj_find(scn, id, SCENEOBJT_NONE); in scene_bbox_union()
1203 if (!obj) in scene_bbox_union()
1205 local.x0 = obj->bbox.x0; in scene_bbox_union()
1206 local.y0 = obj->bbox.y0; in scene_bbox_union()
1207 local.x1 = obj->bbox.x1; in scene_bbox_union()
1208 local.y1 = obj->bbox.y1; in scene_bbox_union()