Lines Matching refs:obj

34 static void scroll_x_anim(void * obj, int32_t v);
35 static void scroll_y_anim(void * obj, int32_t v);
56 void lv_obj_set_scrollbar_mode(lv_obj_t * obj, lv_scrollbar_mode_t mode) in lv_obj_set_scrollbar_mode() argument
58 LV_ASSERT_OBJ(obj, MY_CLASS); in lv_obj_set_scrollbar_mode()
60 lv_obj_allocate_spec_attr(obj); in lv_obj_set_scrollbar_mode()
62 if(obj->spec_attr->scrollbar_mode == mode) return; in lv_obj_set_scrollbar_mode()
63 obj->spec_attr->scrollbar_mode = mode; in lv_obj_set_scrollbar_mode()
64 lv_obj_invalidate(obj); in lv_obj_set_scrollbar_mode()
67 void lv_obj_set_scroll_dir(lv_obj_t * obj, lv_dir_t dir) in lv_obj_set_scroll_dir() argument
69 lv_obj_allocate_spec_attr(obj); in lv_obj_set_scroll_dir()
71 if(dir != obj->spec_attr->scroll_dir) { in lv_obj_set_scroll_dir()
72 obj->spec_attr->scroll_dir = dir; in lv_obj_set_scroll_dir()
76 void lv_obj_set_scroll_snap_x(lv_obj_t * obj, lv_scroll_snap_t align) in lv_obj_set_scroll_snap_x() argument
78 lv_obj_allocate_spec_attr(obj); in lv_obj_set_scroll_snap_x()
79 obj->spec_attr->scroll_snap_x = align; in lv_obj_set_scroll_snap_x()
82 void lv_obj_set_scroll_snap_y(lv_obj_t * obj, lv_scroll_snap_t align) in lv_obj_set_scroll_snap_y() argument
84 lv_obj_allocate_spec_attr(obj); in lv_obj_set_scroll_snap_y()
85 obj->spec_attr->scroll_snap_y = align; in lv_obj_set_scroll_snap_y()
92 lv_scrollbar_mode_t lv_obj_get_scrollbar_mode(const lv_obj_t * obj) in lv_obj_get_scrollbar_mode() argument
94 if(obj->spec_attr) return obj->spec_attr->scrollbar_mode; in lv_obj_get_scrollbar_mode()
98 lv_dir_t lv_obj_get_scroll_dir(const lv_obj_t * obj) in lv_obj_get_scroll_dir() argument
100 if(obj->spec_attr) return obj->spec_attr->scroll_dir; in lv_obj_get_scroll_dir()
104 lv_scroll_snap_t lv_obj_get_scroll_snap_x(const lv_obj_t * obj) in lv_obj_get_scroll_snap_x() argument
106 if(obj->spec_attr) return obj->spec_attr->scroll_snap_x; in lv_obj_get_scroll_snap_x()
110 lv_scroll_snap_t lv_obj_get_scroll_snap_y(const lv_obj_t * obj) in lv_obj_get_scroll_snap_y() argument
112 if(obj->spec_attr) return obj->spec_attr->scroll_snap_y; in lv_obj_get_scroll_snap_y()
116 lv_coord_t lv_obj_get_scroll_x(const lv_obj_t * obj) in lv_obj_get_scroll_x() argument
118 if(obj->spec_attr == NULL) return 0; in lv_obj_get_scroll_x()
119 return -obj->spec_attr->scroll.x; in lv_obj_get_scroll_x()
122 lv_coord_t lv_obj_get_scroll_y(const lv_obj_t * obj) in lv_obj_get_scroll_y() argument
124 if(obj->spec_attr == NULL) return 0; in lv_obj_get_scroll_y()
125 return -obj->spec_attr->scroll.y; in lv_obj_get_scroll_y()
128 lv_coord_t lv_obj_get_scroll_top(lv_obj_t * obj) in lv_obj_get_scroll_top() argument
130 if(obj->spec_attr == NULL) return 0; in lv_obj_get_scroll_top()
131 return -obj->spec_attr->scroll.y; in lv_obj_get_scroll_top()
134 lv_coord_t lv_obj_get_scroll_bottom(lv_obj_t * obj) in lv_obj_get_scroll_bottom() argument
136 LV_ASSERT_OBJ(obj, MY_CLASS); in lv_obj_get_scroll_bottom()
140 uint32_t child_cnt = lv_obj_get_child_cnt(obj); in lv_obj_get_scroll_bottom()
142 lv_obj_t * child = obj->spec_attr->children[i]; in lv_obj_get_scroll_bottom()
147 lv_coord_t pad_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); in lv_obj_get_scroll_bottom()
148 lv_coord_t pad_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); in lv_obj_get_scroll_bottom()
149 lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); in lv_obj_get_scroll_bottom()
152 child_res -= (obj->coords.y2 - pad_bottom - border_width); in lv_obj_get_scroll_bottom()
155 lv_coord_t self_h = lv_obj_get_self_height(obj); in lv_obj_get_scroll_bottom()
156 self_h = self_h - (lv_obj_get_height(obj) - pad_top - pad_bottom - 2 * border_width); in lv_obj_get_scroll_bottom()
157 self_h -= lv_obj_get_scroll_y(obj); in lv_obj_get_scroll_bottom()
161 lv_coord_t lv_obj_get_scroll_left(lv_obj_t * obj) in lv_obj_get_scroll_left() argument
163 LV_ASSERT_OBJ(obj, MY_CLASS); in lv_obj_get_scroll_left()
167 if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) != LV_BASE_DIR_RTL) { in lv_obj_get_scroll_left()
168 if(obj->spec_attr == NULL) return 0; in lv_obj_get_scroll_left()
169 return -obj->spec_attr->scroll.x; in lv_obj_get_scroll_left()
173 lv_coord_t pad_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); in lv_obj_get_scroll_left()
174 lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); in lv_obj_get_scroll_left()
175 lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); in lv_obj_get_scroll_left()
181 uint32_t child_cnt = lv_obj_get_child_cnt(obj); in lv_obj_get_scroll_left()
183 lv_obj_t * child = obj->spec_attr->children[i]; in lv_obj_get_scroll_left()
191 child_res = (obj->coords.x1 + pad_left + border_width) - child_res; in lv_obj_get_scroll_left()
197 lv_coord_t self_w = lv_obj_get_self_width(obj); in lv_obj_get_scroll_left()
198 self_w = self_w - (lv_obj_get_width(obj) - pad_right - pad_left - 2 * border_width); in lv_obj_get_scroll_left()
199 self_w += lv_obj_get_scroll_x(obj); in lv_obj_get_scroll_left()
204 lv_coord_t lv_obj_get_scroll_right(lv_obj_t * obj) in lv_obj_get_scroll_right() argument
206 LV_ASSERT_OBJ(obj, MY_CLASS); in lv_obj_get_scroll_right()
210 if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) == LV_BASE_DIR_RTL) { in lv_obj_get_scroll_right()
211 if(obj->spec_attr == NULL) return 0; in lv_obj_get_scroll_right()
212 return obj->spec_attr->scroll.x; in lv_obj_get_scroll_right()
218 uint32_t child_cnt = lv_obj_get_child_cnt(obj); in lv_obj_get_scroll_right()
220 lv_obj_t * child = obj->spec_attr->children[i]; in lv_obj_get_scroll_right()
225 lv_coord_t pad_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); in lv_obj_get_scroll_right()
226 lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); in lv_obj_get_scroll_right()
227 lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); in lv_obj_get_scroll_right()
230 child_res -= (obj->coords.x2 - pad_right - border_width); in lv_obj_get_scroll_right()
234 self_w = lv_obj_get_self_width(obj); in lv_obj_get_scroll_right()
235 self_w = self_w - (lv_obj_get_width(obj) - pad_right - pad_left - 2 * border_width); in lv_obj_get_scroll_right()
236 self_w -= lv_obj_get_scroll_x(obj); in lv_obj_get_scroll_right()
240 void lv_obj_get_scroll_end(struct _lv_obj_t * obj, lv_point_t * end) in lv_obj_get_scroll_end() argument
243 a = lv_anim_get(obj, scroll_x_anim); in lv_obj_get_scroll_end()
244 end->x = a ? -a->end_value : lv_obj_get_scroll_x(obj); in lv_obj_get_scroll_end()
246 a = lv_anim_get(obj, scroll_y_anim); in lv_obj_get_scroll_end()
247 end->y = a ? -a->end_value : lv_obj_get_scroll_y(obj); in lv_obj_get_scroll_end()
254 void lv_obj_scroll_by_bounded(lv_obj_t * obj, lv_coord_t dx, lv_coord_t dy, lv_anim_enable_t anim_e… in lv_obj_scroll_by_bounded() argument
259 lv_obj_update_layout(obj); in lv_obj_scroll_by_bounded()
262 lv_coord_t x_current = -lv_obj_get_scroll_x(obj); in lv_obj_scroll_by_bounded()
265 if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) != LV_BASE_DIR_RTL) { in lv_obj_scroll_by_bounded()
268 lv_coord_t scroll_max = lv_obj_get_scroll_left(obj) + lv_obj_get_scroll_right(obj); in lv_obj_scroll_by_bounded()
277 lv_coord_t scroll_max = lv_obj_get_scroll_left(obj) + lv_obj_get_scroll_right(obj); in lv_obj_scroll_by_bounded()
285 lv_coord_t y_current = -lv_obj_get_scroll_y(obj); in lv_obj_scroll_by_bounded()
290 lv_coord_t scroll_max = lv_obj_get_scroll_top(obj) + lv_obj_get_scroll_bottom(obj); in lv_obj_scroll_by_bounded()
298 lv_obj_scroll_by(obj, dx, dy, anim_en); in lv_obj_scroll_by_bounded()
302 void lv_obj_scroll_by(lv_obj_t * obj, lv_coord_t dx, lv_coord_t dy, lv_anim_enable_t anim_en) in lv_obj_scroll_by() argument
306 lv_disp_t * d = lv_obj_get_disp(obj); in lv_obj_scroll_by()
309 lv_anim_set_var(&a, obj); in lv_obj_scroll_by()
317 lv_coord_t sx = lv_obj_get_scroll_x(obj); in lv_obj_scroll_by()
323 res = lv_event_send(obj, LV_EVENT_SCROLL_BEGIN, &a); in lv_obj_scroll_by()
333 lv_coord_t sy = lv_obj_get_scroll_y(obj); in lv_obj_scroll_by()
339 res = lv_event_send(obj, LV_EVENT_SCROLL_BEGIN, &a); in lv_obj_scroll_by()
346 lv_anim_del(obj, scroll_y_anim); in lv_obj_scroll_by()
347 lv_anim_del(obj, scroll_x_anim); in lv_obj_scroll_by()
350 res = lv_event_send(obj, LV_EVENT_SCROLL_BEGIN, NULL); in lv_obj_scroll_by()
353 res = _lv_obj_scroll_by_raw(obj, dx, dy); in lv_obj_scroll_by()
356 res = lv_event_send(obj, LV_EVENT_SCROLL_END, NULL); in lv_obj_scroll_by()
361 void lv_obj_scroll_to(lv_obj_t * obj, lv_coord_t x, lv_coord_t y, lv_anim_enable_t anim_en) in lv_obj_scroll_to() argument
363 lv_obj_scroll_to_x(obj, x, anim_en); in lv_obj_scroll_to()
364 lv_obj_scroll_to_y(obj, y, anim_en); in lv_obj_scroll_to()
367 void lv_obj_scroll_to_x(lv_obj_t * obj, lv_coord_t x, lv_anim_enable_t anim_en) in lv_obj_scroll_to_x() argument
369 lv_anim_del(obj, scroll_x_anim); in lv_obj_scroll_to_x()
371 lv_coord_t scroll_x = lv_obj_get_scroll_x(obj); in lv_obj_scroll_to_x()
374 lv_obj_scroll_by_bounded(obj, diff, 0, anim_en); in lv_obj_scroll_to_x()
377 void lv_obj_scroll_to_y(lv_obj_t * obj, lv_coord_t y, lv_anim_enable_t anim_en) in lv_obj_scroll_to_y() argument
379 lv_anim_del(obj, scroll_y_anim); in lv_obj_scroll_to_y()
381 lv_coord_t scroll_y = lv_obj_get_scroll_y(obj); in lv_obj_scroll_to_y()
384 lv_obj_scroll_by_bounded(obj, 0, diff, anim_en); in lv_obj_scroll_to_y()
387 void lv_obj_scroll_to_view(lv_obj_t * obj, lv_anim_enable_t anim_en) in lv_obj_scroll_to_view() argument
390 lv_obj_update_layout(obj); in lv_obj_scroll_to_view()
393 scroll_area_into_view(&obj->coords, obj, &p, anim_en); in lv_obj_scroll_to_view()
396 void lv_obj_scroll_to_view_recursive(lv_obj_t * obj, lv_anim_enable_t anim_en) in lv_obj_scroll_to_view_recursive() argument
399 lv_obj_update_layout(obj); in lv_obj_scroll_to_view_recursive()
402 lv_obj_t * child = obj; in lv_obj_scroll_to_view_recursive()
405 scroll_area_into_view(&obj->coords, child, &p, anim_en); in lv_obj_scroll_to_view_recursive()
411 lv_res_t _lv_obj_scroll_by_raw(lv_obj_t * obj, lv_coord_t x, lv_coord_t y) in _lv_obj_scroll_by_raw() argument
415 lv_obj_allocate_spec_attr(obj); in _lv_obj_scroll_by_raw()
417 obj->spec_attr->scroll.x += x; in _lv_obj_scroll_by_raw()
418 obj->spec_attr->scroll.y += y; in _lv_obj_scroll_by_raw()
420 lv_obj_move_children_by(obj, x, y, true); in _lv_obj_scroll_by_raw()
421 lv_res_t res = lv_event_send(obj, LV_EVENT_SCROLL, NULL); in _lv_obj_scroll_by_raw()
423 lv_obj_invalidate(obj); in _lv_obj_scroll_by_raw()
427 bool lv_obj_is_scrolling(const lv_obj_t * obj) in lv_obj_is_scrolling() argument
431 if(lv_indev_get_scroll_obj(indev) == obj) return true; in lv_obj_is_scrolling()
438 void lv_obj_update_snap(lv_obj_t * obj, lv_anim_enable_t anim_en) in lv_obj_update_snap() argument
440 lv_obj_update_layout(obj); in lv_obj_update_snap()
442 lv_indev_scroll_get_snap_dist(obj, &p); in lv_obj_update_snap()
443 lv_obj_scroll_by(obj, p.x, p.y, anim_en); in lv_obj_update_snap()
446 void lv_obj_get_scrollbar_area(lv_obj_t * obj, lv_area_t * hor_area, lv_area_t * ver_area) in lv_obj_get_scrollbar_area() argument
451 if(lv_obj_has_flag(obj, LV_OBJ_FLAG_SCROLLABLE) == false) return; in lv_obj_get_scrollbar_area()
453 lv_dir_t sm = lv_obj_get_scrollbar_mode(obj); in lv_obj_get_scrollbar_area()
460 if(lv_indev_get_scroll_obj(indev) == obj) break; in lv_obj_get_scrollbar_area()
466 lv_coord_t st = lv_obj_get_scroll_top(obj); in lv_obj_get_scrollbar_area()
467 lv_coord_t sb = lv_obj_get_scroll_bottom(obj); in lv_obj_get_scrollbar_area()
468 lv_coord_t sl = lv_obj_get_scroll_left(obj); in lv_obj_get_scrollbar_area()
469 lv_coord_t sr = lv_obj_get_scroll_right(obj); in lv_obj_get_scrollbar_area()
471 lv_dir_t dir = lv_obj_get_scroll_dir(obj); in lv_obj_get_scrollbar_area()
491 bool rtl = lv_obj_get_style_base_dir(obj, LV_PART_SCROLLBAR) == LV_BASE_DIR_RTL ? true : false; in lv_obj_get_scrollbar_area()
493 lv_coord_t top_space = lv_obj_get_style_pad_top(obj, LV_PART_SCROLLBAR); in lv_obj_get_scrollbar_area()
494 lv_coord_t bottom_space = lv_obj_get_style_pad_bottom(obj, LV_PART_SCROLLBAR); in lv_obj_get_scrollbar_area()
495 lv_coord_t left_space = lv_obj_get_style_pad_left(obj, LV_PART_SCROLLBAR); in lv_obj_get_scrollbar_area()
496 lv_coord_t right_space = lv_obj_get_style_pad_right(obj, LV_PART_SCROLLBAR); in lv_obj_get_scrollbar_area()
497 lv_coord_t tickness = lv_obj_get_style_width(obj, LV_PART_SCROLLBAR); in lv_obj_get_scrollbar_area()
499 lv_coord_t obj_h = lv_obj_get_height(obj); in lv_obj_get_scrollbar_area()
500 lv_coord_t obj_w = lv_obj_get_width(obj); in lv_obj_get_scrollbar_area()
507 if(lv_obj_get_style_bg_opa(obj, LV_PART_SCROLLBAR) < LV_OPA_MIN && in lv_obj_get_scrollbar_area()
508 lv_obj_get_style_border_opa(obj, LV_PART_SCROLLBAR) < LV_OPA_MIN) { in lv_obj_get_scrollbar_area()
515 ver_area->y1 = obj->coords.y1; in lv_obj_get_scrollbar_area()
516 ver_area->y2 = obj->coords.y2; in lv_obj_get_scrollbar_area()
518 ver_area->x1 = obj->coords.x1 + left_space; in lv_obj_get_scrollbar_area()
522 ver_area->x2 = obj->coords.x2 - right_space; in lv_obj_get_scrollbar_area()
532 ver_area->y1 = obj->coords.y1 + top_space; in lv_obj_get_scrollbar_area()
533 ver_area->y2 = obj->coords.y2 - bottom_space - hor_req_space - 1; in lv_obj_get_scrollbar_area()
539 ver_area->y1 = obj->coords.y1 + sb_y + top_space; in lv_obj_get_scrollbar_area()
541 if(ver_area->y1 < obj->coords.y1 + top_space) { in lv_obj_get_scrollbar_area()
542 ver_area->y1 = obj->coords.y1 + top_space; in lv_obj_get_scrollbar_area()
547 if(ver_area->y2 > obj->coords.y2 - hor_req_space - bottom_space) { in lv_obj_get_scrollbar_area()
548 ver_area->y2 = obj->coords.y2 - hor_req_space - bottom_space; in lv_obj_get_scrollbar_area()
559 hor_area->y2 = obj->coords.y2 - bottom_space; in lv_obj_get_scrollbar_area()
561 hor_area->x1 = obj->coords.x1; in lv_obj_get_scrollbar_area()
562 hor_area->x2 = obj->coords.x2; in lv_obj_get_scrollbar_area()
571 hor_area->x1 = obj->coords.x1 + left_space + ver_reg_space - 1; in lv_obj_get_scrollbar_area()
572 hor_area->x2 = obj->coords.x2 - right_space; in lv_obj_get_scrollbar_area()
575 hor_area->x1 = obj->coords.x1 + left_space; in lv_obj_get_scrollbar_area()
576 hor_area->x2 = obj->coords.x2 - right_space - ver_reg_space - 1; in lv_obj_get_scrollbar_area()
584 hor_area->x1 = obj->coords.x1 + sb_x + left_space + ver_reg_space; in lv_obj_get_scrollbar_area()
586 if(hor_area->x1 < obj->coords.x1 + left_space + ver_reg_space) { in lv_obj_get_scrollbar_area()
587 hor_area->x1 = obj->coords.x1 + left_space + ver_reg_space; in lv_obj_get_scrollbar_area()
592 if(hor_area->x2 > obj->coords.x2 - right_space) { in lv_obj_get_scrollbar_area()
593 hor_area->x2 = obj->coords.x2 - right_space; in lv_obj_get_scrollbar_area()
600 hor_area->x1 = obj->coords.x1 + sb_x + left_space; in lv_obj_get_scrollbar_area()
602 if(hor_area->x1 < obj->coords.x1 + left_space) { in lv_obj_get_scrollbar_area()
603 hor_area->x1 = obj->coords.x1 + left_space; in lv_obj_get_scrollbar_area()
608 if(hor_area->x2 > obj->coords.x2 - ver_reg_space - right_space) { in lv_obj_get_scrollbar_area()
609 hor_area->x2 = obj->coords.x2 - ver_reg_space - right_space; in lv_obj_get_scrollbar_area()
619 void lv_obj_scrollbar_invalidate(lv_obj_t * obj) in lv_obj_scrollbar_invalidate() argument
623 lv_obj_get_scrollbar_area(obj, &hor_area, &ver_area); in lv_obj_scrollbar_invalidate()
627 if(lv_area_get_size(&hor_area) > 0) lv_obj_invalidate_area(obj, &hor_area); in lv_obj_scrollbar_invalidate()
628 if(lv_area_get_size(&ver_area) > 0) lv_obj_invalidate_area(obj, &ver_area); in lv_obj_scrollbar_invalidate()
631 void lv_obj_readjust_scroll(lv_obj_t * obj, lv_anim_enable_t anim_en) in lv_obj_readjust_scroll() argument
635 if(lv_obj_get_scroll_snap_y(obj) == LV_SCROLL_SNAP_NONE) { in lv_obj_readjust_scroll()
636 lv_coord_t st = lv_obj_get_scroll_top(obj); in lv_obj_readjust_scroll()
637 lv_coord_t sb = lv_obj_get_scroll_bottom(obj); in lv_obj_readjust_scroll()
640 lv_obj_scroll_by(obj, 0, sb, anim_en); in lv_obj_readjust_scroll()
644 if(lv_obj_get_scroll_snap_x(obj) == LV_SCROLL_SNAP_NONE) { in lv_obj_readjust_scroll()
645 lv_coord_t sl = lv_obj_get_scroll_left(obj); in lv_obj_readjust_scroll()
646 lv_coord_t sr = lv_obj_get_scroll_right(obj); in lv_obj_readjust_scroll()
647 if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) != LV_BASE_DIR_RTL) { in lv_obj_readjust_scroll()
651 lv_obj_scroll_by(obj, sr, 0, anim_en); in lv_obj_readjust_scroll()
658 lv_obj_scroll_by(obj, sl, 0, anim_en); in lv_obj_readjust_scroll()
668 static void scroll_x_anim(void * obj, int32_t v) in scroll_x_anim() argument
670 _lv_obj_scroll_by_raw(obj, v + lv_obj_get_scroll_x(obj), 0); in scroll_x_anim()
673 static void scroll_y_anim(void * obj, int32_t v) in scroll_y_anim() argument
675 _lv_obj_scroll_by_raw(obj, 0, v + lv_obj_get_scroll_y(obj)); in scroll_y_anim()