L VD / Mbed OS DISCO-F746NG_MbedOs_LvGL_example

Dependencies:   BSP_DISCO_F746NG

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers lv_conf.h Source File

lv_conf.h

Go to the documentation of this file.
00001 /**
00002  * @file lv_conf.h
00003  * Configuration file for LVGL v7.1.0
00004  */
00005 
00006 /*
00007  * COPY THIS FILE AS `lv_conf.h` NEXT TO the `lvgl` FOLDER
00008  */
00009 
00010 #if 1 /*Set it to "1" to enable content*/
00011 
00012 #ifndef LV_CONF_H
00013 #define LV_CONF_H
00014 /* clang-format off */
00015 
00016 #include <stdint.h>
00017 
00018 /*====================
00019    Graphical settings
00020  *====================*/
00021 
00022 /* Maximal horizontal and vertical resolution to support by the library.*/
00023 #if defined(TARGET_DISCO_F746NG)
00024     #define LV_HOR_RES_MAX          (480)
00025     #define LV_VER_RES_MAX          (272)
00026 #elif defined(TARGET_DISCO_F469NI)
00027     #define LV_HOR_RES_MAX          (800)
00028     #define LV_VER_RES_MAX          (480)
00029 #else
00030 #  error Error: You have not set resolution for your board!
00031 #endif
00032 
00033 /* Color depth:
00034  * - 1:  1 byte per pixel
00035  * - 8:  RGB332
00036  * - 16: RGB565
00037  * - 32: ARGB8888
00038  */
00039 #define LV_COLOR_DEPTH     32
00040 
00041 /* Swap the 2 bytes of RGB565 color.
00042  * Useful if the display has a 8 bit interface (e.g. SPI)*/
00043 #define LV_COLOR_16_SWAP   0
00044 
00045 /* 1: Enable screen transparency.
00046  * Useful for OSD or other overlapping GUIs.
00047  * Requires `LV_COLOR_DEPTH = 32` colors and the screen's style should be modified: `style.body.opa = ...`*/
00048 #define LV_COLOR_SCREEN_TRANSP    0
00049 
00050 /*Images pixels with this color will not be drawn (with chroma keying)*/
00051 #define LV_COLOR_TRANSP    LV_COLOR_LIME         /*LV_COLOR_LIME: pure green*/
00052 
00053 /* Enable anti-aliasing (lines, and radiuses will be smoothed) */
00054 #define LV_ANTIALIAS        1
00055 
00056 /* Default display refresh period.
00057  * Can be changed in the display driver (`lv_disp_drv_t`).*/
00058 #define LV_DISP_DEF_REFR_PERIOD      30      /*[ms]*/
00059 
00060 /* Dot Per Inch: used to initialize default sizes.
00061  * E.g. a button with width = LV_DPI / 2 -> half inch wide
00062  * (Not so important, you can adjust it to modify default sizes and spaces)*/
00063 #define LV_DPI              100     /*[px]*/
00064 
00065 /* The the real width of the display changes some default values:
00066  * default object sizes, layout of examples, etc.
00067  * According to the width of the display (hor. res. / dpi)
00068  * the displays fall in 4 categories.
00069  * The 4th is extra large which has no upper limit so not listed here
00070  * The upper limit of the categories are set below in 0.1 inch unit.
00071  */
00072 #define LV_DISP_SMALL_LIMIT  30
00073 #define LV_DISP_MEDIUM_LIMIT 50
00074 #define LV_DISP_LARGE_LIMIT  70
00075 
00076 /* Type of coordinates. Should be `int16_t` (or `int32_t` for extreme cases) */
00077 typedef int16_t lv_coord_t;
00078 
00079 /*=========================
00080    Memory manager settings
00081  *=========================*/
00082 
00083 /* LittelvGL's internal memory manager's settings.
00084  * The graphical objects and other related data are stored here. */
00085 
00086 /* 1: use custom malloc/free, 0: use the built-in `lv_mem_alloc` and `lv_mem_free` */
00087 #define LV_MEM_CUSTOM      0
00088 #if LV_MEM_CUSTOM == 0
00089 /* Size of the memory used by `lv_mem_alloc` in bytes (>= 2kB)*/
00090 #  define LV_MEM_SIZE    (32U * 1024U)
00091 
00092 /* Complier prefix for a big array declaration */
00093 #  define LV_MEM_ATTR
00094 
00095 /* Set an address for the memory pool instead of allocating it as an array.
00096  * Can be in external SRAM too. */
00097 #  define LV_MEM_ADR          0
00098 
00099 /* Automatically defrag. on free. Defrag. means joining the adjacent free cells. */
00100 #  define LV_MEM_AUTO_DEFRAG  1
00101 #else       /*LV_MEM_CUSTOM*/
00102 #  define LV_MEM_CUSTOM_INCLUDE <stdlib.h>   /*Header for the dynamic memory function*/
00103 #  define LV_MEM_CUSTOM_ALLOC   malloc       /*Wrapper to malloc*/
00104 #  define LV_MEM_CUSTOM_FREE    free         /*Wrapper to free*/
00105 #endif     /*LV_MEM_CUSTOM*/
00106 
00107 /* Garbage Collector settings
00108  * Used if lvgl is binded to higher level language and the memory is managed by that language */
00109 #define LV_ENABLE_GC 0
00110 #if LV_ENABLE_GC != 0
00111 #  define LV_GC_INCLUDE "gc.h"                           /*Include Garbage Collector related things*/
00112 #  define LV_MEM_CUSTOM_REALLOC   your_realloc           /*Wrapper to realloc*/
00113 #  define LV_MEM_CUSTOM_GET_SIZE  your_mem_get_size      /*Wrapper to lv_mem_get_size*/
00114 #endif /* LV_ENABLE_GC */
00115 
00116 /*=======================
00117    Input device settings
00118  *=======================*/
00119 
00120 /* Input device default settings.
00121  * Can be changed in the Input device driver (`lv_indev_drv_t`)*/
00122 
00123 /* Input device read period in milliseconds */
00124 #define LV_INDEV_DEF_READ_PERIOD          30
00125 
00126 /* Drag threshold in pixels */
00127 #define LV_INDEV_DEF_DRAG_LIMIT           10
00128 
00129 /* Drag throw slow-down in [%]. Greater value -> faster slow-down */
00130 #define LV_INDEV_DEF_DRAG_THROW           10
00131 
00132 /* Long press time in milliseconds.
00133  * Time to send `LV_EVENT_LONG_PRESSSED`) */
00134 #define LV_INDEV_DEF_LONG_PRESS_TIME      400
00135 
00136 /* Repeated trigger period in long press [ms]
00137  * Time between `LV_EVENT_LONG_PRESSED_REPEAT */
00138 #define LV_INDEV_DEF_LONG_PRESS_REP_TIME  100
00139 
00140 
00141 /* Gesture threshold in pixels */
00142 #define LV_INDEV_DEF_GESTURE_LIMIT        50
00143 
00144 /* Gesture min velocity at release before swipe (pixels)*/
00145 #define LV_INDEV_DEF_GESTURE_MIN_VELOCITY 3
00146 
00147 /*==================
00148  * Feature usage
00149  *==================*/
00150 
00151 /*1: Enable the Animations */
00152 #define LV_USE_ANIMATION        1
00153 #if LV_USE_ANIMATION
00154 
00155 /*Declare the type of the user data of animations (can be e.g. `void *`, `int`, `struct`)*/
00156 typedef void * lv_anim_user_data_t;
00157 
00158 #endif
00159 
00160 /* 1: Enable shadow drawing*/
00161 #define LV_USE_SHADOW           1
00162 #if LV_USE_SHADOW
00163 /* Allow buffering some shadow calculation
00164  * LV_SHADOW_CACHE_SIZE is the max. shadow size to buffer,
00165  * where shadow size is `shadow_width + radius`
00166  * Caching has LV_SHADOW_CACHE_SIZE^2 RAM cost*/
00167 #define LV_SHADOW_CACHE_SIZE    0
00168 #endif
00169 
00170 /* 1: Use other blend modes than normal (`LV_BLEND_MODE_...`)*/
00171 #define LV_USE_BLEND_MODES      1
00172 
00173 /* 1: Use the `opa_scale` style property to set the opacity of an object and its children at once*/
00174 #define LV_USE_OPA_SCALE        1
00175 
00176 /* 1: Use image zoom and rotation*/
00177 #define LV_USE_IMG_TRANSFORM    1
00178 
00179 /* 1: Enable object groups (for keyboard/encoder navigation) */
00180 #define LV_USE_GROUP            1
00181 #if LV_USE_GROUP
00182 typedef void * lv_group_user_data_t;
00183 #endif  /*LV_USE_GROUP*/
00184 
00185 /* 1: Enable GPU interface*/
00186 #define LV_USE_GPU              1   /*Only enables `gpu_fill_cb` and `gpu_blend_cb` in the disp. drv- */
00187 #define LV_USE_GPU_STM32_DMA2D  0
00188 /*If enabling LV_USE_GPU_STM32_DMA2D, LV_GPU_DMA2D_CMSIS_INCLUDE must be defined to include path of CMSIS header of target processor
00189 e.g. "stm32f769xx.h" or "stm32f429xx.h" */
00190 #define LV_GPU_DMA2D_CMSIS_INCLUDE "mbed-os/targets/TARGET_STM/TARGET_STM32F7/STM32Cube_FW/CMSIS/stm32f746xx.h"
00191 
00192 
00193 /* 1: Enable file system (might be required for images */
00194 #define LV_USE_FILESYSTEM       1
00195 #if LV_USE_FILESYSTEM
00196 /*Declare the type of the user data of file system drivers (can be e.g. `void *`, `int`, `struct`)*/
00197 typedef void * lv_fs_drv_user_data_t;
00198 #endif
00199 
00200 /*1: Add a `user_data` to drivers and objects*/
00201 #define LV_USE_USER_DATA        0
00202 
00203 /*1: Show CPU usage and FPS count in the right bottom corner*/
00204 #define LV_USE_PERF_MONITOR     0
00205 
00206 /*1: Use the functions and types from the older API if possible */
00207 #define LV_USE_API_EXTENSION_V6  1
00208 #define LV_USE_API_EXTENSION_V7  1
00209 
00210 /*========================
00211  * Image decoder and cache
00212  *========================*/
00213 
00214 /* 1: Enable indexed (palette) images */
00215 #define LV_IMG_CF_INDEXED       1
00216 
00217 /* 1: Enable alpha indexed images */
00218 #define LV_IMG_CF_ALPHA         1
00219 
00220 /* Default image cache size. Image caching keeps the images opened.
00221  * If only the built-in image formats are used there is no real advantage of caching.
00222  * (I.e. no new image decoder is added)
00223  * With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images.
00224  * However the opened images might consume additional RAM.
00225  * LV_IMG_CACHE_DEF_SIZE must be >= 1 */
00226 #define LV_IMG_CACHE_DEF_SIZE       1
00227 
00228 /*Declare the type of the user data of image decoder (can be e.g. `void *`, `int`, `struct`)*/
00229 typedef void * lv_img_decoder_user_data_t;
00230 
00231 /*=====================
00232  *  Compiler settings
00233  *====================*/
00234 
00235 /* For big endian systems set to 1 */
00236 #define LV_BIG_ENDIAN_SYSTEM    0
00237 
00238 /* Define a custom attribute to `lv_tick_inc` function */
00239 #define LV_ATTRIBUTE_TICK_INC
00240 
00241 /* Define a custom attribute to `lv_task_handler` function */
00242 #define LV_ATTRIBUTE_TASK_HANDLER
00243 
00244 /* Define a custom attribute to `lv_disp_flush_ready` function */
00245 #define LV_ATTRIBUTE_FLUSH_READY
00246 
00247 /* With size optimization (-Os) the compiler might not align data to
00248  * 4 or 8 byte boundary. This alignment will be explicitly applied where needed.
00249  * E.g. __attribute__((aligned(4))) */
00250 #define LV_ATTRIBUTE_MEM_ALIGN
00251 
00252 /* Attribute to mark large constant arrays for example
00253  * font's bitmaps */
00254 #define LV_ATTRIBUTE_LARGE_CONST
00255 
00256 /* Prefix performance critical functions to place them into a faster memory (e.g RAM)
00257  * Uses 15-20 kB extra memory */
00258 #define LV_ATTRIBUTE_FAST_MEM
00259 
00260 /* Export integer constant to binding.
00261  * This macro is used with constants in the form of LV_<CONST> that
00262  * should also appear on lvgl binding API such as Micropython
00263  *
00264  * The default value just prevents a GCC warning.
00265  */
00266 #define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning
00267 
00268 /* Prefix variables that are used in GPU accelerated operations, often these need to be
00269  * placed in RAM sections that are DMA accessible */
00270 #define LV_ATTRIBUTE_DMA
00271 
00272 /*===================
00273  *  HAL settings
00274  *==================*/
00275 
00276 /* 1: use a custom tick source.
00277  * It removes the need to manually update the tick with `lv_tick_inc`) */
00278 #define LV_TICK_CUSTOM     0
00279 #if LV_TICK_CUSTOM == 1
00280 #define LV_TICK_CUSTOM_INCLUDE  "Arduino.h"         /*Header for the system time function*/
00281 #define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis())     /*Expression evaluating to current system time in ms*/
00282 #endif   /*LV_TICK_CUSTOM*/
00283 
00284 typedef void * lv_disp_drv_user_data_t;             /*Type of user data in the display driver*/
00285 typedef void * lv_indev_drv_user_data_t;            /*Type of user data in the input device driver*/
00286 
00287 /*================
00288  * Log settings
00289  *===============*/
00290 
00291 /*1: Enable the log module*/
00292 #define LV_USE_LOG      0
00293 #if LV_USE_LOG
00294 /* How important log should be added:
00295  * LV_LOG_LEVEL_TRACE       A lot of logs to give detailed information
00296  * LV_LOG_LEVEL_INFO        Log important events
00297  * LV_LOG_LEVEL_WARN        Log if something unwanted happened but didn't cause a problem
00298  * LV_LOG_LEVEL_ERROR       Only critical issue, when the system may fail
00299  * LV_LOG_LEVEL_NONE        Do not log anything
00300  */
00301 #  define LV_LOG_LEVEL    LV_LOG_LEVEL_WARN
00302 
00303 /* 1: Print the log with 'printf';
00304  * 0: user need to register a callback with `lv_log_register_print_cb`*/
00305 #  define LV_LOG_PRINTF   0
00306 #endif  /*LV_USE_LOG*/
00307 
00308 /*=================
00309  * Debug settings
00310  *================*/
00311 
00312 /* If Debug is enabled LittelvGL validates the parameters of the functions.
00313  * If an invalid parameter is found an error log message is printed and
00314  * the MCU halts at the error. (`LV_USE_LOG` should be enabled)
00315  * If you are debugging the MCU you can pause
00316  * the debugger to see exactly where  the issue is.
00317  *
00318  * The behavior of asserts can be overwritten by redefining them here.
00319  * E.g. #define LV_ASSERT_MEM(p)  <my_assert_code>
00320  */
00321 #define LV_USE_DEBUG        1
00322 #if LV_USE_DEBUG
00323 
00324 /*Check if the parameter is NULL. (Quite fast) */
00325 #define LV_USE_ASSERT_NULL      1
00326 
00327 /*Checks is the memory is successfully allocated or no. (Quite fast)*/
00328 #define LV_USE_ASSERT_MEM       1
00329 
00330 /*Check the integrity of `lv_mem` after critical operations. (Slow)*/
00331 #define LV_USE_ASSERT_MEM_INTEGRITY       0
00332 
00333 /* Check the strings.
00334  * Search for NULL, very long strings, invalid characters, and unnatural repetitions. (Slow)
00335  * If disabled `LV_USE_ASSERT_NULL` will be performed instead (if it's enabled) */
00336 #define LV_USE_ASSERT_STR       0
00337 
00338 /* Check NULL, the object's type and existence (e.g. not deleted). (Quite slow)
00339  * If disabled `LV_USE_ASSERT_NULL` will be performed instead (if it's enabled) */
00340 #define LV_USE_ASSERT_OBJ       0
00341 
00342 /*Check if the styles are properly initialized. (Fast)*/
00343 #define LV_USE_ASSERT_STYLE     0
00344 
00345 #endif /*LV_USE_DEBUG*/
00346 
00347 /*==================
00348  *    FONT USAGE
00349  *===================*/
00350 
00351 /* The built-in fonts contains the ASCII range and some Symbols with  4 bit-per-pixel.
00352  * The symbols are available via `LV_SYMBOL_...` defines
00353  * More info about fonts: https://docs.lvgl.io/v7/en/html/overview/font.html
00354  * To create a new font go to: https://lvgl.com/ttf-font-to-c-array
00355  */
00356 
00357 /* Montserrat fonts with bpp = 4
00358  * https://fonts.google.com/specimen/Montserrat  */
00359 #define LV_FONT_MONTSERRAT_12    0
00360 #define LV_FONT_MONTSERRAT_14    1
00361 #define LV_FONT_MONTSERRAT_16    0
00362 #define LV_FONT_MONTSERRAT_18    0
00363 #define LV_FONT_MONTSERRAT_20    0
00364 #define LV_FONT_MONTSERRAT_22    0
00365 #define LV_FONT_MONTSERRAT_24    0
00366 #define LV_FONT_MONTSERRAT_26    0
00367 #define LV_FONT_MONTSERRAT_28    0
00368 #define LV_FONT_MONTSERRAT_30    0
00369 #define LV_FONT_MONTSERRAT_32    0
00370 #define LV_FONT_MONTSERRAT_34    0
00371 #define LV_FONT_MONTSERRAT_36    0
00372 #define LV_FONT_MONTSERRAT_38    0
00373 #define LV_FONT_MONTSERRAT_40    0
00374 #define LV_FONT_MONTSERRAT_42    0
00375 #define LV_FONT_MONTSERRAT_44    0
00376 #define LV_FONT_MONTSERRAT_46    0
00377 #define LV_FONT_MONTSERRAT_48    0
00378 
00379 /* Demonstrate special features */
00380 #define LV_FONT_MONTSERRAT_12_SUBPX      0
00381 #define LV_FONT_MONTSERRAT_28_COMPRESSED 0  /*bpp = 3*/
00382 #define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0  /*Hebrew, Arabic, PErisan letters and all their forms*/
00383 #define LV_FONT_SIMSUN_16_CJK            0  /*1000 most common CJK radicals*/
00384 
00385 /*Pixel perfect monospace font
00386  * http://pelulamu.net/unscii/ */
00387 #define LV_FONT_UNSCII_8     0
00388 
00389 /* Optionally declare your custom fonts here.
00390  * You can use these fonts as default font too
00391  * and they will be available globally. E.g.
00392  * #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) \
00393  *                                LV_FONT_DECLARE(my_font_2)
00394  */
00395 #define LV_FONT_CUSTOM_DECLARE
00396 
00397 /* Enable it if you have fonts with a lot of characters.
00398  * The limit depends on the font size, font face and bpp
00399  * but with > 10,000 characters if you see issues probably you need to enable it.*/
00400 #define LV_FONT_FMT_TXT_LARGE   0
00401 
00402 /* Set the pixel order of the display.
00403  * Important only if "subpx fonts" are used.
00404  * With "normal" font it doesn't matter.
00405  */
00406 #define LV_FONT_SUBPX_BGR    0
00407 
00408 /*Declare the type of the user data of fonts (can be e.g. `void *`, `int`, `struct`)*/
00409 typedef void * lv_font_user_data_t;
00410 
00411 /*================
00412  *  THEME USAGE
00413  *================*/
00414 
00415 /*Always enable at least on theme*/
00416 
00417 /* No theme, you can apply your styles as you need
00418  * No flags. Set LV_THEME_DEFAULT_FLAG 0 */
00419  #define LV_USE_THEME_EMPTY       1
00420 
00421 /*Simple to the create your theme based on it
00422  * No flags. Set LV_THEME_DEFAULT_FLAG 0 */
00423  #define LV_USE_THEME_TEMPLATE    1
00424 
00425 /* A fast and impressive theme.
00426  * Flags:
00427  * LV_THEME_MATERIAL_FLAG_LIGHT: light theme
00428  * LV_THEME_MATERIAL_FLAG_DARK: dark theme*/
00429  #define LV_USE_THEME_MATERIAL    1
00430 
00431 /* Mono-color theme for monochrome displays.
00432  * If LV_THEME_DEFAULT_COLOR_PRIMARY is LV_COLOR_BLACK the
00433  * texts and borders will be black and the background will be
00434  * white. Else the colors are inverted.
00435  * No flags. Set LV_THEME_DEFAULT_FLAG 0 */
00436  #define LV_USE_THEME_MONO        1
00437 
00438 #define LV_THEME_DEFAULT_INCLUDE            <stdint.h>      /*Include a header for the init. function*/
00439 #define LV_THEME_DEFAULT_INIT               lv_theme_material_init
00440 #define LV_THEME_DEFAULT_COLOR_PRIMARY      lv_color_hex(0x01a2b1)
00441 #define LV_THEME_DEFAULT_COLOR_SECONDARY    lv_color_hex(0x44d1b6)
00442 #define LV_THEME_DEFAULT_FLAG               LV_THEME_MATERIAL_FLAG_LIGHT
00443 #define LV_THEME_DEFAULT_FONT_SMALL         &lv_font_montserrat_14
00444 #define LV_THEME_DEFAULT_FONT_NORMAL        &lv_font_montserrat_14
00445 #define LV_THEME_DEFAULT_FONT_SUBTITLE      &lv_font_montserrat_14
00446 #define LV_THEME_DEFAULT_FONT_TITLE         &lv_font_montserrat_14
00447 
00448 /*=================
00449  *  Text settings
00450  *=================*/
00451 
00452 /* Select a character encoding for strings.
00453  * Your IDE or editor should have the same character encoding
00454  * - LV_TXT_ENC_UTF8
00455  * - LV_TXT_ENC_ASCII
00456  * */
00457 #define LV_TXT_ENC LV_TXT_ENC_UTF8
00458 
00459  /*Can break (wrap) texts on these chars*/
00460 #define LV_TXT_BREAK_CHARS                  " ,.;:-_"
00461 
00462 /* If a word is at least this long, will break wherever "prettiest"
00463  * To disable, set to a value <= 0 */
00464 #define LV_TXT_LINE_BREAK_LONG_LEN          0
00465 
00466 /* Minimum number of characters in a long word to put on a line before a break.
00467  * Depends on LV_TXT_LINE_BREAK_LONG_LEN. */
00468 #define LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN  3
00469 
00470 /* Minimum number of characters in a long word to put on a line after a break.
00471  * Depends on LV_TXT_LINE_BREAK_LONG_LEN. */
00472 #define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN 3
00473 
00474 /* The control character to use for signalling text recoloring. */
00475 #define LV_TXT_COLOR_CMD "#"
00476 
00477 /* Support bidirectional texts.
00478  * Allows mixing Left-to-Right and Right-to-Left texts.
00479  * The direction will be processed according to the Unicode Bidirectioanl Algorithm:
00480  * https://www.w3.org/International/articles/inline-bidi-markup/uba-basics*/
00481 #define LV_USE_BIDI     0
00482 #if LV_USE_BIDI
00483 /* Set the default direction. Supported values:
00484  * `LV_BIDI_DIR_LTR` Left-to-Right
00485  * `LV_BIDI_DIR_RTL` Right-to-Left
00486  * `LV_BIDI_DIR_AUTO` detect texts base direction */
00487 #define LV_BIDI_BASE_DIR_DEF  LV_BIDI_DIR_AUTO
00488 #endif
00489 
00490 /* Enable Arabic/Persian processing
00491  * In these languages characters should be replaced with
00492  * an other form based on their position in the text */
00493 #define LV_USE_ARABIC_PERSIAN_CHARS 0
00494 
00495 /*Change the built in (v)snprintf functions*/
00496 #define LV_SPRINTF_CUSTOM   0
00497 #if LV_SPRINTF_CUSTOM
00498 #  define LV_SPRINTF_INCLUDE <stdio.h>
00499 #  define lv_snprintf     snprintf
00500 #  define lv_vsnprintf    vsnprintf
00501 #else   /*!LV_SPRINTF_CUSTOM*/
00502 #  define LV_SPRINTF_DISABLE_FLOAT 1
00503 #endif  /*LV_SPRINTF_CUSTOM*/
00504 
00505 /*===================
00506  *  LV_OBJ SETTINGS
00507  *==================*/
00508 
00509 #if LV_USE_USER_DATA
00510 /*Declare the type of the user data of object (can be e.g. `void *`, `int`, `struct`)*/
00511 typedef void * lv_obj_user_data_t;
00512 /*Provide a function to free user data*/
00513 #define LV_USE_USER_DATA_FREE 0
00514 #if LV_USE_USER_DATA_FREE
00515 #  define LV_USER_DATA_FREE_INCLUDE  "something.h"  /*Header for user data free function*/
00516 /* Function prototype : void user_data_free(lv_obj_t * obj); */
00517 #  define LV_USER_DATA_FREE  (user_data_free)       /*Invoking for user data free function*/
00518 #endif
00519 #endif
00520 
00521 /*1: enable `lv_obj_realign()` based on `lv_obj_align()` parameters*/
00522 #define LV_USE_OBJ_REALIGN          1
00523 
00524 /* Enable to make the object clickable on a larger area.
00525  * LV_EXT_CLICK_AREA_OFF or 0: Disable this feature
00526  * LV_EXT_CLICK_AREA_TINY: The extra area can be adjusted horizontally and vertically (0..255 px)
00527  * LV_EXT_CLICK_AREA_FULL: The extra area can be adjusted in all 4 directions (-32k..+32k px)
00528  */
00529 #define LV_USE_EXT_CLICK_AREA  LV_EXT_CLICK_AREA_OFF
00530 
00531 /*==================
00532  *  LV OBJ X USAGE
00533  *================*/
00534 /*
00535  * Documentation of the object types: https://docs.lvgl.com/#Object-types
00536  */
00537 
00538 /*Arc (dependencies: -)*/
00539 #define LV_USE_ARC      1
00540 
00541 /*Bar (dependencies: -)*/
00542 #define LV_USE_BAR      1
00543 
00544 /*Button (dependencies: lv_cont*/
00545 #define LV_USE_BTN      1
00546 
00547 /*Button matrix (dependencies: -)*/
00548 #define LV_USE_BTNMATRIX     1
00549 
00550 /*Calendar (dependencies: -)*/
00551 #define LV_USE_CALENDAR 1
00552 #if LV_USE_CALENDAR
00553 #  define LV_CALENDAR_WEEK_STARTS_MONDAY    0
00554 #endif
00555 
00556 /*Canvas (dependencies: lv_img)*/
00557 #define LV_USE_CANVAS   1
00558 
00559 /*Check box (dependencies: lv_btn, lv_label)*/
00560 #define LV_USE_CHECKBOX       1
00561 
00562 /*Chart (dependencies: -)*/
00563 #define LV_USE_CHART    1
00564 #if LV_USE_CHART
00565 #  define LV_CHART_AXIS_TICK_LABEL_MAX_LEN    256
00566 #endif
00567 
00568 /*Container (dependencies: -*/
00569 #define LV_USE_CONT     1
00570 
00571 /*Color picker (dependencies: -*/
00572 #define LV_USE_CPICKER   1
00573 
00574 /*Drop down list (dependencies: lv_page, lv_label, lv_symbol_def.h)*/
00575 #define LV_USE_DROPDOWN    1
00576 #if LV_USE_DROPDOWN != 0
00577 /*Open and close default animation time [ms] (0: no animation)*/
00578 #  define LV_DROPDOWN_DEF_ANIM_TIME     200
00579 #endif
00580 
00581 /*Gauge (dependencies:lv_bar, lv_linemeter)*/
00582 #define LV_USE_GAUGE    1
00583 
00584 /*Image (dependencies: lv_label*/
00585 #define LV_USE_IMG      1
00586 
00587 /*Image Button (dependencies: lv_btn*/
00588 #define LV_USE_IMGBTN   1
00589 #if LV_USE_IMGBTN
00590 /*1: The imgbtn requires left, mid and right parts and the width can be set freely*/
00591 #  define LV_IMGBTN_TILED 0
00592 #endif
00593 
00594 /*Keyboard (dependencies: lv_btnm)*/
00595 #define LV_USE_KEYBOARD       1
00596 
00597 /*Label (dependencies: -*/
00598 #define LV_USE_LABEL    1
00599 #if LV_USE_LABEL != 0
00600 /*Hor, or ver. scroll speed [px/sec] in 'LV_LABEL_LONG_ROLL/ROLL_CIRC' mode*/
00601 #  define LV_LABEL_DEF_SCROLL_SPEED       25
00602 
00603 /* Waiting period at beginning/end of animation cycle */
00604 #  define LV_LABEL_WAIT_CHAR_COUNT        3
00605 
00606 /*Enable selecting text of the label */
00607 #  define LV_LABEL_TEXT_SEL               0
00608 
00609 /*Store extra some info in labels (12 bytes) to speed up drawing of very long texts*/
00610 #  define LV_LABEL_LONG_TXT_HINT          0
00611 #endif
00612 
00613 /*LED (dependencies: -)*/
00614 #define LV_USE_LED      1
00615 #if LV_USE_LED
00616 #  define LV_LED_BRIGHT_MIN  120      /*Minimal brightness*/
00617 #  define LV_LED_BRIGHT_MAX  255     /*Maximal brightness*/
00618 #endif
00619 
00620 /*Line (dependencies: -*/
00621 #define LV_USE_LINE     1
00622 
00623 /*List (dependencies: lv_page, lv_btn, lv_label, (lv_img optionally for icons ))*/
00624 #define LV_USE_LIST     1
00625 #if LV_USE_LIST != 0
00626 /*Default animation time of focusing to a list element [ms] (0: no animation)  */
00627 #  define LV_LIST_DEF_ANIM_TIME  100
00628 #endif
00629 
00630 /*Line meter (dependencies: *;)*/
00631 #define LV_USE_LINEMETER   1
00632 #if LV_USE_LINEMETER
00633 /* Draw line more precisely at cost of performance.
00634  * Useful if there are lot of lines any minor are visible
00635  * 0: No extra precision
00636  * 1: Some extra precision
00637  * 2: Best precision
00638  */
00639 #  define LV_LINEMETER_PRECISE    0
00640 #endif
00641 
00642 /*Mask (dependencies: -)*/
00643 #define LV_USE_OBJMASK  1
00644 
00645 /*Message box (dependencies: lv_rect, lv_btnm, lv_label)*/
00646 #define LV_USE_MSGBOX     1
00647 
00648 /*Page (dependencies: lv_cont)*/
00649 #define LV_USE_PAGE     1
00650 #if LV_USE_PAGE != 0
00651 /*Focus default animation time [ms] (0: no animation)*/
00652 #  define LV_PAGE_DEF_ANIM_TIME     400
00653 #endif
00654 
00655 /*Preload (dependencies: lv_arc, lv_anim)*/
00656 #define LV_USE_SPINNER      1
00657 #if LV_USE_SPINNER != 0
00658 #  define LV_SPINNER_DEF_ARC_LENGTH   60      /*[deg]*/
00659 #  define LV_SPINNER_DEF_SPIN_TIME    1000    /*[ms]*/
00660 #  define LV_SPINNER_DEF_ANIM         LV_SPINNER_TYPE_SPINNING_ARC
00661 #endif
00662 
00663 /*Roller (dependencies: lv_ddlist)*/
00664 #define LV_USE_ROLLER    1
00665 #if LV_USE_ROLLER != 0
00666 /*Focus animation time [ms] (0: no animation)*/
00667 #  define LV_ROLLER_DEF_ANIM_TIME     200
00668 
00669 /*Number of extra "pages" when the roller is infinite*/
00670 #  define LV_ROLLER_INF_PAGES         7
00671 #endif
00672 
00673 /*Slider (dependencies: lv_bar)*/
00674 #define LV_USE_SLIDER    1
00675 
00676 /*Spinbox (dependencies: lv_ta)*/
00677 #define LV_USE_SPINBOX       1
00678 
00679 /*Switch (dependencies: lv_slider)*/
00680 #define LV_USE_SWITCH       1
00681 
00682 /*Text area (dependencies: lv_label, lv_page)*/
00683 #define LV_USE_TEXTAREA       1
00684 #if LV_USE_TEXTAREA != 0
00685 #  define LV_TEXTAREA_DEF_CURSOR_BLINK_TIME 400     /*ms*/
00686 #  define LV_TEXTAREA_DEF_PWD_SHOW_TIME     1500    /*ms*/
00687 #endif
00688 
00689 /*Table (dependencies: lv_label)*/
00690 #define LV_USE_TABLE    1
00691 #if LV_USE_TABLE
00692 #  define LV_TABLE_COL_MAX    12
00693 #endif
00694 
00695 /*Tab (dependencies: lv_page, lv_btnm)*/
00696 #define LV_USE_TABVIEW      1
00697 #  if LV_USE_TABVIEW != 0
00698 /*Time of slide animation [ms] (0: no animation)*/
00699 #  define LV_TABVIEW_DEF_ANIM_TIME    300
00700 #endif
00701 
00702 /*Tileview (dependencies: lv_page) */
00703 #define LV_USE_TILEVIEW     1
00704 #if LV_USE_TILEVIEW
00705 /*Time of slide animation [ms] (0: no animation)*/
00706 #  define LV_TILEVIEW_DEF_ANIM_TIME   300
00707 #endif
00708 
00709 /*Window (dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page)*/
00710 #define LV_USE_WIN      1
00711 
00712 /*==================
00713  * Non-user section
00714  *==================*/
00715 
00716 #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS)    /* Disable warnings for Visual Studio*/
00717 #  define _CRT_SECURE_NO_WARNINGS
00718 #endif
00719 
00720 /*--END OF LV_CONF_H--*/
00721 
00722 #endif /*LV_CONF_H*/
00723 
00724 #endif /*End of "Content enable"*/