「App:Library:LVGL:docs:Widgets:Base object」の版間の差分

提供: robot-jp wiki
ナビゲーションに移動検索に移動
(ページの作成:「https://docs.lvgl.io/8.2/widgets/index.html __NOTOC__ {| class="wikitable" !英文 !自動翻訳 |- | | |} = Base object (lv_obj) = == Overview == The 'Base Object' i…」)
 
24行目: 24行目:
 
In object-oriented thinking, it is the base class from which all other objects in LVGL are inherited.
 
In object-oriented thinking, it is the base class from which all other objects in LVGL are inherited.
  
The functions and functionalities of the Base object can be used with other widgets too. For example <code>lv_obj_set_width(slider, 100)</code>
+
The functions and functionalities of the Base object can be used with other widgets too. For example <code style="color: #bb0000;">lv_obj_set_width(slider, 100)</code>
  
The Base object can be directly used as a simple widget: it's nothing more than a rectangle. In HTML terms, think of it as a <code><nowiki><div></nowiki></code>.
+
The Base object can be directly used as a simple widget: it's nothing more than a rectangle. In HTML terms, think of it as a <code style="color: #bb0000;"><nowiki><div></nowiki></code>.
  
 
=== Coordinates ===
 
=== Coordinates ===
32行目: 32行目:
  
 
==== Size ====
 
==== Size ====
The object size can be modified on individual axes with <code>lv_obj_set_width(obj, new_width)</code> and <code>lv_obj_set_height(obj, new_height)</code>, or both axes can be modified at the same time with <code>lv_obj_set_size(obj, new_width, new_height)</code>.
+
The object size can be modified on individual axes with <code style="color: #bb0000;">lv_obj_set_width(obj, new_width)</code> and <code style="color: #bb0000;">lv_obj_set_height(obj, new_height)</code>, or both axes can be modified at the same time with <code style="color: #bb0000;">lv_obj_set_size(obj, new_width, new_height)</code>.
  
 
==== Position ====
 
==== Position ====
You can set the position relative to the parent with <code>lv_obj_set_x(obj, new_x)</code> and <code>lv_obj_set_y(obj, new_y)</code>, or both axes at the same time with <code>lv_obj_set_pos(obj, new_x, new_y)</code>.
+
You can set the position relative to the parent with <code style="color: #bb0000;">lv_obj_set_x(obj, new_x)</code> and <code style="color: #bb0000;">lv_obj_set_y(obj, new_y)</code>, or both axes at the same time with <code style="color: #bb0000;">lv_obj_set_pos(obj, new_x, new_y)</code>.
  
 
==== Alignment ====
 
==== Alignment ====
You can align the object on its parent with <code>lv_obj_set_align(obj, LV_ALIGN_...)</code>. After this every x and y setting will be relative to the set alignment mode. For example, this will shift the object by 10;20 px from the center of its parent:
+
You can align the object on its parent with <code style="color: #bb0000;">lv_obj_set_align(obj, LV_ALIGN_...)</code>. After this every x and y setting will be relative to the set alignment mode. For example, this will shift the object by 10;20 px from the center of its parent:
 +
<syntaxhighlight lang="C++" style="berder:1px dashed gray;">
 
  lv_obj_set_align(obj, LV_ALIGN_CENTER);
 
  lv_obj_set_align(obj, LV_ALIGN_CENTER);
 
  lv_obj_set_pos(obj, 10, 20);
 
  lv_obj_set_pos(obj, 10, 20);
44行目: 45行目:
 
  //Or in one function
 
  //Or in one function
 
  lv_obj_align(obj, LV_ALIGN_CENTER, 10, 20);
 
  lv_obj_align(obj, LV_ALIGN_CENTER, 10, 20);
To align one object to another use: <code>lv_obj_align_to(obj_to_align, obj_referece, LV_ALIGN_..., x, y)</code>
+
</syntaxhighlight>
 +
To align one object to another use: <code style="color: #bb0000;">lv_obj_align_to(obj_to_align, obj_referece, LV_ALIGN_..., x, y)</code>
  
For example, to align a text below an image: <code>lv_obj_align_to(text, image, LV_ALIGN_OUT_BOTTOM_MID, 0, 10)</code>.
+
For example, to align a text below an image: <code style="color: #bb0000;">lv_obj_align_to(text, image, LV_ALIGN_OUT_BOTTOM_MID, 0, 10)</code>.
  
 
The following align types exist:
 
The following align types exist:
54行目: 56行目:
  
 
=== Parents and children ===
 
=== Parents and children ===
You can set a new parent for an object with <code>lv_obj_set_parent(obj, new_parent)</code>. To get the current parent, use <code>lv_obj_get_parent(obj)</code>.
+
You can set a new parent for an object with <code style="color: #bb0000;">lv_obj_set_parent(obj, new_parent)</code>. To get the current parent, use <code style="color: #bb0000;">lv_obj_get_parent(obj)</code>.
  
To get a specific child of a parent use <code>lv_obj_get_child(parent, idx)</code>. Some examples for <code>idx</code>:
+
To get a specific child of a parent use <code style="color: #bb0000;">lv_obj_get_child(parent, idx)</code>. Some examples for <code style="color: #bb0000;">idx</code>:
  
* <code>0</code> get the child created first
+
* <code style="color: #bb0000;">0</code> get the child created first
* <code>1</code> get the child created second
+
* <code style="color: #bb0000;">1</code> get the child created second
* <code>-1</code> get the child created last
+
* <code style="color: #bb0000;">-1</code> get the child created last
  
 
The children can be iterated lke this:
 
The children can be iterated lke this:
 +
<syntaxhighlight lang="C++" style="berder:1px dashed gray;">
 
  uint32_t i;
 
  uint32_t i;
  for(i = 0; i < lv_obj_get_child_cnt(parent); i++) {
+
  for(i = 0i < lv_obj_get_child_cnt(parent)i++) {
 
   lv_obj_t * child = lv_obj_get_child(parent, i);
 
   lv_obj_t * child = lv_obj_get_child(parent, i);
 
   /*Do something with child*/
 
   /*Do something with child*/
 
  }
 
  }
<code>lv_obj_get_index(obj)</code> returns the index of the object in its parent. It is equivalent to the number of younger children in the parent.
+
</syntaxhighlight>
 +
<code style="color: #bb0000;">lv_obj_get_index(obj)</code> returns the index of the object in its parent. It is equivalent to the number of younger children in the parent.
  
You can bring an object to the foreground or send it to the background with <code>lv_obj_move_foreground(obj)</code> and <code>lv_obj_move_background(obj)</code>.
+
You can bring an object to the foreground or send it to the background with <code style="color: #bb0000;">lv_obj_move_foreground(obj)</code> and <code style="color: #bb0000;">lv_obj_move_background(obj)</code>.
  
You can change the index of an object in its parent using <code>lv_obj_move_to_index(obj, index)</code>.
+
You can change the index of an object in its parent using <code style="color: #bb0000;">lv_obj_move_to_index(obj, index)</code>.
  
You can swap the position of two objects with <code>lv_obj_swap(obj1, obj2)</code>.
+
You can swap the position of two objects with <code style="color: #bb0000;">lv_obj_swap(obj1, obj2)</code>.
  
 
=== Display and Screens ===
 
=== Display and Screens ===
 
At the highest level of the LVGL object hierarchy is the ''display'' which represents the driver for a display device (physical display or simulator). A display can have one or more screens associated with it. Each screen contains a hierarchy of objects for graphical widgets representing a layout that covers the entire display.
 
At the highest level of the LVGL object hierarchy is the ''display'' which represents the driver for a display device (physical display or simulator). A display can have one or more screens associated with it. Each screen contains a hierarchy of objects for graphical widgets representing a layout that covers the entire display.
  
When you have created a screen like <code>lv_obj_t * screen = lv_obj_create(NULL)</code>, you can make it active with <code>lv_scr_load(screen)</code>. The <code>lv_scr_act()</code> function gives you a pointer to the active screen.
+
When you have created a screen like <code style="color: #bb0000;">lv_obj_t * screen = lv_obj_create(NULL)</code>, you can make it active with <code style="color: #bb0000;">lv_scr_load(screen)</code>. The <code style="color: #bb0000;">lv_scr_act()</code> function gives you a pointer to the active screen.
  
If you have multiple displays, it's important to know that the screen functions operate on the most recently created display or the one explicitly selected with <code>lv_disp_set_default</code>.
+
If you have multiple displays, it's important to know that the screen functions operate on the most recently created display or the one explicitly selected with <code style="color: #bb0000;">lv_disp_set_default</code>.
  
To get an object's screen use the <code>lv_obj_get_screen(obj)</code> function.
+
To get an object's screen use the <code style="color: #bb0000;">lv_obj_get_screen(obj)</code> function.
  
 
=== Events ===
 
=== Events ===
To set an event callback for an object, use <code>lv_obj_add_event_cb(obj, event_cb, LV_EVENT_..., user_data)</code>,
+
To set an event callback for an object, use <code style="color: #bb0000;">lv_obj_add_event_cb(obj, event_cb, LV_EVENT_..., user_data)</code>,
  
To manually send an event to an object, use <code>lv_event_send(obj, LV_EVENT_..., param)</code>
+
To manually send an event to an object, use <code style="color: #bb0000;">lv_event_send(obj, LV_EVENT_..., param)</code>
  
 
Read the Event overview to learn more about events.
 
Read the Event overview to learn more about events.
95行目: 99行目:
 
Be sure to read the Style overview. Here only the most essential functions are described.
 
Be sure to read the Style overview. Here only the most essential functions are described.
  
A new style can be added to an object with the <code>lv_obj_add_style(obj, &new_style, selector)</code> function. <code>selector</code> is an ORed combination of part and state(s). E.g. <code>LV_PART_SCROLLBAR | LV_STATE_PRESSED</code>.
+
A new style can be added to an object with the <code style="color: #bb0000;">lv_obj_add_style(obj, &new_style, selector)</code> function. <code style="color: #bb0000;">selector</code> is an ORed combination of part and state(s). E.g. <code style="color: #bb0000;">LV_PART_SCROLLBAR | LV_STATE_PRESSED</code>.
  
The base objects use <code>LV_PART_MAIN</code> style properties and <code>LV_PART_SCROLLBAR</code> with the typical background style properties.
+
The base objects use <code style="color: #bb0000;">LV_PART_MAIN</code> style properties and <code style="color: #bb0000;">LV_PART_SCROLLBAR</code> with the typical background style properties.
  
 
=== Flags ===
 
=== Flags ===
There are some attributes which can be enabled/disabled by <code>lv_obj_add/clear_flag(obj, LV_OBJ_FLAG_...)</code>:
+
There are some attributes which can be enabled/disabled by <code style="color: #bb0000;">lv_obj_add/clear_flag(obj, LV_OBJ_FLAG_...)</code>:
  
* <code>LV_OBJ_FLAG_HIDDEN</code> Make the object hidden. (Like it wasn't there at all)
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_HIDDEN</code> Make the object hidden. (Like it wasn't there at all)
* <code>LV_OBJ_FLAG_CLICKABLE</code> Make the object clickable by input devices
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_CLICKABLE</code> Make the object clickable by input devices
* <code>LV_OBJ_FLAG_CLICK_FOCUSABLE</code> Add focused state to the object when clicked
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_CLICK_FOCUSABLE</code> Add focused state to the object when clicked
* <code>LV_OBJ_FLAG_CHECKABLE</code> Toggle checked state when the object is clicked
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_CHECKABLE</code> Toggle checked state when the object is clicked
* <code>LV_OBJ_FLAG_SCROLLABLE</code> Make the object scrollable
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_SCROLLABLE</code> Make the object scrollable
* <code>LV_OBJ_FLAG_SCROLL_ELASTIC</code> Allow scrolling inside but with slower speed
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_SCROLL_ELASTIC</code> Allow scrolling inside but with slower speed
* <code>LV_OBJ_FLAG_SCROLL_MOMENTUM</code> Make the object scroll further when "thrown"
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_SCROLL_MOMENTUM</code> Make the object scroll further when "thrown"
* <code>LV_OBJ_FLAG_SCROLL_ONE</code> Allow scrolling only one snappable children
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_SCROLL_ONE</code> Allow scrolling only one snappable children
* <code>LV_OBJ_FLAG_SCROLL_CHAIN_HOR</code> Allow propagating the horizontal scroll to a parent
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_SCROLL_CHAIN_HOR</code> Allow propagating the horizontal scroll to a parent
* <code>LV_OBJ_FLAG_SCROLL_CHAIN_VER</code> Allow propagating the vertical scroll to a parent
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_SCROLL_CHAIN_VER</code> Allow propagating the vertical scroll to a parent
* <code>LV_OBJ_FLAG_SCROLL_CHAIN</code> Simple packaging for (<code>LV_OBJ_FLAG_SCROLL_CHAIN_HOR | LV_OBJ_FLAG_SCROLL_CHAIN_VER</code>)
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_SCROLL_CHAIN</code> Simple packaging for (<code style="color: #bb0000;">LV_OBJ_FLAG_SCROLL_CHAIN_HOR | LV_OBJ_FLAG_SCROLL_CHAIN_VER</code>)
* <code>LV_OBJ_FLAG_SCROLL_ON_FOCUS</code> Automatically scroll object to make it visible when focused
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_SCROLL_ON_FOCUS</code> Automatically scroll object to make it visible when focused
* <code>LV_OBJ_FLAG_SCROLL_WITH_ARROW</code> Allow scrolling the focused object with arrow keys
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_SCROLL_WITH_ARROW</code> Allow scrolling the focused object with arrow keys
* <code>LV_OBJ_FLAG_SNAPPABLE</code> If scroll snap is enabled on the parent it can snap to this object
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_SNAPPABLE</code> If scroll snap is enabled on the parent it can snap to this object
* <code>LV_OBJ_FLAG_PRESS_LOCK</code> Keep the object pressed even if the press slid from the object
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_PRESS_LOCK</code> Keep the object pressed even if the press slid from the object
* <code>LV_OBJ_FLAG_EVENT_BUBBLE</code> Propagate the events to the parent too
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_EVENT_BUBBLE</code> Propagate the events to the parent too
* <code>LV_OBJ_FLAG_GESTURE_BUBBLE</code> Propagate the gestures to the parent
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_GESTURE_BUBBLE</code> Propagate the gestures to the parent
* <code>LV_OBJ_FLAG_ADV_HITTEST</code> Allow performing more accurate hit (click) test. E.g. accounting for rounded corners
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_ADV_HITTEST</code> Allow performing more accurate hit (click) test. E.g. accounting for rounded corners
* <code>LV_OBJ_FLAG_IGNORE_LAYOUT</code> Make the object positionable by the layouts
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_IGNORE_LAYOUT</code> Make the object positionable by the layouts
* <code>LV_OBJ_FLAG_FLOATING</code> Do not scroll the object when the parent scrolls and ignore layout
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_FLOATING</code> Do not scroll the object when the parent scrolls and ignore layout
* <code>LV_OBJ_FLAG_OVERFLOW_VISIBLE</code> Do not clip the children's content to the parent's boundary
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_OVERFLOW_VISIBLE</code> Do not clip the children's content to the parent's boundary
* <code>LV_OBJ_FLAG_LAYOUT_1</code> Custom flag, free to use by layouts
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_LAYOUT_1</code> Custom flag, free to use by layouts
* <code>LV_OBJ_FLAG_LAYOUT_2</code> Custom flag, free to use by layouts
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_LAYOUT_2</code> Custom flag, free to use by layouts
* <code>LV_OBJ_FLAG_WIDGET_1</code> Custom flag, free to use by widget
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_WIDGET_1</code> Custom flag, free to use by widget
* <code>LV_OBJ_FLAG_WIDGET_2</code> Custom flag, free to use by widget
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_WIDGET_2</code> Custom flag, free to use by widget
* <code>LV_OBJ_FLAG_USER_1</code> Custom flag, free to use by user
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_USER_1</code> Custom flag, free to use by user
* <code>LV_OBJ_FLAG_USER_2</code> Custom flag, free to use by user
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_USER_2</code> Custom flag, free to use by user
* <code>LV_OBJ_FLAG_USER_3</code> Custom flag, free to use by user
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_USER_3</code> Custom flag, free to use by user
* <code>LV_OBJ_FLAG_USER_4</code> Custom flag, free to use by user
+
* <code style="color: #bb0000;">LV_OBJ_FLAG_USER_4</code> Custom flag, free to use by user
  
 
Some examples:
 
Some examples:
142行目: 146行目:
 
Read the Input devices overview to learn more about ''Groups''.
 
Read the Input devices overview to learn more about ''Groups''.
  
Objects are added to a ''group'' with <code>lv_group_add_obj(group, obj)</code>, and you can use <code>lv_obj_get_group(obj)</code> to see which group an object belongs to.
+
Objects are added to a ''group'' with <code style="color: #bb0000;">lv_group_add_obj(group, obj)</code>, and you can use <code style="color: #bb0000;">lv_obj_get_group(obj)</code> to see which group an object belongs to.
  
<code>lv_obj_is_focused(obj)</code> returns if the object is currently focused on its group or not. If the object is not added to a group, <code>false</code> will be returned.
+
<code style="color: #bb0000;">lv_obj_is_focused(obj)</code> returns if the object is currently focused on its group or not. If the object is not added to a group, <code style="color: #bb0000;">false</code> will be returned.
  
 
=== Extended click area ===
 
=== Extended click area ===
By default, the objects can be clicked only within their bounding area. However, this can be extended with <code>lv_obj_set_ext_click_area(obj, size)</code>.
+
By default, the objects can be clicked only within their bounding area. However, this can be extended with <code style="color: #bb0000;">lv_obj_set_ext_click_area(obj, size)</code>.
  
 
== Events ==
 
== Events ==
  
* <code>LV_EVENT_VALUE_CHANGED</code> when the <code>LV_OBJ_FLAG_CHECKABLE</code> flag is enabled and the object clicked (on transition to/from the checked state)
+
* <code style="color: #bb0000;">LV_EVENT_VALUE_CHANGED</code> when the <code style="color: #bb0000;">LV_OBJ_FLAG_CHECKABLE</code> flag is enabled and the object clicked (on transition to/from the checked state)
* <code>LV_EVENT_DRAW_PART_BEGIN</code> and <code>LV_EVENT_DRAW_PART_END</code> is sent for the following types:
+
* <code style="color: #bb0000;">LV_EVENT_DRAW_PART_BEGIN</code> and <code style="color: #bb0000;">LV_EVENT_DRAW_PART_END</code> is sent for the following types:
** <code>LV_OBJ_DRAW_PART_RECTANGLE</code> The main rectangle
+
** <code style="color: #bb0000;">LV_OBJ_DRAW_PART_RECTANGLE</code> The main rectangle
*** <code>part</code>: <code>LV_PART_MAIN</code>
+
*** <code style="color: #bb0000;">part</code>: <code style="color: #bb0000;">LV_PART_MAIN</code>
*** <code>rect_dsc</code>
+
*** <code style="color: #bb0000;">rect_dsc</code>
*** <code>draw_area</code>: the area of the rectangle
+
*** <code style="color: #bb0000;">draw_area</code>: the area of the rectangle
** <code>LV_OBJ_DRAW_PART_BORDER_POST</code> The border if the <code>border_post</code> style property is <code>true</code>
+
** <code style="color: #bb0000;">LV_OBJ_DRAW_PART_BORDER_POST</code> The border if the <code style="color: #bb0000;">border_post</code> style property is <code style="color: #bb0000;">true</code>
*** <code>part</code>: <code>LV_PART_MAIN</code>
+
*** <code style="color: #bb0000;">part</code>: <code style="color: #bb0000;">LV_PART_MAIN</code>
*** <code>rect_dsc</code>
+
*** <code style="color: #bb0000;">rect_dsc</code>
*** <code>draw_area</code>: the area of the rectangle
+
*** <code style="color: #bb0000;">draw_area</code>: the area of the rectangle
** <code>LV_OBJ_DRAW_PART_SCROLLBAR</code> the scrollbars
+
** <code style="color: #bb0000;">LV_OBJ_DRAW_PART_SCROLLBAR</code> the scrollbars
*** <code>part</code>: <code>LV_PART_SCROLLBAR</code>
+
*** <code style="color: #bb0000;">part</code>: <code style="color: #bb0000;">LV_PART_SCROLLBAR</code>
*** <code>rect_dsc</code>
+
*** <code style="color: #bb0000;">rect_dsc</code>
*** <code>draw_area</code>: the area of the rectangle
+
*** <code style="color: #bb0000;">draw_area</code>: the area of the rectangle
  
 
Learn more about Events.
 
Learn more about Events.
  
 
== Keys ==
 
== Keys ==
If <code>LV_OBJ_FLAG_CHECKABLE</code> is enabled, <code>LV_KEY_RIGHT</code> and <code>LV_KEY_UP</code> make the object checked, and <code>LV_KEY_LEFT</code> and <code>LV_KEY_DOWN</code> make it unchecked.
+
If <code style="color: #bb0000;">LV_OBJ_FLAG_CHECKABLE</code> is enabled, <code style="color: #bb0000;">LV_KEY_RIGHT</code> and <code style="color: #bb0000;">LV_KEY_UP</code> make the object checked, and <code style="color: #bb0000;">LV_KEY_LEFT</code> and <code style="color: #bb0000;">LV_KEY_DOWN</code> make it unchecked.
  
If <code>LV_OBJ_FLAG_SCROLLABLE</code> is enabled, but the object is not editable (as declared by the widget class), the arrow keys (<code>LV_KEY_UP</code>, <code>LV_KEY_DOWN</code>, <code>LV_KEY_LEFT</code>, <code>LV_KEY_RIGHT</code>) scroll the object. If the object can only scroll vertically, <code>LV_KEY_LEFT</code> and <code>LV_KEY_RIGHT</code> will scroll up/down instead, making it compatible with an encoder input device. See Input devices overview for more on encoder behaviors and the edit mode.
+
If <code style="color: #bb0000;">LV_OBJ_FLAG_SCROLLABLE</code> is enabled, but the object is not editable (as declared by the widget class), the arrow keys (<code style="color: #bb0000;">LV_KEY_UP</code>, <code style="color: #bb0000;">LV_KEY_DOWN</code>, <code style="color: #bb0000;">LV_KEY_LEFT</code>, <code style="color: #bb0000;">LV_KEY_RIGHT</code>) scroll the object. If the object can only scroll vertically, <code style="color: #bb0000;">LV_KEY_LEFT</code> and <code style="color: #bb0000;">LV_KEY_RIGHT</code> will scroll up/down instead, making it compatible with an encoder input device. See Input devices overview for more on encoder behaviors and the edit mode.
  
 
Learn more about Keys.
 
Learn more about Keys.
190行目: 194行目:
 
Typedefs
 
Typedefs
  
; <span id="_CPPv310lv_state_t"></span><span id="_CPPv210lv_state_t"></span><span id="lv_state_t"></span><span id="lv__obj_8h_1a6a2a787185848ca20a71ca29900721ff" class="target"></span>typedef uint16_t lv_state_t[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv410lv_state_t] <span id="_CPPv310lv_state_t"></span><span id="_CPPv210lv_state_t"></span><span id="lv_state_t"></span><span id="lv__obj_8h_1a6a2a787185848ca20a71ca29900721ff" class="target"></span>
+
typedef uint16_t lv_state_t  
 
:
 
:
  
; <span id="_CPPv39lv_part_t"></span><span id="_CPPv29lv_part_t"></span><span id="lv_part_t"></span><span id="lv__obj_8h_1a3af359a63358e5fc794a84c4d586d744" class="target"></span>typedef uint32_t [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv410lv_state_t]lv_part_t[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv49lv_part_t] <span id="_CPPv39lv_part_t"></span><span id="_CPPv29lv_part_t"></span><span id="lv_part_t"></span><span id="lv__obj_8h_1a3af359a63358e5fc794a84c4d586d744" class="target"></span>
+
typedef uint32_t lv_part_t  
 
:
 
:
  
; <span id="_CPPv313lv_obj_flag_t"></span><span id="_CPPv213lv_obj_flag_t"></span><span id="lv_obj_flag_t"></span><span id="lv__obj_8h_1a8d31d58e68ad0349ffdf0c6b4f37afd7" class="target"></span>typedef uint32_t[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv49lv_part_t] lv_obj_flag_t[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv413lv_obj_flag_t] <span id="_CPPv313lv_obj_flag_t"></span><span id="_CPPv213lv_obj_flag_t"></span><span id="lv_obj_flag_t"></span><span id="lv__obj_8h_1a8d31d58e68ad0349ffdf0c6b4f37afd7" class="target"></span>
+
typedef uint32_t lv_obj_flag_t  
 
:
 
:
  
; <span id="_CPPv38lv_obj_t"></span><span id="_CPPv28lv_obj_t"></span><span id="lv_obj_t"></span><span id="lv__obj_8h_1a01de9a127bcf589bd7d0c695a429b158" class="target"></span>typedef struct _lv_o[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv413lv_obj_flag_t]bj_t lv_obj_t[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv48lv_obj_t] <span id="_CPPv38lv_obj_t"></span><span id="_CPPv28lv_obj_t"></span><span id="lv_obj_t"></span><span id="lv__obj_8h_1a01de9a127bcf589bd7d0c695a429b158" class="target"></span>
+
typedef struct _lv_obj_t lv_obj_t  
 
:
 
:
  
 
Enums
 
Enums
  
; <span id="_CPPv3Ut1_1"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7" class="target"></span>enum [anonymous][https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv48lv_obj_t][https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4Ut1_1] <span id="_CPPv3Ut1_1"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7" class="target"></span>
+
enum [anonymous]  
: Possible sta[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4Ut1_1]tes of a widget. OR-ed values are possible  ''Values:''
+
: Possible states of a widget. OR-ed values are possible  ''Values:''
:; <span id="_CPPv3NUt1_116LV_STATE_DEFAULTE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a9817cb0d3c0e422c1f63901d4d92e8c3" class="target"></span>enumerator LV_STATE_DEFAULT[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_116LV_STATE_DEFAULTE] <span id="_CPPv3NUt1_116LV_STATE_DEFAULTE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a9817cb0d3c0e422c1f63901d4d92e8c3" class="target"></span>
+
:enumerator LV_STATE_DEFAULT  
 
::
 
::
:; <span id="_CPPv3NUt1_116LV_STATE_CHECKEDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a6fc6f742b7b193d9dad585f32826afcf" class="target"></span>enumerator LV_STA[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_116LV_STATE_DEFAULTE]TE_CHECKED[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_116LV_STATE_CHECKEDE] <span id="_CPPv3NUt1_116LV_STATE_CHECKEDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a6fc6f742b7b193d9dad585f32826afcf" class="target"></span>
+
:enumerator LV_STATE_CHECKED
 
::
 
::
:; <span id="_CPPv3NUt1_116LV_STATE_FOCUSEDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a5fb9f48f09dbcf9d45b0f79675e793cb" class="target"></span>enumerator LV_STA[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_116LV_STATE_CHECKEDE]TE_FOCUSED[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_116LV_STATE_FOCUSEDE] <span id="_CPPv3NUt1_116LV_STATE_FOCUSEDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a5fb9f48f09dbcf9d45b0f79675e793cb" class="target"></span>
+
:enumerator LV_STATE_FOCUSED
 
::
 
::
:; <span id="_CPPv3NUt1_118LV_STATE_FOCUS_KEYE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7acca6130ab5129b828f55e6a7cef77086" class="target"></span>enumerator LV_STA[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_116LV_STATE_FOCUSEDE]TE_FOCUS_KEY[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_118LV_STATE_FOCUS_KEYE] <span id="_CPPv3NUt1_118LV_STATE_FOCUS_KEYE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7acca6130ab5129b828f55e6a7cef77086" class="target"></span>
+
:enumerator LV_STATE_FOCUS_KEY
 
::
 
::
:; <span id="_CPPv3NUt1_115LV_STATE_EDITEDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a57be5d3fed5ca1d0519c0302a4517e8a" class="target"></span>enumerator LV_STATE[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_118LV_STATE_FOCUS_KEYE]_EDITED[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_115LV_STATE_EDITEDE] <span id="_CPPv3NUt1_115LV_STATE_EDITEDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a57be5d3fed5ca1d0519c0302a4517e8a" class="target"></span>
+
:enumerator LV_STATE_EDITED
 
::
 
::
:; <span id="_CPPv3NUt1_116LV_STATE_HOVEREDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7aa24f8fab93b0965e98f5ad3bafea48b8" class="target"></span>enumerator LV_ST[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_115LV_STATE_EDITEDE]ATE_HOVERED[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_116LV_STATE_HOVEREDE] <span id="_CPPv3NUt1_116LV_STATE_HOVEREDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7aa24f8fab93b0965e98f5ad3bafea48b8" class="target"></span>
+
:enumerator LV_STATE_HOVERED
 
::
 
::
:; <span id="_CPPv3NUt1_116LV_STATE_PRESSEDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a69673539aa92d84848a992fb3baea649" class="target"></span>enumerator LV_STA[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_116LV_STATE_HOVEREDE]TE_PRESSED[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_116LV_STATE_PRESSEDE] <span id="_CPPv3NUt1_116LV_STATE_PRESSEDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a69673539aa92d84848a992fb3baea649" class="target"></span>
+
:enumerator LV_STATE_PRESSED
 
::
 
::
:; <span id="_CPPv3NUt1_117LV_STATE_SCROLLEDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7ab00530563be74cbb0a37351f9b481475" class="target"></span>enumerator LV_STA[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_116LV_STATE_PRESSEDE]TE_SCROLLED[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_117LV_STATE_SCROLLEDE] <span id="_CPPv3NUt1_117LV_STATE_SCROLLEDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7ab00530563be74cbb0a37351f9b481475" class="target"></span>
+
:enumerator LV_STATE_SCROLLED
 
::
 
::
:; <span id="_CPPv3NUt1_117LV_STATE_DISABLEDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a63e18d3006cf8c0e73a5062782dce94b" class="target"></span>enumerator LV_STAT[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_117LV_STATE_SCROLLEDE]E_DISABLED[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_117LV_STATE_DISABLEDE] <span id="_CPPv3NUt1_117LV_STATE_DISABLEDE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a63e18d3006cf8c0e73a5062782dce94b" class="target"></span>
+
:enumerator LV_STATE_DISABLED
 
::
 
::
:; <span id="_CPPv3NUt1_115LV_STATE_USER_1E"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7ae8ad1159c50bfeb6107d028a7e7af498" class="target"></span>enumerator LV_STAT[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_117LV_STATE_DISABLEDE]E_USER_1[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_115LV_STATE_USER_1E] <span id="_CPPv3NUt1_115LV_STATE_USER_1E"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7ae8ad1159c50bfeb6107d028a7e7af498" class="target"></span>
+
:enumerator LV_STATE_USER_1
 
::
 
::
:; <span id="_CPPv3NUt1_115LV_STATE_USER_2E"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a0314ac5161337bf62c12bbbccb489da0" class="target"></span>enumerator LV_ST[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_115LV_STATE_USER_1E]ATE_USER_2[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_115LV_STATE_USER_2E] <span id="_CPPv3NUt1_115LV_STATE_USER_2E"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a0314ac5161337bf62c12bbbccb489da0" class="target"></span>
+
:enumerator LV_STATE_USER_2
 
::
 
::
:; <span id="_CPPv3NUt1_115LV_STATE_USER_3E"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7af2a3b0edc8523431954f43be7cfd60c7" class="target"></span>enumerator LV_ST[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_115LV_STATE_USER_2E]ATE_USER_3[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_115LV_STATE_USER_3E] <span id="_CPPv3NUt1_115LV_STATE_USER_3E"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7af2a3b0edc8523431954f43be7cfd60c7" class="target"></span>
+
:enumerator LV_STATE_USER_3
 
::
 
::
:; <span id="_CPPv3NUt1_115LV_STATE_USER_4E"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a19339a643f37faa314a3a3f1616ce38a" class="target"></span>enumerator LV_ST[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_115LV_STATE_USER_3E]ATE_USER_4[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_115LV_STATE_USER_4E] <span id="_CPPv3NUt1_115LV_STATE_USER_4E"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a19339a643f37faa314a3a3f1616ce38a" class="target"></span>
+
:enumerator LV_STATE_USER_4
 
::
 
::
:; <span id="_CPPv3NUt1_112LV_STATE_ANYE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a801cebe920a9b6b4d341e8eab3d19780" class="target"></span>enumerator LV_ST[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_115LV_STATE_USER_4E]ATE_ANY[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_112LV_STATE_ANYE] <span id="_CPPv3NUt1_112LV_STATE_ANYE"></span><span id="lv__obj_8h_1adf764cbdea00d65edcd07bb9953ad2b7a801cebe920a9b6b4d341e8eab3d19780" class="target"></span>
+
:enumerator LV_STATE_ANY
:: Special value can b[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_112LV_STATE_ANYE]e used in some functions to target all states
+
:: Special value can be used in some functions to target all states
  
; <span id="_CPPv3Ut1_2"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5" class="target"></span>enum [anonymous][https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4Ut1_2] <span id="_CPPv3Ut1_2"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5" class="target"></span>
+
enum [anonymous]  
: The possible[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4Ut1_2] parts of widgets. The parts can be considered as the internal building block of the widgets. E.g. slider = background + indicator + knob Note every part is used by every widget  ''Values:''
+
: The possible parts of widgets. The parts can be considered as the internal building block of the widgets. E.g. slider = background + indicator + knob Note every part is used by every widget  ''Values:''
:; <span id="_CPPv3NUt1_212LV_PART_MAINE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5a1bb7ac56fc509fb459eb8c6ef66ba103" class="target"></span>enumerator LV_PART_MAIN[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_212LV_PART_MAINE] <span id="_CPPv3NUt1_212LV_PART_MAINE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5a1bb7ac56fc509fb459eb8c6ef66ba103" class="target"></span>
+
:enumerator LV_PART_MAIN  
:: A background like r[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_212LV_PART_MAINE]ectangle
+
:: A background like rectangle
:; <span id="_CPPv3NUt1_217LV_PART_SCROLLBARE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5a48a8e6955fcde2f7679f5a8f6eb698b9" class="target"></span>enumerator LV_PART_SCROLLBAR[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_217LV_PART_SCROLLBARE] <span id="_CPPv3NUt1_217LV_PART_SCROLLBARE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5a48a8e6955fcde2f7679f5a8f6eb698b9" class="target"></span>
+
:enumerator LV_PART_SCROLLBAR  
 
:: The scrollbar(s)
 
:: The scrollbar(s)
:; <span id="_CPPv3NUt1_217LV_PART_INDICATORE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5ae1fb6dda668a19264aef30e0bfb0930d" class="target"></span>en[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_217LV_PART_SCROLLBARE]umerator LV_PART_INDICATOR[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_217LV_PART_INDICATORE] <span id="_CPPv3NUt1_217LV_PART_INDICATORE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5ae1fb6dda668a19264aef30e0bfb0930d" class="target"></span>
+
:enumerator LV_PART_INDICATOR  
:: Indicator, e.g. for slid[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_217LV_PART_INDICATORE]er, bar, switch, or the tick box of the checkbox
+
:: Indicator, e.g. for slider, bar, switch, or the tick box of the checkbox
:; <span id="_CPPv3NUt1_212LV_PART_KNOBE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5ac6ba6af416d9846b75ddc8b6be6192a5" class="target"></span>enumerator LV_PART_KNOB[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_212LV_PART_KNOBE] <span id="_CPPv3NUt1_212LV_PART_KNOBE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5ac6ba6af416d9846b75ddc8b6be6192a5" class="target"></span>
+
:enumerator LV_PART_KNOB  
:: Like handle to grab[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_212LV_PART_KNOBE] to adjust the value
+
:: Like handle to grab to adjust the value
:; <span id="_CPPv3NUt1_216LV_PART_SELECTEDE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5ab86fa09e396634c9a640a40e38621c40" class="target"></span>enumerator LV_PART_SELECTED[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_216LV_PART_SELECTEDE] <span id="_CPPv3NUt1_216LV_PART_SELECTEDE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5ab86fa09e396634c9a640a40e38621c40" class="target"></span>
+
:enumerator LV_PART_SELECTED  
:: Indicate the currently [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_216LV_PART_SELECTEDE]selected option or section
+
:: Indicate the currently selected option or section
:; <span id="_CPPv3NUt1_213LV_PART_ITEMSE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5a90487e55bc86a255ad935ca1a0403261" class="target"></span>enumerator LV_PART_ITEMS[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_213LV_PART_ITEMSE] <span id="_CPPv3NUt1_213LV_PART_ITEMSE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5a90487e55bc86a255ad935ca1a0403261" class="target"></span>
+
:enumerator LV_PART_ITEMS  
:: Used if the widget h[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_213LV_PART_ITEMSE]as multiple similar elements (e.g. table cells)
+
:: Used if the widget has multiple similar elements (e.g. table cells)
:; <span id="_CPPv3NUt1_213LV_PART_TICKSE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5ae0170b805e83c2e360ccb90ba4fea9e6" class="target"></span>enumerator LV_PART_TICKS[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_213LV_PART_TICKSE] <span id="_CPPv3NUt1_213LV_PART_TICKSE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5ae0170b805e83c2e360ccb90ba4fea9e6" class="target"></span>
+
:enumerator LV_PART_TICKS  
:: Ticks on scale e.g. [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_213LV_PART_TICKSE]for a chart or meter
+
:: Ticks on scale e.g. for a chart or meter
:; <span id="_CPPv3NUt1_214LV_PART_CURSORE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5a8416967120efaa63c3fa1ef0016fa503" class="target"></span>enumerator LV_PART_CURSOR[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_214LV_PART_CURSORE] <span id="_CPPv3NUt1_214LV_PART_CURSORE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5a8416967120efaa63c3fa1ef0016fa503" class="target"></span>
+
:enumerator LV_PART_CURSOR  
:: Mark a specific place[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_214LV_PART_CURSORE] e.g. for text area's cursor or on a chart
+
:: Mark a specific place e.g. for text area's cursor or on a chart
:; <span id="_CPPv3NUt1_220LV_PART_CUSTOM_FIRSTE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5a2acbdcd5f3a8e80920f5e8551b7abe16" class="target"></span>enumerator LV_PART_CUSTOM_FIRST[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_220LV_PART_CUSTOM_FIRSTE] <span id="_CPPv3NUt1_220LV_PART_CUSTOM_FIRSTE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5a2acbdcd5f3a8e80920f5e8551b7abe16" class="target"></span>
+
:enumerator LV_PART_CUSTOM_FIRST  
:: Extension point for custom [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_220LV_PART_CUSTOM_FIRSTE]widgets
+
:: Extension point for custom widgets
:; <span id="_CPPv3NUt1_211LV_PART_ANYE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5a20fb4a8bd26c73f27bab2c13cca4135c" class="target"></span>enumerator LV_PART_ANY[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_211LV_PART_ANYE] <span id="_CPPv3NUt1_211LV_PART_ANYE"></span><span id="lv__obj_8h_1a99fb83031ce9923c84392b4e92f956b5a20fb4a8bd26c73f27bab2c13cca4135c" class="target"></span>
+
:enumerator LV_PART_ANY  
:: Special value can [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_211LV_PART_ANYE]be used in some functions to target all parts
+
:: Special value can be used in some functions to target all parts
  
; <span id="_CPPv3Ut1_3"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04" class="target"></span>enum [anonymous][https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4Ut1_3] <span id="_CPPv3Ut1_3"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04" class="target"></span>
+
enum [anonymous]  
: On/Off featu[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4Ut1_3]res controlling the object's behavior. OR-ed values are possible  ''Values:''
+
: On/Off features controlling the object's behavior. OR-ed values are possible  ''Values:''
:; <span id="_CPPv3NUt1_318LV_OBJ_FLAG_HIDDENE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a897a3221874cb9d0e4e28a6d530755f2" class="target"></span>enumerator LV_OBJ_FLAG_HIDDEN[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_318LV_OBJ_FLAG_HIDDENE] <span id="_CPPv3NUt1_318LV_OBJ_FLAG_HIDDENE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a897a3221874cb9d0e4e28a6d530755f2" class="target"></span>
+
:enumerator LV_OBJ_FLAG_HIDDEN  
:: Make the object hidden. ([https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_318LV_OBJ_FLAG_HIDDENE]Like it wasn't there at all)
+
:: Make the object hidden. (Like it wasn't there at all)
:; <span id="_CPPv3NUt1_321LV_OBJ_FLAG_CLICKABLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04ab9ba97b9e1ae0b3a4a5eca3d763e263b" class="target"></span>enumerator LV_OBJ_FLAG_CLICKABLE[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_321LV_OBJ_FLAG_CLICKABLEE] <span id="_CPPv3NUt1_321LV_OBJ_FLAG_CLICKABLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04ab9ba97b9e1ae0b3a4a5eca3d763e263b" class="target"></span>
+
:enumerator LV_OBJ_FLAG_CLICKABLE  
:: Make the object clickable by[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_321LV_OBJ_FLAG_CLICKABLEE] the input devices
+
:: Make the object clickable by the input devices
:; <span id="_CPPv3NUt1_327LV_OBJ_FLAG_CLICK_FOCUSABLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04abc971d6f2cd12cf2fcdd7e8e28c964c6" class="target"></span>enumerator LV_OBJ_FLAG_CLICK_FOCUSABLE[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_327LV_OBJ_FLAG_CLICK_FOCUSABLEE] <span id="_CPPv3NUt1_327LV_OBJ_FLAG_CLICK_FOCUSABLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04abc971d6f2cd12cf2fcdd7e8e28c964c6" class="target"></span>
+
:enumerator LV_OBJ_FLAG_CLICK_FOCUSABLE  
:: Add focused state to the object wh[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_327LV_OBJ_FLAG_CLICK_FOCUSABLEE]en clicked
+
:: Add focused state to the object when clicked
:; <span id="_CPPv3NUt1_321LV_OBJ_FLAG_CHECKABLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a36ad28d2b06fff88a20e95952e58c937" class="target"></span>enumerator LV_OBJ_FLAG_CHECKABLE[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_321LV_OBJ_FLAG_CHECKABLEE] <span id="_CPPv3NUt1_321LV_OBJ_FLAG_CHECKABLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a36ad28d2b06fff88a20e95952e58c937" class="target"></span>
+
:enumerator LV_OBJ_FLAG_CHECKABLE  
:: Toggle checked state when th[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_321LV_OBJ_FLAG_CHECKABLEE]e object is clicked
+
:: Toggle checked state when the object is clicked
:; <span id="_CPPv3NUt1_322LV_OBJ_FLAG_SCROLLABLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04acd85fb802b95208772b4e124a87546ca" class="target"></span>enumerator LV_OBJ_FLAG_SCROLLABLE[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_322LV_OBJ_FLAG_SCROLLABLEE] <span id="_CPPv3NUt1_322LV_OBJ_FLAG_SCROLLABLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04acd85fb802b95208772b4e124a87546ca" class="target"></span>
+
:enumerator LV_OBJ_FLAG_SCROLLABLE  
:: Make the object scrollable [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_322LV_OBJ_FLAG_SCROLLABLEE]
+
:: Make the object scrollable  
:; <span id="_CPPv3NUt1_326LV_OBJ_FLAG_SCROLL_ELASTICE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04ae7d692b8ceaf005b55a1a1c70d87f315" class="target"></span>enumerator LV_OBJ_FLAG_SCROLL_ELASTIC[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_326LV_OBJ_FLAG_SCROLL_ELASTICE] <span id="_CPPv3NUt1_326LV_OBJ_FLAG_SCROLL_ELASTICE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04ae7d692b8ceaf005b55a1a1c70d87f315" class="target"></span>
+
:enumerator LV_OBJ_FLAG_SCROLL_ELASTIC  
:: Allow scrolling inside but with s[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_326LV_OBJ_FLAG_SCROLL_ELASTICE]lower speed
+
:: Allow scrolling inside but with slower speed
:; <span id="_CPPv3NUt1_327LV_OBJ_FLAG_SCROLL_MOMENTUME"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a4fe2a1748c3b752cfad7b2f2e371f97c" class="target"></span>enumerator LV_OBJ_FLAG_SCROLL_MOMENTUM[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_327LV_OBJ_FLAG_SCROLL_MOMENTUME] <span id="_CPPv3NUt1_327LV_OBJ_FLAG_SCROLL_MOMENTUME"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a4fe2a1748c3b752cfad7b2f2e371f97c" class="target"></span>
+
:enumerator LV_OBJ_FLAG_SCROLL_MOMENTUM  
:: Make the object scroll further whe[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_327LV_OBJ_FLAG_SCROLL_MOMENTUME]n "thrown"
+
:: Make the object scroll further when "thrown"
:; <span id="_CPPv3NUt1_322LV_OBJ_FLAG_SCROLL_ONEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04acd235b2da2988b6673679aa0d825f97f" class="target"></span>enumerator LV_OBJ_FLAG_SCROLL_ONE[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_322LV_OBJ_FLAG_SCROLL_ONEE] <span id="_CPPv3NUt1_322LV_OBJ_FLAG_SCROLL_ONEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04acd235b2da2988b6673679aa0d825f97f" class="target"></span>
+
:enumerator LV_OBJ_FLAG_SCROLL_ONE  
:: Allow scrolling only one snap[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_322LV_OBJ_FLAG_SCROLL_ONEE]pable children
+
:: Allow scrolling only one snappable children
:; <span id="_CPPv3NUt1_328LV_OBJ_FLAG_SCROLL_CHAIN_HORE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a5a3e346064405aa442372b712aac27fb" class="target"></span>enumerator LV_OBJ_FLAG_SCROLL_CHAIN_HOR[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_328LV_OBJ_FLAG_SCROLL_CHAIN_HORE] <span id="_CPPv3NUt1_328LV_OBJ_FLAG_SCROLL_CHAIN_HORE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a5a3e346064405aa442372b712aac27fb" class="target"></span>
+
:enumerator LV_OBJ_FLAG_SCROLL_CHAIN_HOR  
:: Allow propagating the horizontal sc[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_328LV_OBJ_FLAG_SCROLL_CHAIN_HORE]roll to a parent
+
:: Allow propagating the horizontal scroll to a parent
:; <span id="_CPPv3NUt1_328LV_OBJ_FLAG_SCROLL_CHAIN_VERE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04acdc9c68ac828c91967b52ce0b3ad60ce" class="target"></span>enumerator LV_OBJ_FLAG_SCROLL_CHAIN_VER[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_328LV_OBJ_FLAG_SCROLL_CHAIN_VERE] <span id="_CPPv3NUt1_328LV_OBJ_FLAG_SCROLL_CHAIN_VERE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04acdc9c68ac828c91967b52ce0b3ad60ce" class="target"></span>
+
:enumerator LV_OBJ_FLAG_SCROLL_CHAIN_VER  
:: Allow propagating the vertical scro[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_328LV_OBJ_FLAG_SCROLL_CHAIN_VERE]ll to a parent
+
:: Allow propagating the vertical scroll to a parent
:; <span id="_CPPv3NUt1_324LV_OBJ_FLAG_SCROLL_CHAINE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04aa6df5b549b49eba61dd94129a9654c5b" class="target"></span>enumerator LV_OBJ_FLAG_SCROLL_CHAIN[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_324LV_OBJ_FLAG_SCROLL_CHAINE] <span id="_CPPv3NUt1_324LV_OBJ_FLAG_SCROLL_CHAINE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04aa6df5b549b49eba61dd94129a9654c5b" class="target"></span>
+
:enumerator LV_OBJ_FLAG_SCROLL_CHAIN  
 
::
 
::
:; <span id="_CPPv3NUt1_327LV_OBJ_FLAG_SCROLL_ON_FOCUSE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04aad2d5f453aea4efc7c5c69735f8fedfc" class="target"></span>enumerator LV_OBJ_FLAG_SC[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_324LV_OBJ_FLAG_SCROLL_CHAINE]ROLL_ON_FOCUS[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_327LV_OBJ_FLAG_SCROLL_ON_FOCUSE] <span id="_CPPv3NUt1_327LV_OBJ_FLAG_SCROLL_ON_FOCUSE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04aad2d5f453aea4efc7c5c69735f8fedfc" class="target"></span>
+
:enumerator LV_OBJ_FLAG_SCROLL_ON_FOCUS
:: Automatically scroll object to mak[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_327LV_OBJ_FLAG_SCROLL_ON_FOCUSE]e it visible when focused
+
:: Automatically scroll object to make it visible when focused
:; <span id="_CPPv3NUt1_329LV_OBJ_FLAG_SCROLL_WITH_ARROWE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04aba880a01bb4721a22b58678810e8b9f8" class="target"></span>enumerator LV_OBJ_FLAG_SCROLL_WITH_ARROW[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_329LV_OBJ_FLAG_SCROLL_WITH_ARROWE] <span id="_CPPv3NUt1_329LV_OBJ_FLAG_SCROLL_WITH_ARROWE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04aba880a01bb4721a22b58678810e8b9f8" class="target"></span>
+
:enumerator LV_OBJ_FLAG_SCROLL_WITH_ARROW  
:: Allow scrolling the focused object w[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_329LV_OBJ_FLAG_SCROLL_WITH_ARROWE]ith arrow keys
+
:: Allow scrolling the focused object with arrow keys
:; <span id="_CPPv3NUt1_321LV_OBJ_FLAG_SNAPPABLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a42b8f9479a9887451214b2e745875ab7" class="target"></span>enumerator LV_OBJ_FLAG_SNAPPABLE[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_321LV_OBJ_FLAG_SNAPPABLEE] <span id="_CPPv3NUt1_321LV_OBJ_FLAG_SNAPPABLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a42b8f9479a9887451214b2e745875ab7" class="target"></span>
+
:enumerator LV_OBJ_FLAG_SNAPPABLE  
:: If scroll snap is enabled on[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_321LV_OBJ_FLAG_SNAPPABLEE] the parent it can snap to this object
+
:: If scroll snap is enabled on the parent it can snap to this object
:; <span id="_CPPv3NUt1_322LV_OBJ_FLAG_PRESS_LOCKE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a5f08ee3117d5cf0ed98950557015497b" class="target"></span>enumerator LV_OBJ_FLAG_PRESS_LOCK[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_322LV_OBJ_FLAG_PRESS_LOCKE] <span id="_CPPv3NUt1_322LV_OBJ_FLAG_PRESS_LOCKE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a5f08ee3117d5cf0ed98950557015497b" class="target"></span>
+
:enumerator LV_OBJ_FLAG_PRESS_LOCK  
:: Keep the object pressed even [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_322LV_OBJ_FLAG_PRESS_LOCKE]if the press slid from the object
+
:: Keep the object pressed even if the press slid from the object
:; <span id="_CPPv3NUt1_324LV_OBJ_FLAG_EVENT_BUBBLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04ae16fa872a5e67efda3e21a2925dddd85" class="target"></span>enumerator LV_OBJ_FLAG_EVENT_BUBBLE[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_324LV_OBJ_FLAG_EVENT_BUBBLEE] <span id="_CPPv3NUt1_324LV_OBJ_FLAG_EVENT_BUBBLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04ae16fa872a5e67efda3e21a2925dddd85" class="target"></span>
+
:enumerator LV_OBJ_FLAG_EVENT_BUBBLE  
:: Propagate the events to the par[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_324LV_OBJ_FLAG_EVENT_BUBBLEE]ent too
+
:: Propagate the events to the parent too
:; <span id="_CPPv3NUt1_326LV_OBJ_FLAG_GESTURE_BUBBLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a339e201d0291a4b7258a50141b47df3e" class="target"></span>enumerator LV_OBJ_FLAG_GESTURE_BUBBLE[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_326LV_OBJ_FLAG_GESTURE_BUBBLEE] <span id="_CPPv3NUt1_326LV_OBJ_FLAG_GESTURE_BUBBLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a339e201d0291a4b7258a50141b47df3e" class="target"></span>
+
:enumerator LV_OBJ_FLAG_GESTURE_BUBBLE  
:: Propagate the gestures to the par[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_326LV_OBJ_FLAG_GESTURE_BUBBLEE]ent
+
:: Propagate the gestures to the parent
:; <span id="_CPPv3NUt1_323LV_OBJ_FLAG_ADV_HITTESTE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04aab483aa0afd58b7df0c44e10b1ed73d1" class="target"></span>enumerator LV_OBJ_FLAG_ADV_HITTEST[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_323LV_OBJ_FLAG_ADV_HITTESTE] <span id="_CPPv3NUt1_323LV_OBJ_FLAG_ADV_HITTESTE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04aab483aa0afd58b7df0c44e10b1ed73d1" class="target"></span>
+
:enumerator LV_OBJ_FLAG_ADV_HITTEST  
:: Allow performing more accurate[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_323LV_OBJ_FLAG_ADV_HITTESTE] hit (click) test. E.g. consider rounded corners.
+
:: Allow performing more accurate hit (click) test. E.g. consider rounded corners.
:; <span id="_CPPv3NUt1_325LV_OBJ_FLAG_IGNORE_LAYOUTE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a5278a16b8d997809825817354c2a836c" class="target"></span>enumerator LV_OBJ_FLAG_IGNORE_LAYOUT[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_325LV_OBJ_FLAG_IGNORE_LAYOUTE] <span id="_CPPv3NUt1_325LV_OBJ_FLAG_IGNORE_LAYOUTE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a5278a16b8d997809825817354c2a836c" class="target"></span>
+
:enumerator LV_OBJ_FLAG_IGNORE_LAYOUT  
:: Make the object position-able by[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_325LV_OBJ_FLAG_IGNORE_LAYOUTE] the layouts
+
:: Make the object position-able by the layouts
:; <span id="_CPPv3NUt1_320LV_OBJ_FLAG_FLOATINGE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04ad6fd2a95a8ca05bd35afd3393211677b" class="target"></span>enumerator LV_OBJ_FLAG_FLOATING[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_320LV_OBJ_FLAG_FLOATINGE] <span id="_CPPv3NUt1_320LV_OBJ_FLAG_FLOATINGE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04ad6fd2a95a8ca05bd35afd3393211677b" class="target"></span>
+
:enumerator LV_OBJ_FLAG_FLOATING  
:: Do not scroll the object wh[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_320LV_OBJ_FLAG_FLOATINGE]en the parent scrolls and ignore layout
+
:: Do not scroll the object when the parent scrolls and ignore layout
:; <span id="_CPPv3NUt1_328LV_OBJ_FLAG_OVERFLOW_VISIBLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a9c1f8be397c92a0cfec887a1c1315d55" class="target"></span>enumerator LV_OBJ_FLAG_OVERFLOW_VISIBLE[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_328LV_OBJ_FLAG_OVERFLOW_VISIBLEE] <span id="_CPPv3NUt1_328LV_OBJ_FLAG_OVERFLOW_VISIBLEE"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a9c1f8be397c92a0cfec887a1c1315d55" class="target"></span>
+
:enumerator LV_OBJ_FLAG_OVERFLOW_VISIBLE  
:: Do not clip the children's content [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_328LV_OBJ_FLAG_OVERFLOW_VISIBLEE]to the parent's boundary
+
:: Do not clip the children's content to the parent's boundary
:; <span id="_CPPv3NUt1_320LV_OBJ_FLAG_LAYOUT_1E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a2a8087232ace4a32a3b84d5cceb0cf8a" class="target"></span>enumerator LV_OBJ_FLAG_LAYOUT_1[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_320LV_OBJ_FLAG_LAYOUT_1E] <span id="_CPPv3NUt1_320LV_OBJ_FLAG_LAYOUT_1E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a2a8087232ace4a32a3b84d5cceb0cf8a" class="target"></span>
+
:enumerator LV_OBJ_FLAG_LAYOUT_1  
:: Custom flag, free to use by[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_320LV_OBJ_FLAG_LAYOUT_1E] layouts
+
:: Custom flag, free to use by layouts
:; <span id="_CPPv3NUt1_320LV_OBJ_FLAG_LAYOUT_2E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a2f926bc2c9a05243d3cefb33a6e019a2" class="target"></span>enumerator LV_OBJ_FLAG_LAYOUT_2[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_320LV_OBJ_FLAG_LAYOUT_2E] <span id="_CPPv3NUt1_320LV_OBJ_FLAG_LAYOUT_2E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a2f926bc2c9a05243d3cefb33a6e019a2" class="target"></span>
+
:enumerator LV_OBJ_FLAG_LAYOUT_2  
:: Custom flag, free to use by[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_320LV_OBJ_FLAG_LAYOUT_2E] layouts
+
:: Custom flag, free to use by layouts
:; <span id="_CPPv3NUt1_320LV_OBJ_FLAG_WIDGET_1E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a56ef045b9e3adf1f9b53993181b3f519" class="target"></span>enumerator LV_OBJ_FLAG_WIDGET_1[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_320LV_OBJ_FLAG_WIDGET_1E] <span id="_CPPv3NUt1_320LV_OBJ_FLAG_WIDGET_1E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a56ef045b9e3adf1f9b53993181b3f519" class="target"></span>
+
:enumerator LV_OBJ_FLAG_WIDGET_1  
:: Custom flag, free to use by[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_320LV_OBJ_FLAG_WIDGET_1E] widget
+
:: Custom flag, free to use by widget
:; <span id="_CPPv3NUt1_320LV_OBJ_FLAG_WIDGET_2E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a13da2d5612d7eca837d153566fe5a88c" class="target"></span>enumerator LV_OBJ_FLAG_WIDGET_2[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_320LV_OBJ_FLAG_WIDGET_2E] <span id="_CPPv3NUt1_320LV_OBJ_FLAG_WIDGET_2E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a13da2d5612d7eca837d153566fe5a88c" class="target"></span>
+
:enumerator LV_OBJ_FLAG_WIDGET_2  
:: Custom flag, free to use by[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_320LV_OBJ_FLAG_WIDGET_2E] widget
+
:: Custom flag, free to use by widget
:; <span id="_CPPv3NUt1_318LV_OBJ_FLAG_USER_1E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04ade26c60c22b7b72d5b7f1c198a792e38" class="target"></span>enumerator LV_OBJ_FLAG_USER_1[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_318LV_OBJ_FLAG_USER_1E] <span id="_CPPv3NUt1_318LV_OBJ_FLAG_USER_1E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04ade26c60c22b7b72d5b7f1c198a792e38" class="target"></span>
+
:enumerator LV_OBJ_FLAG_USER_1  
:: Custom flag, free to use [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_318LV_OBJ_FLAG_USER_1E]by user
+
:: Custom flag, free to use by user
:; <span id="_CPPv3NUt1_318LV_OBJ_FLAG_USER_2E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a36aff389b54ace273398714fb679d293" class="target"></span>enumerator LV_OBJ_FLAG_USER_2[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_318LV_OBJ_FLAG_USER_2E] <span id="_CPPv3NUt1_318LV_OBJ_FLAG_USER_2E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a36aff389b54ace273398714fb679d293" class="target"></span>
+
:enumerator LV_OBJ_FLAG_USER_2  
:: Custom flag, free to use [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_318LV_OBJ_FLAG_USER_2E]by user
+
:: Custom flag, free to use by user
:; <span id="_CPPv3NUt1_318LV_OBJ_FLAG_USER_3E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a290cacf233e96ec97f1f9e475754def2" class="target"></span>enumerator LV_OBJ_FLAG_USER_3[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_318LV_OBJ_FLAG_USER_3E] <span id="_CPPv3NUt1_318LV_OBJ_FLAG_USER_3E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a290cacf233e96ec97f1f9e475754def2" class="target"></span>
+
:enumerator LV_OBJ_FLAG_USER_3  
:: Custom flag, free to use [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_318LV_OBJ_FLAG_USER_3E]by user
+
:: Custom flag, free to use by user
:; <span id="_CPPv3NUt1_318LV_OBJ_FLAG_USER_4E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a32304027ab6e5bbddab828424b58bfe9" class="target"></span>enumerator LV_OBJ_FLAG_USER_4[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_318LV_OBJ_FLAG_USER_4E] <span id="_CPPv3NUt1_318LV_OBJ_FLAG_USER_4E"></span><span id="lv__obj_8h_1abc6126af1d45847bc59afa0aa3216b04a32304027ab6e5bbddab828424b58bfe9" class="target"></span>
+
:enumerator LV_OBJ_FLAG_USER_4  
:: Custom flag, free to use [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4NUt1_318LV_OBJ_FLAG_USER_4E]by user
+
:: Custom flag, free to use by user
  
; <span id="_CPPv323lv_obj_draw_part_type_t"></span><span id="_CPPv223lv_obj_draw_part_type_t"></span><span id="lv__obj_8h_1a4b405752eb666638d7ab3436ccb86cfa" class="target"></span>enum lv_obj_draw_part_type_t[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv423lv_obj_draw_part_type_t] <span id="_CPPv323lv_obj_draw_part_type_t"></span><span id="_CPPv223lv_obj_draw_part_type_t"></span><span id="lv__obj_8h_1a4b405752eb666638d7ab3436ccb86cfa" class="target"></span>
+
enum lv_obj_draw_part_type_t  
: <code>type</code> field in <code>lv_obj_dra</code>[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv423lv_obj_draw_part_type_t]<code>w_part_dsc_t</code> if <code>class_p = lv_obj_class</code> Used in <code>LV_EVENT_DRAW_PART_BEGIN</code> and <code>LV_EVENT_DRAW_PART_END</code>  ''Values:''
+
: <code style="color: #bb0000;">type</code> field in <code style="color: #bb0000;">lv_obj_dra</code><code style="color: #bb0000;">w_part_dsc_t</code> if <code style="color: #bb0000;">class_p = lv_obj_class</code> Used in <code style="color: #bb0000;">LV_EVENT_DRAW_PART_BEGIN</code> and <code style="color: #bb0000;">LV_EVENT_DRAW_PART_END</code>  ''Values:''
:; <span id="_CPPv3N23lv_obj_draw_part_type_t26LV_OBJ_DRAW_PART_RECTANGLEE"></span><span id="_CPPv2N23lv_obj_draw_part_type_t26LV_OBJ_DRAW_PART_RECTANGLEE"></span><span id="lv__obj_8h_1a4b405752eb666638d7ab3436ccb86cfaafc6e874c0671558c04c54e2f066270da" class="target"></span>enumerator LV_OBJ_DRAW_PART_RECTANGLE[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N23lv_obj_draw_part_type_t26LV_OBJ_DRAW_PART_RECTANGLEE] <span id="_CPPv3N23lv_obj_draw_part_type_t26LV_OBJ_DRAW_PART_RECTANGLEE"></span><span id="_CPPv2N23lv_obj_draw_part_type_t26LV_OBJ_DRAW_PART_RECTANGLEE"></span><span id="lv__obj_8h_1a4b405752eb666638d7ab3436ccb86cfaafc6e874c0671558c04c54e2f066270da" class="target"></span>
+
:enumerator LV_OBJ_DRAW_PART_RECTANGLE  
 
:: The main rectangle
 
:: The main rectangle
:; <span id="_CPPv3N23lv_obj_draw_part_type_t28LV_OBJ_DRAW_PART_BORDER_POSTE"></span><span id="_CPPv2N23lv_obj_draw_part_type_t28LV_OBJ_DRAW_PART_BORDER_POSTE"></span><span id="lv__obj_8h_1a4b405752eb666638d7ab3436ccb86cfaa69c22513315938988b37fbd57d8df0df" class="target"></span>enumerato[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N23lv_obj_draw_part_type_t26LV_OBJ_DRAW_PART_RECTANGLEE]r LV_OBJ_DRAW_PART_BORDER_POST[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N23lv_obj_draw_part_type_t28LV_OBJ_DRAW_PART_BORDER_POSTE] <span id="_CPPv3N23lv_obj_draw_part_type_t28LV_OBJ_DRAW_PART_BORDER_POSTE"></span><span id="_CPPv2N23lv_obj_draw_part_type_t28LV_OBJ_DRAW_PART_BORDER_POSTE"></span><span id="lv__obj_8h_1a4b405752eb666638d7ab3436ccb86cfaa69c22513315938988b37fbd57d8df0df" class="target"></span>
+
:enumerator LV_OBJ_DRAW_PART_BORDER_POST  
:: The border if style_border_post = t[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N23lv_obj_draw_part_type_t28LV_OBJ_DRAW_PART_BORDER_POSTE]rue
+
:: The border if style_border_post = true
:; <span id="_CPPv3N23lv_obj_draw_part_type_t26LV_OBJ_DRAW_PART_SCROLLBARE"></span><span id="_CPPv2N23lv_obj_draw_part_type_t26LV_OBJ_DRAW_PART_SCROLLBARE"></span><span id="lv__obj_8h_1a4b405752eb666638d7ab3436ccb86cfaae44ddaa12cc79f7b977e95ccf69fcea7" class="target"></span>enumerator LV_OBJ_DRAW_PART_SCROLLBAR[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N23lv_obj_draw_part_type_t26LV_OBJ_DRAW_PART_SCROLLBARE] <span id="_CPPv3N23lv_obj_draw_part_type_t26LV_OBJ_DRAW_PART_SCROLLBARE"></span><span id="_CPPv2N23lv_obj_draw_part_type_t26LV_OBJ_DRAW_PART_SCROLLBARE"></span><span id="lv__obj_8h_1a4b405752eb666638d7ab3436ccb86cfaae44ddaa12cc79f7b977e95ccf69fcea7" class="target"></span>
+
:enumerator LV_OBJ_DRAW_PART_SCROLLBAR  
 
:: The scrollbar
 
:: The scrollbar
  
 
Functions
 
Functions
  
; <span id="_CPPv37lv_initv"></span><span id="_CPPv27lv_initv"></span><span id="lv_init__void"></span><span id="lv__obj_8h_1a666fa58edac1e61856b2a00fe60308a0" class="target"></span>v[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N23lv_obj_draw_part_type_t26LV_OBJ_DRAW_PART_SCROLLBARE]oid lv_init(void)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv47lv_initv] <span id="_CPPv37lv_initv"></span><span id="_CPPv27lv_initv"></span><span id="lv_init__void"></span><span id="lv__obj_8h_1a666fa58edac1e61856b2a00fe60308a0" class="target"></span>
+
void lv_init(void)  
: Initialize LVG[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv47lv_initv]L library. Should be called before any other LVGL related function.
+
: Initialize LVGL library. Should be called before any other LVGL related function.
  
; <span id="_CPPv39lv_deinitv"></span><span id="_CPPv29lv_deinitv"></span><span id="lv_deinit__void"></span><span id="lv__obj_8h_1a302a9934e9b77badac7f527b5116a156" class="target"></span>void lv_deinit(void)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv49lv_deinitv] <span id="_CPPv39lv_deinitv"></span><span id="_CPPv29lv_deinitv"></span><span id="lv_deinit__void"></span><span id="lv__obj_8h_1a302a9934e9b77badac7f527b5116a156" class="target"></span>
+
void lv_deinit(void)  
: Deinit the 'lv' [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv49lv_deinitv]library Currently only implemented when not using custom allocators, or GC is enabled.
+
: Deinit the 'lv' library Currently only implemented when not using custom allocators, or GC is enabled.
  
; <span id="_CPPv317lv_is_initializedv"></span><span id="_CPPv217lv_is_initializedv"></span><span id="lv_is_initialized__void"></span><span id="lv__obj_8h_1a548cb2278027f044b648acd7f02b2f0c" class="target"></span>bool lv_is_initialized(void)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv417lv_is_initializedv] <span id="_CPPv317lv_is_initializedv"></span><span id="_CPPv217lv_is_initializedv"></span><span id="lv_is_initialized__void"></span><span id="lv__obj_8h_1a548cb2278027f044b648acd7f02b2f0c" class="target"></span>
+
bool lv_is_initialized(void)  
: Returns whether the 'lv'[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv417lv_is_initializedv] library is currently initialized
+
: Returns whether the 'lv' library is currently initialized
  
; <span id="_CPPv313lv_obj_createP8lv_obj_t"></span><span id="_CPPv213lv_obj_createP8lv_obj_t"></span><span id="lv_obj_create__lv_obj_tP"></span><span id="lv__obj_8h_1a3ec100c35eb3851993b1af37c3250dad" class="target"></span>lv_obj_t *lv_obj_create(lv_obj_t *parent)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv413lv_obj_createP8lv_obj_t] <span id="_CPPv313lv_obj_createP8lv_obj_t"></span><span id="_CPPv213lv_obj_createP8lv_obj_t"></span><span id="lv_obj_create__lv_obj_tP"></span><span id="lv__obj_8h_1a3ec100c35eb3851993b1af37c3250dad" class="target"></span>
+
lv_obj_t *lv_obj_create(lv_obj_t *parent)  
 
: Create a base object (a rectangle)
 
: Create a base object (a rectangle)
:; [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv413lv_obj_createP8lv_obj_t]Parameters
+
:Parameters
 
:: parent -- pointer to a parent object. If NULL then a screen will be created.
 
:: parent -- pointer to a parent object. If NULL then a screen will be created.
:; Returns
+
:Returns
 
:: pointer to the new object
 
:: pointer to the new object
  
; <span id="_CPPv315lv_obj_add_flagP8lv_obj_t13lv_obj_flag_t"></span><span id="_CPPv215lv_obj_add_flagP8lv_obj_t13lv_obj_flag_t"></span><span id="lv_obj_add_flag__lv_obj_tP.lv_obj_flag_t"></span><span id="lv__obj_8h_1a87fa70194789d48ea3dba01d1c28c984" class="target"></span>void lv_obj_add_flag(lv_obj_t *obj, lv_obj_flag_t f)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv415lv_obj_add_flagP8lv_obj_t13lv_obj_flag_t] <span id="_CPPv315lv_obj_add_flagP8lv_obj_t13lv_obj_flag_t"></span><span id="_CPPv215lv_obj_add_flagP8lv_obj_t13lv_obj_flag_t"></span><span id="lv_obj_add_flag__lv_obj_tP.lv_obj_flag_t"></span><span id="lv__obj_8h_1a87fa70194789d48ea3dba01d1c28c984" class="target"></span>
+
void lv_obj_add_flag(lv_obj_t *obj, lv_obj_flag_t f)  
 
