menu "LVGL configuration"

    menu "Font usage"
        menu "Enable built-in fonts"
            config LVGL_FONT_MONTSERRAT_12
                    bool
                    prompt "Enable Montserrat 12"
            config LVGL_FONT_MONTSERRAT_14
                    bool
                    prompt "Enable Montserrat 14"
            config LVGL_FONT_MONTSERRAT_16
                    bool
                    prompt "Enable Montserrat 16"
                    default y
            config LVGL_FONT_MONTSERRAT_18
                    bool
                    prompt "Enable Montserrat 18"
            config LVGL_FONT_MONTSERRAT_20
                    bool
                    prompt "Enable Montserrat 20"
            config LVGL_FONT_MONTSERRAT_22
                    bool
                    prompt "Enable Montserrat 22"
            config LVGL_FONT_MONTSERRAT_24
                    bool
                    prompt "Enable Montserrat 24"
            config LVGL_FONT_MONTSERRAT_26
                    bool
                    prompt "Enable Montserrat 26"
            config LVGL_FONT_MONTSERRAT_28
                    bool
                    prompt "Enable Montserrat 28"
            config LVGL_FONT_MONTSERRAT_30
                    bool
                    prompt "Enable Montserrat 30"
            config LVGL_FONT_MONTSERRAT_32
                    bool
                    prompt "Enable Montserrat 32"
            config LVGL_FONT_MONTSERRAT_34
                    bool
                    prompt "Enable Montserrat 34"
            config LVGL_FONT_MONTSERRAT_36
                    bool
                    prompt "Enable Montserrat 36"
            config LVGL_FONT_MONTSERRAT_38
                    bool
                    prompt "Enable Montserrat 38"
            config LVGL_FONT_MONTSERRAT_40
                    bool
                    prompt "Enable Montserrat 40"
            config LVGL_FONT_MONTSERRAT_42
                    bool
                    prompt "Enable Montserrat 42"
            config LVGL_FONT_MONTSERRAT_44
                    bool
                    prompt "Enable Montserrat 44"
            config LVGL_FONT_MONTSERRAT_46
                    bool
                    prompt "Enable Montserrat 46"
            config LVGL_FONT_MONTSERRAT_48
                    bool
                    prompt "Enable Montserrat 48"
            config LVGL_FONT_UNSCII8
                    bool
                    prompt "Enable UNSCII 8 (Perfect monospace font)"
            config LVGL_FONT_MONTSERRAT12SUBPIX
                    bool
                    prompt "Enable Montserrat 12 sub-pixel"
            config LVGL_FONT_MONTSERRAT28COMPRESSED
                    bool
                    prompt "Enable Montserrat 28 compressed"
            config LVGL_FONT_DEJAVU_16_PERSIAN_HEBREW
                    bool
                    prompt "Enable Dejavu 16 Persian, Hebrew, Arabic letters"
            config LVGL_FONT_SIMSUN_16_CJK
                    bool
                    prompt "Enable Simsun 16 CJK"
        endmenu

        choice LVGL_FONT_DEFAULT_SMALL
            prompt "Select theme default small font"
            default LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_16
            help
                Select theme default small font

            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_12
                bool "Montserrat 12"
                select LVGL_FONT_MONTSERRAT_12
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_14
                bool "Montserrat 14"
                select LVGL_FONT_MONTSERRAT_14
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_16
                bool "Montserrat 16"
                select LVGL_FONT_MONTSERRAT_16
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_18
                bool "Montserrat 18"
                select LVGL_FONT_MONTSERRAT_18
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_20
                bool "Montserrat 20"
                select LVGL_FONT_MONTSERRAT_20
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_22
                bool "Montserrat 22"
                select LVGL_FONT_MONTSERRAT_22
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_24
                bool "Montserrat 24"
                select LVGL_FONT_MONTSERRAT_24
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_26
                bool "Montserrat 26"
                select LVGL_FONT_MONTSERRAT_26
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_28
                bool "Montserrat 28"
                select LVGL_FONT_MONTSERRAT_28
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_30
                bool "Montserrat 30"
                select LVGL_FONT_MONTSERRAT_30
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_32
                bool "Montserrat 32"
                select LVGL_FONT_MONTSERRAT_32
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_34
                bool "Montserrat 34"
                select LVGL_FONT_MONTSERRAT_34
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_36
                bool "Montserrat 36"
                select LVGL_FONT_MONTSERRAT_36
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_38
                bool "Montserrat 38"
                select LVGL_FONT_MONTSERRAT_38
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_40
                bool "Montserrat 40"
                select LVGL_FONT_MONTSERRAT_40
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_42
                bool "Montserrat 42"
                select LVGL_FONT_MONTSERRAT_42
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_44
                bool "Montserrat 44"
                select LVGL_FONT_MONTSERRAT_44
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_46
                bool "Montserrat 46"
                select LVGL_FONT_MONTSERRAT_46
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT_48
                bool "Montserrat 48"
                select LVGL_FONT_MONTSERRAT_48
            config LVGL_FONT_DEFAULT_SMALL_UNSCII8
                bool "UNSCII 8 (Perfect monospace font)"
                select LVGL_FONT_UNSCII8
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT12SUBPIX
                bool "Montserrat 12 sub-pixel"
                select LVGL_FONT_MONTSERRAT12SUBPIX
            config LVGL_FONT_DEFAULT_SMALL_MONTSERRAT28COMPRESSED
                bool "Montserrat 28 compressed"
                select LVGL_FONT_MONTSERRAT28COMPRESSED
            config LVGL_FONT_DEFAULT_SMALL_DEJAVU_16_PERSIAN_HEBREW
                bool "Dejavu 16 Persian, Hebrew, Arabic letters"
                select LVGL_FONT_DEJAVU_16_PERSIAN_HEBREW
            config LVGL_FONT_DEFAULT_SMALL_SIMSUN_16_CJK
                bool "Simsun 16 CJK"
                select LVGL_FONT_SIMSUN_16_CJK
        endchoice
        
        choice LVGL_FONT_DEFAULT_NORMAL
            prompt "Select theme default normal font"
            default LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_16
            help
                Select theme default normal font

            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_12
                bool "Montserrat 12"
                select LVGL_FONT_MONTSERRAT_12
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_14
                bool "Montserrat 14"
                select LVGL_FONT_MONTSERRAT_14
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_16
                bool "Montserrat 16"
                select LVGL_FONT_MONTSERRAT_16
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_18
                bool "Montserrat 18"
                select LVGL_FONT_MONTSERRAT_18
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_20
                bool "Montserrat 20"
                select LVGL_FONT_MONTSERRAT_20
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_22
                bool "Montserrat 22"
                select LVGL_FONT_MONTSERRAT_22
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_24
                bool "Montserrat 24"
                select LVGL_FONT_MONTSERRAT_24
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_26
                bool "Montserrat 26"
                select LVGL_FONT_MONTSERRAT_26
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_28
                bool "Montserrat 28"
                select LVGL_FONT_MONTSERRAT_28
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_30
                bool "Montserrat 30"
                select LVGL_FONT_MONTSERRAT_30
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_32
                bool "Montserrat 32"
                select LVGL_FONT_MONTSERRAT_32
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_34
                bool "Montserrat 34"
                select LVGL_FONT_MONTSERRAT_34
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_36
                bool "Montserrat 36"
                select LVGL_FONT_MONTSERRAT_36
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_38
                bool "Montserrat 38"
                select LVGL_FONT_MONTSERRAT_38
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_40
                bool "Montserrat 40"
                select LVGL_FONT_MONTSERRAT_40
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_42
                bool "Montserrat 42"
                select LVGL_FONT_MONTSERRAT_42
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_44
                bool "Montserrat 44"
                select LVGL_FONT_MONTSERRAT_44
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_46
                bool "Montserrat 46"
                select LVGL_FONT_MONTSERRAT_46
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT_48
                bool "Montserrat 48"
                select LVGL_FONT_MONTSERRAT_48
            config LVGL_FONT_DEFAULT_NORMAL_UNSCII8
                bool "UNSCII 8 (Perfect monospace font)"
                select LVGL_FONT_UNSCII8
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT12SUBPIX
                bool "Montserrat 12 sub-pixel"
                select LVGL_FONT_MONTSERRAT12SUBPIX
            config LVGL_FONT_DEFAULT_NORMAL_MONTSERRAT28COMPRESSED
                bool "Montserrat 28 compressed"
                select LVGL_FONT_MONTSERRAT28COMPRESSED
            config LVGL_FONT_DEFAULT_NORMAL_DEJAVU_16_PERSIAN_HEBREW
                bool "Dejavu 16 Persian, Hebrew, Arabic letters"
                select LVGL_FONT_DEJAVU_16_PERSIAN_HEBREW
            config LVGL_FONT_DEFAULT_NORMAL_SIMSUN_16_CJK
                bool "Simsun 16 CJK"
                select LVGL_FONT_SIMSUN_16_CJK
        endchoice
        
        choice LVGL_FONT_DEFAULT_SUBTITLE
            prompt "Select theme default subtitle font"
            default LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_16
            help
                Select theme default subtitle font

            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_12
                bool "Montserrat 12"
                select LVGL_FONT_MONTSERRAT_12
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_14
                bool "Montserrat 14"
                select LVGL_FONT_MONTSERRAT_14
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_16
                bool "Montserrat 16"
                select LVGL_FONT_MONTSERRAT_16
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_18
                bool "Montserrat 18"
                select LVGL_FONT_MONTSERRAT_18
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_20
                bool "Montserrat 20"
                select LVGL_FONT_MONTSERRAT_20
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_22
                bool "Montserrat 22"
                select LVGL_FONT_MONTSERRAT_22
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_24
                bool "Montserrat 24"
                select LVGL_FONT_MONTSERRAT_24
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_26
                bool "Montserrat 26"
                select LVGL_FONT_MONTSERRAT_26
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_28
                bool "Montserrat 28"
                select LVGL_FONT_MONTSERRAT_28
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_30
                bool "Montserrat 30"
                select LVGL_FONT_MONTSERRAT_30
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_32
                bool "Montserrat 32"
                select LVGL_FONT_MONTSERRAT_32
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_34
                bool "Montserrat 34"
                select LVGL_FONT_MONTSERRAT_34
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_36
                bool "Montserrat 36"
                select LVGL_FONT_MONTSERRAT_36
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_38
                bool "Montserrat 38"
                select LVGL_FONT_MONTSERRAT_38
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_40
                bool "Montserrat 40"
                select LVGL_FONT_MONTSERRAT_40
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_42
                bool "Montserrat 42"
                select LVGL_FONT_MONTSERRAT_42
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_44
                bool "Montserrat 44"
                select LVGL_FONT_MONTSERRAT_44
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_46
                bool "Montserrat 46"
                select LVGL_FONT_MONTSERRAT_46
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT_48
                bool "Montserrat 48"
                select LVGL_FONT_MONTSERRAT_48
            config LVGL_FONT_DEFAULT_SUBTITLE_UNSCII8
                bool "UNSCII 8 (Perfect monospace font)"
                select LVGL_FONT_UNSCII8
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT12SUBPIX
                bool "Montserrat 12 sub-pixel"
                select LVGL_FONT_MONTSERRAT12SUBPIX
            config LVGL_FONT_DEFAULT_SUBTITLE_MONTSERRAT28COMPRESSED
                bool "Montserrat 28 compressed"
                select LVGL_FONT_MONTSERRAT28COMPRESSED
            config LVGL_FONT_DEFAULT_SUBTITLE_DEJAVU_16_PERSIAN_HEBREW
                bool "Dejavu 16 Persian, Hebrew, Arabic letters"
                select LVGL_FONT_DEJAVU_16_PERSIAN_HEBREW
            config LVGL_FONT_DEFAULT_SUBTITLE_SIMSUN_16_CJK
                bool "Simsun 16 CJK"
                select LVGL_FONT_SIMSUN_16_CJK
        endchoice
        
        choice LVGL_FONT_DEFAULT_TITLE
            prompt "Select theme default title font"
            default LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_16
            help
                Select theme default title font

            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_12
                bool "Montserrat 12"
                select LVGL_FONT_MONTSERRAT_12
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_14
                bool "Montserrat 14"
                select LVGL_FONT_MONTSERRAT_14
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_16
                bool "Montserrat 16"
                select LVGL_FONT_MONTSERRAT_16
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_18
                bool "Montserrat 18"
                select LVGL_FONT_MONTSERRAT_18
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_20
                bool "Montserrat 20"
                select LVGL_FONT_MONTSERRAT_20
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_22
                bool "Montserrat 22"
                select LVGL_FONT_MONTSERRAT_22
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_24
                bool "Montserrat 24"
                select LVGL_FONT_MONTSERRAT_24
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_26
                bool "Montserrat 26"
                select LVGL_FONT_MONTSERRAT_26
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_28
                bool "Montserrat 28"
                select LVGL_FONT_MONTSERRAT_28
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_30
                bool "Montserrat 30"
                select LVGL_FONT_MONTSERRAT_30
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_32
                bool "Montserrat 32"
                select LVGL_FONT_MONTSERRAT_32
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_34
                bool "Montserrat 34"
                select LVGL_FONT_MONTSERRAT_34
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_36
                bool "Montserrat 36"
                select LVGL_FONT_MONTSERRAT_36
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_38
                bool "Montserrat 38"
                select LVGL_FONT_MONTSERRAT_38
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_40
                bool "Montserrat 40"
                select LVGL_FONT_MONTSERRAT_40
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_42
                bool "Montserrat 42"
                select LVGL_FONT_MONTSERRAT_42
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_44
                bool "Montserrat 44"
                select LVGL_FONT_MONTSERRAT_44
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_46
                bool "Montserrat 46"
                select LVGL_FONT_MONTSERRAT_46
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT_48
                bool "Montserrat 48"
                select LVGL_FONT_MONTSERRAT_48
            config LVGL_FONT_DEFAULT_TITLE_UNSCII8
                bool "UNSCII 8 (Perfect monospace font)"
                select LVGL_FONT_UNSCII8
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT12SUBPIX
                bool "Montserrat 12 sub-pixel"
                select LVGL_FONT_MONTSERRAT12SUBPIX
            config LVGL_FONT_DEFAULT_TITLE_MONTSERRAT28COMPRESSED
                bool "Montserrat 28 compressed"
                select LVGL_FONT_MONTSERRAT28COMPRESSED
            config LVGL_FONT_DEFAULT_TITLE_DEJAVU_16_PERSIAN_HEBREW
                bool "Dejavu 16 Persian, Hebrew, Arabic letters"
                select LVGL_FONT_DEJAVU_16_PERSIAN_HEBREW
            config LVGL_FONT_DEFAULT_TITLE_SIMSUN_16_CJK
                bool "Simsun 16 CJK"
                select LVGL_FONT_SIMSUN_16_CJK
        endchoice
    endmenu

    menu "Theme usage"
	menu "Enable theme usage, always enable at least one theme"
            config LVGL_THEME_EMPTY
                    bool
                    prompt "Empty: No theme, you can apply your styles as you need."
            config LVGL_THEME_TEMPLATE
                    bool
                    prompt "Template: Simple to create your theme based on it."
            config LVGL_THEME_MATERIAL
                    bool
                    prompt "Material: A fast and impressive theme."
                    default y
            config LVGL_THEME_MONO
                    bool
                    prompt "Mono: Mono-color theme for monochrome displays"
	endmenu

        choice LVGL_THEME_DEFAULT_INIT
            prompt "Select theme default init"
            default LVGL_THEME_DEFAULT_INIT_MATERIAL
            help
                Select theme default init

            config LVGL_THEME_DEFAULT_INIT_EMPTY
                bool "Default init for empty theme"
                select LVGL_THEME_EMPTY
            config LVGL_THEME_DEFAULT_INIT_TEMPLATE
                bool "Default init for template theme"
                select LVGL_THEME_TEMPLATE
            config LVGL_THEME_DEFAULT_INIT_MATERIAL
                bool "Default init for material theme"
                select LVGL_THEME_MATERIAL
            config LVGL_THEME_DEFAULT_INIT_MONO
                bool "Default init for mono theme"
                select LVGL_THEME_MONO
        endchoice
        
        choice LVGL_THEME_DEFAULT_PRIMARY_COLOR
            depends on !LVGL_THEME_DEFAULT_INIT_MONO

            prompt "Select theme default primary color"
            default LVGL_THEME_DEFAULT_PRIMARY_COLOR_RED
            help
                Select theme default primary color.

            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_WHITE
                bool "Default primary color white"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_SILVER
                bool "Default primary color silver"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_GRAY
                bool "Default primary color gray"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_BLACK
                bool "Default primary color black"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_RED
                bool "Default primary color red"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_MAROON
                bool "Default primary color maroon"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_YELLOW
                bool "Default primary color yellow"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_OLIVE
                bool "Default primary color olive"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_LIME
                bool "Default primary color lime"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_GREEN
                bool "Default primary color green"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_CYAN
                bool "Default primary color cyan"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_AQUA
                bool "Default primary color aqua"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_TEAL
                bool "Default primary color teal"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_BLUE
                bool "Default primary color blue"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_NAVY
                bool "Default primary color navy"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_MAGENTA
                bool "Default primary color magenta"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_PURPLE
                bool "Default primary color purple"
            config LVGL_THEME_DEFAULT_PRIMARY_COLOR_ORANGE
                bool "Default primary color orange"
        endchoice
        
        choice LVGL_THEME_DEFAULT_SECONDARY_COLOR
            depends on !LVGL_THEME_DEFAULT_INIT_MONO

            prompt "Select theme default secondary color"
            default LVGL_THEME_DEFAULT_SECONDARY_COLOR_RED
            help
                Select theme default secondary color.

            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_WHITE
                bool "Default secondary color white"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_SILVER
                bool "Default secondary color silver"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_GRAY
                bool "Default secondary color gray"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_BLACK
                bool "Default secondary color black"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_RED
                bool "Default secondary color red"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_MAROON
                bool "Default secondary color maroon"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_YELLOW
                bool "Default secondary color yellow"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_OLIVE
                bool "Default secondary color olive"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_LIME
                bool "Default secondary color lime"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_GREEN
                bool "Default secondary color green"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_CYAN
                bool "Default secondary color cyan"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_AQUA
                bool "Default secondary color aqua"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_TEAL
                bool "Default secondary color teal"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_BLUE
                bool "Default secondary color blue"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_NAVY
                bool "Default secondary color navy"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_MAGENTA
                bool "Default secondary color magenta"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_PURPLE
                bool "Default secondary color purple"
            config LVGL_THEME_DEFAULT_SECONDARY_COLOR_ORANGE
                bool "Default secondary color orange"
        endchoice

        choice LVGL_THEME_DEFAULT_COLOR
            depends on LVGL_THEME_DEFAULT_INIT_MONO

            prompt "Select mono theme default primary color"
            default LVGL_THEME_DEFAULT_COLOR_BLACK
            help
                If LV_THEME_DEFAULT_COLOR_PRIMARY is LV_COLOR_BLACK the
                texts and borders will be black and the background will be
                white. Else the colors are inverted.

            config LVGL_THEME_DEFAULT_COLOR_BLACK
                bool "Default primary color black"
            config LVGL_THEME_DEFAULT_COLOR_WHITE
                bool "Default primary color white"
        endchoice

        choice LVGL_THEME_DEFAULT_FLAG
            depends on LVGL_THEME_MATERIAL
            
            prompt "Select theme default flag"
            default LVGL_THEME_DEFAULT_FLAG_LIGHT
            help
                Select theme default flag

            config LVGL_THEME_DEFAULT_FLAG_LIGHT
                bool "Light theme"
                depends on LVGL_THEME_MATERIAL
            config LVGL_THEME_DEFAULT_FLAG_DARK
                bool "Dark theme"
                depends on LVGL_THEME_MATERIAL
        endchoice

    endmenu

    menu "Memory manager settings"
	config LVGL_MEM_SIZE
	    int
	    prompt "Size of the memory used by `lv_mem_alloc` in kilobytes (>= 2kB)"
	    range 2 128
	    default 32
    endmenu


    menu "Log Settings"
        config LVGL_USE_LOG
            bool "Enable the log module"
            default n

        choice LVGL_LOG_LEVEL
            bool "Default log verbosity" if LVGL_USE_LOG
            default LVGL_LOG_LEVEL_INFO
            help
                Specify how important log should be added.

            config LVGL_LOG_LEVEL_TRACE
                bool "Trace - Detailed information"
            config LVGL_LOG_LEVEL_INFO 
                bool "Info  - Log important events"
            config LVGL_LOG_LEVEL_WARN 
                bool "Warn  - Log if something unwanted happened"
            config LVGL_LOG_LEVEL_ERROR
                bool "Error - Only critical issues"
            config LVGL_LOG_LEVEL_NONE 
                bool "None  - Do not log anything"
        endchoice

        config LVGL_LOG_PRINTF
            bool "Print the log with 'printf'" if LVGL_USE_LOG
            default y
            help
                Use printf for log output. 
                If not set the user needs to register a callback with `lv_log_register_print_cb`.

    endmenu

    menu "Debug Settings"
        config LVGL_USE_DEBUG
            bool "Enable Debug"
            default y
        
        config LVGL_USE_ASSERT_NULL
            bool "Check if the parameter is NULL. (Quite fast)"
            default y

        config LVGL_USE_ASSERT_MEM
            bool "Checks is the memory is successfully allocated or no. (Quite fast)"
            default y

        config LVGL_USE_ASSERT_MEM_INTEGRITY
            bool "Check the integrity of `lv_mem` after critical operations. (Slow)"
            default n
            
        config LVGL_USE_ASSERT_STR
            bool "Search for NULL, very long strings, invalid characters, and unnatural repetitions. (Slow)"
            help 
                If disabled `LV_USE_ASSERT_NULL` will be performed instead (if it's enabled).
            default n
            
        config LVGL_USE_ASSERT_OBJ
            bool "Check NULL, the object's type and existence (e.g. not deleted). (Quite slow)."
            help 
                If disabled `LV_USE_ASSERT_NULL` will be performed instead (if it's enabled)
            default n
            
        config LVGL_USE_ASSERT_STYLE
            bool "Check if the styles are properly initialized. (Fast)"
            default 0
    endmenu

    menu "Text Settings"
        choice LVGL_TXT_ENC
            prompt "Select a character encoding for strings"
            help
                Select a character encoding for strings. Your IDE or editor should have the same character encoding.
            default LVGL_TXT_ENC_UTF8

            config LVGL_TXT_ENC_UTF8
                bool "UTF8"
            config LVGL_TXT_ENC_ASCII
                bool "ASCII"
        endchoice

        config LVGL_TXT_BREAK_CHARS
            string "Can break (wrap) texts on these chars"
            default " ,.;:-_"
        
        config LVGL_TXT_LINE_BREAK_LONG_LEN
            int "Line break long length"
            default 0
            help
                If a word is at least this long, will break wherever 'prettiest'. 
                To disable, set to a value <= 0.
        
        config LVGL_TXT_LINE_BREAK_LONG_PRE_MIN_LEN
            int "Min num chars before break"
            default 3
            help
                Minimum number of characters in a long word to put on a line before a break.
                Depends on LV_TXT_LINE_BREAK_LONG_LEN
                
        config LVGL_TXT_LINE_BREAK_LONG_POST_MIN_LEN
            int "Min num chars after break"
            default 3
            help
                Minimum number of characters in a long word to put on a line after a break.
                Depends on LV_TXT_LINE_BREAK_LONG_LEN
                        
        config LVGL_TXT_COLOR_CMD
            string "The control character to use for signalling text recoloring"
            default "#"

        choice LVGL_USE_BIDI
            prompt "Support bidirectional texts"
            help 
                Allows mixing Left-to-Right and Right-to-Left texts.
                The direction will be processed according to the Unicode Bidirectioanl Algorithm:
                https://www.w3.org/International/articles/inline-bidi-markup/uba-basics
            default LVGL_BIDI_NO_SUPPORT
                                    
            config LVGL_BIDI_NO_SUPPORT
                bool "Bidirectional texts not supported"
            config LVGL_BIDI_DIR_LTR
                bool "Left-to-Right"
            config LVGL_BIDI_DIR_RTL
                bool "Right-to-Left"
            config LVGL_BIDI_DIR_AUTO
                bool "Detect texts base direction"
        endchoice

        config LVGL_USE_ARABIC_PERSIAN_CHARS
            bool "Enable Arabic/Persian processing"
            default n
            help 
                In these languages characters should be replaced with
                an other form based on their position in the text.

        config LVGL_SPRINTF_CUSTOM
        bool "Change the built-in (v)snprintf functions"
        default n

        config LVGL_SPRINTF_DISABLE_FLOAT
            bool "Disable float in built-in (v)snprintf functions" if !LVGL_SPRINTF_CUSTOM 
            default n
    endmenu

    menu "Widgets usage"
        config LVGL_WIDGETS_USE_ARC
            bool "Arc."
            default y
        config LVGL_WIDGETS_USE_BAR
            bool "Bar."
            default y
       config LVGL_WIDGETS_USE_BTN
           bool "Button. Dependencies: lv_cont."
           select LVGL_WIDGETS_USE_CONTAINER
           default y
       config LVGL_WIDGETS_USE_BTNMATRIX
           bool "Button matrix."
           default y
       config LVGL_WIDGETS_USE_CALENDAR
           bool "Calendar."
           default y
       config LVGL_WIDGETS_USE_CANVAS
           bool "Canvas. Dependencies: lv_img."
           select LVGL_WIDGETS_USE_IMG
           default y
       config LVGL_WIDGETS_USE_CHECKBOX
           bool "Check Box. Dependencies: lv_btn, lv_label."
           select LVGL_WIDGETS_USE_BTN
           select LVGL_WIDGETS_USE_LABEL
           default y
       config LVGL_WIDGETS_USE_CHART
           bool "Chart."
           default y
       config LVGL_WIDGETS_CHART_AXIS_MAX_LEN
           int "Chart axis tick label max len."
           depends on LVGL_WIDGETS_USE_CHART
           default 256
       config LVGL_WIDGETS_USE_CONTAINER
           bool "Container."
           default y
       config LVGL_WIDGETS_USE_CPICKER
           bool "Color picker."
           default y
       config LVGL_WIDGETS_USE_DROPDOWN
           bool "Drop down list. Dependencies: lv_page, lv_label, lv_symbol_def.h."
           select LVGL_WIDGETS_USE_PAGE
           select LVGL_WIDGETS_USE_LABEL
           default y
       config LVGL_WIDGETS_DROPDOWN_ANIMATION_TIME
           int "Drop down animation time."
           depends on LVGL_WIDGETS_USE_DROPBOX
           default 200
       config LVGL_WIDGETS_USE_GAUGE
           bool "Gauge. Dependencies: lv_bar, lv_linemeter."
           select LVGL_WIDGETS_USE_BAR
           select LVGL_WIDGETS_USE_LINEMETER
           default y
       config LVGL_WIDGETS_USE_IMG
           bool "Image. Dependencies: lv_label."
           select LVGL_WIDGETS_USE_LABEL
           default y
       config LVGL_WIDGETS_USE_IMGBTN
           bool "Image button. Dependencies: lv_btn."
           select LVGL_WIDGETS_USE_BTN
           default y
       config LVGL_WIDGETS_USE_KEYBOARD
           bool "Keyboard. Dependencies: lv_btnm."
           select LVGL_WIDGETS_USE_BTNM
           default y
       config LVGL_WIDGETS_USE_LABEL
           bool "Label."
           default y
       config LVGL_WIDGETS_LABEL_DEF_SCROLL_SPEED
           int "Hor. or ver. scroll speed [px/sec] in LV_LABEL_LONG_ROLL/ROLL_CIRC mode."
           default 25
       config LVGL_WIDGETS_LABEL_WAIT_CHAR_COUNT
           int "Waiting period at beginning/end of animation cycle."
           default 3
       config LVGL_WIDGETS_USE_LED
           bool "LED."
           default y
       config LVGL_WIDGETS_LED_BRIGHT_MIN
           int "LED minimal brightness."
           range 0 255
           default 120
       config LVGL_WIDGETS_LED_BRIGHT_MAX
           int "LED maximal brightness."
           range 0 255
           default 255
       config LVGL_WIDGETS_USE_LINE
           bool "Line."
           default y
       config LVGL_WIDGETS_USE_LIST
           bool "List. Dependencies: lv_page, lv_btn, lv_label, lv_img."
           select LVGL_WIDGETS_USE_PAGE
           select LVGL_WIDGETS_USE_BTN
           select LVGL_WIDGETS_USE_LABEL
           select LVGL_WIDGETS_USE_IMG
           default y
       config LVGL_WIDGETS_LIST_DEFAULT_ANIMATION_TIME
           int "List default animation time of focusing to a list element [ms]. 0: no animation."
           default 100
       config LVGL_WIDGETS_USE_LINEMETER
           bool "Line meter."
           default y
       config LVGL_WIDGETS_USE_OBJMASK
           bool "Mask."
           default y
       config LVGL_WIDGETS_USE_MSGBOX
           bool "Message box. Dependencies: lv_rect, lv_btnm, lv_label."
           select LVGL_WIDGETS_USE_RECT
           select LVGL_WIDGETS_USE_BTNM
           select LVGL_WIDGETS_USE_LABEL
           default y
       config LVGL_WIDGETS_USE_PAGE
           bool "Page. Dependencies: lv_cont."
           select LVGL_WIDGETS_USE_CONTAINER
           default y
       config LVGL_WIDGETS_PAGE_ANIMATION_DEFAULT_TIME
           int "Focus default animation time [ms]. 0: No animation."
           default 100
       config LVGL_WIDGETS_USE_SPINNER
           bool "Spinner. Dependencies: lv_arc, lv_anim."
           select LVGL_WIDGETS_USE_ARC
           select LVGL_WIDGETS_USE_ANIM
           default y
       config LVGL_WIDGETS_USE_SPINNER
           bool "Spinner. Dependencies: lv_arc, lv_anim."
           select LVGL_WIDGETS_USE_ARC
           select LVGL_WIDGETS_USE_ANIM
           default y
       config LVGL_WIDGETS_SPINNER_DEF_ARC_LENGTH
           int "Spinner def. arc length [deg]."
           default 60
       config LVGL_WIDGETS_SPINNER_DEF_SPIN_TIME
           int "Spinner def. spin time [ms]."
           default 1000
       config LVGL_WIDGETS_USE_ROLLER
           bool "Roller. Dependencies: lv_page."
           select LVGL_WIDGETS_USE_PAGE
           default y
       config LVGL_WIDGETS_ROLLER_DEF_ANIM_TIME
           int "Focus animation time [ms]. 0: no animation."
           default 200
       config LVGL_WIDGETS_ROLLER_INF_PAGES
           int "Number of extra 'pages' when the controller is infinite."
           default 7
       config LVGL_WIDGETS_USE_SLIDER
           bool "Slider. Dependencies: lv_bar."
           select LVGL_USE_WIDGETS_BAR
           default y
       config LVGL_WIDGETS_USE_SPINBOX
           bool "Spinbox. Dependencies: lv_ta."
           select LVGL_WIDGETS_USE_TEXTAREA
           default y
       config LVGL_WIDGETS_USE_SWITCH
           bool "Switch. Dependencies: lv_slider."
           select LVGL_WIDGETS_USE_SLIDER
           default y
       config LVGL_WIDGETS_USE_TEXTAREA
           bool "Text area. Dependencies: lv_label, lv_page."
           select LVGL_WIDGETS_USE_LABEL
           select LVGL_WIDGETS_USE_PAGE
           default y
       config LVGL_WIDGETS_TEXTAREA_DEF_CURSOR_BLINK_TIME
           int "Text area def. cursor blink time [ms]."
           default 400
       config LVGL_WIDGETS_TEXTAREA_DEF_PWN_SHOW_TIME
           int "Text area def. pwn show time [ms]."
           default 1500
       config LVGL_WIDGETS_USE_TABLE
           bool "Table. Dependencies: lv_label."
           select LVGL_WIDGETS_USE_LABEL
           default y
       config LVGL_WIDGETS_TABLE_COL_MAX
           int "Table col max."
           default 12
       config LVGL_WIDGETS_USE_TABVIEW
           bool "Tab. Dependencies: lv_page, lv_btnm."
           select LVGL_WIDGETS_USE_PAGE
           select LVGL_WIDGETS_USE_BTNM
           default y
       config LVGL_WIDGETS_TABVIEW_SLIDE_ANIMATION
           int "Time of slide animation [ms]. 0: No animation."
           default 300
       config LVGL_WIDGETS_USE_TILEVIEW
           bool "Tileview. Dependencies: lv_page."
           select LVGL_WIDGETS_USE_PAGE
           default y
       config LVGL_WIDGETS_TILEVIEW_SLIDE_ANIMATION
           int "Time of slide animation [ms]. 0: No animation."
           default 300
       config LVGL_WIDGETS_USE_WINDOW
           bool "Window. Dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page."
           select LVGL_WIDGETS_USE_CONTAINER
           select LVGL_WIDGETS_USE_BTN
           select LVGL_WIDGETS_USE_LABEL
           select LVGL_WIDGETS_USE_IMG
           select LVGL_WIDGETS_USE_PAGE
           default y
    endmenu

    menu "Indev device settings"
        config LVGL_INDEV_DEF_READ_PERIOD
            int "Input device read period [ms]."
            default 30
        config LVGL_INDEV_DEF_DRAG_LIMIT
            int "Drag threshold in pixels."
            default 10
        config LVGL_INDEV_DEF_DRAG_THROW
            int "Drag throw slow-down in [%]. Greater value -> faster slow down."
            default 10
        config LVGL_INDEV_DEF_LONG_PRESS_TIME
            int "Long press time [ms]. Time to send 'LV_EVENT_LONG_PRESSED'."
            default 400
        config LVGL_INDEV_DEF_LONG_PRESS_REP_TIME
            int "Repeated trigger period in long press [ms]. Time between 'LV_EVENT_LONG_PRESSED_REPEAT'."
            default 100
        config LVGL_INDEV_DEF_GESTURE_LIMIT
            int "Gesture threshold in pixels."
            default 50
        config LVGL_INDEV_DEF_GESTURE_MIN_VELOCITY
            int "Gesture min velocity at release before swipe (pixels)."
            default 3

    endmenu

    menu "Feature usage"
        config LVGL_FEATURE_USE_ANIMATION
            bool "Enable the Animations."
            default y
        config LVGL_FEATURE_USE_SHADOW
            bool "Enable shadow drawing."
            default y
        config LVGL_FEATURE_USE_BLEND_MODES
            bool "Use other blend modes then normal (LV_BLEND_MODE_...)."
            default y
        config LVGL_FEATURE_USE_OPA_SCALE
            bool "Use the 'opa_scale' style property to set the opacity of an object and it's children at once."
            default y
        config LVGL_FEATURE_USE_IMG_TRANSFORM
            bool "Use image zoom and rotation."
            default y
        config LVGL_FEATURE_USE_GROUP
            bool "Enable object groups (for keyboard/encoder navigation)."
            default y
        config LVGL_FEATURE_USE_GPU
            bool "Enable GPU interface (only enabled 'gpu_fill_cb' and 'gpu_blend_cb' in the disp. drv."
            default y
        config LVGL_FEATURE_USE_GPU_STM32_DMA2D
            bool "Enable STM32 DMA2D."
        config LVGL_FEATURE_USE_FILESYSTEM
            bool "Enable file system (might be required for images."
            default y
        config LVGL_FEATURE_USE_USER_DATA
            bool "Add a 'user_data' to drivers and objects."
        config LVGL_FEATURE_USE_PERF_MONITOR
            bool "Show CPU usage and FPS count in the right bottom corner."
        config LVGL_FEATURE_USE_API_EXTENSION_V6
            bool "Use the functions and types from the older API if possible."
            default y
    endmenu
    
    menu "Image decoder and cache"
        config LVGL_IMG_CF_INDEXED
            bool "Enable indexed (pallete) images."
            default y
        config LVGL_IMG_CF_ALPHA
            bool "Enable alpha indexed images."
            default y
        config LVGL_IMG_CACHE_DEF_SIZE
            int "Default image cache size."
            default 1
    endmenu

endmenu
