# lv_obj_property.h (/api/core/lv_obj_property_h)



<ApiSummary functions="7" enums="1" structs="3" macros="21" />

Functions [#functions]

<ApiTabs items="[&#x22;Setters (2)&#x22;,&#x22;Getters (5)&#x22;]">
  <ApiTab value="Setters (2)">
    <ApiMember kind="function" name="lv_obj_set_property" file="core/lv_obj_property.h" line="209" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L209">
      lv_obj_set_property [#lv_obj_set_property]

      Set Widget property.

      ```c title=" " lineNumbers=1
      lv_result_t lv_obj_set_property(lv_obj_t *obj, const lv_property_t *value)
      ```

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

      | Name    | Type                                                             | Description           |
      | ------- | ---------------------------------------------------------------- | --------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="lv_obj_t *" />                 | pointer to Widget     |
      | `value` | <ApiLink name="lv_property_t" display="const lv_property_t *" /> | property value to set |

      **Returns:** <ApiLink name="lv_result_t" /> — return LV\_RESULT\_OK if call succeeded
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_properties" file="core/lv_obj_property.h" line="218" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L218">
      lv_obj_set_properties [#lv_obj_set_properties]

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

      ```c title=" " lineNumbers=1
      lv_result_t lv_obj_set_properties(lv_obj_t *obj, const lv_property_t *value, uint32_t count)
      ```

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

      | Name    | Type                                                             | Description                 |
      | ------- | ---------------------------------------------------------------- | --------------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="lv_obj_t *" />                 | pointer to Widget           |
      | `value` | <ApiLink name="lv_property_t" display="const lv_property_t *" /> | property value array to set |
      | `count` | <ApiLink name="uint32_t" />                                      | number of array elements    |

      **Returns:** <ApiLink name="lv_result_t" /> — return LV\_RESULT\_OK if call succeeded
    </ApiMember>
  </ApiTab>

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

      Read property value from Widget. If id is a style property, computes the style of PART\_MAIN.

      ```c title=" " lineNumbers=1
      lv_property_t lv_obj_get_property(lv_obj_t *obj, lv_prop_id_t id)
      ```

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

      | Name  | Type                                             | Description            |
      | ----- | ------------------------------------------------ | ---------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to Widget      |
      | `id`  | <ApiLink name="lv_prop_id_t" />                  | ID of property to read |

      **Returns:** <ApiLink name="lv_property_t" /> — return property value read. The returned property ID is set to `LV_PROPERTY_ID_INVALID` if read failed.
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_style_property" file="core/lv_obj_property.h" line="240" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L240">
      lv_obj_get_style_property [#lv_obj_get_style_property]

      Read style property value from Widget

      ```c title=" " lineNumbers=1
      lv_property_t lv_obj_get_style_property(lv_obj_t *obj, lv_prop_id_t id, lv_part_t part)
      ```

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

      | Name   | Type                                             | Description                                          |
      | ------ | ------------------------------------------------ | ---------------------------------------------------- |
      | `obj`  | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to Widget                                    |
      | `id`   | <ApiLink name="lv_prop_id_t" />                  | ID of style property                                 |
      | `part` | <ApiLink name="lv_part_t" />                     | part for which the style property should be computed |

      **Returns:** <ApiLink name="lv_property_t" /> — return property value read. The returned property ID is set to `LV_PROPERTY_ID_INVALID` if read failed.
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_property_get_id" file="core/lv_obj_property.h" line="250" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L250">
      lv_obj_property_get_id [#lv_obj_property_get_id]

      Get property ID by recursively searching for name in Widget's class hierarchy, and if still not found, then search style properties. Requires to enabling `LV_USE_OBJ_PROPERTY_NAME`.

      ```c title=" " lineNumbers=1
      lv_prop_id_t lv_obj_property_get_id(const lv_obj_t *obj, const char *name)
      ```

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

      | Name   | Type                                                   | Description                                                                |
      | ------ | ------------------------------------------------------ | -------------------------------------------------------------------------- |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to Widget whose class and base-class hierarchy are to be searched. |
      | `name` | `const char *`                                         | property name                                                              |

      **Returns:** <ApiLink name="lv_prop_id_t" /> — property ID found or `LV_PROPERTY_ID_INVALID` if not found.
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_class_property_get_id" file="core/lv_obj_property.h" line="259" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L259">
      lv_obj_class_property_get_id [#lv_obj_class_property_get_id]

      Get property ID by doing a non-recursive search for name directly in Widget class properties. Requires enabling `LV_USE_OBJ_PROPERTY_NAME`.

      ```c title=" " lineNumbers=1
      lv_prop_id_t lv_obj_class_property_get_id(const lv_obj_class_t *clz, const char *name)
      ```

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

      | Name   | Type                                                               | Description                                          |
      | ------ | ------------------------------------------------------------------ | ---------------------------------------------------- |
      | `clz`  | <ApiLink name="lv_obj_class_t" display="const lv_obj_class_t *" /> | pointer to Widget class that has specified property. |
      | `name` | `const char *`                                                     | property name                                        |

      **Returns:** <ApiLink name="lv_prop_id_t" /> — property ID found or `LV_PROPERTY_ID_INVALID` if not found.
    </ApiMember>

    <ApiMember kind="function" name="lv_style_property_get_id" file="core/lv_obj_property.h" line="266" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L266">
      lv_style_property_get_id [#lv_style_property_get_id]

      Get style property ID by name. Requires enabling `LV_USE_OBJ_PROPERTY_NAME`.

      ```c title=" " lineNumbers=1
      lv_prop_id_t lv_style_property_get_id(const char *name)
      ```

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

      | Name   | Type           | Description   |
      | ------ | -------------- | ------------- |
      | `name` | `const char *` | property name |

      **Returns:** <ApiLink name="lv_prop_id_t" /> — property ID found or `LV_PROPERTY_ID_INVALID` if not found.
    </ApiMember>
  </ApiTab>
</ApiTabs>

Enums [#enums]

<ApiMember kind="enum" name="_lv_prop_id_range_boundary_t" file="core/lv_obj_property.h" line="91" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L91">
  \_lv_prop_id_range_boundary_t [#_lv_prop_id_range_boundary_t]

  Group of predefined widget ID start value.

  | Name                             | Value        |
  | -------------------------------- | ------------ |
  | `LV_PROPERTY_ID_INVALID`         | `0`          |
  | `LV_PROPERTY_STYLE_START`        | `0x00`       |
  | `LV_PROPERTY_ID_START`           | `0x0100`     |
  | `LV_PROPERTY_OBJ_START`          | `0x0100`     |
  | `LV_PROPERTY_IMAGE_START`        | `0x0200`     |
  | `LV_PROPERTY_LABEL_START`        | `0x0300`     |
  | `LV_PROPERTY_KEYBOARD_START`     | `0x0400`     |
  | `LV_PROPERTY_TEXTAREA_START`     | `0x0500`     |
  | `LV_PROPERTY_ROLLER_START`       | `0x0600`     |
  | `LV_PROPERTY_DROPDOWN_START`     | `0x0700`     |
  | `LV_PROPERTY_SLIDER_START`       | `0x0800`     |
  | `LV_PROPERTY_ANIMIMAGE_START`    | `0x0900`     |
  | `LV_PROPERTY_ARC_START`          | `0x0a00`     |
  | `LV_PROPERTY_BAR_START`          | `0x0b00`     |
  | `LV_PROPERTY_SWITCH_START`       | `0x0c00`     |
  | `LV_PROPERTY_CHECKBOX_START`     | `0x0d00`     |
  | `LV_PROPERTY_LED_START`          | `0x0e00`     |
  | `LV_PROPERTY_LINE_START`         | `0x0f00`     |
  | `LV_PROPERTY_SCALE_START`        | `0x1000`     |
  | `LV_PROPERTY_SPINBOX_START`      | `0x1100`     |
  | `LV_PROPERTY_SPINNER_START`      | `0x1200`     |
  | `LV_PROPERTY_TABLE_START`        | `0x1300`     |
  | `LV_PROPERTY_TABVIEW_START`      | `0x1400`     |
  | `LV_PROPERTY_BUTTONMATRIX_START` | `0x1500`     |
  | `LV_PROPERTY_SPAN_START`         | `0x1600`     |
  | `LV_PROPERTY_MENU_START`         | `0x1700`     |
  | `LV_PROPERTY_CHART_START`        | `0x1800`     |
  | `LV_PROPERTY_ID_BUILTIN_LAST`    | `0xffff`     |
  | `LV_PROPERTY_ID_ANY`             | `0x7ffffffe` |
</ApiMember>

Structs [#structs]

<ApiMember kind="struct" name="_lv_property_name_t">
  \_lv_property_name_t [#_lv_property_name_t]

  | Member | Type                            | Description |
  | ------ | ------------------------------- | ----------- |
  | `name` | `const char *`                  |             |
  | `id`   | <ApiLink name="lv_prop_id_t" /> |             |
</ApiMember>

<ApiMember kind="struct" name="lv_property_t">
  lv_property_t [#lv_property_t]

  | Member     | Type                                                           | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
  | ---------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `id`       | <ApiLink name="lv_prop_id_t" />                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | `num`      | <ApiLink name="int32_t" />                                     | Signed integer number (enums or "normal" numbers)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  | `num_u`    | <ApiLink name="uint32_t" />                                    | Unsigned integer number (opacity, Booleans) \<br/>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
  | `enable`   | <ApiLink name="bool" />                                        | Booleans                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
  | `ptr`      | `const void *`                                                 | Constant pointers (font, cone text, etc.)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
  | `color`    | <ApiLink name="lv_color_t" />                                  | Colors                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
  | `precise`  | <ApiLink name="lv_value_precise_t" />                          | float or int for precise value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
  | `point`    | <ApiLink name="lv_point_t" />                                  | Point, contains two int32\_t                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `style`    | <ApiLink name="lv_style_value_t" />                            | Note 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`.<br /><br />E.g.<br /><br />static const <ApiLink name="lv_property_t" /> obj\_pos\_x = \{ .id = LV\_PROPERTY\_STYLE\_X, .num = 123, .selector = LV\_STATE\_PRESSED, }<br /><br />instead of: static const <ApiLink name="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. |
  | `selector` | <ApiLink name="uint32_t" />                                    | Style selector, lv\_part\_t \| lv\_state\_t                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
  | `arg1`     | <ApiLink name="lv_property_t" display="union lv_property_t" /> |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | `arg2`     | <ApiLink name="lv_property_t" display="union lv_property_t" /> |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | \`\`       | <ApiLink name="lv_property_t" display="union lv_property_t" /> |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
</ApiMember>

<TypeUsedBy name="lv_property_t" count="2">
  * `lv_obj_set_property` — param `value`
  * `lv_obj_set_properties` — param `value`
</TypeUsedBy>

<ApiMember kind="struct" name="lv_property_ops_t">
  lv_property_ops_t [#lv_property_ops_t]

  | Member   | Type                            | Description                    |
  | -------- | ------------------------------- | ------------------------------ |
  | `id`     | <ApiLink name="lv_prop_id_t" /> |                                |
  | `setter` | `void *`                        | Callback used to set property. |
  | `getter` | `void *`                        | Callback used to get property. |
</ApiMember>

Macros [#macros]

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_INVALID" file="core/lv_obj_property.h" line="27" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L27">
  LV_PROPERTY_TYPE_INVALID [#lv_property_type_invalid]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_INVALID 0   /*Use default 0 as invalid to detect program outliers*/
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_INT" file="core/lv_obj_property.h" line="28" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L28">
  LV_PROPERTY_TYPE_INT [#lv_property_type_int]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_INT 1   /*int32_t type*/
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_PRECISE" file="core/lv_obj_property.h" line="29" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L29">
  LV_PROPERTY_TYPE_PRECISE [#lv_property_type_precise]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_PRECISE 2   /*lv_value_precise_t, int32_t or float depending on LV_USE_FLOAT*/
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_COLOR" file="core/lv_obj_property.h" line="30" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L30">
  LV_PROPERTY_TYPE_COLOR [#lv_property_type_color]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_COLOR 3   /*ARGB8888 type*/
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_POINT" file="core/lv_obj_property.h" line="31" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L31">
  LV_PROPERTY_TYPE_POINT [#lv_property_type_point]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_POINT 4   /*lv_point_t */
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_POINTER" file="core/lv_obj_property.h" line="32" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L32">
  LV_PROPERTY_TYPE_POINTER [#lv_property_type_pointer]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_POINTER 5   /*void * pointer*/
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_IMGSRC" file="core/lv_obj_property.h" line="33" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L33">
  LV_PROPERTY_TYPE_IMGSRC [#lv_property_type_imgsrc]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_IMGSRC 6   /*Special pointer for image*/
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_TEXT" file="core/lv_obj_property.h" line="34" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L34">
  LV_PROPERTY_TYPE_TEXT [#lv_property_type_text]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_TEXT 7   /*Special pointer of char* */
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_OBJ" file="core/lv_obj_property.h" line="35" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L35">
  LV_PROPERTY_TYPE_OBJ [#lv_property_type_obj]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_OBJ 8   /*Special pointer of lv_obj_t* */
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_DISPLAY" file="core/lv_obj_property.h" line="36" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L36">
  LV_PROPERTY_TYPE_DISPLAY [#lv_property_type_display]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_DISPLAY 9   /*Special pointer of lv_display_t* */
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_FONT" file="core/lv_obj_property.h" line="37" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L37">
  LV_PROPERTY_TYPE_FONT [#lv_property_type_font]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_FONT 10  /*Special pointer of lv_font_t* */
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_BOOL" file="core/lv_obj_property.h" line="38" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L38">
  LV_PROPERTY_TYPE_BOOL [#lv_property_type_bool]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_BOOL 11  /*int32_t type*/
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE_SHIFT" file="core/lv_obj_property.h" line="40" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L40">
  LV_PROPERTY_TYPE_SHIFT [#lv_property_type_shift]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE_SHIFT 28
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_TYPE2_SHIFT" file="core/lv_obj_property.h" line="41" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L41">
  LV_PROPERTY_TYPE2_SHIFT [#lv_property_type2_shift]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_TYPE2_SHIFT 24
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_ID" file="core/lv_obj_property.h" line="48" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L48">
  LV_PROPERTY_ID [#lv_property_id]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_ID(clz, name, type, index) \
      LV_PROPERTY_## clz ##_##name = (LV_PROPERTY_## clz ##_START + ((int)index)) | ((type) << LV_PROPERTY_TYPE_SHIFT)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_ID2" file="core/lv_obj_property.h" line="55" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L55">
  LV_PROPERTY_ID2 [#lv_property_id2]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_ID2(clz, name, type, type2, index) \
      LV_PROPERTY_ID(clz, name, type, index) | ((type2) << LV_PROPERTY_TYPE2_SHIFT)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_ID_TYPE" file="core/lv_obj_property.h" line="57" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L57">
  LV_PROPERTY_ID_TYPE [#lv_property_id_type]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_ID_TYPE(id) \
      ((id) >> LV_PROPERTY_TYPE_SHIFT)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_ID_TYPE2" file="core/lv_obj_property.h" line="58" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L58">
  LV_PROPERTY_ID_TYPE2 [#lv_property_id_type2]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_ID_TYPE2(id) \
      ((id) >> LV_PROPERTY_TYPE_SHIFT)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_ID_INDEX" file="core/lv_obj_property.h" line="59" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L59">
  LV_PROPERTY_ID_INDEX [#lv_property_id_index]

  ```c title=" " lineNumbers=1
  #define LV_PROPERTY_ID_INDEX(id) \
      ((id) & 0xfffffff)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_OBJ_SET_PROPERTY_ARRAY" file="core/lv_obj_property.h" line="62" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L62">
  LV_OBJ_SET_PROPERTY_ARRAY [#lv_obj_set_property_array]

  ```c title=" " lineNumbers=1
  #define LV_OBJ_SET_PROPERTY_ARRAY(obj, array) \
      lv_obj_set_properties(obj, array, LV_ARRAYLEN(array))
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PROPERTY_CLASS_FIELDS" file="core/lv_obj_property.h" line="67" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_property.h#L67">
  LV_PROPERTY_CLASS_FIELDS [#lv_property_class_fields]

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

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lv_types.h&#x22;, &#x22;lv_style.h&#x22;, &#x22;lv_obj_style.h&#x22;, &#x22;lv_obj_property_names.h&#x22;, &#x22;lv_style_properties.h&#x22;]" includedBy="[&#x22;lv_obj.h&#x22;, &#x22;lv_obj_class.h&#x22;, &#x22;lv_buttonmatrix.h&#x22;, &#x22;lv_menu.h&#x22;, &#x22;lv_style_properties.h&#x22;, &#x22;lv_span.h&#x22;, &#x22;lv_spinner.h&#x22;, &#x22;lv_table.h&#x22;, &#x22;lv_tabview.h&#x22;]" transitiveIncludes="[&#x22;lv_anim.h&#x22;, &#x22;lv_area.h&#x22;, &#x22;lv_assert.h&#x22;, &#x22;lv_bidi.h&#x22;, &#x22;lv_color.h&#x22;, &#x22;lv_color_op.h&#x22;, &#x22;lv_conf_internal.h&#x22;, &#x22;lv_conf_kconfig.h&#x22;, &#x22;lv_draw_buf.h&#x22;, &#x22;lv_ext_data.h&#x22;, &#x22;lv_flex.h&#x22;, &#x22;lv_font.h&#x22;, &#x22;lv_grad.h&#x22;, &#x22;lv_grid.h&#x22;, &#x22;lv_image_dsc.h&#x22;, &#x22;lv_layout.h&#x22;, &#x22;lv_ll.h&#x22;, &#x22;lv_log.h&#x22;, &#x22;lv_math.h&#x22;, &#x22;lv_mem.h&#x22;, &#x22;lv_obj_style_gen.h&#x22;, &#x22;lv_palette.h&#x22;, &#x22;lv_sprintf.h&#x22;, &#x22;lv_string.h&#x22;, &#x22;lv_style_gen.h&#x22;, &#x22;lv_symbol_def.h&#x22;, &#x22;lv_text.h&#x22;, &#x22;lv_tick.h&#x22;, &#x22;lv_timer.h&#x22;]" />
