lv_obj_pos.h
Functions
-
void lv_obj_set_pos(struct _lv_obj_t *obj, lv_coord_t x, lv_coord_t y)
Set the position of an object relative to the set alignment.
Note
With default alignment it's the distance from the top left corner
Note
E.g. LV_ALIGN_CENTER alignment it's the offset from the center of the parent
Note
The position is interpreted on the content area of the parent
Note
The values can be set in pixel or in percentage of parent size with
lv_pct(v)
- Parameters:
obj -- pointer to an object
x -- new x coordinate
y -- new y coordinate
-
void lv_obj_set_x(struct _lv_obj_t *obj, lv_coord_t x)
Set the x coordinate of an object
Note
With default alignment it's the distance from the top left corner
Note
E.g. LV_ALIGN_CENTER alignment it's the offset from the center of the parent
Note
The position is interpreted on the content area of the parent
Note
The values can be set in pixel or in percentage of parent size with
lv_pct(v)
- Parameters:
obj -- pointer to an object
x -- new x coordinate
-
void lv_obj_set_y(struct _lv_obj_t *obj, lv_coord_t y)
Set the y coordinate of an object
Note
With default alignment it's the distance from the top left corner
Note
E.g. LV_ALIGN_CENTER alignment it's the offset from the center of the parent
Note
The position is interpreted on the content area of the parent
Note
The values can be set in pixel or in percentage of parent size with
lv_pct(v)
- Parameters:
obj -- pointer to an object
y -- new y coordinate
-
void lv_obj_set_size(struct _lv_obj_t *obj, lv_coord_t w, lv_coord_t h)
Set the size of an object.
Note
possible values are: pixel simple set the size accordingly LV_SIZE_CONTENT set the size to involve all children in the given direction LV_SIZE_PCT(x) to set size in percentage of the parent's content area size (the size without paddings). x should be in [0..1000]% range
- Parameters:
obj -- pointer to an object
w -- the new width
h -- the new height
-
bool lv_obj_refr_size(struct _lv_obj_t *obj)
Recalculate the size of the object
- Parameters:
obj -- pointer to an object
- Returns:
true: the size has been changed
-
void lv_obj_set_width(struct _lv_obj_t *obj, lv_coord_t w)
Set the width of an object
Note
possible values are: pixel simple set the size accordingly LV_SIZE_CONTENT set the size to involve all children in the given direction lv_pct(x) to set size in percentage of the parent's content area size (the size without paddings). x should be in [0..1000]% range
- Parameters:
obj -- pointer to an object
w -- the new width
-
void lv_obj_set_height(struct _lv_obj_t *obj, lv_coord_t h)
Set the height of an object
Note
possible values are: pixel simple set the size accordingly LV_SIZE_CONTENT set the size to involve all children in the given direction lv_pct(x) to set size in percentage of the parent's content area size (the size without paddings). x should be in [0..1000]% range
- Parameters:
obj -- pointer to an object
h -- the new height
-
void lv_obj_set_content_width(struct _lv_obj_t *obj, lv_coord_t w)
Set the width reduced by the left and right padding and the border width.
- Parameters:
obj -- pointer to an object
w -- the width without paddings in pixels
-
void lv_obj_set_content_height(struct _lv_obj_t *obj, lv_coord_t h)
Set the height reduced by the top and bottom padding and the border width.
- Parameters:
obj -- pointer to an object
h -- the height without paddings in pixels
-
void lv_obj_set_layout(struct _lv_obj_t *obj, uint32_t layout)
Set a layout for an object
- Parameters:
obj -- pointer to an object
layout -- pointer to a layout descriptor to set
-
bool lv_obj_is_layout_positioned(const struct _lv_obj_t *obj)
Test whether the and object is positioned by a layout or not
- Parameters:
obj -- pointer to an object to test
- Returns:
true: positioned by a layout; false: not positioned by a layout
-
void lv_obj_mark_layout_as_dirty(struct _lv_obj_t *obj)
Mark the object for layout update.
- Parameters:
obj -- pointer to an object whose children needs to be updated
-
void lv_obj_update_layout(const struct _lv_obj_t *obj)
Update the layout of an object.
- Parameters:
obj -- pointer to an object whose children needs to be updated
-
void lv_obj_set_align(struct _lv_obj_t *obj, lv_align_t align)
Change the alignment of an object.
- Parameters:
obj -- pointer to an object to align
align -- type of alignment (see 'lv_align_t' enum)
LV_ALIGN_OUT_...
can't be used.
-
void lv_obj_align(struct _lv_obj_t *obj, lv_align_t align, lv_coord_t x_ofs, lv_coord_t y_ofs)
Change the alignment of an object and set new coordinates. Equivalent to: lv_obj_set_align(obj, align); lv_obj_set_pos(obj, x_ofs, y_ofs);
- Parameters:
obj -- pointer to an object to align
align -- type of alignment (see 'lv_align_t' enum)
LV_ALIGN_OUT_...
can't be used.x_ofs -- x coordinate offset after alignment
y_ofs -- y coordinate offset after alignment
-
void lv_obj_align_to(struct _lv_obj_t *obj, const struct _lv_obj_t *base, lv_align_t align, lv_coord_t x_ofs, lv_coord_t y_ofs)
Align an object to an other object.
Note
if the position or size of
base
changesobj
needs to be aligned manually again- Parameters:
obj -- pointer to an object to align
base -- pointer to an other object (if NULL
obj
s parent is used). 'obj' will be aligned to it.align -- type of alignment (see 'lv_align_t' enum)
x_ofs -- x coordinate offset after alignment
y_ofs -- y coordinate offset after alignment
-
static inline void lv_obj_center(struct _lv_obj_t *obj)
Align an object to the center on its parent.
Note
if the parent size changes
obj
needs to be aligned manually again- Parameters:
obj -- pointer to an object to align
-
void lv_obj_get_coords(const struct _lv_obj_t *obj, lv_area_t *coords)
Copy the coordinates of an object to an area
- Parameters:
obj -- pointer to an object
coords -- pointer to an area to store the coordinates
-
lv_coord_t lv_obj_get_x(const struct _lv_obj_t *obj)
Get the x coordinate of object.
Note
The position of the object is recalculated only on the next redraw. To force coordinate recalculation call
lv_obj_update_layout(obj)
.Note
Zero return value means the object is on the left padding of the parent, and not on the left edge.
Note
Scrolling of the parent doesn't change the returned value.
Note
The returned value is always the distance from the parent even if
obj
is positioned by a layout.- Parameters:
obj -- pointer to an object
- Returns:
distance of
obj
from the left side of its parent plus the parent's left padding
-
lv_coord_t lv_obj_get_x2(const struct _lv_obj_t *obj)
Get the x2 coordinate of object.
Note
The position of the object is recalculated only on the next redraw. To force coordinate recalculation call
lv_obj_update_layout(obj)
.Note
Zero return value means the object is on the right padding of the parent, and not on the right edge.
Note
Scrolling of the parent doesn't change the returned value.
Note
The returned value is always the distance from the parent even if
obj
is positioned by a layout.- Parameters:
obj -- pointer to an object
- Returns:
distance of
obj
from the right side of its parent plus the parent's right padding
-
lv_coord_t lv_obj_get_y(const struct _lv_obj_t *obj)
Get the y coordinate of object.
Note
The position of the object is recalculated only on the next redraw. To force coordinate recalculation call
lv_obj_update_layout(obj)
.Note
Zero return value means the object is on the top padding of the parent, and not on the top edge.
Note
Scrolling of the parent doesn't change the returned value.
Note
The returned value is always the distance from the parent even if
obj
is positioned by a layout.- Parameters:
obj -- pointer to an object
- Returns:
distance of
obj
from the top side of its parent plus the parent's top padding
-
lv_coord_t lv_obj_get_y2(const struct _lv_obj_t *obj)
Get the y2 coordinate of object.
Note
The position of the object is recalculated only on the next redraw. To force coordinate recalculation call
lv_obj_update_layout(obj)
.Note
Zero return value means the object is on the bottom padding of the parent, and not on the bottom edge.
Note
Scrolling of the parent doesn't change the returned value.
Note
The returned value is always the distance from the parent even if
obj
is positioned by a layout.- Parameters:
obj -- pointer to an object
- Returns:
distance of
obj
from the bottom side of its parent plus the parent's bottom padding
-
lv_coord_t lv_obj_get_x_aligned(const struct _lv_obj_t *obj)
Get the actually set x coordinate of object, i.e. the offset form the set alignment
- Parameters:
obj -- pointer to an object
- Returns:
the set x coordinate
-
lv_coord_t lv_obj_get_y_aligned(const struct _lv_obj_t *obj)
Get the actually set y coordinate of object, i.e. the offset form the set alignment
- Parameters:
obj -- pointer to an object
- Returns:
the set y coordinate
-
lv_coord_t lv_obj_get_width(const struct _lv_obj_t *obj)
Get the width of an object
Note
The position of the object is recalculated only on the next redraw. To force coordinate recalculation call
lv_obj_update_layout(obj)
.- Parameters:
obj -- pointer to an object
- Returns:
the width in pixels
-
lv_coord_t lv_obj_get_height(const struct _lv_obj_t *obj)
Get the height of an object
Note
The position of the object is recalculated only on the next redraw. To force coordinate recalculation call
lv_obj_update_layout(obj)
.- Parameters:
obj -- pointer to an object
- Returns:
the height in pixels
-
lv_coord_t lv_obj_get_content_width(const struct _lv_obj_t *obj)
Get the width reduced by the left and right padding and the border width.
Note
The position of the object is recalculated only on the next redraw. To force coordinate recalculation call
lv_obj_update_layout(obj)
.- Parameters:
obj -- pointer to an object
- Returns:
the width which still fits into its parent without causing overflow (making the parent scrollable)
-
lv_coord_t lv_obj_get_content_height(const struct _lv_obj_t *obj)
Get the height reduced by the top and bottom padding and the border width.
Note
The position of the object is recalculated only on the next redraw. To force coordinate recalculation call
lv_obj_update_layout(obj)
.- Parameters:
obj -- pointer to an object
- Returns:
the height which still fits into the parent without causing overflow (making the parent scrollable)
-
void lv_obj_get_content_coords(const struct _lv_obj_t *obj, lv_area_t *area)
Get the area reduced by the paddings and the border width.
Note
The position of the object is recalculated only on the next redraw. To force coordinate recalculation call
lv_obj_update_layout(obj)
.- Parameters:
obj -- pointer to an object
area -- the area which still fits into the parent without causing overflow (making the parent scrollable)
-
lv_coord_t lv_obj_get_self_width(const struct _lv_obj_t *obj)
Get the width occupied by the "parts" of the widget. E.g. the width of all columns of a table.
Note
This size independent from the real size of the widget. It just tells how large the internal ("virtual") content is.
- Parameters:
obj -- pointer to an objects
- Returns:
the width of the virtually drawn content
-
lv_coord_t lv_obj_get_self_height(const struct _lv_obj_t *obj)
Get the height occupied by the "parts" of the widget. E.g. the height of all rows of a table.
Note
This size independent from the real size of the widget. It just tells how large the internal ("virtual") content is.
- Parameters:
obj -- pointer to an objects
- Returns:
the width of the virtually drawn content
-
bool lv_obj_refresh_self_size(struct _lv_obj_t *obj)
Handle if the size of the internal ("virtual") content of an object has changed.
- Parameters:
obj -- pointer to an object
- Returns:
false: nothing happened; true: refresh happened
-
void lv_obj_move_to(struct _lv_obj_t *obj, lv_coord_t x, lv_coord_t y)
-
void lv_obj_move_children_by(struct _lv_obj_t *obj, lv_coord_t x_diff, lv_coord_t y_diff, bool ignore_floating)
-
void lv_obj_transform_point(const struct _lv_obj_t *obj, lv_point_t *p, bool recursive, bool inv)
Transform a point using the angle and zoom style properties of an object
- Parameters:
obj -- pointer to an object whose style properties should be used
p -- a point to transform, the result will be written back here too
recursive -- consider the transformation properties of the parents too
inv -- do the inverse of the transformation (-angle and 1/zoom)
-
void lv_obj_get_transformed_area(const struct _lv_obj_t *obj, lv_area_t *area, bool recursive, bool inv)
Transform an area using the angle and zoom style properties of an object
- Parameters:
obj -- pointer to an object whose style properties should be used
area -- an area to transform, the result will be written back here too
recursive -- consider the transformation properties of the parents too
inv -- do the inverse of the transformation (-angle and 1/zoom)
-
void lv_obj_invalidate_area(const struct _lv_obj_t *obj, const lv_area_t *area)
Mark an area of an object as invalid. The area will be truncated to the object's area and marked for redraw.
- Parameters:
obj -- pointer to an object
area -- the area to redraw
-
void lv_obj_invalidate(const struct _lv_obj_t *obj)
Mark the object as invalid to redrawn its area
- Parameters:
obj -- pointer to an object
-
bool lv_obj_area_is_visible(const struct _lv_obj_t *obj, lv_area_t *area)
Tell whether an area of an object is visible (even partially) now or not
- Parameters:
obj -- pointer to an object
area -- the are to check. The visible part of the area will be written back here.
- Returns:
true visible; false not visible (hidden, out of parent, on other screen, etc)
-
bool lv_obj_is_visible(const struct _lv_obj_t *obj)
Tell whether an object is visible (even partially) now or not
- Parameters:
obj -- pointer to an object
- Returns:
true: visible; false not visible (hidden, out of parent, on other screen, etc)
-
void lv_obj_set_ext_click_area(struct _lv_obj_t *obj, lv_coord_t size)
Set the size of an extended clickable area
- Parameters:
obj -- pointer to an object
size -- extended clickable area in all 4 directions [px]
-
void lv_obj_get_click_area(const struct _lv_obj_t *obj, lv_area_t *area)
Get the an area where to object can be clicked. It's the object's normal area plus the extended click area.
- Parameters:
obj -- pointer to an object
area -- store the result area here
-
bool lv_obj_hit_test(struct _lv_obj_t *obj, const lv_point_t *point)
Hit-test an object given a particular point in screen space.
- Parameters:
obj -- object to hit-test
point -- screen-space point (absolute coordinate)
- Returns:
true: if the object is considered under the point
-
lv_coord_t lv_clamp_width(lv_coord_t width, lv_coord_t min_width, lv_coord_t max_width, lv_coord_t ref_width)
Clamp a width between min and max width. If the min/max width is in percentage value use the ref_width
- Parameters:
width -- width to clamp
min_width -- the minimal width
max_width -- the maximal width
ref_width -- the reference width used when min/max width is in percentage
- Returns:
the clamped width
-
lv_coord_t lv_clamp_height(lv_coord_t height, lv_coord_t min_height, lv_coord_t max_height, lv_coord_t ref_height)
Clamp a height between min and max height. If the min/max height is in percentage value use the ref_height
- Parameters:
height -- height to clamp
min_height -- the minimal height
max_height -- the maximal height
ref_height -- the reference height used when min/max height is in percentage
- Returns:
the clamped height