diff --git a/MDK-ARM/STM32F407-Demo.uvprojx b/MDK-ARM/STM32F407-Demo.uvprojx
index 92aae0ef..01491c68 100644
--- a/MDK-ARM/STM32F407-Demo.uvprojx
+++ b/MDK-ARM/STM32F407-Demo.uvprojx
@@ -2520,6 +2520,11 @@
lv_obj_id_builtin.c
1
..\Lib\lvgl\src\core\lv_obj_id_builtin.c
+
+
+ 0
+
+
lv_obj_pos.c
@@ -2530,6 +2535,11 @@
lv_obj_property.c
1
..\Lib\lvgl\src\core\lv_obj_property.c
+
+
+ 0
+
+
lv_obj_scroll.c
@@ -2570,11 +2580,21 @@
lv_draw_3d.c
1
..\Lib\lvgl\src\draw\lv_draw_3d.c
+
+
+ 0
+
+
lv_draw_arc.c
1
..\Lib\lvgl\src\draw\lv_draw_arc.c
+
+
+ 0
+
+
lv_draw_buf.c
@@ -2610,11 +2630,21 @@
lv_draw_triangle.c
1
..\Lib\lvgl\src\draw\lv_draw_triangle.c
+
+
+ 0
+
+
lv_draw_vector.c
1
..\Lib\lvgl\src\draw\lv_draw_vector.c
+
+
+ 0
+
+
lv_image_decoder.c
@@ -2630,16 +2660,31 @@
lv_draw_sw_blend_to_al88.c
1
..\Lib\lvgl\src\draw\sw\blend\lv_draw_sw_blend_to_al88.c
+
+
+ 0
+
+
lv_draw_sw_blend_to_argb8888.c
1
..\Lib\lvgl\src\draw\sw\blend\lv_draw_sw_blend_to_argb8888.c
+
+
+ 0
+
+
lv_draw_sw_blend_to_argb8888_premultiplied.c
1
..\Lib\lvgl\src\draw\sw\blend\lv_draw_sw_blend_to_argb8888_premultiplied.c
+
+
+ 0
+
+
lv_draw_sw_blend_to_i1.c
@@ -2650,21 +2695,41 @@
lv_draw_sw_blend_to_l8.c
1
..\Lib\lvgl\src\draw\sw\blend\lv_draw_sw_blend_to_l8.c
+
+
+ 0
+
+
lv_draw_sw_blend_to_rgb565.c
1
..\Lib\lvgl\src\draw\sw\blend\lv_draw_sw_blend_to_rgb565.c
+
+
+ 0
+
+
lv_draw_sw_blend_to_rgb565_swapped.c
1
..\Lib\lvgl\src\draw\sw\blend\lv_draw_sw_blend_to_rgb565_swapped.c
+
+
+ 0
+
+
lv_draw_sw_blend_to_rgb888.c
1
..\Lib\lvgl\src\draw\sw\blend\lv_draw_sw_blend_to_rgb888.c
+
+
+ 0
+
+
lv_draw_sw.c
@@ -2735,16 +2800,31 @@
lv_draw_sw_utils.c
1
..\Lib\lvgl\src\draw\sw\lv_draw_sw_utils.c
+
+
+ 0
+
+
lv_draw_sw_vector.c
1
..\Lib\lvgl\src\draw\sw\lv_draw_sw_vector.c
+
+
+ 0
+
+
lv_binfont_loader.c
1
..\Lib\lvgl\src\font\lv_binfont_loader.c
+
+
+ 0
+
+
lv_font.c
@@ -2755,6 +2835,11 @@
lv_font_dejavu_16_persian_hebrew.c
1
..\Lib\lvgl\src\font\lv_font_dejavu_16_persian_hebrew.c
+
+
+ 0
+
+
lv_font_fmt_txt.c
@@ -2765,146 +2850,291 @@
lv_font_montserrat_10.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_10.c
+
+
+ 0
+
+
lv_font_montserrat_12.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_12.c
+
+
+ 0
+
+
lv_font_montserrat_14.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_14.c
+
+
+ 0
+
+
lv_font_montserrat_14_aligned.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_14_aligned.c
+
+
+ 0
+
+
lv_font_montserrat_16.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_16.c
+
+
+ 0
+
+
lv_font_montserrat_18.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_18.c
+
+
+ 0
+
+
lv_font_montserrat_20.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_20.c
+
+
+ 0
+
+
lv_font_montserrat_22.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_22.c
+
+
+ 0
+
+
lv_font_montserrat_24.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_24.c
+
+
+ 0
+
+
lv_font_montserrat_26.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_26.c
+
+
+ 0
+
+
lv_font_montserrat_28.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_28.c
+
+
+ 0
+
+
lv_font_montserrat_28_compressed.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_28_compressed.c
+
+
+ 0
+
+
lv_font_montserrat_30.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_30.c
+
+
+ 0
+
+
lv_font_montserrat_32.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_32.c
+
+
+ 0
+
+
lv_font_montserrat_34.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_34.c
+
+
+ 0
+
+
lv_font_montserrat_36.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_36.c
+
+
+ 0
+
+
lv_font_montserrat_38.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_38.c
+
+
+ 0
+
+
lv_font_montserrat_40.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_40.c
+
+
+ 0
+
+
lv_font_montserrat_42.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_42.c
+
+
+ 0
+
+
lv_font_montserrat_44.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_44.c
+
+
+ 0
+
+
lv_font_montserrat_46.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_46.c
+
+
+ 0
+
+
lv_font_montserrat_48.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_48.c
+
+
+ 0
+
+
lv_font_montserrat_8.c
1
..\Lib\lvgl\src\font\lv_font_montserrat_8.c
+
+
+ 0
+
+
lv_font_simsun_14_cjk.c
1
..\Lib\lvgl\src\font\lv_font_simsun_14_cjk.c
+
+
+ 0
+
+
lv_font_simsun_16_cjk.c
1
..\Lib\lvgl\src\font\lv_font_simsun_16_cjk.c
+
+
+ 0
+
+
lv_font_source_han_sans_sc_14_cjk.c
1
..\Lib\lvgl\src\font\lv_font_source_han_sans_sc_14_cjk.c
+
+
+ 0
+
+
lv_font_source_han_sans_sc_16_cjk.c
1
..\Lib\lvgl\src\font\lv_font_source_han_sans_sc_16_cjk.c
+
+
+ 0
+
+
lv_font_unscii_16.c
1
..\Lib\lvgl\src\font\lv_font_unscii_16.c
+
+
+ 0
+
+
lv_font_unscii_8.c
1
..\Lib\lvgl\src\font\lv_font_unscii_8.c
+
+
+ 0
+
+
lv_indev.c
@@ -2915,6 +3145,11 @@
lv_indev_gesture.c
1
..\Lib\lvgl\src\indev\lv_indev_gesture.c
+
+
+ 0
+
+
lv_indev_scroll.c
@@ -2925,11 +3160,21 @@
lv_flex.c
1
..\Lib\lvgl\src\layouts\flex\lv_flex.c
+
+
+ 0
+
+
lv_grid.c
1
..\Lib\lvgl\src\layouts\grid\lv_grid.c
+
+
+ 0
+
+
lv_layout.c
@@ -2950,6 +3195,11 @@
lv_cache_lru_ll.c
1
..\Lib\lvgl\src\misc\cache\class\lv_cache_lru_ll.c
+
+
+ 0
+
+
lv_cache_lru_rb.c
@@ -2985,6 +3235,11 @@
lv_anim_timeline.c
1
..\Lib\lvgl\src\misc\lv_anim_timeline.c
+
+
+ 0
+
+
lv_area.c
@@ -3005,6 +3260,11 @@
lv_bidi.c
1
..\Lib\lvgl\src\misc\lv_bidi.c
+
+
+ 0
+
+
lv_circle_buf.c
@@ -3035,6 +3295,11 @@
lv_grad.c
1
..\Lib\lvgl\src\misc\lv_grad.c
+
+
+ 0
+
+
lv_iter.c
@@ -3050,11 +3315,21 @@
lv_log.c
1
..\Lib\lvgl\src\misc\lv_log.c
+
+
+ 0
+
+
lv_lru.c
1
..\Lib\lvgl\src\misc\lv_lru.c
+
+
+ 0
+
+
lv_math.c
@@ -3065,6 +3340,11 @@
lv_matrix.c
1
..\Lib\lvgl\src\misc\lv_matrix.c
+
+
+ 0
+
+
lv_palette.c
@@ -3075,6 +3355,11 @@
lv_profiler_builtin.c
1
..\Lib\lvgl\src\misc\lv_profiler_builtin.c
+
+
+ 0
+
+
lv_rb.c
@@ -3095,6 +3380,11 @@
lv_templ.c
1
..\Lib\lvgl\src\misc\lv_templ.c
+
+
+ 0
+
+
lv_text.c
@@ -3105,6 +3395,11 @@
lv_text_ap.c
1
..\Lib\lvgl\src\misc\lv_text_ap.c
+
+
+ 0
+
+
lv_timer.c
@@ -3115,6 +3410,11 @@
lv_tree.c
1
..\Lib\lvgl\src\misc\lv_tree.c
+
+
+ 0
+
+
lv_utils.c
@@ -3125,21 +3425,41 @@
lv_cmsis_rtos2.c
1
..\Lib\lvgl\src\osal\lv_cmsis_rtos2.c
+
+
+ 0
+
+
lv_freertos.c
1
..\Lib\lvgl\src\osal\lv_freertos.c
+
+
+ 0
+
+
lv_linux.c
1
..\Lib\lvgl\src\osal\lv_linux.c
+
+
+ 0
+
+
lv_mqx.c
1
..\Lib\lvgl\src\osal\lv_mqx.c
+
+
+ 0
+
+
lv_os.c
@@ -3150,26 +3470,51 @@
lv_os_none.c
1
..\Lib\lvgl\src\osal\lv_os_none.c
+
+
+ 0
+
+
lv_pthread.c
1
..\Lib\lvgl\src\osal\lv_pthread.c
+
+
+ 0
+
+
lv_rtthread.c
1
..\Lib\lvgl\src\osal\lv_rtthread.c
+
+
+ 0
+
+
lv_sdl2.c
1
..\Lib\lvgl\src\osal\lv_sdl2.c
+
+
+ 0
+
+
lv_windows.c
1
..\Lib\lvgl\src\osal\lv_windows.c
+
+
+ 0
+
+
lv_mem_core_builtin.c
@@ -3195,16 +3540,31 @@
lv_mem_core_clib.c
1
..\Lib\lvgl\src\stdlib\clib\lv_mem_core_clib.c
+
+
+ 0
+
+
lv_sprintf_clib.c
1
..\Lib\lvgl\src\stdlib\clib\lv_sprintf_clib.c
+
+
+ 0
+
+
lv_string_clib.c
1
..\Lib\lvgl\src\stdlib\clib\lv_string_clib.c
+
+
+ 0
+
+
lv_mem.c
@@ -3215,31 +3575,61 @@
lv_mem_core_micropython.c
1
..\Lib\lvgl\src\stdlib\micropython\lv_mem_core_micropython.c
+
+
+ 0
+
+
lv_mem_core_rtthread.c
1
..\Lib\lvgl\src\stdlib\rtthread\lv_mem_core_rtthread.c
+
+
+ 0
+
+
lv_sprintf_rtthread.c
1
..\Lib\lvgl\src\stdlib\rtthread\lv_sprintf_rtthread.c
+
+
+ 0
+
+
lv_string_rtthread.c
1
..\Lib\lvgl\src\stdlib\rtthread\lv_string_rtthread.c
+
+
+ 0
+
+
lv_mem_core_uefi.c
1
..\Lib\lvgl\src\stdlib\uefi\lv_mem_core_uefi.c
+
+
+ 0
+
+
lv_theme_default.c
1
..\Lib\lvgl\src\themes\default\lv_theme_default.c
+
+
+ 0
+
+
lv_theme.c
@@ -3255,6 +3645,11 @@
lv_theme_simple.c
1
..\Lib\lvgl\src\themes\simple\lv_theme_simple.c
+
+
+ 0
+
+
lv_tick.c
@@ -3265,236 +3660,471 @@
lv_3dtexture.c
1
..\Lib\lvgl\src\widgets\3dtexture\lv_3dtexture.c
+
+
+ 0
+
+
lv_animimage.c
1
..\Lib\lvgl\src\widgets\animimage\lv_animimage.c
+
+
+ 0
+
+
lv_arc.c
1
..\Lib\lvgl\src\widgets\arc\lv_arc.c
+
+
+ 0
+
+
lv_bar.c
1
..\Lib\lvgl\src\widgets\bar\lv_bar.c
+
+
+ 0
+
+
lv_button.c
1
..\Lib\lvgl\src\widgets\button\lv_button.c
+
+
+ 0
+
+
lv_buttonmatrix.c
1
..\Lib\lvgl\src\widgets\buttonmatrix\lv_buttonmatrix.c
+
+
+ 0
+
+
lv_calendar.c
1
..\Lib\lvgl\src\widgets\calendar\lv_calendar.c
+
+
+ 0
+
+
lv_calendar_chinese.c
1
..\Lib\lvgl\src\widgets\calendar\lv_calendar_chinese.c
+
+
+ 0
+
+
lv_calendar_header_arrow.c
1
..\Lib\lvgl\src\widgets\calendar\lv_calendar_header_arrow.c
+
+
+ 0
+
+
lv_calendar_header_dropdown.c
1
..\Lib\lvgl\src\widgets\calendar\lv_calendar_header_dropdown.c
+
+
+ 0
+
+
lv_canvas.c
1
..\Lib\lvgl\src\widgets\canvas\lv_canvas.c
+
+
+ 0
+
+
lv_chart.c
1
..\Lib\lvgl\src\widgets\chart\lv_chart.c
+
+
+ 0
+
+
lv_checkbox.c
1
..\Lib\lvgl\src\widgets\checkbox\lv_checkbox.c
+
+
+ 0
+
+
lv_dropdown.c
1
..\Lib\lvgl\src\widgets\dropdown\lv_dropdown.c
+
+
+ 0
+
+
lv_image.c
1
..\Lib\lvgl\src\widgets\image\lv_image.c
+
+
+ 0
+
+
lv_imagebutton.c
1
..\Lib\lvgl\src\widgets\imagebutton\lv_imagebutton.c
+
+
+ 0
+
+
lv_keyboard.c
1
..\Lib\lvgl\src\widgets\keyboard\lv_keyboard.c
+
+
+ 0
+
+
lv_label.c
1
..\Lib\lvgl\src\widgets\label\lv_label.c
+
+
+ 0
+
+
lv_led.c
1
..\Lib\lvgl\src\widgets\led\lv_led.c
+
+
+ 0
+
+
lv_line.c
1
..\Lib\lvgl\src\widgets\line\lv_line.c
+
+
+ 0
+
+
lv_list.c
1
..\Lib\lvgl\src\widgets\list\lv_list.c
+
+
+ 0
+
+
lv_lottie.c
1
..\Lib\lvgl\src\widgets\lottie\lv_lottie.c
+
+
+ 0
+
+
lv_menu.c
1
..\Lib\lvgl\src\widgets\menu\lv_menu.c
+
+
+ 0
+
+
lv_msgbox.c
1
..\Lib\lvgl\src\widgets\msgbox\lv_msgbox.c
+
+
+ 0
+
+
lv_objx_templ.c
1
..\Lib\lvgl\src\widgets\objx_templ\lv_objx_templ.c
+
+
+ 0
+
+
lv_animimage_properties.c
1
..\Lib\lvgl\src\widgets\property\lv_animimage_properties.c
+
+
+ 0
+
+
lv_dropdown_properties.c
1
..\Lib\lvgl\src\widgets\property\lv_dropdown_properties.c
+
+
+ 0
+
+
lv_image_properties.c
1
..\Lib\lvgl\src\widgets\property\lv_image_properties.c
+
+
+ 0
+
+
lv_keyboard_properties.c
1
..\Lib\lvgl\src\widgets\property\lv_keyboard_properties.c
+
+
+ 0
+
+
lv_label_properties.c
1
..\Lib\lvgl\src\widgets\property\lv_label_properties.c
+
+
+ 0
+
+
lv_obj_properties.c
1
..\Lib\lvgl\src\widgets\property\lv_obj_properties.c
+
+
+ 0
+
+
lv_roller_properties.c
1
..\Lib\lvgl\src\widgets\property\lv_roller_properties.c
+
+
+ 0
+
+
lv_slider_properties.c
1
..\Lib\lvgl\src\widgets\property\lv_slider_properties.c
+
+
+ 0
+
+
lv_style_properties.c
1
..\Lib\lvgl\src\widgets\property\lv_style_properties.c
+
+
+ 0
+
+
lv_textarea_properties.c
1
..\Lib\lvgl\src\widgets\property\lv_textarea_properties.c
+
+
+ 0
+
+
lv_roller.c
1
..\Lib\lvgl\src\widgets\roller\lv_roller.c
+
+
+ 0
+
+
lv_scale.c
1
..\Lib\lvgl\src\widgets\scale\lv_scale.c
+
+
+ 0
+
+
lv_slider.c
1
..\Lib\lvgl\src\widgets\slider\lv_slider.c
+
+
+ 0
+
+
lv_span.c
1
..\Lib\lvgl\src\widgets\span\lv_span.c
+
+
+ 0
+
+
lv_spinbox.c
1
..\Lib\lvgl\src\widgets\spinbox\lv_spinbox.c
+
+
+ 0
+
+
lv_spinner.c
1
..\Lib\lvgl\src\widgets\spinner\lv_spinner.c
+
+
+ 0
+
+
lv_switch.c
1
..\Lib\lvgl\src\widgets\switch\lv_switch.c
+
+
+ 0
+
+
lv_table.c
1
..\Lib\lvgl\src\widgets\table\lv_table.c
+
+
+ 0
+
+
lv_tabview.c
1
..\Lib\lvgl\src\widgets\tabview\lv_tabview.c
+
+
+ 0
+
+
lv_textarea.c
1
..\Lib\lvgl\src\widgets\textarea\lv_textarea.c
+
+
+ 0
+
+
lv_tileview.c
1
..\Lib\lvgl\src\widgets\tileview\lv_tileview.c
+
+
+ 0
+
+
lv_win.c
1
..\Lib\lvgl\src\widgets\win\lv_win.c
+
+
+ 0
+
+