# lv_observer_private.h (/api/core/lv_observer_private_h)



<RelatedHeaders name="lv_observer.h" isPrivate="true" />

<ApiSummary structs="2" />

Structs [#structs]

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

  The observer object: a descriptor returned when subscribing LVGL widgets to subjects

  | Member                | Type                                                     | Description                                             |
  | --------------------- | -------------------------------------------------------- | ------------------------------------------------------- |
  | `subject`             | <ApiLink name="lv_subject_t" display="lv_subject_t *" /> | Observed subject                                        |
  | `cb`                  | <ApiLink name="lv_observer_cb_t" />                      | Callback that notifies when value changes               |
  | `target`              | `void *`                                                 | A target for the observer, e.g. a widget or any pointer |
  | `user_data`           | `void *`                                                 | Additional parameter supplied when subscribing          |
  | `auto_free_user_data` | <ApiLink name="uint32_t" />                              | Automatically free user data when observer is removed   |
  | `notified`            | <ApiLink name="uint32_t" />                              | Was observer already notified?                          |
  | `for_obj`             | <ApiLink name="uint32_t" />                              | Is `target` a pointer to a Widget (`lv_obj_t *`)?       |
</ApiMember>

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

  Descriptor created by <ApiLink name="lv_obj_add_subject_increment_event" display="lv_obj_add_subject_increment_event()" />

  | Member      | Type                                                     | Description                                                     |
  | ----------- | -------------------------------------------------------- | --------------------------------------------------------------- |
  | `subject`   | <ApiLink name="lv_subject_t" display="lv_subject_t *" /> | The subject to adjust                                           |
  | `step`      | <ApiLink name="int32_t" />                               | The step add to the subject                                     |
  | `rollover`  | <ApiLink name="bool" />                                  | Where to start over from the other end when one end is exceeded |
  | `min_value` | <ApiLink name="int32_t" />                               | Don't set a value smaller than this                             |
  | `max_value` | <ApiLink name="int32_t" />                               | Don't set a value larger than this                              |
</ApiMember>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lv_observer.h&#x22;]" transitiveIncludes="[&#x22;lv_anim.h&#x22;, &#x22;lv_area.h&#x22;, &#x22;lv_array.h&#x22;, &#x22;lv_assert.h&#x22;, &#x22;lv_bidi.h&#x22;, &#x22;lv_color.h&#x22;, &#x22;lv_color_op.h&#x22;, &#x22;lv_conf_internal.h&#x22;, &#x22;lv_conf_kconfig.h&#x22;, &#x22;lv_display.h&#x22;, &#x22;lv_draw.h&#x22;, &#x22;lv_draw_arc.h&#x22;, &#x22;lv_draw_blur.h&#x22;, &#x22;lv_draw_buf.h&#x22;, &#x22;lv_draw_image.h&#x22;, &#x22;lv_draw_label.h&#x22;, &#x22;lv_draw_line.h&#x22;, &#x22;lv_draw_rect.h&#x22;, &#x22;lv_draw_triangle.h&#x22;, &#x22;lv_event.h&#x22;, &#x22;lv_ext_data.h&#x22;, &#x22;lv_flex.h&#x22;, &#x22;lv_font.h&#x22;, &#x22;lv_fs.h&#x22;, &#x22;lv_grad.h&#x22;, &#x22;lv_grid.h&#x22;, &#x22;lv_group.h&#x22;, &#x22;lv_image_decoder.h&#x22;, &#x22;lv_image_dsc.h&#x22;, &#x22;lv_indev.h&#x22;, &#x22;lv_layout.h&#x22;, &#x22;lv_ll.h&#x22;, &#x22;lv_log.h&#x22;, &#x22;lv_math.h&#x22;, &#x22;lv_matrix.h&#x22;, &#x22;lv_mem.h&#x22;, &#x22;lv_obj.h&#x22;, &#x22;lv_obj_class.h&#x22;, &#x22;lv_obj_draw.h&#x22;, &#x22;lv_obj_event.h&#x22;, &#x22;lv_obj_pos.h&#x22;, &#x22;lv_obj_property.h&#x22;, &#x22;lv_obj_property_names.h&#x22;, &#x22;lv_obj_scroll.h&#x22;, &#x22;lv_obj_style.h&#x22;, &#x22;lv_obj_style_gen.h&#x22;, &#x22;lv_obj_tree.h&#x22;, &#x22;lv_palette.h&#x22;, &#x22;lv_profiler.h&#x22;, &#x22;lv_profiler_builtin.h&#x22;, &#x22;lv_sprintf.h&#x22;, &#x22;lv_string.h&#x22;, &#x22;lv_style.h&#x22;, &#x22;lv_style_gen.h&#x22;, &#x22;lv_style_properties.h&#x22;, &#x22;lv_symbol_def.h&#x22;, &#x22;lv_text.h&#x22;, &#x22;lv_tick.h&#x22;, &#x22;lv_timer.h&#x22;, &#x22;lv_types.h&#x22;]" />
