feat(spangroup): add lv_spangroup_get_span_by_point in spangroup (#6579)

Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
This commit is contained in:
Benign X
2024-09-12 17:56:35 +08:00
committed by GitHub
parent 651f69fd47
commit 7f57f37560
6 changed files with 302 additions and 2 deletions

View File

@@ -1,8 +1,19 @@
#include "../../lv_examples.h"
#if LV_USE_SPAN && LV_BUILD_EXAMPLES
static void click_event_cb(lv_event_t * e)
{
lv_obj_t * spans = lv_event_get_target(e);
lv_indev_t * indev = lv_event_get_indev(e);
lv_point_t point;
lv_indev_get_point(indev, &point);
lv_span_t * span = lv_spangroup_get_span_by_point(spans, &point);
LV_LOG_USER("%s", span ? lv_span_get_text(span) : "NULL");
}
/**
* Create span.
* Create spans and get clicked one
*/
void lv_example_span_1(void)
{
@@ -17,6 +28,7 @@ void lv_example_span_1(void)
lv_obj_set_height(spans, 300);
lv_obj_center(spans);
lv_obj_add_style(spans, &style, 0);
lv_obj_add_flag(spans, LV_OBJ_FLAG_CLICKABLE);
lv_spangroup_set_align(spans, LV_TEXT_ALIGN_LEFT);
lv_spangroup_set_overflow(spans, LV_SPAN_OVERFLOW_CLIP);
@@ -53,6 +65,8 @@ void lv_example_span_1(void)
lv_style_set_text_decor(lv_span_get_style(span), LV_TEXT_DECOR_STRIKETHROUGH);
lv_spangroup_refr_mode(spans);
lv_obj_add_event_cb(spans, click_event_cb, LV_EVENT_CLICKED, NULL);
}
#endif