lvgl:add lv_display_remove_event_cb_with_user_data (#4998)
Signed-off-by: jianglianfang <jianglianfang@xiaomi.com>
This commit is contained in:
@@ -139,6 +139,25 @@ bool lv_obj_remove_event_cb(lv_obj_t * obj, lv_event_cb_t event_cb)
|
||||
return false;
|
||||
}
|
||||
|
||||
uint32_t lv_obj_remove_event_cb_with_user_data(lv_obj_t * obj, lv_event_cb_t event_cb, void * user_data)
|
||||
{
|
||||
LV_ASSERT_NULL(obj);
|
||||
|
||||
uint32_t event_cnt = lv_obj_get_event_count(obj);
|
||||
uint32_t removed_count = 0;
|
||||
int32_t i;
|
||||
|
||||
for(i = event_cnt - 1; i >= 0; i--) {
|
||||
lv_event_dsc_t * dsc = lv_obj_get_event_dsc(obj, i);
|
||||
if(dsc && dsc->cb == event_cb && dsc->user_data == user_data) {
|
||||
lv_obj_remove_event(obj, i);
|
||||
removed_count ++;
|
||||
}
|
||||
}
|
||||
|
||||
return removed_count;
|
||||
}
|
||||
|
||||
lv_obj_t * lv_event_get_current_target_obj(lv_event_t * e)
|
||||
{
|
||||
return lv_event_get_current_target(e);
|
||||
|
||||
@@ -113,6 +113,15 @@ bool lv_obj_remove_event(struct _lv_obj_t * obj, uint32_t index);
|
||||
|
||||
bool lv_obj_remove_event_cb(struct _lv_obj_t * obj, lv_event_cb_t event_cb);
|
||||
|
||||
/**
|
||||
* Remove an event_cb with user_data
|
||||
* @param obj pointer to a obj
|
||||
* @param event_cb the event_cb of the event to remove
|
||||
* @param user_data user_data
|
||||
* @return the count of the event removed
|
||||
*/
|
||||
uint32_t lv_obj_remove_event_cb_with_user_data(struct _lv_obj_t * obj, lv_event_cb_t event_cb, void * user_data);
|
||||
|
||||
/**
|
||||
* Get the input device passed as parameter to indev related events.
|
||||
* @param e pointer to an event
|
||||
|
||||
@@ -709,6 +709,25 @@ bool lv_display_delete_event(lv_display_t * disp, uint32_t index)
|
||||
return lv_event_remove(&disp->event_list, index);
|
||||
}
|
||||
|
||||
uint32_t lv_display_remove_event_cb_with_user_data(lv_display_t * disp, lv_event_cb_t event_cb, void * user_data)
|
||||
{
|
||||
LV_ASSERT_NULL(disp);
|
||||
|
||||
uint32_t event_cnt = lv_display_get_event_count(disp);
|
||||
uint32_t removed_count = 0;
|
||||
int32_t i;
|
||||
|
||||
for(i = event_cnt - 1; i >= 0; i--) {
|
||||
lv_event_dsc_t * dsc = lv_display_get_event_dsc(disp, i);
|
||||
if(dsc && dsc->cb == event_cb && dsc->user_data == user_data) {
|
||||
lv_display_delete_event(disp, i);
|
||||
removed_count ++;
|
||||
}
|
||||
}
|
||||
|
||||
return removed_count;
|
||||
}
|
||||
|
||||
lv_result_t lv_display_send_event(lv_display_t * disp, lv_event_code_t code, void * param)
|
||||
{
|
||||
|
||||
|
||||
@@ -452,6 +452,15 @@ lv_event_dsc_t * lv_display_get_event_dsc(lv_display_t * disp, uint32_t index);
|
||||
*/
|
||||
bool lv_display_delete_event(lv_display_t * disp, uint32_t index);
|
||||
|
||||
/**
|
||||
* Remove an event_cb with user_data
|
||||
* @param disp pointer to a display
|
||||
* @param event_cb the event_cb of the event to remove
|
||||
* @param user_data user_data
|
||||
* @return the count of the event removed
|
||||
*/
|
||||
uint32_t lv_display_remove_event_cb_with_user_data(lv_display_t * disp, lv_event_cb_t event_cb, void * user_data);
|
||||
|
||||
/**
|
||||
* Send an event to a display
|
||||
* @param disp pointer to a display
|
||||
|
||||
@@ -568,6 +568,25 @@ bool lv_indev_remove_event(lv_indev_t * indev, uint32_t index)
|
||||
return lv_event_remove(&indev->event_list, index);
|
||||
}
|
||||
|
||||
uint32_t lv_indev_remove_event_cb_with_user_data(lv_indev_t * indev, lv_event_cb_t event_cb, void * user_data)
|
||||
{
|
||||
LV_ASSERT_NULL(indev);
|
||||
|
||||
uint32_t event_cnt = lv_indev_get_event_count(indev);
|
||||
uint32_t removed_count = 0;
|
||||
int32_t i;
|
||||
|
||||
for(i = event_cnt - 1; i >= 0; i--) {
|
||||
lv_event_dsc_t * dsc = lv_indev_get_event_dsc(indev, i);
|
||||
if(dsc && dsc->cb == event_cb && dsc->user_data == user_data) {
|
||||
lv_indev_remove_event(indev, i);
|
||||
removed_count ++;
|
||||
}
|
||||
}
|
||||
|
||||
return removed_count;
|
||||
}
|
||||
|
||||
lv_result_t lv_indev_send_event(lv_indev_t * indev, lv_event_code_t code, void * param)
|
||||
{
|
||||
|
||||
|
||||
@@ -293,6 +293,15 @@ lv_event_dsc_t * lv_indev_get_event_dsc(lv_indev_t * indev, uint32_t index);
|
||||
*/
|
||||
bool lv_indev_remove_event(lv_indev_t * indev, uint32_t index);
|
||||
|
||||
/**
|
||||
* Remove an event_cb with user_data
|
||||
* @param indev pointer to a indev
|
||||
* @param event_cb the event_cb of the event to remove
|
||||
* @param user_data user_data
|
||||
* @return the count of the event removed
|
||||
*/
|
||||
uint32_t lv_indev_remove_event_cb_with_user_data(lv_indev_t * indev, lv_event_cb_t event_cb, void * user_data);
|
||||
|
||||
/**
|
||||
* Send an event to an indev
|
||||
* @param indev pointer to an indev
|
||||
|
||||
Reference in New Issue
Block a user