From 8c23dc14d6d284c08471fda9b8bdb8b92152466b Mon Sep 17 00:00:00 2001 From: Wang_Weigen Date: Tue, 7 Jun 2022 17:00:20 +0800 Subject: [PATCH] optimize the lvgl of minimal configuration --- APP_Framework/lib/lvgl/Kconfig | 8 +- APP_Framework/lib/lvgl/lv_conf.h | 338 ++++++++++++++++++++++--------- 2 files changed, 247 insertions(+), 99 deletions(-) diff --git a/APP_Framework/lib/lvgl/Kconfig b/APP_Framework/lib/lvgl/Kconfig index f83f24654..856f00324 100644 --- a/APP_Framework/lib/lvgl/Kconfig +++ b/APP_Framework/lib/lvgl/Kconfig @@ -1,7 +1,13 @@ # Kconfig file for LVGL v8.0 menuconfig LIB_LV bool "Enable LittleVGL " -default n + default n + + menu "LVGL configuration" + config LV_CONF_MINIMAL + bool "LVGL minimal configuration." + default n + endmenu if 0 menu "LVGL configuration" diff --git a/APP_Framework/lib/lvgl/lv_conf.h b/APP_Framework/lib/lvgl/lv_conf.h index 46d5bf401..506b9a3ff 100644 --- a/APP_Framework/lib/lvgl/lv_conf.h +++ b/APP_Framework/lib/lvgl/lv_conf.h @@ -410,48 +410,111 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/ *================*/ /*Documentation of the widgets: https://docs.lvgl.io/latest/en/html/widgets/index.html*/ - -#define LV_USE_ARC 1 - -#define LV_USE_ANIMIMG 1 - -#define LV_USE_BAR 1 - -#define LV_USE_BTN 1 - -#define LV_USE_BTNMATRIX 1 - -#define LV_USE_CANVAS 1 - -#define LV_USE_CHECKBOX 1 - -#define LV_USE_DROPDOWN 1 /*Requires: lv_label*/ - -#define LV_USE_IMG 1 /*Requires: lv_label*/ - -#define LV_USE_LABEL 1 -#if LV_USE_LABEL -# define LV_LABEL_TEXT_SELECTION 1 /*Enable selecting text of the label*/ -# define LV_LABEL_LONG_TXT_HINT 1 /*Store some extra info in labels to speed up drawing of very long texts*/ +#ifndef LV_CONF_MINIMAL + #define LV_USE_ARC 1 +# else + #define LV_USE_ARC 0 #endif -#define LV_USE_LINE 1 - -#define LV_USE_ROLLER 1 /*Requires: lv_label*/ -#if LV_USE_ROLLER -# define LV_ROLLER_INF_PAGES 7 /*Number of extra "pages" when the roller is infinite*/ +#ifndef LV_CONF_MINIMAL + #define LV_USE_ANIMIMG 1 +# else + #define LV_USE_ANIMIMG 0 #endif -#define LV_USE_SLIDER 1 /*Requires: lv_bar*/ - -#define LV_USE_SWITCH 1 - -#define LV_USE_TEXTAREA 1 /*Requires: lv_label*/ -#if LV_USE_TEXTAREA != 0 -# define LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500 /*ms*/ +#ifndef LV_CONF_MINIMAL + #define LV_USE_BAR 1 +# else + #define LV_USE_BAR 0 #endif -#define LV_USE_TABLE 1 +#ifndef LV_CONF_MINIMAL + #define LV_USE_BTN 1 +# else + #define LV_USE_BTN 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_BTNMATRIX 1 +# else + #define LV_USE_BTNMATRIX 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_CANVAS 1 +# else + #define LV_USE_CANVAS 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_CHECKBOX 1 +# else + #define LV_USE_CHECKBOX 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_DROPDOWN 1 /*Requires: lv_label*/ +# else + #define LV_USE_DROPDOWN 0 /*Requires: lv_label*/ +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_IMG 1 /*Requires: lv_label*/ +# else + #define LV_USE_IMG 0 /*Requires: lv_label*/ +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_LABEL 1 + #if LV_USE_LABEL + # define LV_LABEL_TEXT_SELECTION 1 /*Enable selecting text of the label*/ + # define LV_LABEL_LONG_TXT_HINT 1 /*Store some extra info in labels to speed up drawing of very long texts*/ + #endif +# else + #define LV_USE_LABEL 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_LINE 1 +# else + #define LV_USE_LINE 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_ROLLER 1 /*Requires: lv_label*/ + #if LV_USE_ROLLER + # define LV_ROLLER_INF_PAGES 7 /*Number of extra "pages" when the roller is infinite*/ + #endif +# else + #define LV_USE_ROLLER 0 /*Requires: lv_label*/ +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_SLIDER 1 /*Requires: lv_bar*/ +# else + #define LV_USE_SLIDER 0 /*Requires: lv_bar*/ +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_SWITCH 1 +# else + #define LV_USE_SWITCH 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_TEXTAREA 1 /*Requires: lv_label*/ + #if LV_USE_TEXTAREA != 0 + # define LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500 /*ms*/ + #endif +# else + #define LV_USE_TEXTAREA 0 /*Requires: lv_label*/ +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_TABLE 1 +# else + #define LV_USE_TABLE 0 +#endif /*================== * EXTRA COMPONENTS @@ -460,72 +523,138 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/ /*----------- * Widgets *----------*/ -#define LV_USE_CALENDAR 1 -#if LV_USE_CALENDAR -# define LV_CALENDAR_WEEK_STARTS_MONDAY 0 -# if LV_CALENDAR_WEEK_STARTS_MONDAY -# define LV_CALENDAR_DEFAULT_DAY_NAMES {"Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"} -# else -# define LV_CALENDAR_DEFAULT_DAY_NAMES {"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"} -# endif +#ifndef LV_CONF_MINIMAL + #define LV_USE_CALENDAR 1 + #if LV_USE_CALENDAR + # define LV_CALENDAR_WEEK_STARTS_MONDAY 0 + # if LV_CALENDAR_WEEK_STARTS_MONDAY + # define LV_CALENDAR_DEFAULT_DAY_NAMES {"Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"} + # else + # define LV_CALENDAR_DEFAULT_DAY_NAMES {"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"} + # endif -# define LV_CALENDAR_DEFAULT_MONTH_NAMES {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} -# define LV_USE_CALENDAR_HEADER_ARROW 1 -# define LV_USE_CALENDAR_HEADER_DROPDOWN 1 -#endif /*LV_USE_CALENDAR*/ - -#define LV_USE_CHART 1 - -#define LV_USE_COLORWHEEL 1 - -#define LV_USE_IMGBTN 1 - -#define LV_USE_KEYBOARD 1 - -#define LV_USE_LED 1 - -#define LV_USE_LIST 1 - -#define LV_USE_METER 1 - -#define LV_USE_MSGBOX 1 - -#define LV_USE_SPINBOX 1 - -#define LV_USE_SPINNER 1 - -#define LV_USE_TABVIEW 1 - -#define LV_USE_TILEVIEW 1 - -#define LV_USE_WIN 1 - -#define LV_USE_SPAN 1 -#if LV_USE_SPAN -/*A line text can contain maximum num of span descriptor */ -# define LV_SPAN_SNIPPET_STACK_SIZE 64 + # define LV_CALENDAR_DEFAULT_MONTH_NAMES {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} + # define LV_USE_CALENDAR_HEADER_ARROW 1 + # define LV_USE_CALENDAR_HEADER_DROPDOWN 1 + #endif /*LV_USE_CALENDAR*/ +# else + #define LV_USE_CALENDAR 0 #endif +#ifndef LV_CONF_MINIMAL + #define LV_USE_CHART 1 +# else + #define LV_USE_CHART 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_COLORWHEEL 1 +# else + #define LV_USE_COLORWHEEL 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_IMGBTN 1 +# else + #define LV_USE_IMGBTN 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_KEYBOARD 1 +# else + #define LV_USE_KEYBOARD 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_LED 1 +# else + #define LV_USE_LED 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_LIST 1 +# else + #define LV_USE_LIST 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_METER 1 +# else + #define LV_USE_METER 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_MSGBOX 1 +# else + #define LV_USE_MSGBOX 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_SPINBOX 1 +# else + #define LV_USE_SPINBOX 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_SPINNER 1 +# else + #define LV_USE_SPINNER 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_TABVIEW 1 +# else + #define LV_USE_TABVIEW 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_TILEVIEW 1 +# else + #define LV_USE_TILEVIEW 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_WIN 1 +# else + #define LV_USE_WIN 0 +#endif + +#ifndef LV_CONF_MINIMAL + #define LV_USE_SPAN 1 + #if LV_USE_SPAN + /*A line text can contain maximum num of span descriptor */ + # define LV_SPAN_SNIPPET_STACK_SIZE 64 + #endif +# else + #define LV_USE_SPAN 0 +#endif /*----------- * Themes *----------*/ +#ifndef LV_CONF_MINIMAL + /*A simple, impressive and very complete theme*/ + #define LV_USE_THEME_DEFAULT 1 + #if LV_USE_THEME_DEFAULT -/*A simple, impressive and very complete theme*/ -#define LV_USE_THEME_DEFAULT 1 -#if LV_USE_THEME_DEFAULT + /*0: Light mode; 1: Dark mode*/ + # define LV_THEME_DEFAULT_DARK 0 -/*0: Light mode; 1: Dark mode*/ -# define LV_THEME_DEFAULT_DARK 0 + /*1: Enable grow on press*/ + # define LV_THEME_DEFAULT_GROW 1 -/*1: Enable grow on press*/ -# define LV_THEME_DEFAULT_GROW 1 - -/*Default transition time in [ms]*/ -# define LV_THEME_DEFAULT_TRANSITION_TIME 80 -#endif /*LV_USE_THEME_DEFAULT*/ + /*Default transition time in [ms]*/ + # define LV_THEME_DEFAULT_TRANSITION_TIME 80 + #endif /*LV_USE_THEME_DEFAULT*/ +# else + #define LV_USE_THEME_DEFAULT 0 +#endif /*A very simple theme that is a good starting point for a custom theme*/ - #define LV_USE_THEME_BASIC 1 +#ifndef LV_CONF_MINIMAL + #define LV_USE_THEME_BASIC 1 + # else + #define LV_USE_THEME_BASIC 0 +#endif /*A theme designed for monochrome displays*/ #define LV_USE_THEME_MONO 1 @@ -535,11 +664,18 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/ *----------*/ /*A layout similar to Flexbox in CSS.*/ -#define LV_USE_FLEX 1 +#ifndef LV_CONF_MINIMAL + #define LV_USE_FLEX 1 +# else + #define LV_USE_FLEX 0 +#endif /*A layout similar to Grid in CSS.*/ -#define LV_USE_GRID 1 - +#ifndef LV_CONF_MINIMAL + #define LV_USE_GRID 1 +# else + #define LV_USE_GRID 0 +#endif /*--------------------- * 3rd party libraries *--------------------*/ @@ -588,16 +724,22 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/ *----------*/ /*1: Enable API to take snapshot for object*/ -#define LV_USE_SNAPSHOT 1 - +#ifndef LV_CONF_MINIMAL + #define LV_USE_SNAPSHOT 1 +# else + #define LV_USE_SNAPSHOT 0 +#endif /*================== * EXAMPLES *==================*/ /*Enable the examples to be built with the library*/ -#define LV_BUILD_EXAMPLES 1 - +#ifndef LV_CONF_MINIMAL + #define LV_BUILD_EXAMPLES 1 +# else + #define LV_BUILD_EXAMPLES 0 +#endif /*--END OF LV_CONF_H--*/ #endif /*LV_CONF_H*/