: Set one or more flags
 
: Set one or more flags
:; Parameters
+
:Parameters
::* obj -- [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv415lv_obj_add_flagP8lv_obj_t13lv_obj_flag_t]pointer to an object
+
::* obj -- pointer to an object
::* f -- R-ed values from <code>lv_obj_flag_t</code> to set.
+
::* f -- R-ed values from <code style="color: #bb0000;">lv_obj_flag_t</code> to set.
  
; <span id="_CPPv317lv_obj_clear_flagP8lv_obj_t13lv_obj_flag_t"></span><span id="_CPPv217lv_obj_clear_flagP8lv_obj_t13lv_obj_flag_t"></span><span id="lv_obj_clear_flag__lv_obj_tP.lv_obj_flag_t"></span><span id="lv__obj_8h_1a8a45a671b0fb07c0e99639c180d25fba" class="target"></span>void lv_obj_clear_flag(lv_obj_t *obj, lv_obj_flag_t f)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv417lv_obj_clear_flagP8lv_obj_t13lv_obj_flag_t] <span id="_CPPv317lv_obj_clear_flagP8lv_obj_t13lv_obj_flag_t"></span><span id="_CPPv217lv_obj_clear_flagP8lv_obj_t13lv_obj_flag_t"></span><span id="lv_obj_clear_flag__lv_obj_tP.lv_obj_flag_t"></span><span id="lv__obj_8h_1a8a45a671b0fb07c0e99639c180d25fba" class="target"></span>
+
void lv_obj_clear_flag(lv_obj_t *obj, lv_obj_flag_t f)  
 
