lv_obj_property.h

API reference for lv_obj_property.h

Report on GitHub

Functions

lv_obj_set_property

Set Widget property.

 
lv_result_t lv_obj_set_property(lv_obj_t *obj, const lv_property_t *value)
Parameters
NameTypeDescription
objlv_obj_t *pointer to Widget
valueconst lv_property_t *property value to set

Returns: lv_result_t — return LV_RESULT_OK if call succeeded

lv_obj_set_properties

Set multiple Widget properties. Helper LV_OBJ_SET_PROPERTY_ARRAY can be used for constant property array.

 
lv_result_t lv_obj_set_properties(lv_obj_t *obj, const lv_property_t *value, uint32_t count)
Parameters
NameTypeDescription
objlv_obj_t *pointer to Widget
valueconst lv_property_t *property value array to set
countuint32_tnumber of array elements

Returns: lv_result_t — return LV_RESULT_OK if call succeeded

Enums

_lv_prop_id_range_boundary_t

Group of predefined widget ID start value.

NameValue
LV_PROPERTY_ID_INVALID0
LV_PROPERTY_STYLE_START0x00
LV_PROPERTY_ID_START0x0100
LV_PROPERTY_OBJ_START0x0100
LV_PROPERTY_IMAGE_START0x0200
LV_PROPERTY_LABEL_START0x0300
LV_PROPERTY_KEYBOARD_START0x0400
LV_PROPERTY_TEXTAREA_START0x0500
LV_PROPERTY_ROLLER_START0x0600
LV_PROPERTY_DROPDOWN_START0x0700
LV_PROPERTY_SLIDER_START0x0800
LV_PROPERTY_ANIMIMAGE_START0x0900
LV_PROPERTY_ARC_START0x0a00
LV_PROPERTY_BAR_START0x0b00
LV_PROPERTY_SWITCH_START0x0c00
LV_PROPERTY_CHECKBOX_START0x0d00
LV_PROPERTY_LED_START0x0e00
LV_PROPERTY_LINE_START0x0f00
LV_PROPERTY_SCALE_START0x1000
LV_PROPERTY_SPINBOX_START0x1100
LV_PROPERTY_SPINNER_START0x1200
LV_PROPERTY_TABLE_START0x1300
LV_PROPERTY_TABVIEW_START0x1400
LV_PROPERTY_BUTTONMATRIX_START0x1500
LV_PROPERTY_SPAN_START0x1600
LV_PROPERTY_MENU_START0x1700
LV_PROPERTY_CHART_START0x1800
LV_PROPERTY_ID_BUILTIN_LAST0xffff
LV_PROPERTY_ID_ANY0x7ffffffe

Structs

struct

_lv_property_name_t

MemberTypeDescription
nameconst char *
idlv_prop_id_t
struct

lv_property_t

MemberTypeDescription
idlv_prop_id_t
numint32_tSigned integer number (enums or "normal" numbers)
num_uuint32_tUnsigned integer number (opacity, Booleans) <br/>
enableboolBooleans
ptrconst void *Constant pointers (font, cone text, etc.)
colorlv_color_tColors
preciselv_value_precise_tfloat or int for precise value
pointlv_point_tPoint, contains two int32_t
stylelv_style_value_tNote that place struct member style at first place is intended. style shares same memory with num, ptr, color. So we set the style value directly without using prop.style.num.

E.g.

static const lv_property_t obj_pos_x = { .id = LV_PROPERTY_STYLE_X, .num = 123, .selector = LV_STATE_PRESSED, }

