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;
|
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)
|
lv_obj_t * lv_event_get_current_target_obj(lv_event_t * e)
|
||||||
{
|
{
|
||||||
return lv_event_get_current_target(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);
|
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.
|
* Get the input device passed as parameter to indev related events.
|
||||||
* @param e pointer to an event
|
* @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);
|
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)
|
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);
|
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
|
* Send an event to a display
|
||||||
* @param disp pointer 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);
|
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)
|
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);
|
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
|
* Send an event to an indev
|
||||||
* @param indev pointer to an indev
|
* @param indev pointer to an indev
|
||||||
|
|||||||
Reference in New Issue
Block a user