: Clear one or more flags
 
: Clear one or more flags
:; Parameters
+
:Parameters
::* obj -- [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv417lv_obj_clear_flagP8lv_obj_t13lv_obj_flag_t]pointer to an object
+
::* obj -- pointer to an object
::* f -- OR-ed values from <code>lv_obj_flag_t</code> to set.
+
::* f -- OR-ed values from <code style="color: #bb0000;">lv_obj_flag_t</code> to set.
  
; <span id="_CPPv316lv_obj_add_stateP8lv_obj_t10lv_state_t"></span><span id="_CPPv216lv_obj_add_stateP8lv_obj_t10lv_state_t"></span><span id="lv_obj_add_state__lv_obj_tP.lv_state_t"></span><span id="lv__obj_8h_1adbd258635d3d653e5446336764044db1" class="target"></span>void lv_obj_add_state(lv_obj_t *obj, lv_state_t state)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv416lv_obj_add_stateP8lv_obj_t10lv_state_t] <span id="_CPPv316lv_obj_add_stateP8lv_obj_t10lv_state_t"></span><span id="_CPPv216lv_obj_add_stateP8lv_obj_t10lv_state_t"></span><span id="lv_obj_add_state__lv_obj_tP.lv_state_t"></span><span id="lv__obj_8h_1adbd258635d3d653e5446336764044db1" class="target"></span>
+
void lv_obj_add_state(lv_obj_t *obj, lv_state_t state)  
: Add one or more states to the object. The other st[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv416lv_obj_add_stateP8lv_obj_t10lv_state_t]ate bits will remain unchanged. If specified in the styles, transition animation will be started from the previous state to the current.
+
: Add one or more states to the object. The other state bits will remain unchanged. If specified in the styles, transition animation will be started from the previous state to the current.
:; Parameters
+
:Parameters
 
