Lines Matching refs:observer

34 static void group_notify_cb(lv_observer_t * observer, lv_subject_t * subject);
37 static void obj_flag_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
38 static void obj_state_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
42 static void label_text_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
47 static void arc_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
52 static void slider_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
57 static void roller_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
62 static void dropdown_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
291 lv_observer_t * observer = lv_ll_get_head(&subject->subs_ll); in lv_subject_deinit() local
292 while(observer) { in lv_subject_deinit()
293 lv_observer_t * observer_next = lv_ll_get_next(&subject->subs_ll, observer); in lv_subject_deinit()
295 if(observer->for_obj) { in lv_subject_deinit()
296 lv_obj_remove_event_cb(observer->target, unsubscribe_on_delete_cb); in lv_subject_deinit()
297 lv_obj_remove_event_cb_with_user_data(observer->target, NULL, subject); in lv_subject_deinit()
300 lv_observer_remove(observer); in lv_subject_deinit()
301 observer = observer_next; in lv_subject_deinit()
321 lv_observer_t * observer = lv_subject_add_observer_obj(subject, cb, NULL, user_data); in lv_subject_add_observer() local
322 if(observer == NULL) return NULL; in lv_subject_add_observer()
324 observer->for_obj = 0; in lv_subject_add_observer()
325 return observer; in lv_subject_add_observer()
336 lv_observer_t * observer = lv_ll_ins_tail(&(subject->subs_ll)); in lv_subject_add_observer_obj() local
337 LV_ASSERT_MALLOC(observer); in lv_subject_add_observer_obj()
338 if(observer == NULL) return NULL; in lv_subject_add_observer_obj()
340 lv_memzero(observer, sizeof(*observer)); in lv_subject_add_observer_obj()
342 observer->subject = subject; in lv_subject_add_observer_obj()
343 observer->cb = cb; in lv_subject_add_observer_obj()
344 observer->user_data = user_data; in lv_subject_add_observer_obj()
345 observer->target = obj; in lv_subject_add_observer_obj()
346 observer->for_obj = 1; in lv_subject_add_observer_obj()
349 lv_obj_add_event_cb(obj, unsubscribe_on_delete_cb, LV_EVENT_DELETE, observer); in lv_subject_add_observer_obj()
353 if(observer->cb) observer->cb(observer, subject); in lv_subject_add_observer_obj()
355 return observer; in lv_subject_add_observer_obj()
366 lv_observer_t * observer = lv_ll_ins_tail(&(subject->subs_ll)); in lv_subject_add_observer_with_target() local
367 LV_ASSERT_MALLOC(observer); in lv_subject_add_observer_with_target()
368 if(observer == NULL) return NULL; in lv_subject_add_observer_with_target()
370 lv_memzero(observer, sizeof(*observer)); in lv_subject_add_observer_with_target()
372 observer->subject = subject; in lv_subject_add_observer_with_target()
373 observer->cb = cb; in lv_subject_add_observer_with_target()
374 observer->user_data = user_data; in lv_subject_add_observer_with_target()
375 observer->target = target; in lv_subject_add_observer_with_target()
378 if(observer->cb) observer->cb(observer, subject); in lv_subject_add_observer_with_target()
380 return observer; in lv_subject_add_observer_with_target()
384 void lv_observer_remove(lv_observer_t * observer) in lv_observer_remove() argument
386 LV_ASSERT_NULL(observer); in lv_observer_remove()
388 observer->subject->notify_restart_query = 1; in lv_observer_remove()
390 lv_ll_remove(&(observer->subject->subs_ll), observer); in lv_observer_remove()
392 if(observer->auto_free_user_data) { in lv_observer_remove()
393 lv_free(observer->user_data); in lv_observer_remove()
395 lv_free(observer); in lv_observer_remove()
405 lv_observer_t * observer = event_dsc->user_data; in lv_obj_remove_from_subject() local
406 if(subject == NULL || subject == observer->subject) { in lv_obj_remove_from_subject()
407 lv_observer_remove(observer); in lv_obj_remove_from_subject()
414 void * lv_observer_get_target(lv_observer_t * observer) in lv_observer_get_target() argument
416 LV_ASSERT_NULL(observer); in lv_observer_get_target()
418 return observer->target; in lv_observer_get_target()
425 lv_observer_t * observer; in lv_subject_notify() local
426 LV_LL_READ(&(subject->subs_ll), observer) { in lv_subject_notify()
427 observer->notified = 0; in lv_subject_notify()
432 LV_LL_READ(&(subject->subs_ll), observer) { in lv_subject_notify()
433 if(observer->cb && observer->notified == 0) { in lv_subject_notify()
434 observer->cb(observer, subject); in lv_subject_notify()
436 observer->notified = 1; in lv_subject_notify()
494 …lv_observer_t * observer = lv_subject_add_observer_obj(subject, label_text_observer_cb, obj, (void… in lv_label_bind_text() local
495 return observer; in lv_label_bind_text()
512 … lv_observer_t * observer = lv_subject_add_observer_obj(subject, arc_value_observer_cb, obj, NULL); in lv_arc_bind_value() local
513 return observer; in lv_arc_bind_value()
530 …lv_observer_t * observer = lv_subject_add_observer_obj(subject, slider_value_observer_cb, obj, NUL… in lv_slider_bind_value() local
531 return observer; in lv_slider_bind_value()
549 …lv_observer_t * observer = lv_subject_add_observer_obj(subject, roller_value_observer_cb, obj, NUL… in lv_roller_bind_value() local
550 return observer; in lv_roller_bind_value()
569 …lv_observer_t * observer = lv_subject_add_observer_obj(subject, dropdown_value_observer_cb, obj, N… in lv_dropdown_bind_value() local
570 return observer; in lv_dropdown_bind_value()
576 lv_obj_t * lv_observer_get_target_obj(lv_observer_t * observer) in lv_observer_get_target_obj() argument
578 return (lv_obj_t *)lv_observer_get_target(observer); in lv_observer_get_target_obj()
581 void * lv_observer_get_user_data(const lv_observer_t * observer) in lv_observer_get_user_data() argument
583 LV_ASSERT_NULL(observer); in lv_observer_get_user_data()
585 return observer->user_data; in lv_observer_get_user_data()
592 static void group_notify_cb(lv_observer_t * observer, lv_subject_t * subject) in group_notify_cb() argument
595 lv_subject_t * subject_group = observer->user_data; in group_notify_cb()
601 lv_observer_t * observer = lv_event_get_user_data(e); in unsubscribe_on_delete_cb() local
602 lv_observer_remove(observer); in unsubscribe_on_delete_cb()
631 static void obj_flag_observer_cb(lv_observer_t * observer, lv_subject_t * subject) in obj_flag_observer_cb() argument
633 flag_and_cond_t * p = observer->user_data; in obj_flag_observer_cb()
639 lv_obj_add_flag(observer->target, p->flag); in obj_flag_observer_cb()
642 lv_obj_remove_flag(observer->target, p->flag); in obj_flag_observer_cb()
646 static void obj_state_observer_cb(lv_observer_t * observer, lv_subject_t * subject) in obj_state_observer_cb() argument
648 flag_and_cond_t * p = observer->user_data; in obj_state_observer_cb()
654 lv_obj_add_state(observer->target, p->flag); in obj_state_observer_cb()
657 lv_obj_remove_state(observer->target, p->flag); in obj_state_observer_cb()
671 static void label_text_observer_cb(lv_observer_t * observer, lv_subject_t * subject) in label_text_observer_cb() argument
673 const char * fmt = observer->user_data; in label_text_observer_cb()
676 lv_label_set_text(observer->target, subject->value.pointer); in label_text_observer_cb()
681 lv_label_set_text_fmt(observer->target, fmt, subject->value.num); in label_text_observer_cb()
685 lv_label_set_text_fmt(observer->target, fmt, subject->value.pointer); in label_text_observer_cb()
705 static void arc_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject) in arc_value_observer_cb() argument
707 lv_arc_set_value(observer->target, subject->value.num); in arc_value_observer_cb()
722 static void slider_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject) in slider_value_observer_cb() argument
724 lv_slider_set_value(observer->target, subject->value.num, LV_ANIM_OFF); in slider_value_observer_cb()
739 static void roller_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject) in roller_value_observer_cb() argument
741 if((int32_t)lv_roller_get_selected(observer->target) != subject->value.num) { in roller_value_observer_cb()
742 lv_roller_set_selected(observer->target, subject->value.num, LV_ANIM_OFF); in roller_value_observer_cb()
758 static void dropdown_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject) in dropdown_value_observer_cb() argument
760 lv_dropdown_set_selected(observer->target, subject->value.num, LV_ANIM_OFF); in dropdown_value_observer_cb()