lv_obj_pos.h
Enums
-
enum lv_obj_point_transform_flag_t
Values:
-
enumerator LV_OBJ_POINT_TRANSFORM_FLAG_NONE
No flags
-
enumerator LV_OBJ_POINT_TRANSFORM_FLAG_RECURSIVE
Consider the transformation properties of the parents too
-
enumerator LV_OBJ_POINT_TRANSFORM_FLAG_INVERSE
Execute the inverse of the transformation (-angle and 1/zoom)
-
enumerator LV_OBJ_POINT_TRANSFORM_FLAG_INVERSE_RECURSIVE
Both inverse and recursive
-
enumerator LV_OBJ_POINT_TRANSFORM_FLAG_NONE
Functions
-
void lv_obj_set_pos(lv_obj_t *obj, int32_t x, int32_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(lv_obj_t *obj, int32_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(lv_obj_t *obj, int32_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(lv_obj_t *obj, int32_t w, int32_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_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(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(lv_obj_t *obj, int32_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(lv_obj_t *obj, int32_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(lv_obj_t *obj, int32_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(lv_obj_t *obj, int32_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(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 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(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 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(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(lv_obj_t *obj, lv_align_t align, int32_t x_ofs, int32_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(lv_obj_t *obj, const lv_obj_t *base, lv_align_t align, int32_t x_ofs, int32_t y_ofs)
Align an object to another 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 another 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
-
void lv_obj_center(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 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
-
int32_t lv_obj_get_x(const 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
-
int32_t lv_obj_get_x2(const 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
-
int32_t lv_obj_get_y(const 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
-
int32_t lv_obj_get_y2(const 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
-
int32_t lv_obj_get_x_aligned(const lv_obj_t *obj)
Get the actually set x coordinate of object, i.e. the offset from the set alignment
- Parameters:
obj -- pointer to an object
- Returns:
the set x coordinate
-
int32_t lv_obj_get_y_aligned(const lv_obj_t *obj)
Get the actually set y coordinate of object, i.e. the offset from the set alignment
- Parameters:
obj -- pointer to an object
- Returns:
the set y coordinate
-
int32_t lv_obj_get_width(const 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
-
int32_t lv_obj_get_height(const 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
-
int32_t lv_obj_get_content_width(const 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)
-
int32_t lv_obj_get_content_height(const 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 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)
-
int32_t lv_obj_get_self_width(const 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
-
int32_t lv_obj_get_self_height(const 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(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_transform_point(const lv_obj_t *obj, lv_point_t *p, lv_obj_point_transform_flag_t flags)
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
flags -- OR-ed valued of :cpp:enum:
lv_obj_point_transform_flag_t
-
void lv_obj_transform_point_array(const lv_obj_t *obj, lv_point_t points[], size_t count, lv_obj_point_transform_flag_t flags)
Transform an array of points using the angle and zoom style properties of an object
- Parameters:
obj -- pointer to an object whose style properties should be used
points -- the array of points to transform, the result will be written back here too
count -- number of points in the array
flags -- OR-ed valued of :cpp:enum:
lv_obj_point_transform_flag_t
-
void lv_obj_get_transformed_area(const lv_obj_t *obj, lv_area_t *area, lv_obj_point_transform_flag_t flags)
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
flags -- OR-ed valued of :cpp:enum:
lv_obj_point_transform_flag_t
-
void lv_obj_invalidate_area(const 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 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 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 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(lv_obj_t *obj, int32_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 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(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
-
int32_t lv_clamp_width(int32_t width, int32_t min_width, int32_t max_width, int32_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
-
int32_t lv_clamp_height(int32_t height, int32_t min_height, int32_t max_height, int32_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