::* obj -- pointer to an object
 
::* obj -- pointer to an object
::* state -- the states to add. E.g <code>LV_STATE_PRESSED | LV_STATE_FOCUSED</code>
+
::* state -- the states to add. E.g <code style="color: #bb0000;">LV_STATE_PRESSED | LV_STATE_FOCUSED</code>
  
; <span id="_CPPv318lv_obj_clear_stateP8lv_obj_t10lv_state_t"></span><span id="_CPPv218lv_obj_clear_stateP8lv_obj_t10lv_state_t"></span><span id="lv_obj_clear_state__lv_obj_tP.lv_state_t"></span><span id="lv__obj_8h_1ac94c26d36140c7c83da6914d60170e16" class="target"></span>void lv_obj_clear_state(lv_obj_t *obj, lv_state_t state)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv418lv_obj_clear_stateP8lv_obj_t10lv_state_t] <span id="_CPPv318lv_obj_clear_stateP8lv_obj_t10lv_state_t"></span><span id="_CPPv218lv_obj_clear_stateP8lv_obj_t10lv_state_t"></span><span id="lv_obj_clear_state__lv_obj_tP.lv_state_t"></span><span id="lv__obj_8h_1ac94c26d36140c7c83da6914d60170e16" class="target"></span>
+
void lv_obj_clear_state(lv_obj_t *obj, lv_state_t state)  
: Remove one or more states to the object. The other s[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv418lv_obj_clear_stateP8lv_obj_t10lv_state_t]tate bits will remain unchanged. If specified in the styles, transition animation will be started from the previous state to the current.
+
: Remove one or more states to the object. The other state bits will remain unchanged. If specified in the styles, transition animation will be started from the previous state to the current.
:; Parameters
+
:Parameters
 