instead of: static const lv_property_t obj_pos_x = { .id = LV_PROPERTY_STYLE_X, .style.num = 123, // note this line. .selector = LV_STATE_PRESSED, } Make sure it's the first element in struct.
selectoruint32_tStyle selector, lv_part_t | lv_state_t
arg1union lv_property_t
arg2union lv_property_t
``union lv_property_t
Used by 2 functions
  • lv_obj_set_property — param value
  • lv_obj_set_properties — param value
struct

lv_property_ops_t

MemberTypeDescription
idlv_prop_id_t
settervoid *Callback used to set property.
gettervoid *Callback used to get property.

Macros

LV_PROPERTY_TYPE_INVALID

 
#define LV_PROPERTY_TYPE_INVALID 0   /*Use default 0 as invalid to detect program outliers*/

LV_PROPERTY_TYPE_INT

 
#define LV_PROPERTY_TYPE_INT 1   /*int32_t type*/

LV_PROPERTY_TYPE_PRECISE

 
#define LV_PROPERTY_TYPE_PRECISE 2   /*lv_value_precise_t, int32_t or float depending on LV_USE_FLOAT*/

LV_PROPERTY_TYPE_COLOR

 
#define LV_PROPERTY_TYPE_COLOR 3   /*ARGB8888 type*/

LV_PROPERTY_TYPE_POINT

 
#define LV_PROPERTY_TYPE_POINT 4   /*lv_point_t */

LV_PROPERTY_TYPE_POINTER

 
#define LV_PROPERTY_TYPE_POINTER 5   /*void * pointer*/

LV_PROPERTY_TYPE_IMGSRC

 
#define LV_PROPERTY_TYPE_IMGSRC 6   /*Special pointer for image*/

LV_PROPERTY_TYPE_TEXT

 
#define LV_PROPERTY_TYPE_TEXT 7   /*Special pointer of char* */

LV_PROPERTY_TYPE_OBJ

 
#define LV_PROPERTY_TYPE_OBJ 8   /*Special pointer of lv_obj_t* */

LV_PROPERTY_TYPE_DISPLAY

 
#define LV_PROPERTY_TYPE_DISPLAY 9   /*Special pointer of lv_display_t* */

LV_PROPERTY_TYPE_FONT

 
#define LV_PROPERTY_TYPE_FONT 10  /*Special pointer of lv_font_t* */

LV_PROPERTY_TYPE_BOOL

 
#define LV_PROPERTY_TYPE_BOOL 11  /*int32_t type*/

LV_PROPERTY_TYPE_SHIFT

 
#define LV_PROPERTY_TYPE_SHIFT 28

LV_PROPERTY_TYPE2_SHIFT

 
#define LV_PROPERTY_TYPE2_SHIFT 24

LV_PROPERTY_ID

 
#define LV_PROPERTY_ID(clz, name, type, index) \
    LV_PROPERTY_## clz ##_##name = (LV_PROPERTY_## clz ##_START + ((int)index)) | ((type) << LV_PROPERTY_TYPE_SHIFT)

LV_PROPERTY_ID2

 
#define LV_PROPERTY_ID2(clz, name, type, type2, index) \
    LV_PROPERTY_ID(clz, name, type, index) | ((type2) << LV_PROPERTY_TYPE2_SHIFT)

LV_PROPERTY_ID_TYPE

 
#define LV_PROPERTY_ID_TYPE(id) \
    ((id) >> LV_PROPERTY_TYPE_SHIFT)

LV_PROPERTY_ID_TYPE2

 
#define LV_PROPERTY_ID_TYPE2(id) \
    ((id) >> LV_PROPERTY_TYPE_SHIFT)

LV_PROPERTY_ID_INDEX

 
#define LV_PROPERTY_ID_INDEX(id) \
    ((id) & 0xfffffff)

LV_OBJ_SET_PROPERTY_ARRAY

 
#define LV_OBJ_SET_PROPERTY_ARRAY(obj, array) \
    lv_obj_set_properties(obj, array, LV_ARRAYLEN(array))

LV_PROPERTY_CLASS_FIELDS

 
#define LV_PROPERTY_CLASS_FIELDS(widget, uppercase) \
    .prop_index_start = LV_PROPERTY_##uppercase##_START, \
        .prop_index_end = LV_PROPERTY_##uppercase##_END, \
        .properties = lv_##widget##_properties, \
        .properties_count = LV_ARRAYLEN(lv_##widget##_properties), \
        .property_names = lv_##widget##_property_names, \
        .names_count = LV_ARRAYLEN(lv_##widget##_property_names)

Dependencies

How is this guide?

Last updated on

On this page