summaryrefslogtreecommitdiff
path: root/src/libs/lvgl/Kconfig
blob: 1d97cadaa6bb7bce7fb36b86939d28658460ccf0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
# Kconfig file for LVGL v7.10.1

menu "LVGL configuration"

    config LV_ATTRIBUTE_FAST_MEM_USE_IRAM
        bool "Set IRAM as LV_ATTRIBUTE_FAST_MEM"
        help
            Set this option to configure IRAM as LV_ATTRIBUTE_FAST_MEM

    config LV_CONF_MINIMAL
        bool "LVGL minimal configuration."

    # Define CONFIG_LV_CONF_SKIP so we can use LVGL
    # without lv_conf.h file, the lv_conf_internal.h and
    # lv_conf_kconfig.h files are used instead.
    config LV_CONF_SKIP
        bool
        default y

    config LV_HOR_RES_MAX
        int "Maximal horizontal resolution to support by the library."
        default 480

    config LV_VER_RES_MAX
        int "Maximal vertical resolution to support by the library."
        default 320

    choice
        prompt "Color depth."
        default LV_COLOR_DEPTH_16
        help
            Color depth to be used.

        config LV_COLOR_DEPTH_32
            bool "32: ARGB8888"
        config LV_COLOR_DEPTH_16
            bool "16: RGB565"
        config LV_COLOR_DEPTH_8
            bool "8: RGB232"
        config LV_COLOR_DEPTH_1
            bool "1: 1 byte per pixel"
    endchoice

    config LV_COLOR_DEPTH
        int
        default 1 if LV_COLOR_DEPTH_1
        default 8 if LV_COLOR_DEPTH_8
        default 16 if LV_COLOR_DEPTH_16
        default 32 if LV_COLOR_DEPTH_32

    config LV_COLOR_16_SWAP
        bool "Swap the 2 bytes of RGB565 color. Useful if the display has a 8 bit interface (e.g. SPI)."
        depends on LV_COLOR_DEPTH_16

    config LV_COLOR_SCREEN_TRANSP
        bool "Enable screen transparency."
        depends on LV_COLOR_DEPTH_32
        help
            Useful for OSD or other overlapping GUIs.
            Requires `LV_COLOR_DEPTH = 32` colors and the screen's style
            should be modified: `style.body.opa = ...`.

    config LV_COLOR_TRANSP_HEX
        hex "Images pixels with this color will not be drawn (with chroma keying)."
        depends on LV_COLOR_SCREEN_TRANSP
        range 0x000000 0xFFFFFF
        default 0x00FF00
        help
            See lv_misc/lv_color.h for some color values examples.

    config LV_ANTIALIAS
        bool "Enable anti-aliasing (lines, and radiuses will be smoothed)."
        default y if !LV_CONF_MINIMAL

    config LV_DISP_DEF_REFR_PERIOD
        int "Default display refresh period (ms)."
        default 30
        help
            Can be changed in the display driver (`lv_disp_drv_t`).

    config LV_DPI
        int "DPI (Dots per inch in px)."
        default 130

    config LV_DISP_SMALL_LIMIT
        int "Small display limit"
        default 30
        help
            According to the width of the display (hor. res. / dpi) the
            displays fall in 4 categories. This is the upper limit for small
            displays.

    config LV_DISP_MEDIUM_LIMIT
        int "Medium display limit"
        default 50
        help
            According to the width of the display (hor. res. / dpi) the
            displays fall in 4 categories. This is the upper limit for medium
            displays.

    config LV_DISP_LARGE_LIMIT
        int "Large display limit"
        default 70
        help
            According to the width of the display (hor. res. / dpi) the
            displays fall in 4 categories. This is the upper limit for large
            displays.

    menu "Memory manager settings"
    config LV_MEM_CUSTOM
        bool
        prompt "If true use custom malloc/free, otherwise use the built-in `lv_mem_alloc` and `lv_mem_free`"

    config LV_MEM_CUSTOM_INCLUDE
        string
        prompt "Header to include for the custom memory function"
        default "stdlib.h"
        depends on LV_MEM_CUSTOM

    config LV_MEM_CUSTOM_ALLOC
        string
        prompt "Wrapper to malloc"
        default "malloc"
        depends on LV_MEM_CUSTOM

    config LV_MEM_CUSTOM_FREE
        string
        prompt "Wrapper to free"
        default "free"
        depends on LV_MEM_CUSTOM

    config LV_MEM_SIZE_KILOBYTES
        int
        prompt "Size of the memory used by `lv_mem_alloc` in kilobytes (>= 2kB)"
        range 2 128
        default 32
        depends on !LV_MEM_CUSTOM

    config LV_MEMCPY_MEMSET_STD
        bool
        prompt "Use the standard memcpy and memset instead of LVGL's own functions"
    endmenu

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

    endmenu

    menu "Feature usage"
        config LV_USE_ANIMATION
            bool "Enable the Animations."
            default y if !LV_CONF_MINIMAL
        config LV_USE_SHADOW
            bool "Enable shadow drawing."
            default y if !LV_CONF_MINIMAL
        config LV_SHADOW_CACHE_SIZE
            int "Shadow cache size"
            depends on LV_USE_SHADOW
            default 0
            help
                Allow buffering some shadow calculation
                LV_SHADOW_CACHE_SIZE is the max. shadow size to buffer,
                where shadow size is `shadow_width + radius`
                Caching has LV_SHADOW_CACHE_SIZE^2 RAM cost.
        config LV_USE_OUTLINE
            bool "Enable outline drawing on rectangles."
            default y if !LV_CONF_MINIMAL
        config LV_USE_PATTERN
            bool "Enable pattern drawing on rectangles."
            default y if !LV_CONF_MINIMAL
        config LV_USE_VALUE_STR
            bool "Enable value string drawing on rectangles."
            default y if !LV_CONF_MINIMAL
        config LV_USE_BLEND_MODES
            bool "Use other blend modes then normal (LV_BLEND_MODE_...)."
            default y if !LV_CONF_MINIMAL
        config LV_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 if !LV_CONF_MINIMAL
        config LV_USE_IMG_TRANSFORM
            bool "Use image zoom and rotation."
            default y if !LV_CONF_MINIMAL
        config LV_USE_GROUP
            bool "Enable object groups (for keyboard/encoder navigation)."
            default y if !LV_CONF_MINIMAL
        config LV_USE_GPU
            bool "Enable GPU interface (only enabled 'gpu_fill_cb' and 'gpu_blend_cb' in the disp. drv."
            default y if !LV_CONF_MINIMAL
        config LV_USE_GPU_STM32_DMA2D
            bool "Enable STM32 DMA2D."
        config LV_GPU_DMA2D_CMSIS_INCLUDE
            string "include path of CMSIS header of target processor"
            depends on LV_USE_GPU_STM32_DMA2D
            default ""
            help
                e.g. "stm32f769xx.h" or "stm32f429xx.h"
        config LV_USE_GPU_NXP_PXP
            bool "Use PXP for CPU off-load on NXP RTxxx platforms."
        config LV_USE_GPU_NXP_PXP_AUTO_INIT
            bool "Call lv_gpu_nxp_pxp_init() automatically or manually."
            depends on LV_USE_GPU_NXP_PXP
            help
                1: Add default bare metal and FreeRTOS interrupt handling
                routines for PXP (lv_gpu_nxp_pxp_osa.c) and call
                lv_gpu_nxp_pxp_init() automatically during lv_init().
                Note that symbol FSL_RTOS_FREE_RTOS has to be defined in order
                to use FreeRTOS OSA, otherwise bare-metal implementation is
                selected.
                0: lv_gpu_nxp_pxp_init() has to be called manually before
                lv_init().
        config LV_USE_GPU_NXP_VG_LITE
            bool "Use VG-Lite for CPU off-load on NXP RTxxx platforms."
        config LV_USE_FILESYSTEM
            bool "Enable file system (might be required for images."
            default y if !LV_CONF_MINIMAL
        config LV_USE_USER_DATA
            bool "Add a 'user_data' to drivers and objects."
        config LV_USE_USER_DATA_FREE
            bool "Free the user data field upon object deletion"
            depends on LV_USE_USER_DATA
        config LV_USER_DATA_FREE_INCLUDE
            string "Header for user data free function"
            default "something.h"
            depends on LV_USE_USER_DATA_FREE
        config LV_USER_DATA_FREE
            string "Invoking for user data free function. It has the lv_obj_t pointer as single parameter."
            default "(user_data_free)"
            depends on LV_USE_USER_DATA_FREE
        config LV_USE_PERF_MONITOR
            bool "Show CPU usage and FPS count in the right bottom corner."
        config LV_USE_API_EXTENSION_V6
            bool "Use the functions and types from the older (v6) API if possible."
            default y if !LV_CONF_MINIMAL
        config LV_USE_API_EXTENSION_V7
            bool "Use the functions and types from the older (v7) API if possible."
            default y if !LV_CONF_MINIMAL
    endmenu

    menu "Image decoder and cache"
        config LV_IMG_CF_INDEXED
            bool "Enable indexed (palette) images."
            default y if !LV_CONF_MINIMAL
        config LV_IMG_CF_ALPHA
            bool "Enable alpha indexed images."
            default y if !LV_CONF_MINIMAL
        config LV_IMG_CACHE_DEF_SIZE
            int "Default image cache size."
            default 1
            help
                Image caching keeps the images opened. If only the built-in
                image formats are used there is no real advantage of caching.
                (I.e. no new image decoder is added)

                With complex image decoders (e.g. PNG or JPG) caching can
                save the continuous open/decode of images.
                However the opened images might consume additional RAM.
                LV_IMG_CACHE_DEF_SIZE must be >= 1
    endmenu

    menu "Compiler Settings"
        config LV_BIG_ENDIAN_SYSTEM
            bool "For big endian systems set to 1"
    endmenu

    menu "HAL Settings"
        config LV_TICK_CUSTOM
            bool
            prompt "Use a custom tick source"

        config LV_TICK_CUSTOM_INCLUDE
            string
            prompt "Header for the system time function"
            default "Arduino.h"
            depends on LV_TICK_CUSTOM

        config LV_TICK_CUSTOM_SYS_TIME_EXPR
            string
            prompt "Expression evaluating to current system time in ms"
            default "millis()"
            depends on LV_TICK_CUSTOM
    endmenu

    menu "Log Settings"
        config LV_USE_LOG
            bool "Enable the log module"

        choice
            bool "Default log verbosity" if LV_USE_LOG
            default LV_LOG_LEVEL_INFO
            help
                Specify how important log should be added.

            config LV_LOG_LEVEL_TRACE
                bool "Trace - Detailed information"
            config LV_LOG_LEVEL_INFO
                bool "Info  - Log important events"
            config LV_LOG_LEVEL_WARN
                bool "Warn  - Log if something unwanted happened"
            config LV_LOG_LEVEL_ERROR
                bool "Error - Only critical issues"
            config LV_LOG_LEVEL_NONE
                bool "None  - Do not log anything"
        endchoice

        config LV_LOG_LEVEL
            int
            default 0 if LV_LOG_LEVEL_TRACE
            default 1 if LV_LOG_LEVEL_INFO
            default 2 if LV_LOG_LEVEL_WARN
            default 3 if LV_LOG_LEVEL_ERROR
            default 4 if LV_LOG_LEVEL_USER
            default 5 if LV_LOG_LEVEL_NONE

        config LV_LOG_PRINTF
            bool "Print the log with 'printf'" if LV_USE_LOG
            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 LV_USE_DEBUG
            bool "Enable Debug"

        config LV_USE_ASSERT_NULL
            bool "Check if the parameter is NULL. (Quite fast)"
            default y if !LV_CONF_MINIMAL

        config LV_USE_ASSERT_MEM
            bool "Checks is the memory is successfully allocated or no. (Quite fast)"
            default y if !LV_CONF_MINIMAL

        config LV_USE_ASSERT_MEM_INTEGRITY
            bool "Check the integrity of `lv_mem` after critical operations. (Slow)"

        config LV_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).

        config LV_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)

        config LV_USE_ASSERT_STYLE
            bool "Check if the styles are properly initialized. (Fast)"
    endmenu

    menu "Font usage"
        config LV_FONT_FMT_TXT_LARGE
            bool "Enable it if you have fonts with a lot of characters."
            help
                The limit depends on the font size, font face and bpp
                but with > 10,000 characters if you see issues probably you
                need to enable it.

        config LV_USE_FONT_SUBPX
            bool "Enable subpixel rendering."

        config LV_FONT_SUBPX_BGR
            bool "Use BGR instead RGB for sub-pixel rendering."
            depends on LV_USE_FONT_SUBPX
            help
                Set the pixel order of the display.
                Important only if "subpx fonts" are used.
                With "normal" font it doesn't matter.

        menu "Enable built-in fonts"
            config LV_FONT_MONTSERRAT_8
                bool "Enable Montserrat 8"
            config LV_FONT_MONTSERRAT_10
                bool "Enable Montserrat 10"
            config LV_FONT_MONTSERRAT_12
                bool "Enable Montserrat 12"
            config LV_FONT_MONTSERRAT_14
                bool "Enable Montserrat 14"
                default y if !LV_CONF_MINIMAL
            config LV_FONT_MONTSERRAT_16
                bool "Enable Montserrat 16"
            config LV_FONT_MONTSERRAT_18
                bool "Enable Montserrat 18"
            config LV_FONT_MONTSERRAT_20
                bool "Enable Montserrat 20"
            config LV_FONT_MONTSERRAT_22
                bool "Enable Montserrat 22"
            config LV_FONT_MONTSERRAT_24
                bool "Enable Montserrat 24"
            config LV_FONT_MONTSERRAT_26
                bool "Enable Montserrat 26"
            config LV_FONT_MONTSERRAT_28
                bool "Enable Montserrat 28"
            config LV_FONT_MONTSERRAT_30
                bool "Enable Montserrat 30"
            config LV_FONT_MONTSERRAT_32
                bool "Enable Montserrat 32"
            config LV_FONT_MONTSERRAT_34
                bool "Enable Montserrat 34"
            config LV_FONT_MONTSERRAT_36
                bool "Enable Montserrat 36"
            config LV_FONT_MONTSERRAT_38
                bool "Enable Montserrat 38"
            config LV_FONT_MONTSERRAT_40
                bool "Enable Montserrat 40"
            config LV_FONT_MONTSERRAT_42
                bool "Enable Montserrat 42"
            config LV_FONT_MONTSERRAT_44
                bool "Enable Montserrat 44"
            config LV_FONT_MONTSERRAT_46
                bool "Enable Montserrat 46"
            config LV_FONT_MONTSERRAT_48
                bool "Enable Montserrat 48"
            config LV_FONT_UNSCII_8
                bool "Enable UNSCII 8 (Perfect monospace font)"
                default y if LV_CONF_MINIMAL
            config LV_FONT_UNSCII_16
                bool "Enable UNSCII 16 (Perfect monospace font)"
            config LV_FONT_MONTSERRAT12SUBPX
                bool "Enable Montserrat 12 sub-pixel"
            config LV_FONT_MONTSERRAT28COMPRESSED
                bool "Enable Montserrat 28 compressed"
            config LV_FONT_DEJAVU_16_PERSIAN_HEBREW
                bool "Enable Dejavu 16 Persian, Hebrew, Arabic letters"
            config LV_FONT_SIMSUN_16_CJK
                bool "Enable Simsun 16 CJK"
        endmenu

        choice LV_FONT_DEFAULT_SMALL
            prompt "Select theme default small font"
            default LV_FONT_DEFAULT_SMALL_MONTSERRAT_16 if !LV_CONF_MINIMAL
            default LV_FONT_DEFAULT_SMALL_UNSCII_8 if LV_CONF_MINIMAL
            help
                Select theme default small font

            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_8
                bool "Montserrat 8"
                select LV_FONT_MONTSERRAT_8
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_10
                bool "Montserrat 10"
                select LV_FONT_MONTSERRAT_10
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_12
                bool "Montserrat 12"
                select LV_FONT_MONTSERRAT_12
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_14
                bool "Montserrat 14"
                select LV_FONT_MONTSERRAT_14
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_16
                bool "Montserrat 16"
                select LV_FONT_MONTSERRAT_16
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_18
                bool "Montserrat 18"
                select LV_FONT_MONTSERRAT_18
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_20
                bool "Montserrat 20"
                select LV_FONT_MONTSERRAT_20
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_22
                bool "Montserrat 22"
                select LV_FONT_MONTSERRAT_22
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_24
                bool "Montserrat 24"
                select LV_FONT_MONTSERRAT_24
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_26
                bool "Montserrat 26"
                select LV_FONT_MONTSERRAT_26
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_28
                bool "Montserrat 28"
                select LV_FONT_MONTSERRAT_28
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_30
                bool "Montserrat 30"
                select LV_FONT_MONTSERRAT_30
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_32
                bool "Montserrat 32"
                select LV_FONT_MONTSERRAT_32
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_34
                bool "Montserrat 34"
                select LV_FONT_MONTSERRAT_34
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_36
                bool "Montserrat 36"
                select LV_FONT_MONTSERRAT_36
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_38
                bool "Montserrat 38"
                select LV_FONT_MONTSERRAT_38
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_40
                bool "Montserrat 40"
                select LV_FONT_MONTSERRAT_40
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_42
                bool "Montserrat 42"
                select LV_FONT_MONTSERRAT_42
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_44
                bool "Montserrat 44"
                select LV_FONT_MONTSERRAT_44
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_46
                bool "Montserrat 46"
                select LV_FONT_MONTSERRAT_46
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT_48
                bool "Montserrat 48"
                select LV_FONT_MONTSERRAT_48
            config LV_FONT_DEFAULT_SMALL_UNSCII_8
                bool "UNSCII 8 (Perfect monospace font)"
                select LV_FONT_UNSCII_8
            config LV_FONT_DEFAULT_SMALL_UNSCII_16
                bool "UNSCII 16 (Perfect monospace font)"
                select LV_FONT_UNSCII_16
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT12SUBPX
                bool "Montserrat 12 sub-pixel"
                select LV_FONT_MONTSERRAT12SUBPX
            config LV_FONT_DEFAULT_SMALL_MONTSERRAT28COMPRESSED
                bool "Montserrat 28 compressed"
                select LV_FONT_MONTSERRAT28COMPRESSED
            config LV_FONT_DEFAULT_SMALL_DEJAVU_16_PERSIAN_HEBREW
                bool "Dejavu 16 Persian, Hebrew, Arabic letters"
                select LV_FONT_DEJAVU_16_PERSIAN_HEBREW
            config LV_FONT_DEFAULT_SMALL_SIMSUN_16_CJK
                bool "Simsun 16 CJK"
                select LV_FONT_SIMSUN_16_CJK
        endchoice

        choice LV_FONT_DEFAULT_NORMAL
            prompt "Select theme default normal font"
            default LV_FONT_DEFAULT_NORMAL_MONTSERRAT_16 if !LV_CONF_MINIMAL
            default LV_FONT_DEFAULT_NORMAL_UNSCII_8 if LV_CONF_MINIMAL
            help
                Select theme default normal font

            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_8
                bool "Montserrat 8"
                select LV_FONT_MONTSERRAT_8
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_10
                bool "Montserrat 10"
                select LV_FONT_MONTSERRAT_10
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_12
                bool "Montserrat 12"
                select LV_FONT_MONTSERRAT_12
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_14
                bool "Montserrat 14"
                select LV_FONT_MONTSERRAT_14
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_16
                bool "Montserrat 16"
                select LV_FONT_MONTSERRAT_16
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_18
                bool "Montserrat 18"
                select LV_FONT_MONTSERRAT_18
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_20
                bool "Montserrat 20"
                select LV_FONT_MONTSERRAT_20
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_22
                bool "Montserrat 22"
                select LV_FONT_MONTSERRAT_22
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_24
                bool "Montserrat 24"
                select LV_FONT_MONTSERRAT_24
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_26
                bool "Montserrat 26"
                select LV_FONT_MONTSERRAT_26
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_28
                bool "Montserrat 28"
                select LV_FONT_MONTSERRAT_28
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_30
                bool "Montserrat 30"
                select LV_FONT_MONTSERRAT_30
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_32
                bool "Montserrat 32"
                select LV_FONT_MONTSERRAT_32
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_34
                bool "Montserrat 34"
                select LV_FONT_MONTSERRAT_34
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_36
                bool "Montserrat 36"
                select LV_FONT_MONTSERRAT_36
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_38
                bool "Montserrat 38"
                select LV_FONT_MONTSERRAT_38
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_40
                bool "Montserrat 40"
                select LV_FONT_MONTSERRAT_40
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_42
                bool "Montserrat 42"
                select LV_FONT_MONTSERRAT_42
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_44
                bool "Montserrat 44"
                select LV_FONT_MONTSERRAT_44
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_46
                bool "Montserrat 46"
                select LV_FONT_MONTSERRAT_46
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT_48
                bool "Montserrat 48"
                select LV_FONT_MONTSERRAT_48
            config LV_FONT_DEFAULT_NORMAL_UNSCII_8
                bool "UNSCII 8 (Perfect monospace font)"
                select LV_FONT_UNSCII_8
            config LV_FONT_DEFAULT_NORMAL_UNSCII_16
                bool "UNSCII 16 (Perfect monospace font)"
                select LV_FONT_UNSCII_16
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT12SUBPX
                bool "Montserrat 12 sub-pixel"
                select LV_FONT_MONTSERRAT12SUBPX
            config LV_FONT_DEFAULT_NORMAL_MONTSERRAT28COMPRESSED
                bool "Montserrat 28 compressed"
                select LV_FONT_MONTSERRAT28COMPRESSED
            config LV_FONT_DEFAULT_NORMAL_DEJAVU_16_PERSIAN_HEBREW
                bool "Dejavu 16 Persian, Hebrew, Arabic letters"
                select LV_FONT_DEJAVU_16_PERSIAN_HEBREW
            config LV_FONT_DEFAULT_NORMAL_SIMSUN_16_CJK
                bool "Simsun 16 CJK"
                select LV_FONT_SIMSUN_16_CJK
        endchoice

        choice LV_FONT_DEFAULT_SUBTITLE
            prompt "Select theme default subtitle font"
            default LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_16 if !LV_CONF_MINIMAL
            default LV_FONT_DEFAULT_SUBTITLE_UNSCII_8 if LV_CONF_MINIMAL
            help
                Select theme default subtitle font

            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_8
                bool "Montserrat 8"
                select LV_FONT_MONTSERRAT_8
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_10
                bool "Montserrat 10"
                select LV_FONT_MONTSERRAT_10
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_12
                bool "Montserrat 12"
                select LV_FONT_MONTSERRAT_12
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_14
                bool "Montserrat 14"
                select LV_FONT_MONTSERRAT_14
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_16
                bool "Montserrat 16"
                select LV_FONT_MONTSERRAT_16
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_18
                bool "Montserrat 18"
                select LV_FONT_MONTSERRAT_18
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_20
                bool "Montserrat 20"
                select LV_FONT_MONTSERRAT_20
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_22
                bool "Montserrat 22"
                select LV_FONT_MONTSERRAT_22
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_24
                bool "Montserrat 24"
                select LV_FONT_MONTSERRAT_24
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_26
                bool "Montserrat 26"
                select LV_FONT_MONTSERRAT_26
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_28
                bool "Montserrat 28"
                select LV_FONT_MONTSERRAT_28
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_30
                bool "Montserrat 30"
                select LV_FONT_MONTSERRAT_30
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_32
                bool "Montserrat 32"
                select LV_FONT_MONTSERRAT_32
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_34
                bool "Montserrat 34"
                select LV_FONT_MONTSERRAT_34
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_36
                bool "Montserrat 36"
                select LV_FONT_MONTSERRAT_36
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_38
                bool "Montserrat 38"
                select LV_FONT_MONTSERRAT_38
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_40
                bool "Montserrat 40"
                select LV_FONT_MONTSERRAT_40
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_42
                bool "Montserrat 42"
                select LV_FONT_MONTSERRAT_42
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_44
                bool "Montserrat 44"
                select LV_FONT_MONTSERRAT_44
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_46
                bool "Montserrat 46"
                select LV_FONT_MONTSERRAT_46
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_48
                bool "Montserrat 48"
                select LV_FONT_MONTSERRAT_48
            config LV_FONT_DEFAULT_SUBTITLE_UNSCII_8
                bool "UNSCII 8 (Perfect monospace font)"
                select LV_FONT_UNSCII_8
            config LV_FONT_DEFAULT_SUBTITLE_UNSCII_16
                bool "UNSCII 16 (Perfect monospace font)"
                select LV_FONT_UNSCII_16
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT12SUBPX
                bool "Montserrat 12 sub-pixel"
                select LV_FONT_MONTSERRAT12SUBPX
            config LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT28COMPRESSED
                bool "Montserrat 28 compressed"
                select LV_FONT_MONTSERRAT28COMPRESSED
            config LV_FONT_DEFAULT_SUBTITLE_DEJAVU_16_PERSIAN_HEBREW
                bool "Dejavu 16 Persian, Hebrew, Arabic letters"
                select LV_FONT_DEJAVU_16_PERSIAN_HEBREW
            config LV_FONT_DEFAULT_SUBTITLE_SIMSUN_16_CJK
                bool "Simsun 16 CJK"
                select LV_FONT_SIMSUN_16_CJK
        endchoice

        choice LV_FONT_DEFAULT_TITLE
            prompt "Select theme default title font"
            default LV_FONT_DEFAULT_TITLE_MONTSERRAT_16 if !LV_CONF_MINIMAL
            default LV_FONT_DEFAULT_TITLE_UNSCII_8 if LV_CONF_MINIMAL
            help
                Select theme default title font

            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_8
                bool "Montserrat 8"
                select LV_FONT_MONTSERRAT_8
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_12
                bool "Montserrat 12"
                select LV_FONT_MONTSERRAT_12
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_14
                bool "Montserrat 14"
                select LV_FONT_MONTSERRAT_14
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_16
                bool "Montserrat 16"
                select LV_FONT_MONTSERRAT_16
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_18
                bool "Montserrat 18"
                select LV_FONT_MONTSERRAT_18
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_20
                bool "Montserrat 20"
                select LV_FONT_MONTSERRAT_20
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_22
                bool "Montserrat 22"
                select LV_FONT_MONTSERRAT_22
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_24
                bool "Montserrat 24"
                select LV_FONT_MONTSERRAT_24
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_26
                bool "Montserrat 26"
                select LV_FONT_MONTSERRAT_26
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_28
                bool "Montserrat 28"
                select LV_FONT_MONTSERRAT_28
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_30
                bool "Montserrat 30"
                select LV_FONT_MONTSERRAT_30
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_32
                bool "Montserrat 32"
                select LV_FONT_MONTSERRAT_32
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_34
                bool "Montserrat 34"
                select LV_FONT_MONTSERRAT_34
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_36
                bool "Montserrat 36"
                select LV_FONT_MONTSERRAT_36
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_38
                bool "Montserrat 38"
                select LV_FONT_MONTSERRAT_38
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_40
                bool "Montserrat 40"
                select LV_FONT_MONTSERRAT_40
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_42
                bool "Montserrat 42"
                select LV_FONT_MONTSERRAT_42
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_44
                bool "Montserrat 44"
                select LV_FONT_MONTSERRAT_44
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_46
                bool "Montserrat 46"
                select LV_FONT_MONTSERRAT_46
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT_48
                bool "Montserrat 48"
                select LV_FONT_MONTSERRAT_48
            config LV_FONT_DEFAULT_TITLE_UNSCII_8
                bool "UNSCII 8 (Perfect monospace font)"
                select LV_FONT_UNSCII_8
            config LV_FONT_DEFAULT_TITLE_UNSCII_16
                bool "UNSCII 16 (Perfect monospace font)"
                select LV_FONT_UNSCII_16
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT12SUBPX
                bool "Montserrat 12 sub-pixel"
                select LV_FONT_MONTSERRAT12SUBPX
            config LV_FONT_DEFAULT_TITLE_MONTSERRAT28COMPRESSED
                bool "Montserrat 28 compressed"
                select LV_FONT_MONTSERRAT28COMPRESSED
            config LV_FONT_DEFAULT_TITLE_DEJAVU_16_PERSIAN_HEBREW
                bool "Dejavu 16 Persian, Hebrew, Arabic letters"
                select LV_FONT_DEJAVU_16_PERSIAN_HEBREW
            config LV_FONT_DEFAULT_TITLE_SIMSUN_16_CJK
                bool "Simsun 16 CJK"
                select LV_FONT_SIMSUN_16_CJK
        endchoice
    endmenu

    menu "Theme usage"
    menu "Enable theme usage, always enable at least one theme"
            config LV_THEME_EMPTY
                bool "Empty: No theme, you can apply your styles as you need."
                default y if LV_CONF_MINIMAL
            config LV_THEME_TEMPLATE
                bool "Template: Simple to create your theme based on it."
            config LV_THEME_MATERIAL
                bool "Material: A fast and impressive theme."
                default y if !LV_CONF_MINIMAL
            config LV_THEME_MONO
                bool "Mono: Mono-color theme for monochrome displays"
    endmenu

        choice LV_THEME_DEFAULT_INIT
            prompt "Select theme default init"
            default LV_THEME_DEFAULT_INIT_MATERIAL if !LV_CONF_MINIMAL
            default LV_THEME_DEFAULT_INIT_EMPTY if LV_CONF_MINIMAL
            help
                Select theme default init

            config LV_THEME_DEFAULT_INIT_EMPTY
                bool "Default init for empty theme"
                select LV_THEME_EMPTY
            config LV_THEME_DEFAULT_INIT_TEMPLATE
                bool "Default init for template theme"
                select LV_THEME_TEMPLATE
            config LV_THEME_DEFAULT_INIT_MATERIAL
                bool "Default init for material theme"
                select LV_THEME_MATERIAL
            config LV_THEME_DEFAULT_INIT_MONO
                bool "Default init for mono theme"
                select LV_THEME_MONO
        endchoice

        config LV_THEME_DEFAULT_COLOR_PRIMARY
            hex "Select theme default primary color"
            range 0x000000 0xFFFFFF
            default 0xFF0000 if !LV_THEME_DEFAULT_INIT_MONO
            default 0x000000 if LV_THEME_DEFAULT_INIT_MONO
            help
                See lv_misc/lv_color.h for some color values examples.
                When using LV_THEME_MONO the suggested values to use are
                0x000000 (LV_COLOR_BLACK) or 0xFFFFFF (LV_COLOR_WHITE).
                If LV_THEME_DEFAULT_COLOR_PRIMARY is 0x000000 (LV_COLOR_BLACK)
                the texts and borders will be black and the background will be
                white, otherwise the colors are inverted.

        config LV_THEME_DEFAULT_COLOR_SECONDARY
            hex "Select theme default secondary color"
            range 0x000000 0xFFFFFF
            default 0x0000FF if !LV_THEME_DEFAULT_INIT_MONO
            default 0xFFFFFF if LV_THEME_DEFAULT_INIT_MONO
            help
                See lv_misc/lv_color.h for some color values examples.
                When using LV_THEME_MONO the suggested values to use are
                0x000000 (LV_COLOR_BLACK) or 0xFFFFFF (LV_COLOR_WHITE).
                If LV_THEME_DEFAULT_COLOR_PRIMARY is 0x000000 (LV_COLOR_BLACK)
                the texts and borders will be black and the background will be
                white, otherwise the colors are inverted.

        choice LV_THEME_DEFAULT_FLAG
            depends on LV_THEME_MATERIAL

            prompt "Select theme default flag"
            default LV_THEME_DEFAULT_FLAG_LIGHT
            help
                Select theme default flag

            config LV_THEME_DEFAULT_FLAG_LIGHT
                bool "Light theme"
            config LV_THEME_DEFAULT_FLAG_DARK
                bool "Dark theme"
        endchoice

    endmenu

    menu "Text Settings"
        choice LV_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 LV_TXT_ENC_UTF8 if !LV_CONF_MINIMAL
            default LV_TXT_ENC_ASCII if LV_CONF_MINIMAL

            config LV_TXT_ENC_UTF8
                bool "UTF8"
            config LV_TXT_ENC_ASCII
                bool "ASCII"
        endchoice

        config LV_TXT_BREAK_CHARS
            string "Can break (wrap) texts on these chars"
            default " ,.;:-_"

        config LV_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 LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN
            int "Min num chars before break"
            default 3
            depends on LV_TXT_LINE_BREAK_LONG_LEN > 0
            help
                Minimum number of characters in a long word to put on a line before a break.

        config LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN
            int "Min num chars after break"
            default 3
            depends on LV_TXT_LINE_BREAK_LONG_LEN > 0
            help
                Minimum number of characters in a long word to put on a line after a break.

        config LV_TXT_COLOR_CMD
            string "The control character to use for signalling text recoloring"
            default "#"

        config LV_USE_BIDI
            bool "Support bidirectional texts"
            help
                Allows mixing Left-to-Right and Right-to-Left texts.
                The direction will be processed according to the Unicode Bidirectional Algorithm:
                https://www.w3.org/International/articles/inline-bidi-markup/uba-basics

        choice
            prompt "Set the default BIDI direction"
            default LV_BIDI_DIR_AUTO
            depends on LV_USE_BIDI

            config LV_BIDI_DIR_LTR
                bool "Left-to-Right"
            config LV_BIDI_DIR_RTL
                bool "Right-to-Left"
            config LV_BIDI_DIR_AUTO
                bool "Detect texts base direction"
        endchoice

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

        config LV_SPRINTF_CUSTOM
        bool "Change the built-in (v)snprintf functions"

        config LV_SPRINTF_DISABLE_FLOAT
            bool "Disable float in built-in (v)snprintf functions" if !LV_SPRINTF_CUSTOM
    endmenu

    menu "Widgets"
        config LV_USE_OBJ_REALIGN
            bool "Enable `lv_obj_realign()` based on `lv_obj_align()` parameters."
            default y if !LV_CONF_MINIMAL

        choice
            prompt "Enable to make the object clickable on a larger area."
            default LV_USE_EXT_CLICK_AREA_TINY

            config LV_USE_EXT_CLICK_AREA_OFF
                bool "Disable this feature."
            config LV_USE_EXT_CLICK_AREA_TINY
                bool "The extra area can be adjusted horizontally and vertically (0..255px)."
            config LV_USE_EXT_CLICK_AREA_FULL
                bool "The extra area can be adjusted in all 4 directions (-32k..+32k px)."
        endchoice

        config LV_USE_ARC
            bool "Arc."
            default y if !LV_CONF_MINIMAL
        config LV_USE_BAR
            bool "Bar."
            default y if !LV_CONF_MINIMAL
       config LV_USE_BTN
           bool "Button. Dependencies: lv_cont."
           select LV_USE_CONT
           default y if !LV_CONF_MINIMAL
       config LV_USE_BTNMATRIX
           bool "Button matrix."
           default y if !LV_CONF_MINIMAL
       config LV_USE_CALENDAR
           bool "Calendar."
           default y if !LV_CONF_MINIMAL
       config LV_CALENDAR_WEEK_STARTS_MONDAY
           bool "Calendar week starts monday."
           depends on LV_USE_CALENDAR
       config LV_USE_CANVAS
           bool "Canvas. Dependencies: lv_img."
           select LV_USE_IMG
           default y if !LV_CONF_MINIMAL
       config LV_USE_CHECKBOX
           bool "Check Box. Dependencies: lv_btn, lv_label."
           select LV_USE_BTN
           select LV_USE_LABEL
           default y if !LV_CONF_MINIMAL
       config LV_USE_CHART
           bool "Chart."
           default y if !LV_CONF_MINIMAL
       config LV_CHART_AXIS_TICK_MAX_LEN
           int "Chart axis tick label max len."
           depends on LV_USE_CHART
           default 256
       config LV_USE_CONT
           bool "Container."
           default y if !LV_CONF_MINIMAL
       config LV_USE_CPICKER
           bool "Color picker."
           default y if !LV_CONF_MINIMAL
       config LV_USE_DROPDOWN
           bool "Drop down list. Dependencies: lv_page, lv_label, lv_symbol_def.h."
           select LV_USE_PAGE
           select LV_USE_LABEL
           default y if !LV_CONF_MINIMAL
       config LV_DROPDOWN_DEF_ANIM_TIME
           int "Drop down animation time. 0: no animation."
           depends on LV_USE_DROPDOWN
           default 200
       config LV_USE_GAUGE
           bool "Gauge. Dependencies: lv_bar, lv_linemeter."
           select LV_USE_BAR
           select LV_USE_LINEMETER
           default y if !LV_CONF_MINIMAL
       config LV_USE_IMG
           bool "Image. Dependencies: lv_label."
           select LV_USE_LABEL
           default y if !LV_CONF_MINIMAL
       config LV_USE_IMGBTN
           bool "Image button. Dependencies: lv_btn."
           select LV_USE_BTN
           default y if !LV_CONF_MINIMAL
       config LV_IMGBTN_TILED
           bool "Use imgbtn tiled."
           depends on LV_USE_IMGBTN
       config LV_USE_KEYBOARD
           bool "Keyboard. Dependencies: lv_btnm."
           select LV_USE_BTNM
           default y if !LV_CONF_MINIMAL
       config LV_USE_LABEL
           bool "Label."
           default y if !LV_CONF_MINIMAL
       config LV_LABEL_DEF_SCROLL_SPEED
           int "Hor. or ver. scroll speed [px/sec] in LV_LABEL_LONG_ROLL/ROLL_CIRC mode."
           default 25
           depends on LV_USE_LABEL
       config LV_LABEL_WAIT_CHAR_COUNT
           int "Waiting period at beginning/end of animation cycle."
           default 3
           depends on LV_USE_LABEL
       config LV_LABEL_TEXT_SEL
           bool "Enable selecting text of the label."
           depends on LV_USE_LABEL
       config LV_LABEL_LONG_TXT_HINT
           bool "Store extra some info in labels (12 bytes) to speed up drawing of very long texts."
           depends on LV_USE_LABEL
       config LV_USE_LED
           bool "LED."
           default y if !LV_CONF_MINIMAL
       config LV_LED_BRIGHT_MIN
           int "LED minimal brightness."
           range 0 255
           default 120
           depends on LV_USE_LED
       config LV_LED_BRIGHT_MAX
           int "LED maximal brightness."
           range 0 255
           default 255
           depends on LV_USE_LED
       config LV_USE_LINE
           bool "Line."
           default y if !LV_CONF_MINIMAL
       config LV_USE_LIST
           bool "List. Dependencies: lv_page, lv_btn, lv_label, lv_img."
           select LV_USE_PAGE
           select LV_USE_BTN
           select LV_USE_LABEL
           select LV_USE_IMG
           default y if !LV_CONF_MINIMAL
       config LV_LIST_DEF_ANIM_TIME
           int "List default animation time of focusing to a list element [ms]. 0: no animation."
           default 100
           depends on LV_USE_LIST
       config LV_USE_LINEMETER
           bool "Line meter."
           default y if !LV_CONF_MINIMAL
       choice
           prompt "Draw line more precisely at cost of performance."
           default LV_LINEMETER_PRECISE_NO_EXTRA_PRECISION
           depends on LV_USE_LINEMETER
           config LV_LINEMETER_PRECISE_NO_EXTRA_PRECISION
               bool "0: No extra precision."
           config LV_LINEMETER_PRECISE_SOME_EXTRA_PRECISION
               bool "1: Some extra precision."
           config LV_LINEMETER_PRECISE_BEST_PRECISION
               bool "2: Best precision."
       endchoice
       config LV_USE_OBJMASK
           bool "Mask."
           default y if !LV_CONF_MINIMAL
       config LV_USE_MSGBOX
           bool "Message box. Dependencies: lv_rect, lv_btnm, lv_label."
           select LV_USE_RECT
           select LV_USE_BTNM
           select LV_USE_LABEL
           default y if !LV_CONF_MINIMAL
       config LV_USE_PAGE
           bool "Page. Dependencies: lv_cont."
           select LV_USE_CONT
           default y if !LV_CONF_MINIMAL
       config LV_PAGE_DEF_ANIM_TIME
           int "Focus default animation time [ms]. 0: No animation."
           default 100
           depends on LV_USE_PAGE
       config LV_USE_SPINNER
           bool "Spinner. Dependencies: lv_arc, lv_anim."
           select LV_USE_ARC
           select LV_USE_ANIM
           default y if !LV_CONF_MINIMAL
       config LV_SPINNER_DEF_ARC_LENGTH
           int "Spinner def. arc length [deg]."
           default 60
           depends on LV_USE_SPINNER
       config LV_SPINNER_DEF_SPIN_TIME
           int "Spinner def. spin time [ms]."
           default 1000
           depends on LV_USE_SPINNER
       choice
           prompt "Type of spinner (animation type)."
           default LV_SPINNER_TYPE_SPINNING_ARC
           depends on LV_USE_SPINNER
           config LV_SPINNER_TYPE_SPINNING_ARC
               bool "0: Spinner type spinning arc."
           config LV_SPINNER_TYPE_FILLSPIN_ARC
               bool "0: Spinner type fillspin arc."
           config LV_SPINNER_TYPE_CONSTANT_ARC
               bool "0: Spinner type constant arc."
       endchoice
       config LV_USE_ROLLER
           bool "Roller. Dependencies: lv_page."
           select LV_USE_PAGE
           default y if !LV_CONF_MINIMAL
       config LV_ROLLER_DEF_ANIM_TIME
           int "Focus animation time [ms]. 0: no animation."
           default 200
           depends on LV_USE_ROLLER
       config LV_ROLLER_INF_PAGES
           int "Number of extra 'pages' when the controller is infinite."
           default 7
           depends on LV_USE_ROLLER
       config LV_USE_SLIDER
           bool "Slider. Dependencies: lv_bar."
           select LV_USE_BAR
           default y if !LV_CONF_MINIMAL
       config LV_USE_SPINBOX
           bool "Spinbox. Dependencies: lv_ta."
           select LV_USE_TEXTAREA
           default y if !LV_CONF_MINIMAL
       config LV_USE_SWITCH
           bool "Switch. Dependencies: lv_slider."
           select LV_USE_SLIDER
           default y if !LV_CONF_MINIMAL
       config LV_USE_TEXTAREA
           bool "Text area. Dependencies: lv_label, lv_page."
           select LV_USE_LABEL
           select LV_USE_PAGE
           default y if !LV_CONF_MINIMAL
       config LV_TEXTAREA_DEF_CURSOR_BLINK_TIME
           int "Text area def. cursor blink time [ms]."
           default 400
           depends on LV_USE_TEXTAREA
       config LV_TEXTAREA_DEF_PWN_SHOW_TIME
           int "Text area def. pwn show time [ms]."
           default 1500
           depends on LV_USE_TEXTAREA
       config LV_USE_TABLE
           bool "Table. Dependencies: lv_label."
           select LV_USE_LABEL
           default y if !LV_CONF_MINIMAL
       config LV_TABLE_COL_MAX
           int "Table col max."
           default 12
           depends on LV_USE_TABLE
       config LV_TABLE_CELL_STYLE_CNT
           int "Table cell style count."
           default 4
           depends on LV_USE_TABLE
       config LV_USE_TABVIEW
           bool "Tab. Dependencies: lv_page, lv_btnm."
           select LV_USE_PAGE
           select LV_USE_BTNM
           default y if !LV_CONF_MINIMAL
       config LV_TABVIEW_DEF_ANIM_TIME
           int "Time of slide animation [ms]. 0: No animation."
           default 300
           depends on LV_USE_TABVIEW
       config LV_USE_TILEVIEW
           bool "Tileview. Dependencies: lv_page."
           select LV_USE_PAGE
           default y if !LV_CONF_MINIMAL
       config LV_TILEVIEW_DEF_ANIM_TIME
           int "Time of slide animation [ms]. 0: No animation."
           default 300
           depends on LV_USE_TILEVIEW
       config LV_USE_WIN
           bool "Window. Dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page."
           select LV_USE_CONT
           select LV_USE_BTN
           select LV_USE_LABEL
           select LV_USE_IMG
           select LV_USE_PAGE
           default y if !LV_CONF_MINIMAL
    endmenu

endmenu