::* obj -- pointer to an object
 
::* obj -- pointer to an object
::* state -- the states to add. E.g <code>LV_STATE_PRESSED | LV_STATE_FOCUSED</code>
+
::* state -- the states to add. E.g <code style="color: #bb0000;">LV_STATE_PRESSED | LV_STATE_FOCUSED</code>
  
; <span id="_CPPv320lv_obj_set_user_dataP8lv_obj_tPv"></span><span id="_CPPv220lv_obj_set_user_dataP8lv_obj_tPv"></span><span id="lv_obj_set_user_data__lv_obj_tP.voidP"></span><span id="lv__obj_8h_1a8365f69f32a3870a2b961b8d0751aeba" class="target"></span>static inline void lv_obj_set_user_data(lv_obj_t *obj, void *user_data)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv420lv_obj_set_user_dataP8lv_obj_tPv] <span id="_CPPv320lv_obj_set_user_dataP8lv_obj_tPv"></span><span id="_CPPv220lv_obj_set_user_dataP8lv_obj_tPv"></span><span id="lv_obj_set_user_data__lv_obj_tP.voidP"></span><span id="lv__obj_8h_1a8365f69f32a3870a2b961b8d0751aeba" class="target"></span>
+
static inline void lv_obj_set_user_data(lv_obj_t *obj, void *user_data)  
 
: Set the user_data field of the object
 
: Set the user_data field of the object
:; Parameters
+
:Parameters
::* obj -- poi[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv420lv_obj_set_user_dataP8lv_obj_tPv]nter to an object
+
::* obj -- pointer to an object
 
::* user_data -- pointer to the new user_data.
 
::* user_data -- pointer to the new user_data.
  
; <span id="_CPPv315lv_obj_has_flagPK8lv_obj_t13lv_obj_flag_t"></span><span id="_CPPv215lv_obj_has_flagPK8lv_obj_t13lv_obj_flag_t"></span><span id="lv_obj_has_flag__lv_obj_tCP.lv_obj_flag_t"></span><span id="lv__obj_8h_1a349bf1b6dea18bd0ab189e7a1c06a662" class="target"></span>bool lv_obj_has_flag(const lv_obj_t *obj, lv_obj_flag_t f)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv415lv_obj_has_flagPK8lv_obj_t13lv_obj_flag_t] <span id="_CPPv315lv_obj_has_flagPK8lv_obj_t13lv_obj_flag_t"></span><span id="_CPPv215lv_obj_has_flagPK8lv_obj_t13lv_obj_flag_t"></span><span id="lv_obj_has_flag__lv_obj_tCP.lv_obj_flag_t"></span><span id="lv__obj_8h_1a349bf1b6dea18bd0ab189e7a1c06a662" class="target"></span>
+
bool lv_obj_has_flag(const lv_obj_t *obj, lv_obj_flag_t f)  
: Check if a given flag or all the given flags are set o[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv415lv_obj_has_flagPK8lv_obj_t13lv_obj_flag_t]n an object.
+
: Check if a given flag or all the given flags are set on an object.
:; Parameters
+
:Parameters
 
::* obj -- pointer to an object
 
::* obj -- pointer to an object
 
::* f -- the flag(s) to check (OR-ed values can be used)
 
::* f -- the flag(s) to check (OR-ed values can be used)
:; Returns
+
:Returns
:: true: all flags are set; false: not all flags are set
+
:: true: all flags are setfalse: not all flags are set
  
; <span id="_CPPv319lv_obj_has_flag_anyPK8lv_obj_t13lv_obj_flag_t"></span><span id="_CPPv219lv_obj_has_flag_anyPK8lv_obj_t13lv_obj_flag_t"></span><span id="lv_obj_has_flag_any__lv_obj_tCP.lv_obj_flag_t"></span><span id="lv__obj_8h_1a29244deb39942043ee658fbb8e1a47d2" class="target"></span>bool lv_obj_has_flag_any(const lv_obj_t *obj, lv_obj_flag_t f)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv419lv_obj_has_flag_anyPK8lv_obj_t13lv_obj_flag_t] <span id="_CPPv319lv_obj_has_flag_anyPK8lv_obj_t13lv_obj_flag_t"></span><span id="_CPPv219lv_obj_has_flag_anyPK8lv_obj_t13lv_obj_flag_t"></span><span id="lv_obj_has_flag_any__lv_obj_tCP.lv_obj_flag_t"></span><span id="lv__obj_8h_1a29244deb39942043ee658fbb8e1a47d2" class="target"></span>
+
bool lv_obj_has_flag_any(const lv_obj_t *obj, lv_obj_flag_t f)  
: Check if a given flag or any of the flags are set on an ob[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv419lv_obj_has_flag_anyPK8lv_obj_t13lv_obj_flag_t]ject.
+
: Check if a given flag or any of the flags are set on an object.
:; Parameters
+
:Parameters
 
::* obj -- pointer to an object
 
::* obj -- pointer to an object
 
::* f -- the flag(s) to check (OR-ed values can be used)
 
::* f -- the flag(s) to check (OR-ed values can be used)
:; Returns
+
:Returns
:: true: at lest one flag flag is set; false: none of the flags are set
+
:: true: at lest one flag flag is setfalse: none of the flags are set
  
; <span id="_CPPv316lv_obj_get_statePK8lv_obj_t"></span><span id="_CPPv216lv_obj_get_statePK8lv_obj_t"></span><span id="lv_obj_get_state__lv_obj_tCP"></span><span id="lv__obj_8h_1a512731c24ce12b0e62abb3179cbde6ed" class="target"></span>lv_state_t lv_obj_get_state(const lv_obj_t *obj)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv416lv_obj_get_statePK8lv_obj_t] <span id="_CPPv316lv_obj_get_statePK8lv_obj_t"></span><span id="_CPPv216lv_obj_get_statePK8lv_obj_t"></span><span id="lv_obj_get_state__lv_obj_tCP"></span><span id="lv__obj_8h_1a512731c24ce12b0e62abb3179cbde6ed" class="target"></span>
+
lv_state_t lv_obj_get_state(const lv_obj_t *obj)  
 
: Get the state of an object
 
: Get the state of an object
:; Parameters
+
:Parameters
:: [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv416lv_obj_get_statePK8lv_obj_t]obj -- pointer to an object
+
:: obj -- pointer to an object
:; Returns
+
:Returns
:: the state (OR-ed values from <code>lv_state_t</code>)
+
:: the state (OR-ed values from <code style="color: #bb0000;">lv_state_t</code>)
  
; <span id="_CPPv316lv_obj_has_statePK8lv_obj_t10lv_state_t"></span><span id="_CPPv216lv_obj_has_statePK8lv_obj_t10lv_state_t"></span><span id="lv_obj_has_state__lv_obj_tCP.lv_state_t"></span><span id="lv__obj_8h_1af6296b36dd5eddc61f5544761b1ff5a7" class="target"></span>bool lv_obj_has_state(const lv_obj_t *obj, lv_state_t state)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv416lv_obj_has_statePK8lv_obj_t10lv_state_t] <span id="_CPPv316lv_obj_has_statePK8lv_obj_t10lv_state_t"></span><span id="_CPPv216lv_obj_has_statePK8lv_obj_t10lv_state_t"></span><span id="lv_obj_has_state__lv_obj_tCP.lv_state_t"></span><span id="lv__obj_8h_1af6296b36dd5eddc61f5544761b1ff5a7" class="target"></span>
+
bool lv_obj_has_state(const lv_obj_t *obj, lv_state_t state)  
 
: Check if the object is in a given state or not.
 
: Check if the object is in a given state or not.
:; Param[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv416lv_obj_has_statePK8lv_obj_t10lv_state_t]eters
+
:Parameters
 
::* obj -- pointer to an object
 
::* obj -- pointer to an object
 
::* state -- a state or combination of states to check
 
::* state -- a state or combination of states to check
:; Returns
+
:Returns
:: true: <code>obj</code> is in <code>state</code>; false: <code>obj</code> is not in <code>state</code>
+
:: true: <code style="color: #bb0000;">obj</code> is in <code style="color: #bb0000;">state</code>false: <code style="color: #bb0000;">obj</code> is not in <code style="color: #bb0000;">state</code>
  
; <span id="_CPPv316lv_obj_get_groupPK8lv_obj_t"></span><span id="_CPPv216lv_obj_get_groupPK8lv_obj_t"></span><span id="lv_obj_get_group__lv_obj_tCP"></span><span id="lv__obj_8h_1a4096ec8a90cb787d671867b9bd43dc73" class="target"></span>void *lv_obj_get_group(const lv_obj_t *obj)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv416lv_obj_get_groupPK8lv_obj_t] <span id="_CPPv316lv_obj_get_groupPK8lv_obj_t"></span><span id="_CPPv216lv_obj_get_groupPK8lv_obj_t"></span><span id="lv_obj_get_group__lv_obj_tCP"></span><span id="lv__obj_8h_1a4096ec8a90cb787d671867b9bd43dc73" class="target"></span>
+
void *lv_obj_get_group(const lv_obj_t *obj)  
 
: Get the group of the object
 
: Get the group of the object
:; Paramete[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv416lv_obj_get_groupPK8lv_obj_t]rs
+
:Parameters
 
:: obj -- pointer to an object
 
:: obj -- pointer to an object
:; Returns
+
:Returns
 
:: the pointer to group of the object
 
:: the pointer to group of the object
  
; <span id="_CPPv320lv_obj_get_user_dataP8lv_obj_t"></span><span id="_CPPv220lv_obj_get_user_dataP8lv_obj_t"></span><span id="lv_obj_get_user_data__lv_obj_tP"></span><span id="lv__obj_8h_1aa5a39817d4cbee2420ee5b4d7e466d28" class="target"></span>static inline void *lv_obj_get_user_data(lv_obj_t *obj)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv420lv_obj_get_user_dataP8lv_obj_t] <span id="_CPPv320lv_obj_get_user_dataP8lv_obj_t"></span><span id="_CPPv220lv_obj_get_user_dataP8lv_obj_t"></span><span id="lv_obj_get_user_data__lv_obj_tP"></span><span id="lv__obj_8h_1aa5a39817d4cbee2420ee5b4d7e466d28" class="target"></span>
+
static inline void *lv_obj_get_user_data(lv_obj_t *obj)  
 
: Get the user_data field of the object
 
: Get the user_data field of the object
:; Parameters[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv420lv_obj_get_user_dataP8lv_obj_t]
+
:Parameters
 
:: obj -- pointer to an object
 
:: obj -- pointer to an object
:; Returns
+
:Returns
 
:: the pointer to the user_data of the object
 
:: the pointer to the user_data of the object
  
; <span id="_CPPv325lv_obj_allocate_spec_attrP8lv_obj_t"></span><span id="_CPPv225lv_obj_allocate_spec_attrP8lv_obj_t"></span><span id="lv_obj_allocate_spec_attr__lv_obj_tP"></span><span id="lv__obj_8h_1a1b734607bd80d900ba862375d08227cf" class="target"></span>void lv_obj_allocate_spec_attr(lv_obj_t *obj)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv425lv_obj_allocate_spec_attrP8lv_obj_t] <span id="_CPPv325lv_obj_allocate_spec_attrP8lv_obj_t"></span><span id="_CPPv225lv_obj_allocate_spec_attrP8lv_obj_t"></span><span id="lv_obj_allocate_spec_attr__lv_obj_tP"></span><span id="lv__obj_8h_1a1b734607bd80d900ba862375d08227cf" class="target"></span>
+
void lv_obj_allocate_spec_attr(lv_obj_t *obj)  
: Allocate special data for an object if no[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv425lv_obj_allocate_spec_attrP8lv_obj_t]t allocated yet.
+
: Allocate special data for an object if not allocated yet.
:; Parameters
+
:Parameters
 
