1 #include "../../lv_examples.h"
2 #if LV_USE_SPAN && LV_BUILD_EXAMPLES
3 
click_event_cb(lv_event_t * e)4 static void click_event_cb(lv_event_t * e)
5 {
6     lv_obj_t * spans = lv_event_get_target(e);
7     lv_indev_t * indev = lv_event_get_indev(e);
8     lv_point_t point;
9     lv_indev_get_point(indev, &point);
10     lv_span_t * span = lv_spangroup_get_span_by_point(spans, &point);
11 
12     LV_LOG_USER("%s", span ? lv_span_get_text(span) : "NULL");
13 }
14 
15 /**
16  * Create spans and get clicked one
17  */
lv_example_span_1(void)18 void lv_example_span_1(void)
19 {
20     static lv_style_t style;
21     lv_style_init(&style);
22     lv_style_set_border_width(&style, 1);
23     lv_style_set_border_color(&style, lv_palette_main(LV_PALETTE_ORANGE));
24     lv_style_set_pad_all(&style, 2);
25 
26     lv_obj_t * spans = lv_spangroup_create(lv_screen_active());
27     lv_obj_set_width(spans, 300);
28     lv_obj_set_height(spans, 300);
29     lv_obj_center(spans);
30     lv_obj_add_style(spans, &style, 0);
31     lv_obj_add_flag(spans, LV_OBJ_FLAG_CLICKABLE);
32 
33     lv_spangroup_set_align(spans, LV_TEXT_ALIGN_LEFT);
34     lv_spangroup_set_overflow(spans, LV_SPAN_OVERFLOW_CLIP);
35     lv_spangroup_set_indent(spans, 20);
36     lv_spangroup_set_mode(spans, LV_SPAN_MODE_BREAK);
37 
38     lv_span_t * span = lv_spangroup_new_span(spans);
39     lv_span_set_text(span, "China is a beautiful country.");
40     lv_style_set_text_color(lv_span_get_style(span), lv_palette_main(LV_PALETTE_RED));
41     lv_style_set_text_decor(lv_span_get_style(span), LV_TEXT_DECOR_UNDERLINE);
42     lv_style_set_text_opa(lv_span_get_style(span), LV_OPA_50);
43 
44     span = lv_spangroup_new_span(spans);
45     lv_span_set_text_static(span, "good good study, day day up.");
46 #if LV_FONT_MONTSERRAT_24
47     lv_style_set_text_font(lv_span_get_style(span),  &lv_font_montserrat_24);
48 #endif
49     lv_style_set_text_color(lv_span_get_style(span), lv_palette_main(LV_PALETTE_GREEN));
50 
51     span = lv_spangroup_new_span(spans);
52     lv_span_set_text_static(span, "LVGL is an open-source graphics library.");
53     lv_style_set_text_color(lv_span_get_style(span), lv_palette_main(LV_PALETTE_BLUE));
54 
55     span = lv_spangroup_new_span(spans);
56     lv_span_set_text_static(span, "the boy no name.");
57     lv_style_set_text_color(lv_span_get_style(span), lv_palette_main(LV_PALETTE_GREEN));
58 #if LV_FONT_MONTSERRAT_20
59     lv_style_set_text_font(lv_span_get_style(span), &lv_font_montserrat_20);
60 #endif
61     lv_style_set_text_decor(lv_span_get_style(span), LV_TEXT_DECOR_UNDERLINE);
62 
63     span = lv_spangroup_new_span(spans);
64     lv_span_set_text(span, "I have a dream that hope to come true.");
65     lv_style_set_text_decor(lv_span_get_style(span), LV_TEXT_DECOR_STRIKETHROUGH);
66 
67     lv_spangroup_refr_mode(spans);
68 
69     lv_obj_add_event_cb(spans, click_event_cb, LV_EVENT_CLICKED, NULL);
70 }
71 
72 #endif
73