lv_obj.h

API reference for lv_obj.h

Report on GitHub
See Also: Private HeaderThis header has a companion private implementation with internal data structures.lv_obj_private.h

Functions

lv_obj_set_flag

Set add or remove one or more flags.

 
void lv_obj_set_flag(lv_obj_t *obj, lv_obj_flag_t f, bool v)
Parameters
NameTypeDescription
objlv_obj_t *pointer to an object
flv_obj_flag_tOR-ed values from lv_obj_flag_t to update.
vbooltrue: add the flags; false: remove the flags

lv_obj_set_state

Add or remove one or more states to the object. The other state bits will remain unchanged.

 
void lv_obj_set_state(lv_obj_t *obj, lv_state_t state, bool v)
Parameters
NameTypeDescription
objlv_obj_t *pointer to an object
statelv_state_tthe states to add. E.g `LV_STATE_PRESSED
vbooltrue: add the states; false: remove the states

lv_obj_set_user_data

Set the user_data field of the object

 
void lv_obj_set_user_data(lv_obj_t *obj, void *user_data)
Parameters
NameTypeDescription
objlv_obj_t *pointer to an object
user_datavoid *pointer to the new user_data.

lv_obj_set_radio_button

Allow only one RADIO_BUTTON sibling to be checked

 
void lv_obj_set_radio_button(lv_obj_t *obj, bool en)
Parameters
NameTypeDescription
objlv_obj_t *pointer to a widget
enboolenable or disable radio button behavior

lv_obj_set_id

Set an id for an object.

 
void lv_obj_set_id(lv_obj_t *obj, void *id)
Parameters
NameTypeDescription
objlv_obj_t *pointer to an object
idvoid *the id of the object

Enums

lv_obj_flag_t

On/Off features controlling the object's behavior. OR-ed values are possible

Note: update obj flags corresponding properties below whenever add/remove flags or change bit definition of flags.

NameValueDescription
LV_OBJ_FLAG_HIDDEN(1u << 0)Make the object hidden. (Like it wasn't there at all)
LV_OBJ_FLAG_CLICKABLE(1u << 1)Make the object clickable by the input devices
LV_OBJ_FLAG_CLICK_FOCUSABLE(1u << 2)Add focused state to the object when clicked
LV_OBJ_FLAG_CHECKABLE(1u << 3)Toggle checked state when the object is clicked
LV_OBJ_FLAG_SCROLLABLE(1u << 4)Make the object scrollable
LV_OBJ_FLAG_SCROLL_ELASTIC(1u << 5)Allow scrolling inside but with slower speed
LV_OBJ_FLAG_SCROLL_MOMENTUM(1u << 6)Make the object scroll further when "thrown"
LV_OBJ_FLAG_SCROLL_ONE(1u << 7)Allow scrolling only one snappable children
LV_OBJ_FLAG_SCROLL_CHAIN_HOR(1u << 8)Allow propagating the horizontal scroll to a parent
LV_OBJ_FLAG_SCROLL_CHAIN_VER(1u << 9)Allow propagating the vertical scroll to a parent
LV_OBJ_FLAG_SCROLL_CHAIN(LV_OBJ_FLAG_SCROLL_CHAIN_HOR | LV_OBJ_FLAG_SCROLL_CHAIN_VER)
LV_OBJ_FLAG_SCROLL_ON_FOCUS(1u << 10)Automatically scroll object to make it visible when focused
LV_OBJ_FLAG_SCROLL_WITH_ARROW(1u << 11)Allow scrolling the focused object with arrow keys
LV_OBJ_FLAG_SNAPPABLE(1u << 12)If scroll snap is enabled on the parent it can snap to this object
LV_OBJ_FLAG_PRESS_LOCK(1u << 13)Keep the object pressed even if the press slid from the object
LV_OBJ_FLAG_EVENT_BUBBLE(1u << 14)Propagate the events to the parent too
LV_OBJ_FLAG_GESTURE_BUBBLE(1u << 15)Propagate the gestures to the parent
LV_OBJ_FLAG_ADV_HITTEST(1u << 16)Allow performing more accurate hit (click) test. E.g. consider rounded corners.
LV_OBJ_FLAG_IGNORE_LAYOUT(1u << 17)Make the object not positioned by the layouts
LV_OBJ_FLAG_FLOATING(1u << 18)Do not scroll the object when the parent scrolls and ignore layout
LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS(1u << 19)Send LV_EVENT_DRAW_TASK_ADDED events
LV_OBJ_FLAG_OVERFLOW_VISIBLE(1u << 20)Do not clip the children to the parent's ext draw size
LV_OBJ_FLAG_EVENT_TRICKLE(1u << 21)Propagate the events to the children too
LV_OBJ_FLAG_STATE_TRICKLE(1u << 22)Propagate the states to the children too
LV_OBJ_FLAG_LAYOUT_1(1u << 23)Custom flag, free to use by layouts
LV_OBJ_FLAG_LAYOUT_2(1u << 24)Custom flag, free to use by layouts
LV_OBJ_FLAG_FLEX_IN_NEW_TRACKLV_OBJ_FLAG_LAYOUT_1Start a new flex track on this item
LV_OBJ_FLAG_WIDGET_1(1u << 25)Custom flag, free to use by widget
LV_OBJ_FLAG_WIDGET_2(1u << 26)Custom flag, free to use by widget
LV_OBJ_FLAG_USER_1(1u << 27)Custom flag, free to use by user
LV_OBJ_FLAG_USER_2(1u << 28)Custom flag, free to use by user
LV_OBJ_FLAG_USER_3(1u << 29)Custom flag, free to use by user
LV_OBJ_FLAG_USER_4(1u << 30)Custom flag, free to use by user
Used by 11 functions
  • lv_obj_add_flag — param f
  • lv_obj_remove_flag — param f
  • lv_obj_set_flag — param f
  • lv_obj_has_flag — param f
  • lv_obj_has_flag_any — param f
  • lv_obj_bind_flag_if_eq — param flag
  • lv_obj_bind_flag_if_not_eq — param flag
  • lv_obj_bind_flag_if_gt — param flag
  • lv_obj_bind_flag_if_ge — param flag
  • lv_obj_bind_flag_if_lt — param flag
  • lv_obj_bind_flag_if_le — param flag

_lv_signed_prop_id_t

NameValue
LV_PROPERTY_OBJ_FLAG_START(LV_PROPERTY_OBJ_START + ((int) 0 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_HIDDEN(LV_PROPERTY_OBJ_START + ((int) 0 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_CLICKABLE(LV_PROPERTY_OBJ_START + ((int) 1 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_CLICK_FOCUSABLE(LV_PROPERTY_OBJ_START + ((int) 2 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_CHECKABLE(LV_PROPERTY_OBJ_START + ((int) 3 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_SCROLLABLE(LV_PROPERTY_OBJ_START + ((int) 4 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_SCROLL_ELASTIC(LV_PROPERTY_OBJ_START + ((int) 5 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_SCROLL_MOMENTUM(LV_PROPERTY_OBJ_START + ((int) 6 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_SCROLL_ONE(LV_PROPERTY_OBJ_START + ((int) 7 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_SCROLL_CHAIN_HOR(LV_PROPERTY_OBJ_START + ((int) 8 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_SCROLL_CHAIN_VER(LV_PROPERTY_OBJ_START + ((int) 9 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_SCROLL_ON_FOCUS(LV_PROPERTY_OBJ_START + ((int) 10 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_SCROLL_WITH_ARROW(LV_PROPERTY_OBJ_START + ((int) 11 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_SNAPPABLE(LV_PROPERTY_OBJ_START + ((int) 12 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_PRESS_LOCK(LV_PROPERTY_OBJ_START + ((int) 13 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_EVENT_BUBBLE(LV_PROPERTY_OBJ_START + ((int) 14 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_GESTURE_BUBBLE(LV_PROPERTY_OBJ_START + ((int) 15 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_ADV_HITTEST(LV_PROPERTY_OBJ_START + ((int) 16 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_IGNORE_LAYOUT(LV_PROPERTY_OBJ_START + ((int) 17 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_FLOATING(LV_PROPERTY_OBJ_START + ((int) 18 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_SEND_DRAW_TASK_EVENTS(LV_PROPERTY_OBJ_START + ((int) 19 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_OVERFLOW_VISIBLE(LV_PROPERTY_OBJ_START + ((int) 20 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_EVENT_TRICKLE(LV_PROPERTY_OBJ_START + ((int) 21 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_STATE_TRICKLE(LV_PROPERTY_OBJ_START + ((int) 22 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_LAYOUT_1(LV_PROPERTY_OBJ_START + ((int) 23 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_LAYOUT_2(LV_PROPERTY_OBJ_START + ((int) 24 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_FLEX_IN_NEW_TRACK(LV_PROPERTY_OBJ_START + ((int) 23 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_WIDGET_1(LV_PROPERTY_OBJ_START + ((int) 25 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_WIDGET_2(LV_PROPERTY_OBJ_START + ((int) 26 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_USER_1(LV_PROPERTY_OBJ_START + ((int) 27 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_USER_2(LV_PROPERTY_OBJ_START + ((int) 28 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_USER_3(LV_PROPERTY_OBJ_START + ((int) 29 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_USER_4(LV_PROPERTY_OBJ_START + ((int) 30 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_FLAG_END(LV_PROPERTY_OBJ_START + ((int) 30 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_START(LV_PROPERTY_OBJ_START + ((int) 31 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_ALT(LV_PROPERTY_OBJ_START + ((int) 31 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_CHECKED(LV_PROPERTY_OBJ_START + ((int) 33 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_FOCUSED(LV_PROPERTY_OBJ_START + ((int) 34 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_FOCUS_KEY(LV_PROPERTY_OBJ_START + ((int) 35 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_EDITED(LV_PROPERTY_OBJ_START + ((int) 36 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_HOVERED(LV_PROPERTY_OBJ_START + ((int) 37 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_PRESSED(LV_PROPERTY_OBJ_START + ((int) 38 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_SCROLLED(LV_PROPERTY_OBJ_START + ((int) 39 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_DISABLED(LV_PROPERTY_OBJ_START + ((int) 40 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_USER_1(LV_PROPERTY_OBJ_START + ((int) 43 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_USER_2(LV_PROPERTY_OBJ_START + ((int) 44 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_USER_3(LV_PROPERTY_OBJ_START + ((int) 45 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_USER_4(LV_PROPERTY_OBJ_START + ((int) 46 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_ANY(LV_PROPERTY_OBJ_START + ((int) 47 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_STATE_END(LV_PROPERTY_OBJ_START + ((int) 47 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_PARENT(LV_PROPERTY_OBJ_START + ((int) 48 )) | (( 8 ) << 28 )
LV_PROPERTY_OBJ_X(LV_PROPERTY_OBJ_START + ((int) 49 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_Y(LV_PROPERTY_OBJ_START + ((int) 50 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_W(LV_PROPERTY_OBJ_START + ((int) 51 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_H(LV_PROPERTY_OBJ_START + ((int) 52 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_CONTENT_WIDTH(LV_PROPERTY_OBJ_START + ((int) 53 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_CONTENT_HEIGHT(LV_PROPERTY_OBJ_START + ((int) 54 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_LAYOUT(LV_PROPERTY_OBJ_START + ((int) 55 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_ALIGN(LV_PROPERTY_OBJ_START + ((int) 56 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_SCROLLBAR_MODE(LV_PROPERTY_OBJ_START + ((int) 57 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_SCROLL_DIR(LV_PROPERTY_OBJ_START + ((int) 58 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_SCROLL_SNAP_X(LV_PROPERTY_OBJ_START + ((int) 59 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_SCROLL_SNAP_Y(LV_PROPERTY_OBJ_START + ((int) 60 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_SCROLL_X(LV_PROPERTY_OBJ_START + ((int) 61 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_SCROLL_Y(LV_PROPERTY_OBJ_START + ((int) 62 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_SCROLL_TOP(LV_PROPERTY_OBJ_START + ((int) 63 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_SCROLL_BOTTOM(LV_PROPERTY_OBJ_START + ((int) 64 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_SCROLL_LEFT(LV_PROPERTY_OBJ_START + ((int) 65 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_SCROLL_RIGHT(LV_PROPERTY_OBJ_START + ((int) 66 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_SCROLL_END(LV_PROPERTY_OBJ_START + ((int) 67 )) | (( 4 ) << 28 )
LV_PROPERTY_OBJ_EXT_DRAW_SIZE(LV_PROPERTY_OBJ_START + ((int) 68 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_EVENT_COUNT(LV_PROPERTY_OBJ_START + ((int) 69 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_SCREEN(LV_PROPERTY_OBJ_START + ((int) 70 )) | (( 8 ) << 28 )
LV_PROPERTY_OBJ_DISPLAY(LV_PROPERTY_OBJ_START + ((int) 71 )) | (( 5 ) << 28 )
LV_PROPERTY_OBJ_CHILD_COUNT(LV_PROPERTY_OBJ_START + ((int) 72 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_INDEX(LV_PROPERTY_OBJ_START + ((int) 73 )) | (( 1 ) << 28 )
LV_PROPERTY_OBJ_END

Macros

LV_ASSERT_OBJ

 
#define LV_ASSERT_OBJ(obj_p, obj_class) \
    do { \
            LV_ASSERT_MSG(obj_p != NULL, "The object is NULL"); \
            LV_ASSERT_MSG(lv_obj_has_class(obj_p, obj_class) == true, "Incompatible object type."); \
            LV_ASSERT_MSG(lv_obj_is_valid(obj_p)  == true, "The object is invalid, deleted or corrupted?"); \
        } while(0)

LV_TRACE_OBJ_CREATE

 
#define LV_TRACE_OBJ_CREATE(...) \
    LV_LOG_TRACE(__VA_ARGS__)

Variables

lv_obj_class

 
const lv_obj_class_t lv_obj_class

Make the base object's class publicly available.

Dependencies

How is this guide?

Last updated on

On this page