:: obj -- pointer to an object
 
:: obj -- pointer to an object
  
; <span id="_CPPv317lv_obj_check_typePK8lv_obj_tPK14lv_obj_class_t"></span><span id="_CPPv217lv_obj_check_typePK8lv_obj_tPK14lv_obj_class_t"></span><span id="lv_obj_check_type__lv_obj_tCP.lv_obj_class_tCP"></span><span id="lv__obj_8h_1a3d7bedf32977bdf5a8ddfa01f1302c08" class="target"></span>bool lv_obj_check_type(const lv_obj_t *obj, const lv_obj_class_t *class_p)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv417lv_obj_check_typePK8lv_obj_tPK14lv_obj_class_t] <span id="_CPPv317lv_obj_check_typePK8lv_obj_tPK14lv_obj_class_t"></span><span id="_CPPv217lv_obj_check_typePK8lv_obj_tPK14lv_obj_class_t"></span><span id="lv_obj_check_type__lv_obj_tCP.lv_obj_class_tCP"></span><span id="lv__obj_8h_1a3d7bedf32977bdf5a8ddfa01f1302c08" class="target"></span>
+
bool lv_obj_check_type(const lv_obj_t *obj, const lv_obj_class_t *class_p)  
 
: Check the type of obj.
 
: Check the type of obj.
:; Parameters
+
:Parameters
::* obj -- pointer to an object [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv417lv_obj_check_typePK8lv_obj_tPK14lv_obj_class_t]
+
::* obj -- pointer to an object  
::* class_p -- a class to check (e.g. <code>lv_slider_class</code>)
+
::* class_p -- a class to check (e.g. <code style="color: #bb0000;">lv_slider_class</code>)
:; Returns
+
:Returns
:: true: <code>class_p</code> is the <code>obj</code> class.
+
:: true: <code style="color: #bb0000;">class_p</code> is the <code style="color: #bb0000;">obj</code> class.
  
; <span id="_CPPv316lv_obj_has_classPK8lv_obj_tPK14lv_obj_class_t"></span><span id="_CPPv216lv_obj_has_classPK8lv_obj_tPK14lv_obj_class_t"></span><span id="lv_obj_has_class__lv_obj_tCP.lv_obj_class_tCP"></span><span id="lv__obj_8h_1a27480f49b6f82e0e2643c1dd09735e9d" class="target"></span>bool lv_obj_has_class(const lv_obj_t *obj, const lv_obj_class_t *class_p)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv416lv_obj_has_classPK8lv_obj_tPK14lv_obj_class_t] <span id="_CPPv316lv_obj_has_classPK8lv_obj_tPK14lv_obj_class_t"></span><span id="_CPPv216lv_obj_has_classPK8lv_obj_tPK14lv_obj_class_t"></span><span id="lv_obj_has_class__lv_obj_tCP.lv_obj_class_tCP"></span><span id="lv__obj_8h_1a27480f49b6f82e0e2643c1dd09735e9d" class="target"></span>
+
bool lv_obj_has_class(const lv_obj_t *obj, const lv_obj_class_t *class_p)  
: Check if any object has a given class (type). It checks the ancestor [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv416lv_obj_has_classPK8lv_obj_tPK14lv_obj_class_t]classes too.
+
: Check if any object has a given class (type). It checks the ancestor classes too.
:; Parameters
+
:Parameters
 
::* obj -- pointer to an object
 
::* obj -- pointer to an object
::* class_p -- a class to check (e.g. <code>lv_slider_class</code>)
+
::* class_p -- a class to check (e.g. <code style="color: #bb0000;">lv_slider_class</code>)
:; Returns
+
:Returns
:: true: <code>obj</code> has the given class
+
:: true: <code style="color: #bb0000;">obj</code> has the given class
  
; <span id="_CPPv316lv_obj_get_classPK8lv_obj_t"></span><span id="_CPPv216lv_obj_get_classPK8lv_obj_t"></span><span id="lv_obj_get_class__lv_obj_tCP"></span><span id="lv__obj_8h_1a6e54ac8307d229a201d1239b7c14a24f" class="target"></span>const lv_obj_class_t *lv_obj_get_class(const lv_obj_t *obj)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv416lv_obj_get_classPK8lv_obj_t] <span id="_CPPv316lv_obj_get_classPK8lv_obj_t"></span><span id="_CPPv216lv_obj_get_classPK8lv_obj_t"></span><span id="lv_obj_get_class__lv_obj_tCP"></span><span id="lv__obj_8h_1a6e54ac8307d229a201d1239b7c14a24f" class="target"></span>
+
const lv_obj_class_t *lv_obj_get_class(const lv_obj_t *obj)  
 
: Get the class (type) of the object
 
: Get the class (type) of the object
:; Parameters
+
:Parameters
:: obj[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv416lv_obj_get_classPK8lv_obj_t] -- pointer to an object
+
:: obj -- pointer to an object
:; Returns
+
:Returns
 
:: the class (type) of the object
 
:: the class (type) of the object
  
; <span id="_CPPv315lv_obj_is_validPK8lv_obj_t"></span><span id="_CPPv215lv_obj_is_validPK8lv_obj_t"></span><span id="lv_obj_is_valid__lv_obj_tCP"></span><span id="lv__obj_8h_1a4c220acd20b632ad2d4ca7cd7a3023bb" class="target"></span>bool lv_obj_is_valid(const lv_obj_t *obj)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv415lv_obj_is_validPK8lv_obj_t] <span id="_CPPv315lv_obj_is_validPK8lv_obj_t"></span><span id="_CPPv215lv_obj_is_validPK8lv_obj_t"></span><span id="lv_obj_is_valid__lv_obj_tCP"></span><span id="lv__obj_8h_1a4c220acd20b632ad2d4ca7cd7a3023bb" class="target"></span>
+
bool lv_obj_is_valid(const lv_obj_t *obj)  
: Check if any object is still "alive".[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv415lv_obj_is_validPK8lv_obj_t]
+
: Check if any object is still "alive".
:; Parameters
+
:Parameters
 
:: obj -- pointer to an object
 
:: obj -- pointer to an object
:; Returns
+
:Returns
 
:: true: valid
 
:: true: valid
  
; <span id="_CPPv310lv_obj_dpxPK8lv_obj_t10lv_coord_t"></span><span id="_CPPv210lv_obj_dpxPK8lv_obj_t10lv_coord_t"></span><span id="lv_obj_dpx__lv_obj_tCP.lv_coord_t"></span><span id="lv__obj_8h_1afd033d8537f915e7fb845f16095e050d" class="target"></span>static inline lv_coord_t lv_obj_dpx(const lv_obj_t *obj, lv_coord_t n)[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv410lv_obj_dpxPK8lv_obj_t10lv_coord_t] <span id="_CPPv310lv_obj_dpxPK8lv_obj_t10lv_coord_t"></span><span id="_CPPv210lv_obj_dpxPK8lv_obj_t10lv_coord_t"></span><span id="lv_obj_dpx__lv_obj_tCP.lv_coord_t"></span><span id="lv__obj_8h_1afd033d8537f915e7fb845f16095e050d" class="target"></span>
+
static inline lv_coord_t lv_obj_dpx(const lv_obj_t *obj, lv_coord_t n)  
: Scale the given number of pixels (a distance or size) relative to [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv410lv_obj_dpxPK8lv_obj_t10lv_coord_t]a 160 DPI display considering the DPI of the <code>obj</code>'s display. It ensures that e.g. <code>lv_dpx(100)</code> will have the same physical size regardless to the DPI of the display.
+
: Scale the given number of pixels (a distance or size) relative to a 160 DPI display considering the DPI of the <code style="color: #bb0000;">obj</code>'s display. It ensures that e.g. <code style="color: #bb0000;">lv_dpx(100)</code> will have the same physical size regardless to the DPI of the display.
:; Parameters
+
:Parameters
 
::* obj -- an object whose display's dpi should be considered
 
::* obj -- an object whose display's dpi should be considered
 
::* n -- the number of pixels to scale
 
::* n -- the number of pixels to scale
:; Returns
+
:Returns
:: <code>n x current_dpi/160</code>
+
:: <code style="color: #bb0000;">n x current_dpi/160</code>
  
 
Variables
 
Variables
  
; <span id="_CPPv312lv_obj_class"></span><span id="_CPPv212lv_obj_class"></span><span id="lv_obj_class__lv_obj_class_tC"></span><span id="lv__obj_8h_1a424ca3b432ad82f98c4b05950b597d44" class="target"></span>const lv_obj_class_t lv_obj_class[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv412lv_obj_class] <span id="_CPPv312lv_obj_class"></span><span id="_CPPv212lv_obj_class"></span><span id="lv_obj_class__lv_obj_class_tC"></span><span id="lv__obj_8h_1a424ca3b432ad82f98c4b05950b597d44" class="target"></span>
+
const lv_obj_class_t lv_obj_class  
: Make the base object's class [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv412lv_obj_class]publicly available.
+
: Make the base object's class publicly available.
  
; <span id="_CPPv319_lv_obj_spec_attr_t"></span><span id="_CPPv219_lv_obj_spec_attr_t"></span><span id="_lv_obj_spec_attr_t"></span><span id="struct__lv__obj__spec__attr__t" class="target"></span>struct _lv_obj_spec_attr_t[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv419_lv_obj_spec_attr_t] <span id="_CPPv319_lv_obj_spec_attr_t"></span><span id="_CPPv219_lv_obj_spec_attr_t"></span><span id="_lv_obj_spec_attr_t"></span><span id="struct__lv__obj__spec__attr__t" class="target"></span>
+
struct _lv_obj_spec_attr_t  
: ''#include <lv_obj.h>'' S[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv419_lv_obj_spec_attr_t]pecial, rarely used attributes. They are allocated automatically if any elements is set.  Public Members
+
: ''#include <lv_obj.h>'' Special, rarely used attributes. They are allocated automatically if any elements is set.  Public Members
:; <span id="_CPPv3N19_lv_obj_spec_attr_t8childrenE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t8childrenE"></span><span id="_lv_obj_spec_attr_t::children___lv_obj_tPP"></span><span id="struct__lv__obj__spec__attr__t_1a24899261813fe9686805031d6e753145" class="target"></span>struct _lv_obj_t **children[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t8childrenE] <span id="_CPPv3N19_lv_obj_spec_attr_t8childrenE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t8childrenE"></span><span id="_lv_obj_spec_attr_t::children___lv_obj_tPP"></span><span id="struct__lv__obj__spec__attr__t_1a24899261813fe9686805031d6e753145" class="target"></span>
+
:struct _lv_obj_t **children  
:: Store the pointer of th[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t8childrenE]e children in an array.
+
:: Store the pointer of the children in an array.
:; <span id="_CPPv3N19_lv_obj_spec_attr_t9child_cntE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t9child_cntE"></span><span id="_lv_obj_spec_attr_t::child_cnt__uint32_t"></span><span id="struct__lv__obj__spec__attr__t_1a4e00767c29ba01c4f7be7e4ca5f1d52f" class="target"></span>uint32_t child_cnt[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t9child_cntE] <span id="_CPPv3N19_lv_obj_spec_attr_t9child_cntE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t9child_cntE"></span><span id="_lv_obj_spec_attr_t::child_cnt__uint32_t"></span><span id="struct__lv__obj__spec__attr__t_1a4e00767c29ba01c4f7be7e4ca5f1d52f" class="target"></span>
+
:uint32_t child_cnt  
:: Number of chil[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t9child_cntE]dren
+
:: Number of children
:; <span id="_CPPv3N19_lv_obj_spec_attr_t7group_pE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t7group_pE"></span><span id="_lv_obj_spec_attr_t::group_p__lv_group_tP"></span><span id="struct__lv__obj__spec__attr__t_1afcb4e50fc3a05683f08e4af206759414" class="target"></span>lv_group_t *group_p[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t7group_pE] <span id="_CPPv3N19_lv_obj_spec_attr_t7group_pE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t7group_pE"></span><span id="_lv_obj_spec_attr_t::group_p__lv_group_tP"></span><span id="struct__lv__obj__spec__attr__t_1afcb4e50fc3a05683f08e4af206759414" class="target"></span>
+
:lv_group_t *group_p  
 
::
 
::
:; <span id="_CPPv3N19_lv_obj_spec_attr_t9event_dscE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t9event_dscE"></span><span id="_lv_obj_spec_attr_t::event_dsc___lv_event_dsc_tP"></span><span id="struct__lv__obj__spec__attr__t_1a41c8f14eb458a527ce93ddb14228d2e6" class="target"></span>struct _l[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t7group_pE]v_event_dsc_t *event_dsc[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t9event_dscE] <span id="_CPPv3N19_lv_obj_spec_attr_t9event_dscE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t9event_dscE"></span><span id="_lv_obj_spec_attr_t::event_dsc___lv_event_dsc_tP"></span><span id="struct__lv__obj__spec__attr__t_1a41c8f14eb458a527ce93ddb14228d2e6" class="target"></span>
+
:struct _lv_event_dsc_t *event_dsc  
:: Dynamically allocated event c[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t9event_dscE]allback and user data array
+
:: Dynamically allocated event callback and user data array
:; <span id="_CPPv3N19_lv_obj_spec_attr_t6scrollE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t6scrollE"></span><span id="_lv_obj_spec_attr_t::scroll__lv_point_t"></span><span id="struct__lv__obj__spec__attr__t_1a777cd35b43ca269c6d695a1578fec43e" class="target"></span>lv_point_t scroll[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t6scrollE] <span id="_CPPv3N19_lv_obj_spec_attr_t6scrollE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t6scrollE"></span><span id="_lv_obj_spec_attr_t::scroll__lv_point_t"></span><span id="struct__lv__obj__spec__attr__t_1a777cd35b43ca269c6d695a1578fec43e" class="target"></span>
+
:lv_point_t scroll  
:: The current X[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t6scrollE]/Y scroll offset
+
:: The current X/Y scroll offset
:; <span id="_CPPv3N19_lv_obj_spec_attr_t13ext_click_padE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t13ext_click_padE"></span><span id="_lv_obj_spec_attr_t::ext_click_pad__lv_coord_t"></span><span id="struct__lv__obj__spec__attr__t_1a3254cf494f1cc0806aa8ccdda1a3ea83" class="target"></span>lv_coord_t ext_click_pad[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t13ext_click_padE] <span id="_CPPv3N19_lv_obj_spec_attr_t13ext_click_padE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t13ext_click_padE"></span><span id="_lv_obj_spec_attr_t::ext_click_pad__lv_coord_t"></span><span id="struct__lv__obj__spec__attr__t_1a3254cf494f1cc0806aa8ccdda1a3ea83" class="target"></span>
+
:lv_coord_t ext_click_pad  
:: Extra click padding [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t13ext_click_padE]in all direction
+
:: Extra click padding in all direction
:; <span id="_CPPv3N19_lv_obj_spec_attr_t13ext_draw_sizeE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t13ext_draw_sizeE"></span><span id="_lv_obj_spec_attr_t::ext_draw_size__lv_coord_t"></span><span id="struct__lv__obj__spec__attr__t_1a73aca9ce51fdd07c6266ed5c2dba6aa7" class="target"></span>lv_coord_t ext_draw_size[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t13ext_draw_sizeE] <span id="_CPPv3N19_lv_obj_spec_attr_t13ext_draw_sizeE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t13ext_draw_sizeE"></span><span id="_lv_obj_spec_attr_t::ext_draw_size__lv_coord_t"></span><span id="struct__lv__obj__spec__attr__t_1a73aca9ce51fdd07c6266ed5c2dba6aa7" class="target"></span>
+
:lv_coord_t ext_draw_size  
:: EXTend the size in e[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t13ext_draw_sizeE]very direction for drawing.
+
:: EXTend the size in every direction for drawing.
:; <span id="_CPPv3N19_lv_obj_spec_attr_t14scrollbar_modeE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t14scrollbar_modeE"></span><span id="_lv_obj_spec_attr_t::scrollbar_mode__lv_scrollbar_mode_t"></span><span id="struct__lv__obj__spec__attr__t_1a1172b4fc8c2ebce6d338d693990550fc" class="target"></span>lv_scrollbar_mode_t scrollbar_mode[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t14scrollbar_modeE] <span id="_CPPv3N19_lv_obj_spec_attr_t14scrollbar_modeE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t14scrollbar_modeE"></span><span id="_lv_obj_spec_attr_t::scrollbar_mode__lv_scrollbar_mode_t"></span><span id="struct__lv__obj__spec__attr__t_1a1172b4fc8c2ebce6d338d693990550fc" class="target"></span>
+
:lv_scrollbar_mode_t scrollbar_mode  
 
:: How to display scrollbars
 
