1 #include "../../lv_examples.h"
2 #if LV_USE_SCALE && LV_BUILD_EXAMPLES
3
4 /**
5 * An scale with section and custom styling
6 */
lv_example_scale_5(void)7 void lv_example_scale_5(void)
8 {
9 lv_obj_t * scale = lv_scale_create(lv_screen_active());
10 lv_obj_set_size(scale, lv_display_get_horizontal_resolution(NULL) / 2, lv_display_get_vertical_resolution(NULL) / 2);
11 lv_scale_set_label_show(scale, true);
12
13 lv_scale_set_total_tick_count(scale, 10);
14 lv_scale_set_major_tick_every(scale, 5);
15
16 lv_obj_set_style_length(scale, 5, LV_PART_ITEMS);
17 lv_obj_set_style_length(scale, 10, LV_PART_INDICATOR);
18 lv_scale_set_range(scale, 25, 35);
19
20 static const char * custom_labels[3] = {"One", "Two", NULL};
21 lv_scale_set_text_src(scale, custom_labels);
22
23 static lv_style_t indicator_style;
24 lv_style_init(&indicator_style);
25 /* Label style properties */
26 lv_style_set_text_font(&indicator_style, LV_FONT_DEFAULT);
27 lv_style_set_text_color(&indicator_style, lv_color_hex(0xff00ff));
28 /* Major tick properties */
29 lv_style_set_line_color(&indicator_style, lv_color_hex(0x00ff00));
30 lv_style_set_width(&indicator_style, 10U); // Tick length
31 lv_style_set_line_width(&indicator_style, 2U); // Tick width
32 lv_obj_add_style(scale, &indicator_style, LV_PART_INDICATOR);
33
34 static lv_style_t minor_ticks_style;
35 lv_style_init(&minor_ticks_style);
36 lv_style_set_line_color(&minor_ticks_style, lv_color_hex(0xff0000));
37 lv_style_set_width(&minor_ticks_style, 5U); // Tick length
38 lv_style_set_line_width(&minor_ticks_style, 2U); // Tick width
39 lv_obj_add_style(scale, &minor_ticks_style, LV_PART_ITEMS);
40
41 static lv_style_t main_line_style;
42 lv_style_init(&main_line_style);
43 /* Main line properties */
44 lv_style_set_line_color(&main_line_style, lv_color_hex(0x0000ff));
45 lv_style_set_line_width(&main_line_style, 2U); // Tick width
46 lv_obj_add_style(scale, &main_line_style, LV_PART_MAIN);
47
48 lv_obj_center(scale);
49
50 /* Add a section */
51 static lv_style_t section_minor_tick_style;
52 static lv_style_t section_label_style;
53
54 lv_style_init(§ion_label_style);
55 lv_style_init(§ion_minor_tick_style);
56
57 /* Label style properties */
58 lv_style_set_text_font(§ion_label_style, LV_FONT_DEFAULT);
59 lv_style_set_text_color(§ion_label_style, lv_color_hex(0xff0000));
60 lv_style_set_text_letter_space(§ion_label_style, 10);
61 lv_style_set_text_opa(§ion_label_style, LV_OPA_50);
62
63 lv_style_set_line_color(§ion_label_style, lv_color_hex(0xff0000));
64 // lv_style_set_width(§ion_label_style, 20U); // Tick length
65 lv_style_set_line_width(§ion_label_style, 5U); // Tick width
66
67 lv_style_set_line_color(§ion_minor_tick_style, lv_color_hex(0x0000ff));
68 // lv_style_set_width(§ion_label_style, 20U); // Tick length
69 lv_style_set_line_width(§ion_minor_tick_style, 4U); // Tick width
70
71 /* Configure section styles */
72 lv_scale_section_t * section = lv_scale_add_section(scale);
73 lv_scale_section_set_range(section, 25, 30);
74 lv_scale_section_set_style(section, LV_PART_INDICATOR, §ion_label_style);
75 lv_scale_section_set_style(section, LV_PART_ITEMS, §ion_minor_tick_style);
76 }
77
78 #endif
79