Merge branch 'dev-5.3' of https://github.com/littlevgl/lvgl into dev-5.3
This commit is contained in:
584
lv_conf_checker.h
Normal file
584
lv_conf_checker.h
Normal file
@@ -0,0 +1,584 @@
|
|||||||
|
/**
|
||||||
|
* @file lv_conf_checker.h
|
||||||
|
* Make sure all the defines of lv_conf.h have a default value
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef LV_CONF_CHECKER_H
|
||||||
|
#define LV_CONF_CHECKER_H
|
||||||
|
|
||||||
|
/*===================
|
||||||
|
Dynamic memory
|
||||||
|
*===================*/
|
||||||
|
|
||||||
|
/* Memory size which will be used by the library
|
||||||
|
* to store the graphical objects and other data */
|
||||||
|
#ifndef LV_MEM_CUSTOM
|
||||||
|
#define LV_MEM_CUSTOM 0 /*1: use custom malloc/free, 0: use the built-in lv_mem_alloc/lv_mem_free*/
|
||||||
|
#endif
|
||||||
|
#if LV_MEM_CUSTOM == 0
|
||||||
|
#ifndef LV_MEM_SIZE
|
||||||
|
#define LV_MEM_SIZE (32U * 1024U) /*Size memory used by `lv_mem_alloc` in bytes (>= 2kB)*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_MEM_ATTR
|
||||||
|
#define LV_MEM_ATTR /*Complier prefix for big array declaration*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_MEM_AUTO_DEFRAG
|
||||||
|
#define LV_MEM_AUTO_DEFRAG 1 /*Automatically defrag on free*/
|
||||||
|
#endif
|
||||||
|
#else /*LV_MEM_CUSTOM*/
|
||||||
|
#ifndef LV_MEM_CUSTOM_INCLUDE
|
||||||
|
#define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_MEM_CUSTOM_ALLOC
|
||||||
|
#define LV_MEM_CUSTOM_ALLOC malloc /*Wrapper to malloc*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_MEM_CUSTOM_FREE
|
||||||
|
#define LV_MEM_CUSTOM_FREE free /*Wrapper to free*/
|
||||||
|
#endif
|
||||||
|
#endif /*LV_MEM_CUSTOM*/
|
||||||
|
|
||||||
|
/*===================
|
||||||
|
Graphical settings
|
||||||
|
*===================*/
|
||||||
|
|
||||||
|
/* Horizontal and vertical resolution of the library.*/
|
||||||
|
#ifndef LV_HOR_RES
|
||||||
|
#define LV_HOR_RES (320)
|
||||||
|
#endif
|
||||||
|
#ifndef LV_VER_RES
|
||||||
|
#define LV_VER_RES (240)
|
||||||
|
#endif
|
||||||
|
#ifndef LV_DPI
|
||||||
|
#define LV_DPI 100
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Size of VDB (Virtual Display Buffer: the internal graphics buffer).
|
||||||
|
* Required for buffered drawing, opacity and anti-aliasing
|
||||||
|
* VDB makes the double buffering, you don't need to deal with it!
|
||||||
|
* Typical size: ~1/10 screen */
|
||||||
|
#ifndef LV_VDB_SIZE
|
||||||
|
#define LV_VDB_SIZE (30 * LV_HOR_RES) /*Size of VDB in pixel count (1/10 screen size is good for first)*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_VDB_PX_BPP
|
||||||
|
#define LV_VDB_PX_BPP LV_COLOR_SIZE /*Bit-per-pixel of VDB. Useful for monochrome or non-standard color format displays. (Special formats are handled with `disp_drv->vdb_wr`)*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_VDB_ADR
|
||||||
|
#define LV_VDB_ADR 0 /*Place VDB to a specific address (e.g. in external RAM) (0: allocate automatically into RAM; LV_VDB_ADR_INV: to replace it later with `lv_vdb_set_adr()`)*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Use two Virtual Display buffers (VDB) parallelize rendering and flushing (optional)
|
||||||
|
* The flushing should use DMA to write the frame buffer in the background*/
|
||||||
|
#ifndef LV_VDB_DOUBLE
|
||||||
|
#define LV_VDB_DOUBLE 0 /*1: Enable the use of 2 VDBs*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_VDB2_ADR
|
||||||
|
#define LV_VDB2_ADR 0 /*Place VDB2 to a specific address (e.g. in external RAM) (0: allocate automatically into RAM; LV_VDB_ADR_INV: to replace it later with `lv_vdb_set_adr()`)*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Enable anti-aliasing (lines, and radiuses will be smoothed) */
|
||||||
|
#ifndef LV_ANTIALIAS
|
||||||
|
#define LV_ANTIALIAS 1 /*1: Enable anti-aliasing*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Screen refresh settings*/
|
||||||
|
#ifndef LV_REFR_PERIOD
|
||||||
|
#define LV_REFR_PERIOD 30 /*Screen refresh period in milliseconds*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_INV_FIFO_SIZE
|
||||||
|
#define LV_INV_FIFO_SIZE 32 /*The average count of objects on a screen */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*=================
|
||||||
|
Misc. setting
|
||||||
|
*=================*/
|
||||||
|
|
||||||
|
/*Input device settings*/
|
||||||
|
#ifndef LV_INDEV_READ_PERIOD
|
||||||
|
#define LV_INDEV_READ_PERIOD 50 /*Input device read period in milliseconds*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_INDEV_POINT_MARKER
|
||||||
|
#define LV_INDEV_POINT_MARKER 0 /*Mark the pressed points (required: USE_LV_REAL_DRAW = 1)*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_INDEV_DRAG_LIMIT
|
||||||
|
#define LV_INDEV_DRAG_LIMIT 10 /*Drag threshold in pixels */
|
||||||
|
#endif
|
||||||
|
#ifndef LV_INDEV_DRAG_THROW
|
||||||
|
#define LV_INDEV_DRAG_THROW 20 /*Drag throw slow-down in [%]. Greater value means faster slow-down */
|
||||||
|
#endif
|
||||||
|
#ifndef LV_INDEV_LONG_PRESS_TIME
|
||||||
|
#define LV_INDEV_LONG_PRESS_TIME 400 /*Long press time in milliseconds*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_INDEV_LONG_PRESS_REP_TIME
|
||||||
|
#define LV_INDEV_LONG_PRESS_REP_TIME 100 /*Repeated trigger period in long press [ms] */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Color settings*/
|
||||||
|
#ifndef LV_COLOR_DEPTH
|
||||||
|
#define LV_COLOR_DEPTH 16 /*Color depth: 1/8/16/32*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_COLOR_16_SWAP
|
||||||
|
#define LV_COLOR_16_SWAP 0 /*Swap the 2 bytes of RGB565 color. Useful if the display has a 8 bit interface (e.g. SPI)*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_COLOR_SCREEN_TRANSP
|
||||||
|
#define LV_COLOR_SCREEN_TRANSP 0 /*1: Enable screen transparency. Useful for OSD or other overlapping GUIs. Requires ARGB8888 colors*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_COLOR_TRANSP
|
||||||
|
#define LV_COLOR_TRANSP LV_COLOR_LIME /*Images pixels with this color will not be drawn (with chroma keying)*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Text settings*/
|
||||||
|
#ifndef LV_TXT_UTF8
|
||||||
|
#define LV_TXT_UTF8 1 /*Enable UTF-8 coded Unicode character usage */
|
||||||
|
#endif
|
||||||
|
#ifndef LV_TXT_BREAK_CHARS
|
||||||
|
#define LV_TXT_BREAK_CHARS " ,.;:-_" /*Can break texts on these chars*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Graphics feature usage*/
|
||||||
|
#ifndef USE_LV_ANIMATION
|
||||||
|
#define USE_LV_ANIMATION 1 /*1: Enable all animations*/
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_SHADOW
|
||||||
|
#define USE_LV_SHADOW 1 /*1: Enable shadows*/
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_GROUP
|
||||||
|
#define USE_LV_GROUP 1 /*1: Enable object groups (for keyboards)*/
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_GPU
|
||||||
|
#define USE_LV_GPU 1 /*1: Enable GPU interface*/
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_REAL_DRAW
|
||||||
|
#define USE_LV_REAL_DRAW 1 /*1: Enable function which draw directly to the frame buffer instead of VDB (required if LV_VDB_SIZE = 0)*/
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FILESYSTEM
|
||||||
|
#define USE_LV_FILESYSTEM 1 /*1: Enable file system (required by images*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Compiler settings*/
|
||||||
|
#ifndef LV_ATTRIBUTE_TICK_INC
|
||||||
|
#define LV_ATTRIBUTE_TICK_INC /* Define a custom attribute to `lv_tick_inc` function */
|
||||||
|
#endif
|
||||||
|
#ifndef LV_ATTRIBUTE_TASK_HANDLER
|
||||||
|
#define LV_ATTRIBUTE_TASK_HANDLER /* Define a custom attribute to `lv_task_handler` function */
|
||||||
|
#endif
|
||||||
|
#ifndef LV_ATTRIBUTE_FLUSH_READY
|
||||||
|
#define LV_ATTRIBUTE_FLUSH_READY /* Define a custom attribute to `lv_flush_ready` function */
|
||||||
|
#endif
|
||||||
|
#ifndef LV_COMPILER_VLA_SUPPORTED
|
||||||
|
#define LV_COMPILER_VLA_SUPPORTED 1 /* 1: Variable length array is supported*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_COMPILER_NON_CONST_INIT_SUPPORTED
|
||||||
|
#define LV_COMPILER_NON_CONST_INIT_SUPPORTED 1 /* 1: Initialization with non constant values are supported */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*HAL settings*/
|
||||||
|
#ifndef LV_TICK_CUSTOM
|
||||||
|
#define LV_TICK_CUSTOM 0 /*1: use a custom tick source (removing the need to manually update the tick with `lv_tick_inc`) */
|
||||||
|
#endif
|
||||||
|
#if LV_TICK_CUSTOM == 1
|
||||||
|
#ifndef LV_TICK_CUSTOM_INCLUDE
|
||||||
|
#define LV_TICK_CUSTOM_INCLUDE "Arduino.h" /*Header for the sys time function*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_TICK_CUSTOM_SYS_TIME_EXPR
|
||||||
|
#define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis()) /*Expression evaluating to current systime in ms*/
|
||||||
|
#endif
|
||||||
|
#endif /*LV_TICK_CUSTOM*/
|
||||||
|
|
||||||
|
/*Log settings*/
|
||||||
|
#ifndef USE_LV_LOG
|
||||||
|
#define USE_LV_LOG 1 /*Enable/disable the log module*/
|
||||||
|
#endif
|
||||||
|
#if USE_LV_LOG
|
||||||
|
/* How important log should be added:
|
||||||
|
* LV_LOG_LEVEL_TRACE A lot of logs to give detailed information
|
||||||
|
* LV_LOG_LEVEL_INFO Log important events
|
||||||
|
* LV_LOG_LEVEL_WARN Log if something unwanted happened but didn't caused problem
|
||||||
|
* LV_LOG_LEVEL_ERROR Only critical issue, when the system may fail
|
||||||
|
*/
|
||||||
|
#ifndef LV_LOG_LEVEL
|
||||||
|
#define LV_LOG_LEVEL LV_LOG_LEVEL_INFO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_LOG_PRINTF
|
||||||
|
#define LV_LOG_PRINTF 0 /* 1: Print the log with 'printf'; 0: user need to register a callback*/
|
||||||
|
#endif
|
||||||
|
#endif /*USE_LV_LOG*/
|
||||||
|
|
||||||
|
/*================
|
||||||
|
* THEME USAGE
|
||||||
|
*================*/
|
||||||
|
#ifndef LV_THEME_LIVE_UPDATE
|
||||||
|
#define LV_THEME_LIVE_UPDATE 0 /*1: Allow theme switching at run time. Uses 8..10 kB of RAM*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef USE_LV_THEME_TEMPL
|
||||||
|
#define USE_LV_THEME_TEMPL 0 /*Just for test*/
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_THEME_DEFAULT
|
||||||
|
#define USE_LV_THEME_DEFAULT 0 /*Built mainly from the built-in styles. Consumes very few RAM*/
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_THEME_ALIEN
|
||||||
|
#define USE_LV_THEME_ALIEN 0 /*Dark futuristic theme*/
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_THEME_NIGHT
|
||||||
|
#define USE_LV_THEME_NIGHT 0 /*Dark elegant theme*/
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_THEME_MONO
|
||||||
|
#define USE_LV_THEME_MONO 0 /*Mono color theme for monochrome displays*/
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_THEME_MATERIAL
|
||||||
|
#define USE_LV_THEME_MATERIAL 0 /*Flat theme with bold colors and light shadows*/
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_THEME_ZEN
|
||||||
|
#define USE_LV_THEME_ZEN 0 /*Peaceful, mainly light theme */
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_THEME_NEMO
|
||||||
|
#define USE_LV_THEME_NEMO 0 /*Water-like theme based on the movie "Finding Nemo"*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*==================
|
||||||
|
* FONT USAGE
|
||||||
|
*===================*/
|
||||||
|
|
||||||
|
/* More info about fonts: https://littlevgl.com/basics#fonts
|
||||||
|
* To enable a built-in font use 1,2,4 or 8 values
|
||||||
|
* which will determine the bit-per-pixel */
|
||||||
|
#ifndef USE_LV_FONT_DEJAVU_10
|
||||||
|
#define USE_LV_FONT_DEJAVU_10 0
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FONT_DEJAVU_10_LATIN_SUP
|
||||||
|
#define USE_LV_FONT_DEJAVU_10_LATIN_SUP 0
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FONT_DEJAVU_10_CYRILLIC
|
||||||
|
#define USE_LV_FONT_DEJAVU_10_CYRILLIC 0
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FONT_SYMBOL_10
|
||||||
|
#define USE_LV_FONT_SYMBOL_10 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef USE_LV_FONT_DEJAVU_20
|
||||||
|
#define USE_LV_FONT_DEJAVU_20 4
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FONT_DEJAVU_20_LATIN_SUP
|
||||||
|
#define USE_LV_FONT_DEJAVU_20_LATIN_SUP 0
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FONT_DEJAVU_20_CYRILLIC
|
||||||
|
#define USE_LV_FONT_DEJAVU_20_CYRILLIC 0
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FONT_SYMBOL_20
|
||||||
|
#define USE_LV_FONT_SYMBOL_20 4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef USE_LV_FONT_DEJAVU_30
|
||||||
|
#define USE_LV_FONT_DEJAVU_30 0
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FONT_DEJAVU_30_LATIN_SUP
|
||||||
|
#define USE_LV_FONT_DEJAVU_30_LATIN_SUP 0
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FONT_DEJAVU_30_CYRILLIC
|
||||||
|
#define USE_LV_FONT_DEJAVU_30_CYRILLIC 0
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FONT_SYMBOL_30
|
||||||
|
#define USE_LV_FONT_SYMBOL_30 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef USE_LV_FONT_DEJAVU_40
|
||||||
|
#define USE_LV_FONT_DEJAVU_40 0
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FONT_DEJAVU_40_LATIN_SUP
|
||||||
|
#define USE_LV_FONT_DEJAVU_40_LATIN_SUP 0
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FONT_DEJAVU_40_CYRILLIC
|
||||||
|
#define USE_LV_FONT_DEJAVU_40_CYRILLIC 0
|
||||||
|
#endif
|
||||||
|
#ifndef USE_LV_FONT_SYMBOL_40
|
||||||
|
#define USE_LV_FONT_SYMBOL_40 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef USE_LV_FONT_MONOSPACE_8
|
||||||
|
#define USE_LV_FONT_MONOSPACE_8 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Optionally declare your custom fonts here.
|
||||||
|
* You can use these fonts as default font too
|
||||||
|
* and they will be available globally. E.g.
|
||||||
|
* #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) \
|
||||||
|
* LV_FONT_DECLARE(my_font_2) \
|
||||||
|
*/
|
||||||
|
#ifndef LV_FONT_CUSTOM_DECLARE
|
||||||
|
#define LV_FONT_CUSTOM_DECLARE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_FONT_DEFAULT
|
||||||
|
#define LV_FONT_DEFAULT &lv_font_dejavu_20 /*Always set a default font from the built-in fonts*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*===================
|
||||||
|
* LV_OBJ SETTINGS
|
||||||
|
*==================*/
|
||||||
|
#ifndef LV_OBJ_FREE_NUM_TYPE
|
||||||
|
#define LV_OBJ_FREE_NUM_TYPE uint32_t /*Type of free number attribute (comment out disable free number)*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_OBJ_FREE_PTR
|
||||||
|
#define LV_OBJ_FREE_PTR 1 /*Enable the free pointer attribute*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_OBJ_REALIGN
|
||||||
|
#define LV_OBJ_REALIGN 1 /*Enable `lv_obj_realaign()` based on `lv_obj_align()` parameters*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*==================
|
||||||
|
* LV OBJ X USAGE
|
||||||
|
*================*/
|
||||||
|
/*
|
||||||
|
* Documentation of the object types: https://littlevgl.com/object-types
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*****************
|
||||||
|
* Simple object
|
||||||
|
*****************/
|
||||||
|
|
||||||
|
/*Label (dependencies: -*/
|
||||||
|
#ifndef USE_LV_LABEL
|
||||||
|
#define USE_LV_LABEL 1
|
||||||
|
#endif
|
||||||
|
#if USE_LV_LABEL != 0
|
||||||
|
#ifndef LV_LABEL_SCROLL_SPEED
|
||||||
|
#define LV_LABEL_SCROLL_SPEED 25 /*Hor, or ver. scroll speed [px/sec] in 'LV_LABEL_LONG_SCROLL/ROLL' mode*/
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Image (dependencies: lv_label*/
|
||||||
|
#ifndef USE_LV_IMG
|
||||||
|
#define USE_LV_IMG 1
|
||||||
|
#endif
|
||||||
|
#if USE_LV_IMG != 0
|
||||||
|
#ifndef LV_IMG_CF_INDEXED
|
||||||
|
#define LV_IMG_CF_INDEXED 1 /*Enable indexed (palette) images*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_IMG_CF_ALPHA
|
||||||
|
#define LV_IMG_CF_ALPHA 1 /*Enable alpha indexed images*/
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Line (dependencies: -*/
|
||||||
|
#ifndef USE_LV_LINE
|
||||||
|
#define USE_LV_LINE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Arc (dependencies: -)*/
|
||||||
|
#ifndef USE_LV_ARC
|
||||||
|
#define USE_LV_ARC 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*******************
|
||||||
|
* Container objects
|
||||||
|
*******************/
|
||||||
|
|
||||||
|
/*Container (dependencies: -*/
|
||||||
|
#ifndef USE_LV_CONT
|
||||||
|
#define USE_LV_CONT 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Page (dependencies: lv_cont)*/
|
||||||
|
#ifndef USE_LV_PAGE
|
||||||
|
#define USE_LV_PAGE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Window (dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page)*/
|
||||||
|
#ifndef USE_LV_WIN
|
||||||
|
#define USE_LV_WIN 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Tab (dependencies: lv_page, lv_btnm)*/
|
||||||
|
#ifndef USE_LV_TABVIEW
|
||||||
|
#define USE_LV_TABVIEW 1
|
||||||
|
#endif
|
||||||
|
#if USE_LV_TABVIEW != 0
|
||||||
|
#ifndef LV_TABVIEW_ANIM_TIME
|
||||||
|
#define LV_TABVIEW_ANIM_TIME 300 /*Time of slide animation [ms] (0: no animation)*/
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Tileview (dependencies: lv_page) */
|
||||||
|
#ifndef USE_LV_TILEVIEW
|
||||||
|
#define USE_LV_TILEVIEW 1
|
||||||
|
#endif
|
||||||
|
#if USE_LV_TILEVIEW
|
||||||
|
#ifndef LV_TILEVIEW_ANIM_TIME
|
||||||
|
#define LV_TILEVIEW_ANIM_TIME 300 /*Time of slide animation [ms] (0: no animation)*/
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*************************
|
||||||
|
* Data visualizer objects
|
||||||
|
*************************/
|
||||||
|
|
||||||
|
/*Bar (dependencies: -)*/
|
||||||
|
#ifndef USE_LV_BAR
|
||||||
|
#define USE_LV_BAR 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Line meter (dependencies: *;)*/
|
||||||
|
#ifndef USE_LV_LMETER
|
||||||
|
#define USE_LV_LMETER 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Gauge (dependencies:bar, lmeter)*/
|
||||||
|
#ifndef USE_LV_GAUGE
|
||||||
|
#define USE_LV_GAUGE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Chart (dependencies: -)*/
|
||||||
|
#ifndef USE_LV_CHART
|
||||||
|
#define USE_LV_CHART 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Table (dependencies: lv_label)*/
|
||||||
|
#ifndef USE_LV_TABLE
|
||||||
|
#define USE_LV_TABLE 1
|
||||||
|
#endif
|
||||||
|
#if USE_LV_TABLE
|
||||||
|
#ifndef LV_TABLE_COL_MAX
|
||||||
|
#define LV_TABLE_COL_MAX 12
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*LED (dependencies: -)*/
|
||||||
|
#ifndef USE_LV_LED
|
||||||
|
#define USE_LV_LED 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Message box (dependencies: lv_rect, lv_btnm, lv_label)*/
|
||||||
|
#ifndef USE_LV_MBOX
|
||||||
|
#define USE_LV_MBOX 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Text area (dependencies: lv_label, lv_page)*/
|
||||||
|
#ifndef USE_LV_TA
|
||||||
|
#define USE_LV_TA 1
|
||||||
|
#endif
|
||||||
|
#if USE_LV_TA != 0
|
||||||
|
#ifndef LV_TA_CURSOR_BLINK_TIME
|
||||||
|
#define LV_TA_CURSOR_BLINK_TIME 400 /*ms*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_TA_PWD_SHOW_TIME
|
||||||
|
#define LV_TA_PWD_SHOW_TIME 1500 /*ms*/
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Spinbox (dependencies: lv_ta)*/
|
||||||
|
#ifndef USE_LV_SPINBOX
|
||||||
|
#define USE_LV_SPINBOX 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Calendar (dependencies: -)*/
|
||||||
|
#ifndef USE_LV_CALENDAR
|
||||||
|
#define USE_LV_CALENDAR 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Preload (dependencies: arc)*/
|
||||||
|
#ifndef USE_LV_PRELOAD
|
||||||
|
#define USE_LV_PRELOAD 1
|
||||||
|
#endif
|
||||||
|
#if USE_LV_PRELOAD != 0
|
||||||
|
#ifndef LV_PRELOAD_DEF_ARC_LENGTH
|
||||||
|
#define LV_PRELOAD_DEF_ARC_LENGTH 60 /*[deg]*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_PRELOAD_DEF_SPIN_TIME
|
||||||
|
#define LV_PRELOAD_DEF_SPIN_TIME 1000 /*[ms]*/
|
||||||
|
#endif
|
||||||
|
#ifndef LV_PRELOAD_DEF_ANIM
|
||||||
|
#define LV_PRELOAD_DEF_ANIM LV_PRELOAD_TYPE_SPINNING_ARC
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*************************
|
||||||
|
* User input objects
|
||||||
|
*************************/
|
||||||
|
|
||||||
|
/*Button (dependencies: lv_cont*/
|
||||||
|
#ifndef USE_LV_BTN
|
||||||
|
#define USE_LV_BTN 1
|
||||||
|
#endif
|
||||||
|
#if USE_LV_BTN != 0
|
||||||
|
#ifndef LV_BTN_INK_EFFECT
|
||||||
|
#define LV_BTN_INK_EFFECT 1 /*Enable button-state animations - draw a circle on click (dependencies: USE_LV_ANIMATION)*/
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Image Button (dependencies: lv_btn*/
|
||||||
|
#ifndef USE_LV_IMGBTN
|
||||||
|
#define USE_LV_IMGBTN 1
|
||||||
|
#endif
|
||||||
|
#if USE_LV_IMGBTN
|
||||||
|
#ifndef LV_IMGBTN_TILED
|
||||||
|
#define LV_IMGBTN_TILED 0 /*1: The imgbtn requires left, mid and right parts and the width can be set freely*/
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Button matrix (dependencies: -)*/
|
||||||
|
#ifndef USE_LV_BTNM
|
||||||
|
#define USE_LV_BTNM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Keyboard (dependencies: lv_btnm)*/
|
||||||
|
#ifndef USE_LV_KB
|
||||||
|
#define USE_LV_KB 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Check box (dependencies: lv_btn, lv_label)*/
|
||||||
|
#ifndef USE_LV_CB
|
||||||
|
#define USE_LV_CB 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*List (dependencies: lv_page, lv_btn, lv_label, (lv_img optionally for icons ))*/
|
||||||
|
#ifndef USE_LV_LIST
|
||||||
|
#define USE_LV_LIST 1
|
||||||
|
#endif
|
||||||
|
#if USE_LV_LIST != 0
|
||||||
|
#ifndef LV_LIST_FOCUS_TIME
|
||||||
|
#define LV_LIST_FOCUS_TIME 100 /*Default animation time of focusing to a list element [ms] (0: no animation) */
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Drop down list (dependencies: lv_page, lv_label, lv_symbol_def.h)*/
|
||||||
|
#ifndef USE_LV_DDLIST
|
||||||
|
#define USE_LV_DDLIST 1
|
||||||
|
#endif
|
||||||
|
#if USE_LV_DDLIST != 0
|
||||||
|
#ifndef LV_DDLIST_ANIM_TIME
|
||||||
|
#define LV_DDLIST_ANIM_TIME 200 /*Open and close default animation time [ms] (0: no animation)*/
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Roller (dependencies: lv_ddlist)*/
|
||||||
|
#ifndef USE_LV_ROLLER
|
||||||
|
#define USE_LV_ROLLER 1
|
||||||
|
#endif
|
||||||
|
#if USE_LV_ROLLER != 0
|
||||||
|
#ifndef LV_ROLLER_ANIM_TIME
|
||||||
|
#define LV_ROLLER_ANIM_TIME 200 /*Focus animation time [ms] (0: no animation)*/
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Slider (dependencies: lv_bar)*/
|
||||||
|
#ifndef USE_LV_SLIDER
|
||||||
|
#define USE_LV_SLIDER 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Switch (dependencies: lv_slider)*/
|
||||||
|
#ifndef USE_LV_SW
|
||||||
|
#define USE_LV_SW 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*************************
|
||||||
|
* Non-user section
|
||||||
|
*************************/
|
||||||
|
#ifdef _MSC_VER /* Disable warnings for Visual Studio*/
|
||||||
|
#ifndef _CRT_SECURE_NO_WARNINGS
|
||||||
|
#define _CRT_SECURE_NO_WARNINGS
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /*LV_CONF_CHECKER_H*/
|
||||||
51
lv_conf_checker.py
Normal file
51
lv_conf_checker.py
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
'''
|
||||||
|
Generates a chechker file for lv_conf.h from lv_conf_templ.h define all the not defined values
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
fin = open("lv_conf_templ.h", "r");
|
||||||
|
fout = open("lv_conf_checker.h", "w");
|
||||||
|
|
||||||
|
|
||||||
|
fout.write(
|
||||||
|
'/**\n\
|
||||||
|
* GENERATED FILE, DO NOT EDIT IT!\n\
|
||||||
|
* @file lv_conf_checker.h\n\
|
||||||
|
* Make sure all the defines of lv_conf.h have a default value\n\
|
||||||
|
**/\n\
|
||||||
|
\n\
|
||||||
|
#ifndef LV_CONF_CHECKER_H\n\
|
||||||
|
#define LV_CONF_CHECKER_H\n\
|
||||||
|
'
|
||||||
|
)
|
||||||
|
|
||||||
|
inlines = fin.read().splitlines();
|
||||||
|
|
||||||
|
started = 0
|
||||||
|
|
||||||
|
for i in inlines:
|
||||||
|
if(not started):
|
||||||
|
if('#define LV_CONF_H' in i):
|
||||||
|
started = 1
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if('/*--END OF LV_CONF_H--*/' in i): break
|
||||||
|
|
||||||
|
if(re.search('^ *# *define .*$', i)):
|
||||||
|
new = re.sub(' +', ' ', i) #Remove extra white spaces
|
||||||
|
splitted = new.split(' ')
|
||||||
|
fout.write('#ifndef ' + splitted[1] + '\n')
|
||||||
|
fout.write(i + '\n')
|
||||||
|
fout.write('#endif\n')
|
||||||
|
else:
|
||||||
|
fout.write(i + '\n')
|
||||||
|
|
||||||
|
|
||||||
|
fout.write(
|
||||||
|
'\n\
|
||||||
|
#endif /*LV_CONF_CHECKER_H*/\n\
|
||||||
|
')
|
||||||
@@ -266,6 +266,9 @@
|
|||||||
#define LV_TA_PWD_SHOW_TIME 1500 /*ms*/
|
#define LV_TA_PWD_SHOW_TIME 1500 /*ms*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*Spinbox (dependencies: lv_ta)*/
|
||||||
|
#define USE_LV_SPINBOX 1
|
||||||
|
|
||||||
/*Calendar (dependencies: -)*/
|
/*Calendar (dependencies: -)*/
|
||||||
#define USE_LV_CALENDAR 1
|
#define USE_LV_CALENDAR 1
|
||||||
|
|
||||||
@@ -290,7 +293,7 @@
|
|||||||
/*Image Button (dependencies: lv_btn*/
|
/*Image Button (dependencies: lv_btn*/
|
||||||
#define USE_LV_IMGBTN 1
|
#define USE_LV_IMGBTN 1
|
||||||
#if USE_LV_IMGBTN
|
#if USE_LV_IMGBTN
|
||||||
#define LV_IMGBTN_TILED 1 /*1: The imgbtn requires left, mid and right parts and the width can be set freely*/
|
#define LV_IMGBTN_TILED 0 /*1: The imgbtn requires left, mid and right parts and the width can be set freely*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*Button matrix (dependencies: -)*/
|
/*Button matrix (dependencies: -)*/
|
||||||
@@ -333,6 +336,11 @@
|
|||||||
#define _CRT_SECURE_NO_WARNINGS
|
#define _CRT_SECURE_NO_WARNINGS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*--END OF LV_CONF_H--*/
|
||||||
|
|
||||||
|
/*Be sure every define has a default value*/
|
||||||
|
#include "lv_conf_checker.h"
|
||||||
|
|
||||||
#endif /*LV_CONF_H*/
|
#endif /*LV_CONF_H*/
|
||||||
|
|
||||||
#endif /*End of "Content enable"*/
|
#endif /*End of "Content enable"*/
|
||||||
|
|||||||
@@ -166,6 +166,16 @@ void lv_indev_set_button_points(lv_indev_t * indev, lv_point_t * points)
|
|||||||
if(indev->driver.type == LV_INDEV_TYPE_BUTTON) indev->btn_points = points;
|
if(indev->driver.type == LV_INDEV_TYPE_BUTTON) indev->btn_points = points;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set feedback callback for indev.
|
||||||
|
* @param indev pointer to an input device
|
||||||
|
* @param feedback feedback callback
|
||||||
|
*/
|
||||||
|
void lv_indev_set_feedback(lv_indev_t *indev, lv_indev_feedback_t feedback)
|
||||||
|
{
|
||||||
|
indev->feedback = feedback;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the last point of an input device (for LV_INDEV_TYPE_POINTER and LV_INDEV_TYPE_BUTTON)
|
* Get the last point of an input device (for LV_INDEV_TYPE_POINTER and LV_INDEV_TYPE_BUTTON)
|
||||||
* @param indev pointer to an input device
|
* @param indev pointer to an input device
|
||||||
@@ -249,6 +259,16 @@ uint32_t lv_indev_get_inactive_time(const lv_indev_t * indev)
|
|||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get feedback callback for indev.
|
||||||
|
* @param indev pointer to an input device
|
||||||
|
* @return feedback callback
|
||||||
|
*/
|
||||||
|
lv_indev_feedback_t lv_indev_get_feedback(const lv_indev_t *indev)
|
||||||
|
{
|
||||||
|
return indev->feedback;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do nothing until the next release
|
* Do nothing until the next release
|
||||||
* @param indev pointer to an input device
|
* @param indev pointer to an input device
|
||||||
|
|||||||
@@ -91,6 +91,13 @@ void lv_indev_set_group(lv_indev_t *indev, lv_group_t *group);
|
|||||||
*/
|
*/
|
||||||
void lv_indev_set_button_points(lv_indev_t *indev, lv_point_t *points);
|
void lv_indev_set_button_points(lv_indev_t *indev, lv_point_t *points);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set feedback callback for indev.
|
||||||
|
* @param indev pointer to an input device
|
||||||
|
* @param feedback feedback callback
|
||||||
|
*/
|
||||||
|
void lv_indev_set_feedback(lv_indev_t *indev, lv_indev_feedback_t feedback);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the last point of an input device (for LV_INDEV_TYPE_POINTER and LV_INDEV_TYPE_BUTTON)
|
* Get the last point of an input device (for LV_INDEV_TYPE_POINTER and LV_INDEV_TYPE_BUTTON)
|
||||||
* @param indev pointer to an input device
|
* @param indev pointer to an input device
|
||||||
@@ -125,6 +132,13 @@ void lv_indev_get_vect(const lv_indev_t * indev, lv_point_t * point);
|
|||||||
*/
|
*/
|
||||||
uint32_t lv_indev_get_inactive_time(const lv_indev_t * indev);
|
uint32_t lv_indev_get_inactive_time(const lv_indev_t * indev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get feedback callback for indev.
|
||||||
|
* @param indev pointer to an input device
|
||||||
|
* @return feedback callback
|
||||||
|
*/
|
||||||
|
lv_indev_feedback_t lv_indev_get_feedback(const lv_indev_t *indev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do nothing until the next release
|
* Do nothing until the next release
|
||||||
* @param indev pointer to an input device
|
* @param indev pointer to an input device
|
||||||
|
|||||||
@@ -1830,6 +1830,14 @@ static lv_res_t lv_obj_signal(lv_obj_t * obj, lv_signal_t sign, void * param)
|
|||||||
lv_res_t res = LV_RES_OK;
|
lv_res_t res = LV_RES_OK;
|
||||||
|
|
||||||
lv_style_t * style = lv_obj_get_style(obj);
|
lv_style_t * style = lv_obj_get_style(obj);
|
||||||
|
|
||||||
|
lv_indev_t *indev_act = lv_indev_get_act();
|
||||||
|
|
||||||
|
if(sign > _LV_SIGNAL_FEEDBACK_SECTION_START && sign < _LV_SIGNAL_FEEDBACK_SECTION_END) {
|
||||||
|
if(indev_act != NULL && indev_act->feedback != NULL)
|
||||||
|
indev_act->feedback(indev_act, sign);
|
||||||
|
}
|
||||||
|
|
||||||
if(sign == LV_SIGNAL_CHILD_CHG) {
|
if(sign == LV_SIGNAL_CHILD_CHG) {
|
||||||
/*Return 'invalid' if the child change signal is not enabled*/
|
/*Return 'invalid' if the child change signal is not enabled*/
|
||||||
if(lv_obj_is_protected(obj, LV_PROTECT_CHILD_CHG) != false) res = LV_RES_INV;
|
if(lv_obj_is_protected(obj, LV_PROTECT_CHILD_CHG) != false) res = LV_RES_INV;
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ enum
|
|||||||
LV_SIGNAL_REFR_EXT_SIZE,
|
LV_SIGNAL_REFR_EXT_SIZE,
|
||||||
LV_SIGNAL_GET_TYPE,
|
LV_SIGNAL_GET_TYPE,
|
||||||
|
|
||||||
|
_LV_SIGNAL_FEEDBACK_SECTION_START,
|
||||||
/*Input device related*/
|
/*Input device related*/
|
||||||
LV_SIGNAL_PRESSED,
|
LV_SIGNAL_PRESSED,
|
||||||
LV_SIGNAL_PRESSING,
|
LV_SIGNAL_PRESSING,
|
||||||
@@ -106,6 +107,7 @@ enum
|
|||||||
LV_SIGNAL_FOCUS,
|
LV_SIGNAL_FOCUS,
|
||||||
LV_SIGNAL_DEFOCUS,
|
LV_SIGNAL_DEFOCUS,
|
||||||
LV_SIGNAL_CONTROLL,
|
LV_SIGNAL_CONTROLL,
|
||||||
|
_LV_SIGNAL_FEEDBACK_SECTION_END,
|
||||||
LV_SIGNAL_GET_EDITABLE,
|
LV_SIGNAL_GET_EDITABLE,
|
||||||
};
|
};
|
||||||
typedef uint8_t lv_signal_t;
|
typedef uint8_t lv_signal_t;
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ extern "C" {
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include "lv_hal.h"
|
#include "lv_hal.h"
|
||||||
#include "../lv_misc/lv_area.h"
|
#include "../lv_misc/lv_area.h"
|
||||||
|
#include "../lv_core/lv_obj.h"
|
||||||
|
|
||||||
/*********************
|
/*********************
|
||||||
* DEFINES
|
* DEFINES
|
||||||
@@ -98,6 +99,9 @@ typedef struct _lv_indev_proc_t {
|
|||||||
uint8_t disabled :1;
|
uint8_t disabled :1;
|
||||||
} lv_indev_proc_t;
|
} lv_indev_proc_t;
|
||||||
|
|
||||||
|
struct _lv_indev_t;
|
||||||
|
|
||||||
|
typedef void (*lv_indev_feedback_t)(struct _lv_indev_t *, lv_signal_t);
|
||||||
|
|
||||||
struct _lv_obj_t;
|
struct _lv_obj_t;
|
||||||
struct _lv_group_t;
|
struct _lv_group_t;
|
||||||
@@ -106,6 +110,7 @@ struct _lv_group_t;
|
|||||||
typedef struct _lv_indev_t {
|
typedef struct _lv_indev_t {
|
||||||
lv_indev_drv_t driver;
|
lv_indev_drv_t driver;
|
||||||
lv_indev_proc_t proc;
|
lv_indev_proc_t proc;
|
||||||
|
lv_indev_feedback_t feedback;
|
||||||
uint32_t last_activity_time;
|
uint32_t last_activity_time;
|
||||||
union {
|
union {
|
||||||
struct _lv_obj_t *cursor; /*Cursor for LV_INPUT_TYPE_POINTER*/
|
struct _lv_obj_t *cursor; /*Cursor for LV_INPUT_TYPE_POINTER*/
|
||||||
|
|||||||
@@ -155,19 +155,25 @@ void lv_img_set_src(lv_obj_t * img, const void * src_img)
|
|||||||
lv_img_header_t header;
|
lv_img_header_t header;
|
||||||
lv_img_dsc_get_info(src_img, &header);
|
lv_img_dsc_get_info(src_img, &header);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*Save the source*/
|
/*Save the source*/
|
||||||
if(src_type == LV_IMG_SRC_VARIABLE) {
|
if(src_type == LV_IMG_SRC_VARIABLE) {
|
||||||
LV_LOG_INFO("lv_img_set_src: `LV_IMG_SRC_VARIABLE` type found");
|
LV_LOG_INFO("lv_img_set_src: `LV_IMG_SRC_VARIABLE` type found");
|
||||||
|
|
||||||
|
/*If memory was allocated because of the previous `src_type` then free it*/
|
||||||
|
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) {
|
||||||
|
lv_mem_free(ext->src);
|
||||||
|
}
|
||||||
ext->src = src_img;
|
ext->src = src_img;
|
||||||
} else if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_SYMBOL) {
|
} else if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_SYMBOL) {
|
||||||
|
|
||||||
|
|
||||||
/* If the new and the old src are the same then it was only a refresh.*/
|
/* If the new and the old src are the same then it was only a refresh.*/
|
||||||
if(ext->src != src_img) {
|
if(ext->src != src_img) {
|
||||||
|
/*If memory was allocated because of the previous `src_type` then free it*/
|
||||||
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) {
|
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) {
|
||||||
lv_mem_free(ext->src); /*If memory was allocated because of the previous `src_type` then free it*/
|
lv_mem_free(ext->src);
|
||||||
}
|
}
|
||||||
char * new_str = lv_mem_alloc(strlen(src_img) + 1);
|
char * new_str = lv_mem_alloc(strlen(src_img) + 1);
|
||||||
lv_mem_assert(new_str);
|
lv_mem_assert(new_str);
|
||||||
if(new_str == NULL) return;
|
if(new_str == NULL) return;
|
||||||
strcpy(new_str, src_img);
|
strcpy(new_str, src_img);
|
||||||
|
|||||||
@@ -7,7 +7,9 @@ CSRCS += lv_line.c
|
|||||||
CSRCS += lv_mbox.c
|
CSRCS += lv_mbox.c
|
||||||
CSRCS += lv_preload.c
|
CSRCS += lv_preload.c
|
||||||
CSRCS += lv_roller.c
|
CSRCS += lv_roller.c
|
||||||
|
CSRCS += lv_table.c
|
||||||
CSRCS += lv_tabview.c
|
CSRCS += lv_tabview.c
|
||||||
|
CSRCS += lv_tileview.c
|
||||||
CSRCS += lv_btn.c
|
CSRCS += lv_btn.c
|
||||||
CSRCS += lv_calendar.c
|
CSRCS += lv_calendar.c
|
||||||
CSRCS += lv_chart.c
|
CSRCS += lv_chart.c
|
||||||
@@ -16,9 +18,11 @@ CSRCS += lv_label.c
|
|||||||
CSRCS += lv_list.c
|
CSRCS += lv_list.c
|
||||||
CSRCS += lv_slider.c
|
CSRCS += lv_slider.c
|
||||||
CSRCS += lv_ta.c
|
CSRCS += lv_ta.c
|
||||||
|
CSRCS += lv_spinbox.c
|
||||||
CSRCS += lv_btnm.c
|
CSRCS += lv_btnm.c
|
||||||
CSRCS += lv_cont.c
|
CSRCS += lv_cont.c
|
||||||
CSRCS += lv_img.c
|
CSRCS += lv_img.c
|
||||||
|
CSRCS += lv_imgbtn.c
|
||||||
CSRCS += lv_led.c
|
CSRCS += lv_led.c
|
||||||
CSRCS += lv_lmeter.c
|
CSRCS += lv_lmeter.c
|
||||||
CSRCS += lv_page.c
|
CSRCS += lv_page.c
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
* STATIC PROTOTYPES
|
* STATIC PROTOTYPES
|
||||||
**********************/
|
**********************/
|
||||||
static lv_res_t lv_spinbox_signal(lv_obj_t * spinbox, lv_signal_t sign, void * param);
|
static lv_res_t lv_spinbox_signal(lv_obj_t * spinbox, lv_signal_t sign, void * param);
|
||||||
static void lv_spinbox_updatevalue(const lv_obj_t * spinbox);
|
static void lv_spinbox_updatevalue(lv_obj_t * spinbox);
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* STATIC VARIABLES
|
* STATIC VARIABLES
|
||||||
@@ -115,7 +115,7 @@ lv_obj_t * lv_spinbox_create(lv_obj_t * par, const lv_obj_t * copy)
|
|||||||
* @param spinbox pointer to spinbox
|
* @param spinbox pointer to spinbox
|
||||||
* @param i value to be set
|
* @param i value to be set
|
||||||
*/
|
*/
|
||||||
void lv_spinbox_set_value(const lv_obj_t * spinbox, int32_t i)
|
void lv_spinbox_set_value(lv_obj_t * spinbox, int32_t i)
|
||||||
{
|
{
|
||||||
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
||||||
if(ext == NULL)
|
if(ext == NULL)
|
||||||
@@ -137,7 +137,7 @@ void lv_spinbox_set_value(const lv_obj_t * spinbox, int32_t i)
|
|||||||
* @param digit_count number of digit excluding the decimal separator and the sign
|
* @param digit_count number of digit excluding the decimal separator and the sign
|
||||||
* @param separator_position number of digit before the decimal point. If 0, decimal point is not shown
|
* @param separator_position number of digit before the decimal point. If 0, decimal point is not shown
|
||||||
*/
|
*/
|
||||||
void lv_spinbox_set_digit_format(const lv_obj_t * spinbox, uint8_t digit_count, uint8_t separator_position)
|
void lv_spinbox_set_digit_format(lv_obj_t * spinbox, uint8_t digit_count, uint8_t separator_position)
|
||||||
{
|
{
|
||||||
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
||||||
if(ext == NULL)
|
if(ext == NULL)
|
||||||
@@ -160,7 +160,7 @@ void lv_spinbox_set_digit_format(const lv_obj_t * spinbox, uint8_t digit_count,
|
|||||||
* @param spinbox pointer to spinbox
|
* @param spinbox pointer to spinbox
|
||||||
* @param step steps on increment/decrement
|
* @param step steps on increment/decrement
|
||||||
*/
|
*/
|
||||||
void lv_spinbox_set_step(const lv_obj_t * spinbox, uint32_t step)
|
void lv_spinbox_set_step(lv_obj_t * spinbox, uint32_t step)
|
||||||
{
|
{
|
||||||
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
||||||
if(ext == NULL) return;
|
if(ext == NULL) return;
|
||||||
@@ -174,7 +174,7 @@ void lv_spinbox_set_step(const lv_obj_t * spinbox, uint32_t step)
|
|||||||
* @param range_min maximum value, inclusive
|
* @param range_min maximum value, inclusive
|
||||||
* @param range_max minimum value, inclusive
|
* @param range_max minimum value, inclusive
|
||||||
*/
|
*/
|
||||||
void lv_spinbox_set_range(const lv_obj_t * spinbox, int32_t range_min, int32_t range_max)
|
void lv_spinbox_set_range(lv_obj_t * spinbox, int32_t range_min, int32_t range_max)
|
||||||
{
|
{
|
||||||
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
||||||
if(ext == NULL) return;
|
if(ext == NULL) return;
|
||||||
@@ -199,7 +199,7 @@ void lv_spinbox_set_range(const lv_obj_t * spinbox, int32_t range_min, int32_t r
|
|||||||
* @param spinbox pointer to spinbox
|
* @param spinbox pointer to spinbox
|
||||||
* @param cb Callback function called on value change event
|
* @param cb Callback function called on value change event
|
||||||
*/
|
*/
|
||||||
void lv_spinbox_set_value_changed_cb(const lv_obj_t * spinbox, lv_spinbox_value_changed_cb_t cb)
|
void lv_spinbox_set_value_changed_cb(lv_obj_t * spinbox, lv_spinbox_value_changed_cb_t cb)
|
||||||
{
|
{
|
||||||
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
||||||
ext->value_changed_cb = cb;
|
ext->value_changed_cb = cb;
|
||||||
@@ -210,7 +210,7 @@ void lv_spinbox_set_value_changed_cb(const lv_obj_t * spinbox, lv_spinbox_value_
|
|||||||
* @param spinbox pointer to spinbox
|
* @param spinbox pointer to spinbox
|
||||||
* @param cb Callback function called on value change event
|
* @param cb Callback function called on value change event
|
||||||
*/
|
*/
|
||||||
void lv_spinbox_set_padding_left(const lv_obj_t * spinbox, uint8_t padding)
|
void lv_spinbox_set_padding_left(lv_obj_t * spinbox, uint8_t padding)
|
||||||
{
|
{
|
||||||
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
||||||
ext->digit_padding_left = padding;
|
ext->digit_padding_left = padding;
|
||||||
@@ -226,7 +226,7 @@ void lv_spinbox_set_padding_left(const lv_obj_t * spinbox, uint8_t padding)
|
|||||||
* @param spinbox pointer to spinbox
|
* @param spinbox pointer to spinbox
|
||||||
* @return value integer value of the spinbox
|
* @return value integer value of the spinbox
|
||||||
*/
|
*/
|
||||||
int32_t lv_spinbox_get_value(const lv_obj_t * spinbox)
|
int32_t lv_spinbox_get_value(lv_obj_t * spinbox)
|
||||||
{
|
{
|
||||||
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
||||||
|
|
||||||
@@ -422,7 +422,7 @@ static lv_res_t lv_spinbox_signal(lv_obj_t * spinbox, lv_signal_t sign, void * p
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void lv_spinbox_updatevalue(const lv_obj_t * spinbox)
|
static void lv_spinbox_updatevalue(lv_obj_t * spinbox)
|
||||||
{
|
{
|
||||||
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox);
|
||||||
int32_t v = ext->value;
|
int32_t v = ext->value;
|
||||||
|
|||||||
@@ -22,6 +22,11 @@ extern "C" {
|
|||||||
|
|
||||||
#if USE_LV_SPINBOX != 0
|
#if USE_LV_SPINBOX != 0
|
||||||
|
|
||||||
|
/*Testing of dependencies*/
|
||||||
|
#if USE_LV_TA == 0
|
||||||
|
#error "lv_spinbox: lv_ta is required. Enable it in lv_conf.h (USE_LV_TA 1) "
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "../lv_core/lv_obj.h"
|
#include "../lv_core/lv_obj.h"
|
||||||
#include "../lv_objx/lv_ta.h"
|
#include "../lv_objx/lv_ta.h"
|
||||||
|
|
||||||
@@ -95,7 +100,7 @@ static inline void lv_spinbox_set_style(lv_obj_t * spinbox, lv_spinbox_style_t t
|
|||||||
* @param spinbox pointer to spinbox
|
* @param spinbox pointer to spinbox
|
||||||
* @param i value to be set
|
* @param i value to be set
|
||||||
*/
|
*/
|
||||||
void lv_spinbox_set_value(const lv_obj_t * spinbox, int32_t i);
|
void lv_spinbox_set_value(lv_obj_t * spinbox, int32_t i);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set spinbox digit format (digit count and decimal format)
|
* Set spinbox digit format (digit count and decimal format)
|
||||||
@@ -103,14 +108,14 @@ void lv_spinbox_set_value(const lv_obj_t * spinbox, int32_t i);
|
|||||||
* @param digit_count number of digit excluding the decimal separator and the sign
|
* @param digit_count number of digit excluding the decimal separator and the sign
|
||||||
* @param separator_position number of digit before the decimal point. If 0, decimal point is not shown
|
* @param separator_position number of digit before the decimal point. If 0, decimal point is not shown
|
||||||
*/
|
*/
|
||||||
void lv_spinbox_set_digit_format(const lv_obj_t * spinbox, uint8_t digit_count, uint8_t separator_position);
|
void lv_spinbox_set_digit_format(lv_obj_t * spinbox, uint8_t digit_count, uint8_t separator_position);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set spinbox step
|
* Set spinbox step
|
||||||
* @param spinbox pointer to spinbox
|
* @param spinbox pointer to spinbox
|
||||||
* @param step steps on increment/decrement
|
* @param step steps on increment/decrement
|
||||||
*/
|
*/
|
||||||
void lv_spinbox_set_step(const lv_obj_t * spinbox, uint32_t step);
|
void lv_spinbox_set_step(lv_obj_t * spinbox, uint32_t step);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set spinbox value range
|
* Set spinbox value range
|
||||||
@@ -118,21 +123,21 @@ void lv_spinbox_set_step(const lv_obj_t * spinbox, uint32_t step);
|
|||||||
* @param range_min maximum value, inclusive
|
* @param range_min maximum value, inclusive
|
||||||
* @param range_max minimum value, inclusive
|
* @param range_max minimum value, inclusive
|
||||||
*/
|
*/
|
||||||
void lv_spinbox_set_range(const lv_obj_t * spinbox, int32_t range_min, int32_t range_max);
|
void lv_spinbox_set_range(lv_obj_t * spinbox, int32_t range_min, int32_t range_max);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set spinbox callback on calue change
|
* Set spinbox callback on calue change
|
||||||
* @param spinbox pointer to spinbox
|
* @param spinbox pointer to spinbox
|
||||||
* @param cb Callback function called on value change event
|
* @param cb Callback function called on value change event
|
||||||
*/
|
*/
|
||||||
void lv_spinbox_set_value_changed_cb(const lv_obj_t * spinbox, lv_spinbox_value_changed_cb_t cb);
|
void lv_spinbox_set_value_changed_cb(lv_obj_t * spinbox, lv_spinbox_value_changed_cb_t cb);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set spinbox left padding in digits count (added between sign and first digit)
|
* Set spinbox left padding in digits count (added between sign and first digit)
|
||||||
* @param spinbox pointer to spinbox
|
* @param spinbox pointer to spinbox
|
||||||
* @param cb Callback function called on value change event
|
* @param cb Callback function called on value change event
|
||||||
*/
|
*/
|
||||||
void lv_spinbox_set_padding_left(const lv_obj_t * spinbox, uint8_t padding);
|
void lv_spinbox_set_padding_left(lv_obj_t * spinbox, uint8_t padding);
|
||||||
|
|
||||||
/*=====================
|
/*=====================
|
||||||
* Getter functions
|
* Getter functions
|
||||||
@@ -144,7 +149,7 @@ void lv_spinbox_set_padding_left(const lv_obj_t * spinbox, uint8_t padding);
|
|||||||
* @param type which style should be get
|
* @param type which style should be get
|
||||||
* @return style pointer to the style
|
* @return style pointer to the style
|
||||||
*/
|
*/
|
||||||
static inline lv_style_t * lv_spinbox_get_style(const lv_obj_t * spinbox, lv_spinbox_style_t type)
|
static inline lv_style_t * lv_spinbox_get_style(lv_obj_t * spinbox, lv_spinbox_style_t type)
|
||||||
{
|
{
|
||||||
return lv_ta_get_style(spinbox, type);
|
return lv_ta_get_style(spinbox, type);
|
||||||
}
|
}
|
||||||
@@ -154,7 +159,7 @@ static inline lv_style_t * lv_spinbox_get_style(const lv_obj_t * spinbox, lv_spi
|
|||||||
* @param spinbox pointer to spinbox
|
* @param spinbox pointer to spinbox
|
||||||
* @return value integer value of the spinbox
|
* @return value integer value of the spinbox
|
||||||
*/
|
*/
|
||||||
int32_t lv_spinbox_get_value(const lv_obj_t * spinbox);
|
int32_t lv_spinbox_get_value(lv_obj_t * spinbox);
|
||||||
|
|
||||||
/*=====================
|
/*=====================
|
||||||
* Other functions
|
* Other functions
|
||||||
|
|||||||
@@ -146,10 +146,18 @@ void lv_table_set_cell_value(lv_obj_t * table, uint16_t row, uint16_t col, const
|
|||||||
void lv_table_set_row_cnt(lv_obj_t * table, uint16_t row_cnt)
|
void lv_table_set_row_cnt(lv_obj_t * table, uint16_t row_cnt)
|
||||||
{
|
{
|
||||||
lv_table_ext_t * ext = lv_obj_get_ext_attr(table);
|
lv_table_ext_t * ext = lv_obj_get_ext_attr(table);
|
||||||
|
uint16_t old_row_cnt = ext->row_cnt;
|
||||||
ext->row_cnt = row_cnt;
|
ext->row_cnt = row_cnt;
|
||||||
|
|
||||||
if(ext->row_cnt > 0 && ext->col_cnt > 0) {
|
if(ext->row_cnt > 0 && ext->col_cnt > 0) {
|
||||||
ext->cell_data = lv_mem_realloc(ext->cell_data, ext->row_cnt * ext->col_cnt * sizeof(char*));
|
ext->cell_data = lv_mem_realloc(ext->cell_data, ext->row_cnt * ext->col_cnt * sizeof(char*));
|
||||||
|
|
||||||
|
/*Initilize the new fields*/
|
||||||
|
if(old_row_cnt < row_cnt) {
|
||||||
|
uint16_t old_cell_cnt = old_row_cnt * ext->col_cnt;
|
||||||
|
uint32_t new_cell_cnt = ext->col_cnt * ext->row_cnt;
|
||||||
|
memset(&ext->cell_data[old_cell_cnt], 0, (new_cell_cnt - old_cell_cnt) * sizeof(ext->cell_data[0]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
lv_mem_free(ext->cell_data);
|
lv_mem_free(ext->cell_data);
|
||||||
@@ -173,10 +181,18 @@ void lv_table_set_col_cnt(lv_obj_t * table, uint16_t col_cnt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
lv_table_ext_t * ext = lv_obj_get_ext_attr(table);
|
lv_table_ext_t * ext = lv_obj_get_ext_attr(table);
|
||||||
|
uint16_t old_col_cnt = ext->col_cnt;
|
||||||
ext->col_cnt = col_cnt;
|
ext->col_cnt = col_cnt;
|
||||||
|
|
||||||
if(ext->row_cnt > 0 && ext->col_cnt > 0) {
|
if(ext->row_cnt > 0 && ext->col_cnt > 0) {
|
||||||
ext->cell_data = lv_mem_realloc(ext->cell_data, ext->row_cnt * ext->col_cnt * sizeof(char*));
|
ext->cell_data = lv_mem_realloc(ext->cell_data, ext->row_cnt * ext->col_cnt * sizeof(char*));
|
||||||
|
/*Initilize the new fields*/
|
||||||
|
if(old_col_cnt < col_cnt) {
|
||||||
|
uint16_t old_cell_cnt = old_col_cnt * ext->row_cnt;
|
||||||
|
uint32_t new_cell_cnt = ext->col_cnt * ext->row_cnt;
|
||||||
|
memset(&ext->cell_data[old_cell_cnt], 0, (new_cell_cnt - old_cell_cnt) * sizeof(ext->cell_data[0]));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
lv_mem_free(ext->cell_data);
|
lv_mem_free(ext->cell_data);
|
||||||
|
|||||||
Reference in New Issue
Block a user