:: How to display scrollbars
:; [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t14scrollbar_modeE]<span id="_CPPv3N19_lv_obj_spec_attr_t13scroll_snap_xE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t13scroll_snap_xE"></span><span id="_lv_obj_spec_attr_t::scroll_snap_x__lv_scroll_snap_t"></span><span id="struct__lv__obj__spec__attr__t_1a258fb40ccbbef31fd83d1fb7b0c61434" class="target"></span>lv_scroll_snap_t scroll_snap_x[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t13scroll_snap_xE] <span id="_CPPv3N19_lv_obj_spec_attr_t13scroll_snap_xE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t13scroll_snap_xE"></span><span id="_lv_obj_spec_attr_t::scroll_snap_x__lv_scroll_snap_t"></span><span id="struct__lv__obj__spec__attr__t_1a258fb40ccbbef31fd83d1fb7b0c61434" class="target"></span>
+
:lv_scroll_snap_t scroll_snap_x  
:: Where to align the snappab[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t13scroll_snap_xE]le children horizontally
+
:: Where to align the snappable children horizontally
:; <span id="_CPPv3N19_lv_obj_spec_attr_t13scroll_snap_yE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t13scroll_snap_yE"></span><span id="_lv_obj_spec_attr_t::scroll_snap_y__lv_scroll_snap_t"></span><span id="struct__lv__obj__spec__attr__t_1a0062a0595d0ea326aae1a0ab49785202" class="target"></span>lv_scroll_snap_t scroll_snap_y[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t13scroll_snap_yE] <span id="_CPPv3N19_lv_obj_spec_attr_t13scroll_snap_yE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t13scroll_snap_yE"></span><span id="_lv_obj_spec_attr_t::scroll_snap_y__lv_scroll_snap_t"></span><span id="struct__lv__obj__spec__attr__t_1a0062a0595d0ea326aae1a0ab49785202" class="target"></span>
+
:lv_scroll_snap_t scroll_snap_y  
:: Where to align the snappab[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t13scroll_snap_yE]le children vertically
+
:: Where to align the snappable children vertically
:; <span id="_CPPv3N19_lv_obj_spec_attr_t10scroll_dirE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t10scroll_dirE"></span><span id="_lv_obj_spec_attr_t::scroll_dir__lv_dir_t"></span><span id="struct__lv__obj__spec__attr__t_1a85052ac92f99a5fc31c6e737b1fb2541" class="target"></span>lv_dir_t scroll_dir[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t10scroll_dirE] <span id="_CPPv3N19_lv_obj_spec_attr_t10scroll_dirE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t10scroll_dirE"></span><span id="_lv_obj_spec_attr_t::scroll_dir__lv_dir_t"></span><span id="struct__lv__obj__spec__attr__t_1a85052ac92f99a5fc31c6e737b1fb2541" class="target"></span>
+
:lv_dir_t scroll_dir  
:: The allowed scr[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t10scroll_dirE]oll direction(s)
+
:: The allowed scroll direction(s)
:; <span id="_CPPv3N19_lv_obj_spec_attr_t13event_dsc_cntE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t13event_dsc_cntE"></span><span id="_lv_obj_spec_attr_t::event_dsc_cnt__uint8_t"></span><span id="struct__lv__obj__spec__attr__t_1afbd96383fc9f21a0f97cc04bcb5dd4cd" class="target"></span>uint8_t event_dsc_cnt[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t13event_dsc_cntE] <span id="_CPPv3N19_lv_obj_spec_attr_t13event_dsc_cntE"></span><span id="_CPPv2N19_lv_obj_spec_attr_t13event_dsc_cntE"></span><span id="_lv_obj_spec_attr_t::event_dsc_cnt__uint8_t"></span><span id="struct__lv__obj__spec__attr__t_1afbd96383fc9f21a0f97cc04bcb5dd4cd" class="target"></span>
+
:uint8_t event_dsc_cnt  
:: Number of event c[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N19_lv_obj_spec_attr_t13event_dsc_cntE]allbacks stored in <code>event_dsc</code> array
+
:: Number of event callbacks stored in <code style="color: #bb0000;">event_dsc</code> array
  
; <span id="_CPPv39_lv_obj_t"></span><span id="_CPPv29_lv_obj_t"></span><span id="_lv_obj_t"></span><span id="struct__lv__obj__t" class="target"></span>struct _lv_obj_t[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv49_lv_obj_t] <span id="_CPPv39_lv_obj_t"></span><span id="_CPPv29_lv_obj_t"></span><span id="_lv_obj_t"></span><span id="struct__lv__obj__t" class="target"></span>
+
struct _lv_obj_t  
: Public Membe[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv49_lv_obj_t]rs
+
: Public Members
:; <span id="_CPPv3N9_lv_obj_t7class_pE"></span><span id="_CPPv2N9_lv_obj_t7class_pE"></span><span id="_lv_obj_t::class_p__lv_obj_class_tCP"></span><span id="struct__lv__obj__t_1a5c45af901114834bdd67198582250b2d" class="target"></span>const lv_obj_class_t *class_p[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t7class_pE] <span id="_CPPv3N9_lv_obj_t7class_pE"></span><span id="_CPPv2N9_lv_obj_t7class_pE"></span><span id="_lv_obj_t::class_p__lv_obj_class_tCP"></span><span id="struct__lv__obj__t_1a5c45af901114834bdd67198582250b2d" class="target"></span>
+
:const lv_obj_class_t *class_p  
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t6parentE"></span><span id="_CPPv2N9_lv_obj_t6parentE"></span><span id="_lv_obj_t::parent___lv_obj_tP"></span><span id="struct__lv__obj__t_1abf27a654be0ee86860391c9104a4d098" class="target"></span>struct _lv_obj_t *p[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t7class_pE]arent[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t6parentE] <span id="_CPPv3N9_lv_obj_t6parentE"></span><span id="_CPPv2N9_lv_obj_t6parentE"></span><span id="_lv_obj_t::parent___lv_obj_tP"></span><span id="struct__lv__obj__t_1abf27a654be0ee86860391c9104a4d098" class="target"></span>
+
:struct _lv_obj_t *parent
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t9spec_attrE"></span><span id="_CPPv2N9_lv_obj_t9spec_attrE"></span><span id="_lv_obj_t::spec_attr___lv_obj_spec_attr_tP"></span><span id="struct__lv__obj__t_1acf5de681bc9200fd454f868c6820f3f0" class="target"></span>_lv_obj_spec_a[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t6parentE]ttr_t *spec_attr[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t9spec_attrE] <span id="_CPPv3N9_lv_obj_t9spec_attrE"></span><span id="_CPPv2N9_lv_obj_t9spec_attrE"></span><span id="_lv_obj_t::spec_attr___lv_obj_spec_attr_tP"></span><span id="struct__lv__obj__t_1acf5de681bc9200fd454f868c6820f3f0" class="target"></span>
+
:_lv_obj_spec_attr_t *spec_attr  
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t6stylesE"></span><span id="_CPPv2N9_lv_obj_t6stylesE"></span><span id="_lv_obj_t::styles___lv_obj_style_tP"></span><span id="struct__lv__obj__t_1a6dcd3ad64fd488ac7c477dd314356f19" class="target"></span>_lv_obj_style_t *sty[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t9spec_attrE]les[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t6stylesE] <span id="_CPPv3N9_lv_obj_t6stylesE"></span><span id="_CPPv2N9_lv_obj_t6stylesE"></span><span id="_lv_obj_t::styles___lv_obj_style_tP"></span><span id="struct__lv__obj__t_1a6dcd3ad64fd488ac7c477dd314356f19" class="target"></span>
+
:_lv_obj_style_t *styles
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t9user_dataE"></span><span id="_CPPv2N9_lv_obj_t9user_dataE"></span><span id="_lv_obj_t::user_data__voidP"></span><span id="struct__lv__obj__t_1a1fe66c89c9f51ba266c44e7a5d71352d" class="target"></span>void *user_da[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t6stylesE]ta[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t9user_dataE] <span id="_CPPv3N9_lv_obj_t9user_dataE"></span><span id="_CPPv2N9_lv_obj_t9user_dataE"></span><span id="_lv_obj_t::user_data__voidP"></span><span id="struct__lv__obj__t_1a1fe66c89c9f51ba266c44e7a5d71352d" class="target"></span>
+
:void *user_data
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t6coordsE"></span><span id="_CPPv2N9_lv_obj_t6coordsE"></span><span id="_lv_obj_t::coords__lv_area_t"></span><span id="struct__lv__obj__t_1a5159a54e860e2efa245ccd12f1f26253" class="target"></span>lv_ar[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t9user_dataE]ea_t coords[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t6coordsE] <span id="_CPPv3N9_lv_obj_t6coordsE"></span><span id="_CPPv2N9_lv_obj_t6coordsE"></span><span id="_lv_obj_t::coords__lv_area_t"></span><span id="struct__lv__obj__t_1a5159a54e860e2efa245ccd12f1f26253" class="target"></span>
+
:lv_area_t coords  
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t5flagsE"></span><span id="_CPPv2N9_lv_obj_t5flagsE"></span><span id="_lv_obj_t::flags__lv_obj_flag_t"></span><span id="struct__lv__obj__t_1ae6f24d376b42d0a9ebb75b8abb4cece9" class="target"></span>lv_obj[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t6coordsE]_flag_t flags[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t5flagsE] <span id="_CPPv3N9_lv_obj_t5flagsE"></span><span id="_CPPv2N9_lv_obj_t5flagsE"></span><span id="_lv_obj_t::flags__lv_obj_flag_t"></span><span id="struct__lv__obj__t_1ae6f24d376b42d0a9ebb75b8abb4cece9" class="target"></span>
+
:lv_obj_flag_t flags  
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t5stateE"></span><span id="_CPPv2N9_lv_obj_t5stateE"></span><span id="_lv_obj_t::state__lv_state_t"></span><span id="struct__lv__obj__t_1aa3fd4378cceb29153c26649eeda2f5c3" class="target"></span>lv_state_[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t5flagsE]t state[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t5stateE] <span id="_CPPv3N9_lv_obj_t5stateE"></span><span id="_CPPv2N9_lv_obj_t5stateE"></span><span id="_lv_obj_t::state__lv_state_t"></span><span id="struct__lv__obj__t_1aa3fd4378cceb29153c26649eeda2f5c3" class="target"></span>
+
:lv_state_t state  
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t10layout_invE"></span><span id="_CPPv2N9_lv_obj_t10layout_invE"></span><span id="_lv_obj_t::layout_inv__uint16_t"></span><span id="struct__lv__obj__t_1accb5066205cbef5248af97d9c2d80dbb" class="target"></span>uint16[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t5stateE]_t layout_inv[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t10layout_invE] <span id="_CPPv3N9_lv_obj_t10layout_invE"></span><span id="_CPPv2N9_lv_obj_t10layout_invE"></span><span id="_lv_obj_t::layout_inv__uint16_t"></span><span id="struct__lv__obj__t_1accb5066205cbef5248af97d9c2d80dbb" class="target"></span>
+
:uint16_t layout_inv  
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t14scr_layout_invE"></span><span id="_CPPv2N9_lv_obj_t14scr_layout_invE"></span><span id="_lv_obj_t::scr_layout_inv__uint16_t"></span><span id="struct__lv__obj__t_1ad8a606890236a21cdf34a9592ab0ca37" class="target"></span>uint16_t [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t10layout_invE]scr_layout_inv[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t14scr_layout_invE] <span id="_CPPv3N9_lv_obj_t14scr_layout_invE"></span><span id="_CPPv2N9_lv_obj_t14scr_layout_invE"></span><span id="_lv_obj_t::scr_layout_inv__uint16_t"></span><span id="struct__lv__obj__t_1ad8a606890236a21cdf34a9592ab0ca37" class="target"></span>
+
:uint16_t scr_layout_inv  
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t10skip_transE"></span><span id="_CPPv2N9_lv_obj_t10skip_transE"></span><span id="_lv_obj_t::skip_trans__uint16_t"></span><span id="struct__lv__obj__t_1ab1a5b0f899bb64a2555037cc956d5819" class="target"></span>uint16_t skip[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t14scr_layout_invE]_trans[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t10skip_transE] <span id="_CPPv3N9_lv_obj_t10skip_transE"></span><span id="_CPPv2N9_lv_obj_t10skip_transE"></span><span id="_lv_obj_t::skip_trans__uint16_t"></span><span id="struct__lv__obj__t_1ab1a5b0f899bb64a2555037cc956d5819" class="target"></span>
+
:uint16_t skip_trans
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t9style_cntE"></span><span id="_CPPv2N9_lv_obj_t9style_cntE"></span><span id="_lv_obj_t::style_cnt__uint16_t"></span><span id="struct__lv__obj__t_1a4afe7c5f9a14cfd9c2e5d3a6c50c2951" class="target"></span>uint16_t [https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t10skip_transE]style_cnt[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t9style_cntE] <span id="_CPPv3N9_lv_obj_t9style_cntE"></span><span id="_CPPv2N9_lv_obj_t9style_cntE"></span><span id="_lv_obj_t::style_cnt__uint16_t"></span><span id="struct__lv__obj__t_1a4afe7c5f9a14cfd9c2e5d3a6c50c2951" class="target"></span>
+
:uint16_t style_cnt  
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t8h_layoutE"></span><span id="_CPPv2N9_lv_obj_t8h_layoutE"></span><span id="_lv_obj_t::h_layout__uint16_t"></span><span id="struct__lv__obj__t_1aba143660b28a531b3971bf0812cc3d24" class="target"></span>uint16_t[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t9style_cntE] h_layout[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t8h_layoutE] <span id="_CPPv3N9_lv_obj_t8h_layoutE"></span><span id="_CPPv2N9_lv_obj_t8h_layoutE"></span><span id="_lv_obj_t::h_layout__uint16_t"></span><span id="struct__lv__obj__t_1aba143660b28a531b3971bf0812cc3d24" class="target"></span>
+
:uint16_t h_layout  
 
::
 
::
:; <span id="_CPPv3N9_lv_obj_t8w_layoutE"></span><span id="_CPPv2N9_lv_obj_t8w_layoutE"></span><span id="_lv_obj_t::w_layout__uint16_t"></span><span id="struct__lv__obj__t_1a652b398250dc510c30b0075e3b6e429d" class="target"></span>uint16_[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv4N9_lv_obj_t8h_layoutE]t w_layout
+
:uint16_t w_layout
  
  

2022年6月28日 (火) 16:58時点における版

https://docs.lvgl.io/8.2/widgets/index.html

英文 自動翻訳


Base object (lv_obj)

Overview

The 'Base Object' implements the basic properties of widgets on a screen, such as:

  • coordinates
  • parent object
  • children
  • contains the styles
  • attributes like Clickable, Scrollable, etc.

In object-oriented thinking, it is the base class from which all other objects in LVGL are inherited.

The functions and functionalities of the Base object can be used with other widgets too. For example lv_obj_set_width(slider, 100)

The Base object can be directly used as a simple widget: it's nothing more than a rectangle. In HTML terms, think of it as a <div>.

Coordinates

Only a small subset of coordinate settings is described here. To see all the features of LVGL (padding, coordinates in styles, layouts, etc) visit the Coordinates page.

Size

The object size can be modified on individual axes with lv_obj_set_width(obj, new_width) and lv_obj_set_height(obj, new_height), or both axes can be modified at the same time with lv_obj_set_size(obj, new_width, new_height).

Position

You can set the position relative to the parent with lv_obj_set_x(obj, new_x) and lv_obj_set_y(obj, new_y), or both axes at the same time with lv_obj_set_pos(obj, new_x, new_y).

Alignment

You can align the object on its parent with lv_obj_set_align(obj, LV_ALIGN_...). After this every x and y setting will be relative to the set alignment mode. For example, this will shift the object by 10;20 px from the center of its parent:

 lv_obj_set_align(obj, LV_ALIGN_CENTER);
 lv_obj_set_pos(obj, 10, 20);
 
 //Or in one function
 lv_obj_align(obj, LV_ALIGN_CENTER, 10, 20);

To align one object to another use: lv_obj_align_to(obj_to_align, obj_referece, LV_ALIGN_..., x, y)

For example, to align a text below an image: lv_obj_align_to(text, image, LV_ALIGN_OUT_BOTTOM_MID, 0, 10).

The following align types exist: LVGL docs widgets obj 01.png


Parents and children

You can set a new parent for an object with lv_obj_set_parent(obj, new_parent). To get the current parent, use lv_obj_get_parent(obj).

To get a specific child of a parent use lv_obj_get_child(parent, idx). Some examples for idx:

  • 0 get the child created first
  • 1 get the child created second
  • -1 get the child created last

The children can be iterated lke this:

 uint32_t i;
 for(i = 0i < lv_obj_get_child_cnt(parent)i++) {
   lv_obj_t * child = lv_obj_get_child(parent, i);
   /*Do something with child*/
 }

lv_obj_get_index(obj) returns the index of the object in its parent. It is equivalent to the number of younger children in the parent.

You can bring an object to the foreground or send it to the background with lv_obj_move_foreground(obj) and lv_obj_move_background(obj).

You can change the index of an object in its parent using lv_obj_move_to_index(obj, index).

You can swap the position of two objects with lv_obj_swap(obj1, obj2).

Display and Screens

At the highest level of the LVGL object hierarchy is the display which represents the driver for a display device (physical display or simulator). A display can have one or more screens associated with it. Each screen contains a hierarchy of objects for graphical widgets representing a layout that covers the entire display.

When you have created a screen like lv_obj_t * screen = lv_obj_create(NULL), you can make it active with lv_scr_load(screen). The lv_scr_act() function gives you a pointer to the active screen.

If you have multiple displays, it's important to know that the screen functions operate on the most recently created display or the one explicitly selected with lv_disp_set_default.

To get an object's screen use the lv_obj_get_screen(obj) function.

Events

To set an event callback for an object, use lv_obj_add_event_cb(obj, event_cb, LV_EVENT_..., user_data),

