# lv_obj.h (/api/core/lv_obj_h)



<RelatedHeaders name="lv_obj_private.h" isPrivate="false" />

<ApiSummary functions="32" enums="2" macros="2" variables="1" />

Functions [#functions]

<ApiTabs items="[&#x22;Setters (5)&#x22;,&#x22;Getters (5)&#x22;,&#x22;Other (22)&#x22;]">
  <ApiTab value="Setters (5)">
    <ApiMember kind="function" name="lv_obj_set_flag" file="core/lv_obj.h" line="217" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L217">
      lv_obj_set_flag [#lv_obj_set_flag]

      Set add or remove one or more flags.

      ```c title=" " lineNumbers=1
      void lv_obj_set_flag(lv_obj_t *obj, lv_obj_flag_t f, bool v)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                             | Description                                  |
      | ----- | ------------------------------------------------ | -------------------------------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object                         |
      | `f`   | <ApiLink name="lv_obj_flag_t" />                 | OR-ed values from `lv_obj_flag_t` to update. |
      | `v`   | <ApiLink name="bool" />                          | true: add the flags; false: remove the flags |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_state" file="core/lv_obj.h" line="241" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L241">
      lv_obj_set_state [#lv_obj_set_state]

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

      ```c title=" " lineNumbers=1
      void lv_obj_set_state(lv_obj_t *obj, lv_state_t state, bool v)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name    | Type                                             | Description                                    |                      |
      | ------- | ------------------------------------------------ | ---------------------------------------------- | -------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object                           |                      |
      | `state` | <ApiLink name="lv_state_t" />                    | the states to add. E.g \`LV\_STATE\_PRESSED    | LV\_STATE\_FOCUSED\` |
      | `v`     | <ApiLink name="bool" />                          | true: add the states; false: remove the states |                      |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_user_data" file="core/lv_obj.h" line="248" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L248">
      lv_obj_set_user_data [#lv_obj_set_user_data]

      Set the user\_data field of the object

      ```c title=" " lineNumbers=1
      void lv_obj_set_user_data(lv_obj_t *obj, void *user_data)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name        | Type                                             | Description                    |
      | ----------- | ------------------------------------------------ | ------------------------------ |
      | `obj`       | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object           |
      | `user_data` | `void *`                                         | pointer to the new user\_data. |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_radio_button" file="core/lv_obj.h" line="255" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L255">
      lv_obj_set_radio_button [#lv_obj_set_radio_button]

      Allow only one RADIO\_BUTTON sibling to be checked

      ```c title=" " lineNumbers=1
      void lv_obj_set_radio_button(lv_obj_t *obj, bool en)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                             | Description                             |
      | ----- | ------------------------------------------------ | --------------------------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to a widget                     |
      | `en`  | <ApiLink name="bool" />                          | enable or disable radio button behavior |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_id" file="core/lv_obj.h" line="398" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L398">
      lv_obj_set_id [#lv_obj_set_id]

      Set an id for an object.

      ```c title=" " lineNumbers=1
      void lv_obj_set_id(lv_obj_t *obj, void *id)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                             | Description          |
      | ----- | ------------------------------------------------ | -------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object |
      | `id`  | `void *`                                         | the id of the object |
    </ApiMember>
  </ApiTab>

  <ApiTab value="Getters (5)">
    <ApiMember kind="function" name="lv_obj_get_state" file="core/lv_obj.h" line="282" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L282">
      lv_obj_get_state [#lv_obj_get_state]

      Get the state of an object

      ```c title=" " lineNumbers=1
      lv_state_t lv_obj_get_state(const lv_obj_t *obj)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                                   | Description          |
      | ----- | ------------------------------------------------------ | -------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object |

      **Returns:** <ApiLink name="lv_state_t" /> — the state (OR-ed values from `lv_state_t`)
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_group" file="core/lv_obj.h" line="303" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L303">
      lv_obj_get_group [#lv_obj_get_group]

      Get the group of the object

      ```c title=" " lineNumbers=1
      lv_group_t * lv_obj_get_group(const lv_obj_t *obj)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                                   | Description          |
      | ----- | ------------------------------------------------------ | -------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object |

      **Returns:** <ApiLink name="lv_group_t" display="lv_group_t *" /> — the pointer to group of the object
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_user_data" file="core/lv_obj.h" line="310" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L310">
      lv_obj_get_user_data [#lv_obj_get_user_data]

      Get the user\_data field of the object

      ```c title=" " lineNumbers=1
      void * lv_obj_get_user_data(lv_obj_t *obj)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                             | Description          |
      | ----- | ------------------------------------------------ | -------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object |

      **Returns:** `void *` — the pointer to the user\_data of the object
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_class" file="core/lv_obj.h" line="338" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L338">
      lv_obj_get_class [#lv_obj_get_class]

      Get the class (type) of the object

      ```c title=" " lineNumbers=1
      const lv_obj_class_t * lv_obj_get_class(const lv_obj_t *obj)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                                   | Description          |
      | ----- | ------------------------------------------------------ | -------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object |

      **Returns:** <ApiLink name="lv_obj_class_t" display="const lv_obj_class_t *" /> — the class (type) of the object
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_id" file="core/lv_obj.h" line="405" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L405">
      lv_obj_get_id [#lv_obj_get_id]

      Get the id of an object.

      ```c title=" " lineNumbers=1
      void * lv_obj_get_id(const lv_obj_t *obj)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                                   | Description          |
      | ----- | ------------------------------------------------------ | -------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object |

      **Returns:** `void *` — the id of the object
    </ApiMember>
  </ApiTab>

  <ApiTab value="Other (22)">
    <ApiMember kind="function" name="lv_obj_create" file="core/lv_obj.h" line="191" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L191">
      lv_obj_create [#lv_obj_create]

      Create a base object (a rectangle)

      ```c title=" " lineNumbers=1
      lv_obj_t * lv_obj_create(lv_obj_t *parent)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name     | Type                                             | Description                                                        |
      | -------- | ------------------------------------------------ | ------------------------------------------------------------------ |
      | `parent` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to a parent object. If NULL then a screen will be created. |

      **Returns:** <ApiLink name="lv_obj_t" display="lv_obj_t *" /> — pointer to the new object
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_add_flag" file="core/lv_obj.h" line="202" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L202">
      lv_obj_add_flag [#lv_obj_add_flag]

      Set one or more flags

      ```c title=" " lineNumbers=1
      void lv_obj_add_flag(lv_obj_t *obj, lv_obj_flag_t f)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                             | Description                               |
      | ----- | ------------------------------------------------ | ----------------------------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object                      |
      | `f`   | <ApiLink name="lv_obj_flag_t" />                 | OR-ed values from `lv_obj_flag_t` to set. |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_remove_flag" file="core/lv_obj.h" line="209" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L209">
      lv_obj_remove_flag [#lv_obj_remove_flag]

      Remove one or more flags

      ```c title=" " lineNumbers=1
      void lv_obj_remove_flag(lv_obj_t *obj, lv_obj_flag_t f)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                             | Description                                 |
      | ----- | ------------------------------------------------ | ------------------------------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object                        |
      | `f`   | <ApiLink name="lv_obj_flag_t" />                 | OR-ed values from `lv_obj_flag_t` to clear. |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_add_state" file="core/lv_obj.h" line="225" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L225">
      lv_obj_add_state [#lv_obj_add_state]

      Add one or more states to the object. The other state bits will remain unchanged. If specified in the styles, transition animation will be started from the previous state to the current.

      ```c title=" " lineNumbers=1
      void lv_obj_add_state(lv_obj_t *obj, lv_state_t state)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name    | Type                                             | Description                                 |                      |
      | ------- | ------------------------------------------------ | ------------------------------------------- | -------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object                        |                      |
      | `state` | <ApiLink name="lv_state_t" />                    | the states to add. E.g \`LV\_STATE\_PRESSED | LV\_STATE\_FOCUSED\` |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_remove_state" file="core/lv_obj.h" line="233" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L233">
      lv_obj_remove_state [#lv_obj_remove_state]

      Remove one or more states to the object. The other state bits will remain unchanged. If specified in the styles, transition animation will be started from the previous state to the current.

      ```c title=" " lineNumbers=1
      void lv_obj_remove_state(lv_obj_t *obj, lv_state_t state)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name    | Type                                             | Description                                 |                      |
      | ------- | ------------------------------------------------ | ------------------------------------------- | -------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object                        |                      |
      | `state` | <ApiLink name="lv_state_t" />                    | the states to add. E.g \`LV\_STATE\_PRESSED | LV\_STATE\_FOCUSED\` |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_has_flag" file="core/lv_obj.h" line="267" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L267">
      lv_obj_has_flag [#lv_obj_has_flag]

      Check if a given flag or all the given flags are set on an object.

      ```c title=" " lineNumbers=1
      bool lv_obj_has_flag(const lv_obj_t *obj, lv_obj_flag_t f)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                                   | Description                                     |
      | ----- | ------------------------------------------------------ | ----------------------------------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object                            |
      | `f`   | <ApiLink name="lv_obj_flag_t" />                       | the flag(s) to check (OR-ed values can be used) |

      **Returns:** <ApiLink name="bool" /> — true: all flags are set; false: not all flags are set
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_has_flag_any" file="core/lv_obj.h" line="275" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L275">
      lv_obj_has_flag_any [#lv_obj_has_flag_any]

      Check if a given flag or any of the flags are set on an object.

      ```c title=" " lineNumbers=1
      bool lv_obj_has_flag_any(const lv_obj_t *obj, lv_obj_flag_t f)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                                   | Description                                     |
      | ----- | ------------------------------------------------------ | ----------------------------------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object                            |
      | `f`   | <ApiLink name="lv_obj_flag_t" />                       | the flag(s) to check (OR-ed values can be used) |

      **Returns:** <ApiLink name="bool" /> — true: at least one flag is set; false: none of the flags are set
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_has_state" file="core/lv_obj.h" line="290" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L290">
      lv_obj_has_state [#lv_obj_has_state]

      Check if the object is in a given state or not.

      ```c title=" " lineNumbers=1
      bool lv_obj_has_state(const lv_obj_t *obj, lv_state_t state)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name    | Type                                                   | Description                               |
      | ------- | ------------------------------------------------------ | ----------------------------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object                      |
      | `state` | <ApiLink name="lv_state_t" />                          | a state or combination of states to check |

      **Returns:** <ApiLink name="bool" /> — true: `obj` is in `state`; false: `obj` is not in `state`
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_is_radio_button" file="core/lv_obj.h" line="296" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L296">
      lv_obj_is_radio_button [#lv_obj_is_radio_button]

      Get whether the object is a radio button

      ```c title=" " lineNumbers=1
      bool lv_obj_is_radio_button(const lv_obj_t *obj)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                                   | Description         |
      | ----- | ------------------------------------------------------ | ------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to a widget |

      **Returns:** <ApiLink name="bool" /> — true if radio button behavior is enabled
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_check_type" file="core/lv_obj.h" line="322" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L322">
      lv_obj_check_type [#lv_obj_check_type]

      Check the type of obj.

      ```c title=" " lineNumbers=1
      bool lv_obj_check_type(const lv_obj_t *obj, const lv_obj_class_t *class_p)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name      | Type                                                               | Description                               |
      | --------- | ------------------------------------------------------------------ | ----------------------------------------- |
      | `obj`     | <ApiLink name="lv_obj_t" display="const lv_obj_t *" />             | pointer to an object                      |
      | `class_p` | <ApiLink name="lv_obj_class_t" display="const lv_obj_class_t *" /> | a class to check (e.g. `lv_slider_class`) |

      **Returns:** <ApiLink name="bool" /> — true: `class_p` is the `obj` class.
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_has_class" file="core/lv_obj.h" line="331" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L331">
      lv_obj_has_class [#lv_obj_has_class]

      Check if any object has a given class (type). It checks the ancestor classes too.

      ```c title=" " lineNumbers=1
      bool lv_obj_has_class(const lv_obj_t *obj, const lv_obj_class_t *class_p)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name      | Type                                                               | Description                               |
      | --------- | ------------------------------------------------------------------ | ----------------------------------------- |
      | `obj`     | <ApiLink name="lv_obj_t" display="const lv_obj_t *" />             | pointer to an object                      |
      | `class_p` | <ApiLink name="lv_obj_class_t" display="const lv_obj_class_t *" /> | a class to check (e.g. `lv_slider_class`) |

      **Returns:** <ApiLink name="bool" /> — true: `obj` has the given class
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_is_valid" file="core/lv_obj.h" line="345" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L345">
      lv_obj_is_valid [#lv_obj_is_valid]

      Check if any object is still "alive".

      ```c title=" " lineNumbers=1
      bool lv_obj_is_valid(const lv_obj_t *obj)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                                   | Description          |
      | ----- | ------------------------------------------------------ | -------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object |

      **Returns:** <ApiLink name="bool" /> — true: valid
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_null_on_delete" file="core/lv_obj.h" line="353" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L353">
      lv_obj_null_on_delete [#lv_obj_null_on_delete]

      Utility to set an object reference to NULL when it gets deleted. The reference should be in a location that will not become invalid during the object's lifetime, i.e. static or allocated.

      ```c title=" " lineNumbers=1
      void lv_obj_null_on_delete(lv_obj_t **obj_ptr)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name      | Type                                              | Description                         |
      | --------- | ------------------------------------------------- | ----------------------------------- |
      | `obj_ptr` | <ApiLink name="lv_obj_t" display="lv_obj_t **" /> | a pointer to a pointer to an object |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_add_screen_load_event" file="core/lv_obj.h" line="364" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L364">
      lv_obj_add_screen_load_event [#lv_obj_add_screen_load_event]

      Add an event handler to a widget that will load a screen on a trigger.

      ```c title=" " lineNumbers=1
      void lv_obj_add_screen_load_event(lv_obj_t *obj, lv_event_code_t trigger, lv_obj_t *screen, lv_screen_load_anim_t anim_type, uint32_t duration, uint32_t delay)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name        | Type                                             | Description                                                  |
      | ----------- | ------------------------------------------------ | ------------------------------------------------------------ |
      | `obj`       | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to widget which should load the screen               |
      | `trigger`   | <ApiLink name="lv_event_code_t" />               | an event code, e.g. `LV_EVENT_CLICKED`                       |
      | `screen`    | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | the screen to load (must be a valid widget)                  |
      | `anim_type` | <ApiLink name="lv_screen_load_anim_t" />         | element of `lv_screen_load_anim_t` the screen load animation |
      | `duration`  | <ApiLink name="uint32_t" />                      | duration of the animation in milliseconds                    |
      | `delay`     | <ApiLink name="uint32_t" />                      | delay before the screen load in milliseconds                 |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_add_screen_create_event" file="core/lv_obj.h" line="377" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L377">
      lv_obj_add_screen_create_event [#lv_obj_add_screen_create_event]

      Add an event handler to a widget that will create a screen on a trigger. The created screen will be deleted when it's unloaded

      ```c title=" " lineNumbers=1
      void lv_obj_add_screen_create_event(lv_obj_t *obj, lv_event_code_t trigger, lv_screen_create_cb_t screen_create_cb, lv_screen_load_anim_t anim_type, uint32_t duration, uint32_t delay)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name               | Type                                             | Description                                                              |
      | ------------------ | ------------------------------------------------ | ------------------------------------------------------------------------ |
      | `obj`              | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to widget which should load the screen                           |
      | `trigger`          | <ApiLink name="lv_event_code_t" />               | an event code, e.g. `LV_EVENT_CLICKED`                                   |
      | `screen_create_cb` | <ApiLink name="lv_screen_create_cb_t" />         | a callback to create the screen, e.g. `lv_obj_t * myscreen_create(void)` |
      | `anim_type`        | <ApiLink name="lv_screen_load_anim_t" />         | element of `lv_screen_load_anim_t` the screen load animation             |
      | `duration`         | <ApiLink name="uint32_t" />                      | duration of the animation in milliseconds                                |
      | `delay`            | <ApiLink name="uint32_t" />                      | delay before the screen load in milliseconds                             |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_add_play_timeline_event" file="core/lv_obj.h" line="389" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L389">
      lv_obj_add_play_timeline_event [#lv_obj_add_play_timeline_event]

      Play a timeline animation on a trigger

      ```c title=" " lineNumbers=1
      void lv_obj_add_play_timeline_event(lv_obj_t *obj, lv_event_code_t trigger, lv_anim_timeline_t *at, uint32_t delay, bool reverse)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name      | Type                                                                 | Description                                                  |
      | --------- | -------------------------------------------------------------------- | ------------------------------------------------------------ |
      | `obj`     | <ApiLink name="lv_obj_t" display="lv_obj_t *" />                     | pointer to widget which should trigger playing the animation |
      | `trigger` | <ApiLink name="lv_event_code_t" />                                   | an event code, e.g. `LV_EVENT_CLICKED`                       |
      | `at`      | <ApiLink name="lv_anim_timeline_t" display="lv_anim_timeline_t *" /> | pointer to an animation timeline                             |
      | `delay`   | <ApiLink name="uint32_t" />                                          | wait time before starting the animation                      |
      | `reverse` | <ApiLink name="bool" />                                              | true: play in reverse                                        |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_find_by_id" file="core/lv_obj.h" line="419" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L419">
      lv_obj_find_by_id [#lv_obj_find_by_id]

      DEPRECATED IDs are used only to print the widget trees. To find a widget use `lv_obj_find_by_name`

      Get the child object by its id. It will check children and grandchildren recursively. Function `lv_obj_id_compare` is used to matched obj id with given id.

      ```c title=" " lineNumbers=1
      lv_obj_t * lv_obj_find_by_id(const lv_obj_t *obj, const void *id)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                                   | Description                |
      | ----- | ------------------------------------------------------ | -------------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object       |
      | `id`  | `const void *`                                         | the id of the child object |

      **Returns:** <ApiLink name="lv_obj_t" display="lv_obj_t *" /> — pointer to the child object or NULL if not found
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_assign_id" file="core/lv_obj.h" line="432" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L432">
      lv_obj_assign_id [#lv_obj_assign_id]

      Assign id to object if not previously assigned. This function gets called automatically when LV\_OBJ\_ID\_AUTO\_ASSIGN is enabled.

      Set `LV_USE_OBJ_ID_BUILTIN` to use the builtin method to generate object ID. Otherwise, these functions including `lv_obj_[set|assign|free|stringify]_id` and `lv_obj_id_compare`should be implemented externally.

      ```c title=" " lineNumbers=1
      void lv_obj_assign_id(const lv_obj_class_t *class_p, lv_obj_t *obj)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name      | Type                                                               | Description                                                                                 |
      | --------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- |
      | `class_p` | <ApiLink name="lv_obj_class_t" display="const lv_obj_class_t *" /> | the class this obj belongs to. Note obj->class\_p is the class currently being constructed. |
      | `obj`     | <ApiLink name="lv_obj_t" display="lv_obj_t *" />                   | pointer to an object                                                                        |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_free_id" file="core/lv_obj.h" line="439" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L439">
      lv_obj_free_id [#lv_obj_free_id]

      Free resources allocated by `lv_obj_assign_id` or `lv_obj_set_id`. This function is also called automatically when object is deleted.

      ```c title=" " lineNumbers=1
      void lv_obj_free_id(lv_obj_t *obj)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                             | Description          |
      | ----- | ------------------------------------------------ | -------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_id_compare" file="core/lv_obj.h" line="451" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L451">
      lv_obj_id_compare [#lv_obj_id_compare]

      Compare two obj id, return 0 if they are equal.

      Set `LV_USE_OBJ_ID_BUILTIN` to use the builtin method for compare. Otherwise, it must be implemented externally.

      ```c title=" " lineNumbers=1
      int lv_obj_id_compare(const void *id1, const void *id2)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type           | Description   |
      | ----- | -------------- | ------------- |
      | `id1` | `const void *` | the first id  |
      | `id2` | `const void *` | the second id |

      **Returns:** `int` — 0 if they are equal, non-zero otherwise.
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_stringify_id" file="core/lv_obj.h" line="459" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L459">
      lv_obj_stringify_id [#lv_obj_stringify_id]

      Format an object's id into a string.

      ```c title=" " lineNumbers=1
      const char * lv_obj_stringify_id(lv_obj_t *obj, char *buf, uint32_t len)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name  | Type                                             | Description                     |
      | ----- | ------------------------------------------------ | ------------------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object            |
      | `buf` | `char *`                                         | buffer to write the string into |
      | `len` | <ApiLink name="uint32_t" />                      | length of the buffer            |
    </ApiMember>

    <ApiMember kind="function" name="lv_objid_builtin_destroy" file="core/lv_obj.h" line="465" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L465">
      lv_objid_builtin_destroy [#lv_objid_builtin_destroy]

      Free resources used by builtin ID generator.

      ```c title=" " lineNumbers=1
      void lv_objid_builtin_destroy(void)
      ```
    </ApiMember>
  </ApiTab>
</ApiTabs>

Enums [#enums]

<ApiMember kind="enum" name="lv_obj_flag_t" file="core/lv_obj.h" line="48" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L48">
  lv_obj_flag_t [#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.

  | Name                                | Value                                                            | Description                                                                     |
  | ----------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------- |
  | `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_TRACK`     | `LV_OBJ_FLAG_LAYOUT_1`                                           | Start 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                                                |
</ApiMember>

<TypeUsedBy name="lv_obj_flag_t" count="11">
  * `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`
</TypeUsedBy>

<ApiMember kind="enum" name="_lv_signed_prop_id_t" file="core/lv_obj.h" line="89" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L89">
  \_lv_signed_prop_id_t [#_lv_signed_prop_id_t]

  | Name                                         | Value                                                         |
  | -------------------------------------------- | ------------------------------------------------------------- |
  | `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`                        |                                                               |
</ApiMember>

Macros [#macros]

<ApiMember kind="macro" name="LV_ASSERT_OBJ" file="core/lv_obj.h" line="475" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L475">
  LV_ASSERT_OBJ [#lv_assert_obj]

  ```c title=" " lineNumbers=1
  #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)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_TRACE_OBJ_CREATE" file="core/lv_obj.h" line="486" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L486">
  LV_TRACE_OBJ_CREATE [#lv_trace_obj_create]

  ```c title=" " lineNumbers=1
  #define LV_TRACE_OBJ_CREATE(...) \
      LV_LOG_TRACE(__VA_ARGS__)
  ```
</ApiMember>

Variables [#variables]

<ApiMember kind="variable" name="lv_obj_class" file="core/lv_obj.h" line="180" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj.h#L180">
  lv_obj_class [#lv_obj_class]

  ```c title=" " lineNumbers=1
  const lv_obj_class_t lv_obj_class
  ```

  Make the base object's class publicly available.
</ApiMember>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lv_conf_internal.h&#x22;, &#x22;lv_types.h&#x22;, &#x22;lv_style.h&#x22;, &#x22;lv_area.h&#x22;, &#x22;lv_color.h&#x22;, &#x22;lv_assert.h&#x22;, &#x22;lv_obj_tree.h&#x22;, &#x22;lv_obj_pos.h&#x22;, &#x22;lv_obj_scroll.h&#x22;, &#x22;lv_obj_style.h&#x22;, &#x22;lv_obj_draw.h&#x22;, &#x22;lv_obj_class.h&#x22;, &#x22;lv_obj_event.h&#x22;, &#x22;lv_obj_property.h&#x22;, &#x22;lv_group.h&#x22;]" includedBy="[&#x22;lv_obj_private.h&#x22;, &#x22;lv_observer.h&#x22;, &#x22;lv_refr.h&#x22;, &#x22;lv_display_private.h&#x22;, &#x22;lv_snapshot.h&#x22;, &#x22;lv_gridnav.h&#x22;, &#x22;lv_indev_gesture.h&#x22;, &#x22;lv_indev_gesture_private.h&#x22;, &#x22;lv_indev_scroll.h&#x22;, &#x22;lv_gstreamer.h&#x22;, &#x22;lv_file_explorer.h&#x22;, &#x22;lv_fragment.h&#x22;, &#x22;lv_theme.h&#x22;, &#x22;lv_3dtexture.h&#x22;, &#x22;lv_arc.h&#x22;, &#x22;lv_bar.h&#x22;, &#x22;lv_button.h&#x22;, &#x22;lv_buttonmatrix.h&#x22;, &#x22;lv_calendar_chinese.h&#x22;, &#x22;lv_calendar_header_arrow.h&#x22;, &#x22;lv_calendar_header_dropdown.h&#x22;, &#x22;lv_chart.h&#x22;, &#x22;lv_checkbox.h&#x22;, &#x22;lv_image.h&#x22;, &#x22;lv_imagebutton.h&#x22;, &#x22;lv_ime_pinyin.h&#x22;, &#x22;lv_label.h&#x22;, &#x22;lv_led.h&#x22;, &#x22;lv_line.h&#x22;, &#x22;lv_list.h&#x22;, &#x22;lv_menu.h&#x22;, &#x22;lv_msgbox.h&#x22;, &#x22;lv_roller.h&#x22;, &#x22;lv_scale.h&#x22;, &#x22;lv_span.h&#x22;, &#x22;lv_switch.h&#x22;, &#x22;lv_tabview.h&#x22;, &#x22;lv_tileview.h&#x22;, &#x22;lv_win.h&#x22;]" transitiveIncludes="[&#x22;lv_anim.h&#x22;, &#x22;lv_array.h&#x22;, &#x22;lv_bidi.h&#x22;, &#x22;lv_color_op.h&#x22;, &#x22;lv_conf_kconfig.h&#x22;, &#x22;lv_display.h&#x22;, &#x22;lv_draw.h&#x22;, &#x22;lv_draw_arc.h&#x22;, &#x22;lv_draw_blur.h&#x22;, &#x22;lv_draw_buf.h&#x22;, &#x22;lv_draw_image.h&#x22;, &#x22;lv_draw_label.h&#x22;, &#x22;lv_draw_line.h&#x22;, &#x22;lv_draw_rect.h&#x22;, &#x22;lv_draw_triangle.h&#x22;, &#x22;lv_event.h&#x22;, &#x22;lv_ext_data.h&#x22;, &#x22;lv_flex.h&#x22;, &#x22;lv_font.h&#x22;, &#x22;lv_fs.h&#x22;, &#x22;lv_grad.h&#x22;, &#x22;lv_grid.h&#x22;, &#x22;lv_image_decoder.h&#x22;, &#x22;lv_image_dsc.h&#x22;, &#x22;lv_indev.h&#x22;, &#x22;lv_layout.h&#x22;, &#x22;lv_ll.h&#x22;, &#x22;lv_log.h&#x22;, &#x22;lv_math.h&#x22;, &#x22;lv_matrix.h&#x22;, &#x22;lv_mem.h&#x22;, &#x22;lv_obj_property_names.h&#x22;, &#x22;lv_obj_style_gen.h&#x22;, &#x22;lv_palette.h&#x22;, &#x22;lv_profiler.h&#x22;, &#x22;lv_profiler_builtin.h&#x22;, &#x22;lv_sprintf.h&#x22;, &#x22;lv_string.h&#x22;, &#x22;lv_style_gen.h&#x22;, &#x22;lv_style_properties.h&#x22;, &#x22;lv_symbol_def.h&#x22;, &#x22;lv_text.h&#x22;, &#x22;lv_tick.h&#x22;, &#x22;lv_timer.h&#x22;]" />
