# lv_obj_pos.h (/api/core/lv_obj_pos_h)



<ApiSummary functions="60" enums="1" />

Functions [#functions]

<ApiTabs items="[&#x22;Setters (12)&#x22;,&#x22;Getters (19)&#x22;,&#x22;Other (29)&#x22;]">
  <ApiTab value="Setters (12)">
    <ApiMember kind="function" name="lv_obj_set_pos" file="core/lv_obj_pos.h" line="54" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L54">
      lv_obj_set_pos [#lv_obj_set_pos]

      Set the position of an object relative to the set alignment.

      ```c title=" " lineNumbers=1
      void lv_obj_set_pos(lv_obj_t *obj, int32_t x, int32_t y)
      ```

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

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

      <Callout type="info">
        With default alignment it's the distance from the top left corner
      </Callout>

      <Callout type="info">
        E.g. LV\_ALIGN\_CENTER alignment it's the offset from the center of the parent
      </Callout>

      <Callout type="info">
        The position is interpreted on the content area of the parent
      </Callout>

      <Callout type="info">
        The values can be set in pixel or in percentage of parent size with `lv_pct(v)`
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_x" file="core/lv_obj_pos.h" line="65" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L65">
      lv_obj_set_x [#lv_obj_set_x]

      Set the x coordinate of an object

      ```c title=" " lineNumbers=1
      void lv_obj_set_x(lv_obj_t *obj, int32_t x)
      ```

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

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

      <Callout type="info">
        With default alignment it's the distance from the top left corner
      </Callout>

      <Callout type="info">
        E.g. LV\_ALIGN\_CENTER alignment it's the offset from the center of the parent
      </Callout>

      <Callout type="info">
        The position is interpreted on the content area of the parent
      </Callout>

      <Callout type="info">
        The values can be set in pixel or in percentage of parent size with `lv_pct(v)`
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_y" file="core/lv_obj_pos.h" line="76" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L76">
      lv_obj_set_y [#lv_obj_set_y]

      Set the y coordinate of an object

      ```c title=" " lineNumbers=1
      void lv_obj_set_y(lv_obj_t *obj, int32_t y)
      ```

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

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

      <Callout type="info">
        With default alignment it's the distance from the top left corner
      </Callout>

      <Callout type="info">
        E.g. LV\_ALIGN\_CENTER alignment it's the offset from the center of the parent
      </Callout>

      <Callout type="info">
        The position is interpreted on the content area of the parent
      </Callout>

      <Callout type="info">
        The values can be set in pixel or in percentage of parent size with `lv_pct(v)`
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_size" file="core/lv_obj_pos.h" line="89" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L89">
      lv_obj_set_size [#lv_obj_set_size]

      Set the size of an object.

      ```c title=" " lineNumbers=1
      void lv_obj_set_size(lv_obj_t *obj, int32_t w, int32_t h)
      ```

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

      | Name  | Type                                             | Description          |
      | ----- | ------------------------------------------------ | -------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object |
      | `w`   | <ApiLink name="int32_t" />                       | the new width        |
      | `h`   | <ApiLink name="int32_t" />                       | the new height       |

      <Callout type="info">
        possible values are: pixel simple set the size accordingly LV\_SIZE\_CONTENT set the size to involve all children in the given direction lv\_pct(x) to set size in percentage of the parent's content area size (the size without paddings). x should be in \[0..1000]% range
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_width" file="core/lv_obj_pos.h" line="108" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L108">
      lv_obj_set_width [#lv_obj_set_width]

      Set the width of an object

      ```c title=" " lineNumbers=1
      void lv_obj_set_width(lv_obj_t *obj, int32_t w)
      ```

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

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

      <Callout type="info">
        possible values are: pixel simple set the size accordingly LV\_SIZE\_CONTENT set the size to involve all children in the given direction lv\_pct(x) to set size in percentage of the parent's content area size (the size without paddings). x should be in \[0..1000]% range
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_height" file="core/lv_obj_pos.h" line="120" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L120">
      lv_obj_set_height [#lv_obj_set_height]

      Set the height of an object

      ```c title=" " lineNumbers=1
      void lv_obj_set_height(lv_obj_t *obj, int32_t h)
      ```

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

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

      <Callout type="info">
        possible values are: pixel simple set the size accordingly LV\_SIZE\_CONTENT set the size to involve all children in the given direction lv\_pct(x) to set size in percentage of the parent's content area size (the size without paddings). x should be in \[0..1000]% range
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_content_width" file="core/lv_obj_pos.h" line="127" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L127">
      lv_obj_set_content_width [#lv_obj_set_content_width]

      Set the width reduced by the left and right padding and the border width.

      ```c title=" " lineNumbers=1
      void lv_obj_set_content_width(lv_obj_t *obj, int32_t w)
      ```

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

      | Name  | Type                                             | Description                          |
      | ----- | ------------------------------------------------ | ------------------------------------ |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object                 |
      | `w`   | <ApiLink name="int32_t" />                       | the width without paddings in pixels |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_content_height" file="core/lv_obj_pos.h" line="134" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L134">
      lv_obj_set_content_height [#lv_obj_set_content_height]

      Set the height reduced by the top and bottom padding and the border width.

      ```c title=" " lineNumbers=1
      void lv_obj_set_content_height(lv_obj_t *obj, int32_t h)
      ```

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

      | Name  | Type                                             | Description                           |
      | ----- | ------------------------------------------------ | ------------------------------------- |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object                  |
      | `h`   | <ApiLink name="int32_t" />                       | the height without paddings in pixels |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_layout" file="core/lv_obj_pos.h" line="141" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L141">
      lv_obj_set_layout [#lv_obj_set_layout]

      Set a layout for an object

      ```c title=" " lineNumbers=1
      void lv_obj_set_layout(lv_obj_t *obj, uint32_t layout)
      ```

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

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

    <ApiMember kind="function" name="lv_obj_set_align" file="core/lv_obj_pos.h" line="167" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L167">
      lv_obj_set_align [#lv_obj_set_align]

      Change the alignment of an object.

      ```c title=" " lineNumbers=1
      void lv_obj_set_align(lv_obj_t *obj, lv_align_t align)
      ```

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

      | Name    | Type                                             | Description                                                                   |
      | ------- | ------------------------------------------------ | ----------------------------------------------------------------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object to align                                                 |
      | `align` | <ApiLink name="lv_align_t" />                    | type of alignment (see 'lv\_align\_t' enum) `LV_ALIGN_OUT_...` can't be used. |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_transform" file="core/lv_obj_pos.h" line="206" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L206">
      lv_obj_set_transform [#lv_obj_set_transform]

      Set the transform matrix of an object

      ```c title=" " lineNumbers=1
      void lv_obj_set_transform(lv_obj_t *obj, const lv_matrix_t *matrix)
      ```

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

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

      <Callout type="info">
        `LV_DRAW_TRANSFORM_USE_MATRIX` needs to be enabled.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_set_ext_click_area" file="core/lv_obj_pos.h" line="513" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L513">
      lv_obj_set_ext_click_area [#lv_obj_set_ext_click_area]

      Set the size of an extended clickable area

      ```c title=" " lineNumbers=1
      void lv_obj_set_ext_click_area(lv_obj_t *obj, int32_t size)
      ```

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

      | Name   | Type                                             | Description                                       |
      | ------ | ------------------------------------------------ | ------------------------------------------------- |
      | `obj`  | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object                              |
      | `size` | <ApiLink name="int32_t" />                       | extended clickable area in all 4 directions \[px] |
    </ApiMember>
  </ApiTab>

  <ApiTab value="Getters (19)">
    <ApiMember kind="function" name="lv_obj_get_coords" file="core/lv_obj_pos.h" line="220" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L220">
      lv_obj_get_coords [#lv_obj_get_coords]

      Copy the coordinates of an object to an area

      ```c title=" " lineNumbers=1
      void lv_obj_get_coords(const lv_obj_t *obj, lv_area_t *coords)
      ```

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

      | Name     | Type                                                   | Description                                 |
      | -------- | ------------------------------------------------------ | ------------------------------------------- |
      | `obj`    | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object                        |
      | `coords` | <ApiLink name="lv_area_t" display="lv_area_t *" />     | pointer to an area to store the coordinates |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_x" file="core/lv_obj_pos.h" line="232" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L232">
      lv_obj_get_x [#lv_obj_get_x]

      Get the x coordinate of object.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_x(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="int32_t" /> — distance of `obj` from the left side of its parent plus the parent's left padding

      <Callout type="info">
        The position of the object is recalculated only on the next redraw. To force coordinate recalculation call `lv_obj_update_layout(obj)`.
      </Callout>

      <Callout type="info">
        Zero return value means the object is on the left padding of the parent, and not on the left edge.
      </Callout>

      <Callout type="info">
        Scrolling of the parent doesn't change the returned value.
      </Callout>

      <Callout type="info">
        The returned value is always the distance from the parent even if `obj` is positioned by a layout.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_x2" file="core/lv_obj_pos.h" line="244" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L244">
      lv_obj_get_x2 [#lv_obj_get_x2]

      Get the x2 coordinate of object.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_x2(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="int32_t" /> — distance of `obj` from the right side of its parent plus the parent's right padding

      <Callout type="info">
        The position of the object is recalculated only on the next redraw. To force coordinate recalculation call `lv_obj_update_layout(obj)`.
      </Callout>

      <Callout type="info">
        Zero return value means the object is on the right padding of the parent, and not on the right edge.
      </Callout>

      <Callout type="info">
        Scrolling of the parent doesn't change the returned value.
      </Callout>

      <Callout type="info">
        The returned value is always the distance from the parent even if `obj` is positioned by a layout.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_y" file="core/lv_obj_pos.h" line="256" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L256">
      lv_obj_get_y [#lv_obj_get_y]

      Get the y coordinate of object.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_y(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="int32_t" /> — distance of `obj` from the top side of its parent plus the parent's top padding

      <Callout type="info">
        The position of the object is recalculated only on the next redraw. To force coordinate recalculation call `lv_obj_update_layout(obj)`.
      </Callout>

      <Callout type="info">
        Zero return value means the object is on the top padding of the parent, and not on the top edge.
      </Callout>

      <Callout type="info">
        Scrolling of the parent doesn't change the returned value.
      </Callout>

      <Callout type="info">
        The returned value is always the distance from the parent even if `obj` is positioned by a layout.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_y2" file="core/lv_obj_pos.h" line="268" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L268">
      lv_obj_get_y2 [#lv_obj_get_y2]

      Get the y2 coordinate of object.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_y2(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="int32_t" /> — distance of `obj` from the bottom side of its parent plus the parent's bottom padding

      <Callout type="info">
        The position of the object is recalculated only on the next redraw. To force coordinate recalculation call `lv_obj_update_layout(obj)`.
      </Callout>

      <Callout type="info">
        Zero return value means the object is on the bottom padding of the parent, and not on the bottom edge.
      </Callout>

      <Callout type="info">
        Scrolling of the parent doesn't change the returned value.
      </Callout>

      <Callout type="info">
        The returned value is always the distance from the parent even if `obj` is positioned by a layout.
      </Callout>
    </ApiMember>

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

      Get the actually set x coordinate of object, i.e. the offset from the set alignment

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_x_aligned(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="int32_t" /> — the set x coordinate
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_y_aligned" file="core/lv_obj_pos.h" line="282" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L282">
      lv_obj_get_y_aligned [#lv_obj_get_y_aligned]

      Get the actually set y coordinate of object, i.e. the offset from the set alignment

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_y_aligned(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="int32_t" /> — the set y coordinate
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_width" file="core/lv_obj_pos.h" line="291" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L291">
      lv_obj_get_width [#lv_obj_get_width]

      Get the width of an object

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_width(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="int32_t" /> — the width in pixels

      <Callout type="info">
        The position of the object is recalculated only on the next redraw. To force coordinate recalculation call `lv_obj_update_layout(obj)`.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_height" file="core/lv_obj_pos.h" line="300" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L300">
      lv_obj_get_height [#lv_obj_get_height]

      Get the height of an object

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_height(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="int32_t" /> — the height in pixels

      <Callout type="info">
        The position of the object is recalculated only on the next redraw. To force coordinate recalculation call `lv_obj_update_layout(obj)`.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_content_width" file="core/lv_obj_pos.h" line="309" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L309">
      lv_obj_get_content_width [#lv_obj_get_content_width]

      Get the width reduced by the left and right padding and the border width.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_content_width(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="int32_t" /> — the width which still fits into its parent without causing overflow (making the parent scrollable)

      <Callout type="info">
        The position of the object is recalculated only on the next redraw. To force coordinate recalculation call `lv_obj_update_layout(obj)`.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_content_height" file="core/lv_obj_pos.h" line="318" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L318">
      lv_obj_get_content_height [#lv_obj_get_content_height]

      Get the height reduced by the top and bottom padding and the border width.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_content_height(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="int32_t" /> — the height which still fits into the parent without causing overflow (making the parent scrollable)

      <Callout type="info">
        The position of the object is recalculated only on the next redraw. To force coordinate recalculation call `lv_obj_update_layout(obj)`.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_content_coords" file="core/lv_obj_pos.h" line="327" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L327">
      lv_obj_get_content_coords [#lv_obj_get_content_coords]

      Get the area reduced by the paddings and the border width.

      ```c title=" " lineNumbers=1
      void lv_obj_get_content_coords(const lv_obj_t *obj, lv_area_t *area)
      ```

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

      | Name   | Type                                                   | Description                                                                                       |
      | ------ | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object                                                                              |
      | `area` | <ApiLink name="lv_area_t" display="lv_area_t *" />     | the area which still fits into the parent without causing overflow (making the parent scrollable) |

      <Callout type="info">
        The position of the object is recalculated only on the next redraw. To force coordinate recalculation call `lv_obj_update_layout(obj)`.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_self_width" file="core/lv_obj_pos.h" line="336" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L336">
      lv_obj_get_self_width [#lv_obj_get_self_width]

      Get the width occupied by the "parts" of the widget. E.g. the width of all columns of a table.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_self_width(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="int32_t" /> — the width of the virtually drawn content

      <Callout type="info">
        This size independent from the real size of the widget. It just tells how large the internal ("virtual") content is.
      </Callout>
    </ApiMember>

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

      Get the height occupied by the "parts" of the widget. E.g. the height of all rows of a table.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_self_height(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="int32_t" /> — the width of the virtually drawn content

      <Callout type="info">
        This size independent from the real size of the widget. It just tells how large the internal ("virtual") content is.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_style_clamped_width" file="core/lv_obj_pos.h" line="354" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L354">
      lv_obj_get_style_clamped_width [#lv_obj_get_style_clamped_width]

      Get the style width actually used by the object after clamping the width within the min max range.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_style_clamped_width(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:** <ApiLink name="int32_t" /> — the min/max/normal width set by `lv_obj_set_style_<min/max>_width()`

      <Callout type="info">
        This is not the calculated size, so if the size was set as `LV_SIZE_CONTENT` or <ApiLink name="LV_PCT" display="LV_PCT()" /> then that value will be returned.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_style_clamped_height" file="core/lv_obj_pos.h" line="363" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L363">
      lv_obj_get_style_clamped_height [#lv_obj_get_style_clamped_height]

      Get the style height actually used by the object after clamping the height within the min max range.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_get_style_clamped_height(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:** <ApiLink name="int32_t" /> — the min/max/normal height set by `lv_obj_set_style_<min/max>_height()`

      <Callout type="info">
        This is not the calculated size, so if the size was set as `LV_SIZE_CONTENT` or <ApiLink name="LV_PCT" display="LV_PCT()" /> then that value will be returned.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_transform" file="core/lv_obj_pos.h" line="447" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L447">
      lv_obj_get_transform [#lv_obj_get_transform]

      Get the transform matrix of an object

      ```c title=" " lineNumbers=1
      const lv_matrix_t * lv_obj_get_transform(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_matrix_t" display="const lv_matrix_t *" /> — pointer to the transform matrix or NULL if not set
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_transformed_area" file="core/lv_obj_pos.h" line="473" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L473">
      lv_obj_get_transformed_area [#lv_obj_get_transformed_area]

      Transform an area using the angle and zoom style properties of an object

      ```c title=" " lineNumbers=1
      void lv_obj_get_transformed_area(const lv_obj_t *obj, lv_area_t *area, lv_obj_point_transform_flag_t flags)
      ```

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

      | Name    | Type                                                   | Description                                                    |
      | ------- | ------------------------------------------------------ | -------------------------------------------------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object whose style properties should be used     |
      | `area`  | <ApiLink name="lv_area_t" display="lv_area_t *" />     | an area to transform, the result will be written back here too |
      | `flags` | <ApiLink name="lv_obj_point_transform_flag_t" />       | OR-ed valued of :cpp:enum:`lv_obj_point_transform_flag_t`      |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_get_click_area" file="core/lv_obj_pos.h" line="521" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L521">
      lv_obj_get_click_area [#lv_obj_get_click_area]

      Get the an area where to object can be clicked. It's the object's normal area plus the extended click area.

      ```c title=" " lineNumbers=1
      void lv_obj_get_click_area(const lv_obj_t *obj, lv_area_t *area)
      ```

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

      | Name   | Type                                                   | Description                |
      | ------ | ------------------------------------------------------ | -------------------------- |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object       |
      | `area` | <ApiLink name="lv_area_t" display="lv_area_t *" />     | store the result area here |
    </ApiMember>
  </ApiTab>

  <ApiTab value="Other (29)">
    <ApiMember kind="function" name="lv_obj_refr_size" file="core/lv_obj_pos.h" line="96" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L96">
      lv_obj_refr_size [#lv_obj_refr_size]

      Recalculate the size of the object

      ```c title=" " lineNumbers=1
      bool lv_obj_refr_size(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:** <ApiLink name="bool" /> — true: the size has been changed
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_is_layout_positioned" file="core/lv_obj_pos.h" line="148" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L148">
      lv_obj_is_layout_positioned [#lv_obj_is_layout_positioned]

      Test whether the and object is positioned by a layout or not

      ```c title=" " lineNumbers=1
      bool lv_obj_is_layout_positioned(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 to test |

      **Returns:** <ApiLink name="bool" /> — true: positioned by a layout; false: not positioned by a layout
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_mark_layout_as_dirty" file="core/lv_obj_pos.h" line="154" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L154">
      lv_obj_mark_layout_as_dirty [#lv_obj_mark_layout_as_dirty]

      Mark the object for layout update.

      ```c title=" " lineNumbers=1
      void lv_obj_mark_layout_as_dirty(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 whose children need to be updated |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_update_layout" file="core/lv_obj_pos.h" line="160" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L160">
      lv_obj_update_layout [#lv_obj_update_layout]

      Update the layout of an object.

      ```c title=" " lineNumbers=1
      void lv_obj_update_layout(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 whose position and size needs to be updated |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_align" file="core/lv_obj_pos.h" line="179" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L179">
      lv_obj_align [#lv_obj_align]

      Change the alignment of an object and set new coordinates. Equivalent to: lv\_obj\_set\_align(obj, align); lv\_obj\_set\_pos(obj, x\_ofs, y\_ofs);

      ```c title=" " lineNumbers=1
      void lv_obj_align(lv_obj_t *obj, lv_align_t align, int32_t x_ofs, int32_t y_ofs)
      ```

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

      | Name    | Type                                             | Description                                                                   |
      | ------- | ------------------------------------------------ | ----------------------------------------------------------------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | pointer to an object to align                                                 |
      | `align` | <ApiLink name="lv_align_t" />                    | type of alignment (see 'lv\_align\_t' enum) `LV_ALIGN_OUT_...` can't be used. |
      | `x_ofs` | <ApiLink name="int32_t" />                       | x coordinate offset after alignment                                           |
      | `y_ofs` | <ApiLink name="int32_t" />                       | y coordinate offset after alignment                                           |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_align_to" file="core/lv_obj_pos.h" line="190" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L190">
      lv_obj_align_to [#lv_obj_align_to]

      Align an object to another object.

      ```c title=" " lineNumbers=1
      void lv_obj_align_to(lv_obj_t *obj, const lv_obj_t *base, lv_align_t align, int32_t x_ofs, int32_t y_ofs)
      ```

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

      | Name    | Type                                                   | Description                                                                             |
      | ------- | ------------------------------------------------------ | --------------------------------------------------------------------------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="lv_obj_t *" />       | pointer to an object to align                                                           |
      | `base`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to another object (if NULL `obj`s parent is used). 'obj' will be aligned to it. |
      | `align` | <ApiLink name="lv_align_t" />                          | type of alignment (see 'lv\_align\_t' enum)                                             |
      | `x_ofs` | <ApiLink name="int32_t" />                             | x coordinate offset after alignment                                                     |
      | `y_ofs` | <ApiLink name="int32_t" />                             | y coordinate offset after alignment                                                     |

      <Callout type="info">
        if the position or size of `base` changes `obj` needs to be aligned manually again
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_center" file="core/lv_obj_pos.h" line="198" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L198">
      lv_obj_center [#lv_obj_center]

      Align an object to the center on its parent.

      ```c title=" " lineNumbers=1
      void lv_obj_center(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 to align |

      <Callout type="info">
        if the parent size changes `obj` needs to be aligned manually again
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_reset_transform" file="core/lv_obj_pos.h" line="213" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L213">
      lv_obj_reset_transform [#lv_obj_reset_transform]

      Reset the transform matrix of an object to identity matrix

      ```c title=" " lineNumbers=1
      void lv_obj_reset_transform(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 |

      <Callout type="info">
        `LV_DRAW_TRANSFORM_USE_MATRIX` needs to be enabled.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_is_style_any_width_content" file="core/lv_obj_pos.h" line="371" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L371">
      lv_obj_is_style_any_width_content [#lv_obj_is_style_any_width_content]

      Determine if any of the object's width style properties are set to `LV_SIZE_CONTENT`.

      ```c title=" " lineNumbers=1
      bool lv_obj_is_style_any_width_content(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 a valid object. |

      **Returns:** <ApiLink name="bool" /> — `false` No width style properties are `LV_SIZE_CONTENT`.
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_is_style_any_height_content" file="core/lv_obj_pos.h" line="379" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L379">
      lv_obj_is_style_any_height_content [#lv_obj_is_style_any_height_content]

      Determine if any of the object's height style properties are set to `LV_SIZE_CONTENT`.

      ```c title=" " lineNumbers=1
      bool lv_obj_is_style_any_height_content(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 a valid object. |

      **Returns:** <ApiLink name="bool" /> — `false` No height style properties are `LV_SIZE_CONTENT`.
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_is_width_min" file="core/lv_obj_pos.h" line="391" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L391">
      lv_obj_is_width_min [#lv_obj_is_width_min]

      Determine if the object's resolved width was limited by its minimum width constraint.

      This function reports whether, in the most recent layout / size calculation, the object's final (used) width had to be raised to satisfy a minimum width requirement.

      ```c title=" " lineNumbers=1
      bool lv_obj_is_width_min(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 a valid object. |

      **Returns:** <ApiLink name="bool" /> — false The width is larger than the minimum (not min‑clamped).
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_is_height_min" file="core/lv_obj_pos.h" line="403" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L403">
      lv_obj_is_height_min [#lv_obj_is_height_min]

      Determine if the object's resolved height was limited by its minimum height constraint.

      This function reports whether, in the most recent layout / size calculation, the object's final (used) height had to be raised to satisfy a minimum height requirement.

      ```c title=" " lineNumbers=1
      bool lv_obj_is_height_min(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 a valid object. |

      **Returns:** <ApiLink name="bool" /> — false The height is larger than the minimum (not min‑clamped).
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_is_width_max" file="core/lv_obj_pos.h" line="415" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L415">
      lv_obj_is_width_max [#lv_obj_is_width_max]

      Determine if the object's resolved width was limited by its maximum width constraint.

      This function reports whether, in the most recent layout / size calculation, the object's final (used) width had to be raised to satisfy a maximum width requirement.

      ```c title=" " lineNumbers=1
      bool lv_obj_is_width_max(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 a valid object. |

      **Returns:** <ApiLink name="bool" /> — false The width is smaller than the maximum (not min‑clamped).
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_is_height_max" file="core/lv_obj_pos.h" line="427" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L427">
      lv_obj_is_height_max [#lv_obj_is_height_max]

      Determine if the object's resolved height was limited by its maximum height constraint.

      This function reports whether, in the most recent layout / size calculation, the object's final (used) height had to be raised to satisfy a maximum height requirement.

      ```c title=" " lineNumbers=1
      bool lv_obj_is_height_max(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 a valid object. |

      **Returns:** <ApiLink name="bool" /> — false The height is smaller than the maximum (not min‑clamped).
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_refresh_self_size" file="core/lv_obj_pos.h" line="434" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L434">
      lv_obj_refresh_self_size [#lv_obj_refresh_self_size]

      Handle if the size of the internal ("virtual") content of an object has changed.

      ```c title=" " lineNumbers=1
      bool lv_obj_refresh_self_size(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:** <ApiLink name="bool" /> — false: nothing happened; true: refresh happened
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_refr_pos" file="core/lv_obj_pos.h" line="436" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L436">
      lv_obj_refr_pos [#lv_obj_refr_pos]

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

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

      | Name  | Type                                             |
      | ----- | ------------------------------------------------ |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_move_to" file="core/lv_obj_pos.h" line="438" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L438">
      lv_obj_move_to [#lv_obj_move_to]

      ```c title=" " lineNumbers=1
      void lv_obj_move_to(lv_obj_t *obj, int32_t x, int32_t y)
      ```

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

      | Name  | Type                                             |
      | ----- | ------------------------------------------------ |
      | `obj` | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> |
      | `x`   | <ApiLink name="int32_t" />                       |
      | `y`   | <ApiLink name="int32_t" />                       |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_move_children_by" file="core/lv_obj_pos.h" line="440" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L440">
      lv_obj_move_children_by [#lv_obj_move_children_by]

      ```c title=" " lineNumbers=1
      void lv_obj_move_children_by(lv_obj_t *obj, int32_t x_diff, int32_t y_diff, bool ignore_floating)
      ```

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

      | Name              | Type                                             |
      | ----------------- | ------------------------------------------------ |
      | `obj`             | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> |
      | `x_diff`          | <ApiLink name="int32_t" />                       |
      | `y_diff`          | <ApiLink name="int32_t" />                       |
      | `ignore_floating` | <ApiLink name="bool" />                          |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_transform_point" file="core/lv_obj_pos.h" line="455" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L455">
      lv_obj_transform_point [#lv_obj_transform_point]

      Transform a point using the angle and zoom style properties of an object

      ```c title=" " lineNumbers=1
      void lv_obj_transform_point(const lv_obj_t *obj, lv_point_t *p, lv_obj_point_transform_flag_t flags)
      ```

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

      | Name    | Type                                                   | Description                                                    |
      | ------- | ------------------------------------------------------ | -------------------------------------------------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object whose style properties should be used     |
      | `p`     | <ApiLink name="lv_point_t" display="lv_point_t *" />   | a point to transform, the result will be written back here too |
      | `flags` | <ApiLink name="lv_obj_point_transform_flag_t" />       | OR-ed valued of :cpp:enum:`lv_obj_point_transform_flag_t`      |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_transform_point_array" file="core/lv_obj_pos.h" line="464" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L464">
      lv_obj_transform_point_array [#lv_obj_transform_point_array]

      Transform an array of points using the angle and zoom style properties of an object

      ```c title=" " lineNumbers=1
      void lv_obj_transform_point_array(const lv_obj_t *obj, lv_point_t points[], size_t count, lv_obj_point_transform_flag_t flags)
      ```

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

      | Name     | Type                                                   | Description                                                                |
      | -------- | ------------------------------------------------------ | -------------------------------------------------------------------------- |
      | `obj`    | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object whose style properties should be used                 |
      | `points` | <ApiLink name="lv_point_t" />                          | the array of points to transform, the result will be written back here too |
      | `count`  | <ApiLink name="size_t" />                              | number of points in the array                                              |
      | `flags`  | <ApiLink name="lv_obj_point_transform_flag_t" />       | OR-ed valued of :cpp:enum:`lv_obj_point_transform_flag_t`                  |
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_invalidate_area" file="core/lv_obj_pos.h" line="483" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L483">
      lv_obj_invalidate_area [#lv_obj_invalidate_area]

      Mark an area of an object as invalid. The area will be truncated to the object's area and marked for redraw.

      ```c title=" " lineNumbers=1
      lv_result_t lv_obj_invalidate_area(const lv_obj_t *obj, const lv_area_t *area)
      ```

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

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

      **Returns:** <ApiLink name="lv_result_t" /> — LV\_RESULT\_OK: the area is invalidated; LV\_RESULT\_INVALID: the area wasn't invalidated. (maybe it was off-screen or fully clipped)
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_invalidate" file="core/lv_obj_pos.h" line="491" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L491">
      lv_obj_invalidate [#lv_obj_invalidate]

      Mark the object as invalid to redrawn its area

      ```c title=" " lineNumbers=1
      lv_result_t lv_obj_invalidate(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_result_t" /> — LV\_RESULT\_OK: the area is invalidated; LV\_RESULT\_INVALID: the area wasn't invalidated. (maybe it was off-screen or fully clipped)
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_area_is_visible" file="core/lv_obj_pos.h" line="499" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L499">
      lv_obj_area_is_visible [#lv_obj_area_is_visible]

      Tell whether an area of an object is visible (even partially) now or not

      ```c title=" " lineNumbers=1
      bool lv_obj_area_is_visible(const lv_obj_t *obj, lv_area_t *area)
      ```

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

      | Name   | Type                                                   | Description                                                               |
      | ------ | ------------------------------------------------------ | ------------------------------------------------------------------------- |
      | `obj`  | <ApiLink name="lv_obj_t" display="const lv_obj_t *" /> | pointer to an object                                                      |
      | `area` | <ApiLink name="lv_area_t" display="lv_area_t *" />     | the are to check. The visible part of the area will be written back here. |

      **Returns:** <ApiLink name="bool" /> — true visible; false not visible (hidden, out of parent, on other screen, etc)
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_is_visible" file="core/lv_obj_pos.h" line="506" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L506">
      lv_obj_is_visible [#lv_obj_is_visible]

      Tell whether an object is visible (even partially) now or not

      ```c title=" " lineNumbers=1
      bool lv_obj_is_visible(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: visible; false not visible (hidden, out of parent, on other screen, etc)
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_hit_test" file="core/lv_obj_pos.h" line="529" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L529">
      lv_obj_hit_test [#lv_obj_hit_test]

      Hit-test an object given a particular point in screen space.

      ```c title=" " lineNumbers=1
      bool lv_obj_hit_test(lv_obj_t *obj, const lv_point_t *point)
      ```

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

      | Name    | Type                                                       | Description                              |
      | ------- | ---------------------------------------------------------- | ---------------------------------------- |
      | `obj`   | <ApiLink name="lv_obj_t" display="lv_obj_t *" />           | object to hit-test                       |
      | `point` | <ApiLink name="lv_point_t" display="const lv_point_t *" /> | screen-space point (absolute coordinate) |

      **Returns:** <ApiLink name="bool" /> — true: if the object is considered under the point
    </ApiMember>

    <ApiMember kind="function" name="lv_clamp_width" file="core/lv_obj_pos.h" line="539" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L539">
      lv_clamp_width [#lv_clamp_width]

      Clamp a width between min and max width. If the min/max width is in percentage value use the ref\_width

      ```c title=" " lineNumbers=1
      int32_t lv_clamp_width(int32_t width, int32_t min_width, int32_t max_width, int32_t ref_width)
      ```

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

      | Name        | Type                       | Description                                                  |
      | ----------- | -------------------------- | ------------------------------------------------------------ |
      | `width`     | <ApiLink name="int32_t" /> | width to clamp                                               |
      | `min_width` | <ApiLink name="int32_t" /> | the minimal width                                            |
      | `max_width` | <ApiLink name="int32_t" /> | the maximal width                                            |
      | `ref_width` | <ApiLink name="int32_t" /> | the reference width used when min/max width is in percentage |

      **Returns:** <ApiLink name="int32_t" /> — the clamped width
    </ApiMember>

    <ApiMember kind="function" name="lv_clamp_height" file="core/lv_obj_pos.h" line="549" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L549">
      lv_clamp_height [#lv_clamp_height]

      Clamp a height between min and max height. If the min/max height is in percentage value use the ref\_height

      ```c title=" " lineNumbers=1
      int32_t lv_clamp_height(int32_t height, int32_t min_height, int32_t max_height, int32_t ref_height)
      ```

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

      | Name         | Type                       | Description                                                    |
      | ------------ | -------------------------- | -------------------------------------------------------------- |
      | `height`     | <ApiLink name="int32_t" /> | height to clamp                                                |
      | `min_height` | <ApiLink name="int32_t" /> | the minimal height                                             |
      | `max_height` | <ApiLink name="int32_t" /> | the maximal height                                             |
      | `ref_height` | <ApiLink name="int32_t" /> | the reference height used when min/max height is in percentage |

      **Returns:** <ApiLink name="int32_t" /> — the clamped height
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_calc_dynamic_width" file="core/lv_obj_pos.h" line="561" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L561">
      lv_obj_calc_dynamic_width [#lv_obj_calc_dynamic_width]

      Calculates the width in pixels of an LVGL object based on its style and parent for a given width `prop`.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_calc_dynamic_width(lv_obj_t *obj, lv_style_prop_t prop)
      ```

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

      | Name   | Type                                             | Description                                                                                                              |
      | ------ | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
      | `obj`  | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | Pointer to the LVGL object whose width is being calculated.                                                              |
      | `prop` | <ApiLink name="lv_style_prop_t" />               | Which style width to calculate for. Valid values are: LV\_STYLE\_WIDTH, LV\_STYLE\_MIN\_WIDTH, or LV\_STYLE\_MAX\_WIDTH. |

      **Returns:** <ApiLink name="int32_t" /> — The computed width for the object:

      <Callout type="info">
        If the style width is a fixed value, that value is returned.
      </Callout>

      <Callout type="info">
        If the style width is `LV_SIZE_CONTENT`, the content width is calculated and returned.
      </Callout>

      <Callout type="info">
        If the style width is a <ApiLink name="LV_PCT" display="LV_PCT()" />, the percentage is applied to the parent's width.
      </Callout>
    </ApiMember>

    <ApiMember kind="function" name="lv_obj_calc_dynamic_height" file="core/lv_obj_pos.h" line="573" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L573">
      lv_obj_calc_dynamic_height [#lv_obj_calc_dynamic_height]

      Calculates the height in pixels of an LVGL object based on its style and parent for a given height `prop`.

      ```c title=" " lineNumbers=1
      int32_t lv_obj_calc_dynamic_height(lv_obj_t *obj, lv_style_prop_t prop)
      ```

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

      | Name   | Type                                             | Description                                                                                                                  |
      | ------ | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
      | `obj`  | <ApiLink name="lv_obj_t" display="lv_obj_t *" /> | Pointer to the LVGL object whose height is being calculated.                                                                 |
      | `prop` | <ApiLink name="lv_style_prop_t" />               | Which style height to calculate for. Valid values are: LV\_STYLE\_HEIGHT, LV\_STYLE\_MIN\_HEIGHT, or LV\_STYLE\_MAX\_HEIGHT. |

      **Returns:** <ApiLink name="int32_t" /> — The computed height for the object:

      <Callout type="info">
        If the style height is a fixed value, that value is returned.
      </Callout>

      <Callout type="info">
        If the style height is `LV_SIZE_CONTENT`, the content height is calculated and returned.
      </Callout>

      <Callout type="info">
        If the style height is a <ApiLink name="LV_PCT" display="LV_PCT()" />, the percentage is applied to the parent's height.
      </Callout>
    </ApiMember>
  </ApiTab>
</ApiTabs>

Enums [#enums]

<ApiMember kind="enum" name="lv_obj_point_transform_flag_t" file="core/lv_obj_pos.h" line="26" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/core/lv_obj_pos.h#L26">
  lv_obj_point_transform_flag_t [#lv_obj_point_transform_flag_t]

  | Name                                            | Value  | Description                                                   |
  | ----------------------------------------------- | ------ | ------------------------------------------------------------- |
  | `LV_OBJ_POINT_TRANSFORM_FLAG_NONE`              | `0x00` | No flags                                                      |
  | `LV_OBJ_POINT_TRANSFORM_FLAG_RECURSIVE`         | `0x01` | Consider the transformation properties of the parents too     |
  | `LV_OBJ_POINT_TRANSFORM_FLAG_INVERSE`           | `0x02` | Execute the inverse of the transformation (-angle and 1/zoom) |
  | `LV_OBJ_POINT_TRANSFORM_FLAG_INVERSE_RECURSIVE` | `0x03` | Both inverse and recursive                                    |
</ApiMember>

<TypeUsedBy name="lv_obj_point_transform_flag_t" count="3">
  * `lv_obj_transform_point` — param `flags`
  * `lv_obj_transform_point_array` — param `flags`
  * `lv_obj_get_transformed_area` — param `flags`
</TypeUsedBy>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lv_area.h&#x22;]" includedBy="[&#x22;lv_obj.h&#x22;]" transitiveIncludes="[&#x22;lv_conf_internal.h&#x22;, &#x22;lv_conf_kconfig.h&#x22;, &#x22;lv_math.h&#x22;, &#x22;lv_types.h&#x22;]" />