To manually send an event to an object, use lv_event_send(obj, LV_EVENT_..., param)

Read the Event overview to learn more about events.

Styles

Be sure to read the Style overview. Here only the most essential functions are described.

A new style can be added to an object with the lv_obj_add_style(obj, &new_style, selector) function. selector is an ORed combination of part and state(s). E.g. LV_PART_SCROLLBAR | LV_STATE_PRESSED.

The base objects use LV_PART_MAIN style properties and LV_PART_SCROLLBAR with the typical background style properties.

Flags

There are some attributes which can be enabled/disabled by lv_obj_add/clear_flag(obj, LV_OBJ_FLAG_...):

  • LV_OBJ_FLAG_HIDDEN Make the object hidden. (Like it wasn't there at all)
  • LV_OBJ_FLAG_CLICKABLE Make the object clickable by input devices
  • LV_OBJ_FLAG_CLICK_FOCUSABLE Add focused state to the object when clicked
  • LV_OBJ_FLAG_CHECKABLE Toggle checked state when the object is clicked
  • LV_OBJ_FLAG_SCROLLABLE Make the object scrollable
  • LV_OBJ_FLAG_SCROLL_ELASTIC Allow scrolling inside but with slower speed
  • LV_OBJ_FLAG_SCROLL_MOMENTUM Make the object scroll further when "thrown"
  • LV_OBJ_FLAG_SCROLL_ONE Allow scrolling only one snappable children
  • LV_OBJ_FLAG_SCROLL_CHAIN_HOR Allow propagating the horizontal scroll to a parent
  • LV_OBJ_FLAG_SCROLL_CHAIN_VER Allow propagating the vertical scroll to a parent
  • LV_OBJ_FLAG_SCROLL_CHAIN Simple packaging for (LV_OBJ_FLAG_SCROLL_CHAIN_HOR | LV_OBJ_FLAG_SCROLL_CHAIN_VER)
  • LV_OBJ_FLAG_SCROLL_ON_FOCUS Automatically scroll object to make it visible when focused
  • LV_OBJ_FLAG_SCROLL_WITH_ARROW Allow scrolling the focused object with arrow keys
  • LV_OBJ_FLAG_SNAPPABLE If scroll snap is enabled on the parent it can snap to this object
  • LV_OBJ_FLAG_PRESS_LOCK Keep the object pressed even if the press slid from the object
  • LV_OBJ_FLAG_EVENT_BUBBLE Propagate the events to the parent too
  • LV_OBJ_FLAG_GESTURE_BUBBLE Propagate the gestures to the parent
  • LV_OBJ_FLAG_ADV_HITTEST Allow performing more accurate hit (click) test. E.g. accounting for rounded corners
  • LV_OBJ_FLAG_IGNORE_LAYOUT Make the object positionable by the layouts
  • LV_OBJ_FLAG_FLOATING Do not scroll the object when the parent scrolls and ignore layout
  • LV_OBJ_FLAG_OVERFLOW_VISIBLE Do not clip the children's content to the parent's boundary
  • LV_OBJ_FLAG_LAYOUT_1 Custom flag, free to use by layouts
  • LV_OBJ_FLAG_LAYOUT_2 Custom flag, free to use by layouts
  • LV_OBJ_FLAG_WIDGET_1 Custom flag, free to use by widget
  • LV_OBJ_FLAG_WIDGET_2 Custom flag, free to use by widget
  • LV_OBJ_FLAG_USER_1 Custom flag, free to use by user
  • LV_OBJ_FLAG_USER_2 Custom flag, free to use by user
  • LV_OBJ_FLAG_USER_3 Custom flag, free to use by user
  • LV_OBJ_FLAG_USER_4 Custom flag, free to use by user

Some examples:

/*Hide on object*/
lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);

/*Make an object non-clickable*/
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE);

Groups

Read the Input devices overview to learn more about Groups.

Objects are added to a group with lv_group_add_obj(group, obj), and you can use lv_obj_get_group(obj) to see which group an object belongs to.

lv_obj_is_focused(obj) returns if the object is currently focused on its group or not. If the object is not added to a group, false will be returned.

Extended click area

By default, the objects can be clicked only within their bounding area. However, this can be extended with lv_obj_set_ext_click_area(obj, size).

Events

  • LV_EVENT_VALUE_CHANGED when the LV_OBJ_FLAG_CHECKABLE flag is enabled and the object clicked (on transition to/from the checked state)
  • LV_EVENT_DRAW_PART_BEGIN and LV_EVENT_DRAW_PART_END is sent for the following types:
    • LV_OBJ_DRAW_PART_RECTANGLE The main rectangle
      • part: LV_PART_MAIN
      • rect_dsc
      • draw_area: the area of the rectangle
    • LV_OBJ_DRAW_PART_BORDER_POST The border if the border_post style property is true
      • part: LV_PART_MAIN
      • rect_dsc
      • draw_area: the area of the rectangle
    • LV_OBJ_DRAW_PART_SCROLLBAR the scrollbars
      • part: LV_PART_SCROLLBAR
      • rect_dsc
      • draw_area: the area of the rectangle

Learn more about Events.

Keys

If LV_OBJ_FLAG_CHECKABLE is enabled, LV_KEY_RIGHT and LV_KEY_UP make the object checked, and LV_KEY_LEFT and LV_KEY_DOWN make it unchecked.

If LV_OBJ_FLAG_SCROLLABLE is enabled, but the object is not editable (as declared by the widget class), the arrow keys (LV_KEY_UP, LV_KEY_DOWN, LV_KEY_LEFT, LV_KEY_RIGHT) scroll the object. If the object can only scroll vertically, LV_KEY_LEFT and LV_KEY_RIGHT will scroll up/down instead, making it compatible with an encoder input device. See Input devices overview for more on encoder behaviors and the edit mode.

Learn more about Keys.

Example

Base objects with custom styles

LVGL docs example 042.png


Make an object draggable

LVGL docs example 043.png



API

Typedefs

typedef uint16_t lv_state_t

typedef uint32_t lv_part_t

typedef uint32_t lv_obj_flag_t

typedef struct _lv_obj_t lv_obj_t

Enums

enum [anonymous]

Possible states of a widget. OR-ed values are possible Values:
enumerator LV_STATE_DEFAULT
enumerator LV_STATE_CHECKED
enumerator LV_STATE_FOCUSED
enumerator LV_STATE_FOCUS_KEY
enumerator LV_STATE_EDITED
enumerator LV_STATE_HOVERED
enumerator LV_STATE_PRESSED
enumerator LV_STATE_SCROLLED
enumerator LV_STATE_DISABLED
enumerator LV_STATE_USER_1
enumerator LV_STATE_USER_2
enumerator LV_STATE_USER_3
enumerator LV_STATE_USER_4
enumerator LV_STATE_ANY
Special value can be used in some functions to target all states

enum [anonymous]

The possible parts of widgets. The parts can be considered as the internal building block of the widgets. E.g. slider = background + indicator + knob Note every part is used by every widget Values:
enumerator LV_PART_MAIN
A background like rectangle
enumerator LV_PART_SCROLLBAR
The scrollbar(s)
enumerator LV_PART_INDICATOR
Indicator, e.g. for slider, bar, switch, or the tick box of the checkbox
enumerator LV_PART_KNOB
Like handle to grab to adjust the value
enumerator LV_PART_SELECTED
Indicate the currently selected option or section
enumerator LV_PART_ITEMS
Used if the widget has multiple similar elements (e.g. table cells)
enumerator LV_PART_TICKS
Ticks on scale e.g. for a chart or meter
enumerator LV_PART_CURSOR
Mark a specific place e.g. for text area's cursor or on a chart
enumerator LV_PART_CUSTOM_FIRST
Extension point for custom widgets
enumerator LV_PART_ANY
Special value can be used in some functions to target all parts

enum [anonymous]

On/Off features controlling the object's behavior. OR-ed values are possible Values:
enumerator LV_OBJ_FLAG_HIDDEN
Make the object hidden. (Like it wasn't there at all)
enumerator LV_OBJ_FLAG_CLICKABLE
Make the object clickable by the input devices
enumerator LV_OBJ_FLAG_CLICK_FOCUSABLE
Add focused state to the object when clicked
enumerator LV_OBJ_FLAG_CHECKABLE
Toggle checked state when the object is clicked
enumerator LV_OBJ_FLAG_SCROLLABLE
Make the object scrollable
enumerator LV_OBJ_FLAG_SCROLL_ELASTIC
Allow scrolling inside but with slower speed
enumerator LV_OBJ_FLAG_SCROLL_MOMENTUM
Make the object scroll further when "thrown"
enumerator LV_OBJ_FLAG_SCROLL_ONE
Allow scrolling only one snappable children
enumerator LV_OBJ_FLAG_SCROLL_CHAIN_HOR
Allow propagating the horizontal scroll to a parent
enumerator LV_OBJ_FLAG_SCROLL_CHAIN_VER
Allow propagating the vertical scroll to a parent
enumerator LV_OBJ_FLAG_SCROLL_CHAIN
enumerator LV_OBJ_FLAG_SCROLL_ON_FOCUS
Automatically scroll object to make it visible when focused
enumerator LV_OBJ_FLAG_SCROLL_WITH_ARROW
Allow scrolling the focused object with arrow keys
enumerator LV_OBJ_FLAG_SNAPPABLE
If scroll snap is enabled on the parent it can snap to this object
enumerator LV_OBJ_FLAG_PRESS_LOCK
Keep the object pressed even if the press slid from the object
enumerator LV_OBJ_FLAG_EVENT_BUBBLE
Propagate the events to the parent too
enumerator LV_OBJ_FLAG_GESTURE_BUBBLE
Propagate the gestures to the parent
enumerator LV_OBJ_FLAG_ADV_HITTEST
Allow performing more accurate hit (click) test. E.g. consider rounded corners.
enumerator LV_OBJ_FLAG_IGNORE_LAYOUT
Make the object position-able by the layouts
enumerator LV_OBJ_FLAG_FLOATING
Do not scroll the object when the parent scrolls and ignore layout
enumerator LV_OBJ_FLAG_OVERFLOW_VISIBLE
Do not clip the children's content to the parent's boundary
enumerator LV_OBJ_FLAG_LAYOUT_1
Custom flag, free to use by layouts
enumerator LV_OBJ_FLAG_LAYOUT_2
Custom flag, free to use by layouts
enumerator LV_OBJ_FLAG_WIDGET_1
Custom flag, free to use by widget
enumerator LV_OBJ_FLAG_WIDGET_2
Custom flag, free to use by widget
enumerator LV_OBJ_FLAG_USER_1
Custom flag, free to use by user
enumerator LV_OBJ_FLAG_USER_2
Custom flag, free to use by user
enumerator LV_OBJ_FLAG_USER_3
Custom flag, free to use by user
enumerator LV_OBJ_FLAG_USER_4
Custom flag, free to use by user

enum lv_obj_draw_part_type_t

type field in lv_obj_draw_part_dsc_t if class_p = lv_obj_class Used in LV_EVENT_DRAW_PART_BEGIN and LV_EVENT_DRAW_PART_END Values:
enumerator LV_OBJ_DRAW_PART_RECTANGLE
The main rectangle
enumerator LV_OBJ_DRAW_PART_BORDER_POST
The border if style_border_post = true
enumerator LV_OBJ_DRAW_PART_SCROLLBAR
The scrollbar

Functions

void lv_init(void)

Initialize LVGL library. Should be called before any other LVGL related function.

void lv_deinit(void)

Deinit the 'lv' library Currently only implemented when not using custom allocators, or GC is enabled.

bool lv_is_initialized(void)

Returns whether the 'lv' library is currently initialized

lv_obj_t *lv_obj_create(lv_obj_t *parent)

Create a base object (a rectangle)
Parameters
parent -- pointer to a parent object. If NULL then a screen will be created.
Returns
pointer to the new object

void lv_obj_add_flag(lv_obj_t *obj, lv_obj_flag_t f)

Set one or more flags
Parameters
  • obj -- pointer to an object
  • f -- R-ed values from lv_obj_flag_t to set.

void lv_obj_clear_flag(lv_obj_t *obj, lv_obj_flag_t f)

Clear one or more flags
Parameters
  • obj -- pointer to an object
  • f -- OR-ed values from lv_obj_flag_t to set.

void lv_obj_add_state(lv_obj_t *obj, lv_state_t state)

Add one or more states to the object. The other state bits will remain unchanged. If specified in the styles, transition animation will be started from the previous state to the current.
Parameters
  • obj -- pointer to an object
  • state -- the states to add. E.g LV_STATE_PRESSED | LV_STATE_FOCUSED

void lv_obj_clear_state(lv_obj_t *obj, lv_state_t state)

Remove one or more states to the object. The other state bits will remain unchanged. If specified in the styles, transition animation will be started from the previous state to the current.
Parameters
  • obj -- pointer to an object
  • state -- the states to add. E.g LV_STATE_PRESSED | LV_STATE_FOCUSED

static inline void lv_obj_set_user_data(lv_obj_t *obj, void *user_data)

Set the user_data field of the object
Parameters
  • obj -- pointer to an object
  • user_data -- pointer to the new user_data.

bool lv_obj_has_flag(const lv_obj_t *obj, lv_obj_flag_t f)

Check if a given flag or all the given flags are set on an object.
Parameters
  • obj -- pointer to an object
  • f -- the flag(s) to check (OR-ed values can be used)
Returns
true: all flags are setfalse: not all flags are set

bool lv_obj_has_flag_any(const lv_obj_t *obj, lv_obj_flag_t f)

Check if a given flag or any of the flags are set on an object.
Parameters
  • obj -- pointer to an object
  • f -- the flag(s) to check (OR-ed values can be used)
Returns
true: at lest one flag flag is setfalse: none of the flags are set

lv_state_t lv_obj_get_state(const lv_obj_t *obj)

Get the state of an object
Parameters
obj -- pointer to an object
Returns
the state (OR-ed values from lv_state_t)

bool lv_obj_has_state(const lv_obj_t *obj, lv_state_t state)

Check if the object is in a given state or not.
Parameters
  • obj -- pointer to an object
  • state -- a state or combination of states to check
Returns
true: obj is in statefalse: obj is not in state

void *lv_obj_get_group(const lv_obj_t *obj)

Get the group of the object
Parameters
obj -- pointer to an object
Returns
the pointer to group of the object

static inline void *lv_obj_get_user_data(lv_obj_t *obj)

Get the user_data field of the object
Parameters
obj -- pointer to an object
Returns
the pointer to the user_data of the object

void lv_obj_allocate_spec_attr(lv_obj_t *obj)

Allocate special data for an object if not allocated yet.
Parameters
obj -- pointer to an object

bool lv_obj_check_type(const lv_obj_t *obj, const lv_obj_class_t *class_p)

Check the type of obj.
Parameters
  • obj -- pointer to an object
  • class_p -- a class to check (e.g. lv_slider_class)
Returns
true: class_p is the obj class.

bool lv_obj_has_class(const lv_obj_t *obj, const lv_obj_class_t *class_p)

Check if any object has a given class (type). It checks the ancestor classes too.
Parameters
  • obj -- pointer to an object
  • class_p -- a class to check (e.g. lv_slider_class)
Returns
true: obj has the given class

const lv_obj_class_t *lv_obj_get_class(const lv_obj_t *obj)

Get the class (type) of the object
Parameters
obj -- pointer to an object
Returns
the class (type) of the object

bool lv_obj_is_valid(const lv_obj_t *obj)

Check if any object is still "alive".
Parameters
obj -- pointer to an object
Returns
true: valid

static inline lv_coord_t lv_obj_dpx(const lv_obj_t *obj, lv_coord_t n)

Scale the given number of pixels (a distance or size) relative to a 160 DPI display considering the DPI of the obj's display. It ensures that e.g. lv_dpx(100) will have the same physical size regardless to the DPI of the display.
Parameters
  • obj -- an object whose display's dpi should be considered
  • n -- the number of pixels to scale
Returns
n x current_dpi/160

Variables

const lv_obj_class_t lv_obj_class

Make the base object's class publicly available.

struct _lv_obj_spec_attr_t

#include <lv_obj.h> Special, rarely used attributes. They are allocated automatically if any elements is set. Public Members
struct _lv_obj_t **children
Store the pointer of the children in an array.
uint32_t child_cnt
Number of children
lv_group_t *group_p
struct _lv_event_dsc_t *event_dsc
Dynamically allocated event callback and user data array
lv_point_t scroll
The current X/Y scroll offset
lv_coord_t ext_click_pad
Extra click padding in all direction
lv_coord_t ext_draw_size
EXTend the size in every direction for drawing.
lv_scrollbar_mode_t scrollbar_mode
How to display scrollbars
lv_scroll_snap_t scroll_snap_x
Where to align the snappable children horizontally
lv_scroll_snap_t scroll_snap_y
Where to align the snappable children vertically
lv_dir_t scroll_dir
The allowed scroll direction(s)
uint8_t event_dsc_cnt
Number of event callbacks stored in event_dsc array

struct _lv_obj_t

Public Members
const lv_obj_class_t *class_p
struct _lv_obj_t *parent
_lv_obj_spec_attr_t *spec_attr
_lv_obj_style_t *styles
void *user_data
lv_area_t coords
lv_obj_flag_t flags
lv_state_t state
uint16_t layout_inv
uint16_t scr_layout_inv
uint16_t skip_trans
uint16_t style_cnt
uint16_t h_layout
uint16_t w_layout







戻る : Previous