From 85404dc83c741a5b660f8aa59cc720251130b8be Mon Sep 17 00:00:00 2001 From: Felix LVGL Date: Tue, 31 Mar 2026 18:57:29 +0300 Subject: [PATCH 1/3] add example widget - wd_segment widget --- tutorials/9_new_widget/.gitignore | 1 + tutorials/9_new_widget/CMakeLists.txt | 41 + .../9_new_widget/component_lib_list_gen.cmake | 3 + tutorials/9_new_widget/components/README.md | 1 + .../components/segment_item/segment_item.xml | 29 + .../segment_item/segment_item_gen.c | 76 + .../segment_item/segment_item_gen.h | 46 + tutorials/9_new_widget/file_list_gen.cmake | 10 + tutorials/9_new_widget/fonts/README.md | 1 + tutorials/9_new_widget/globals.xml | 26 + tutorials/9_new_widget/images/README.md | 1 + tutorials/9_new_widget/new_widget.c | 44 + tutorials/9_new_widget/new_widget.h | 47 + tutorials/9_new_widget/new_widget_gen.c | 126 + tutorials/9_new_widget/new_widget_gen.h | 95 + .../9_new_widget/preview-bin/.lvgl-version | 1 + .../9_new_widget/preview-bin/lved-runtime.js | 9393 +++++++++++++++++ .../preview-bin/lved-runtime.wasm | Bin 0 -> 4406804 bytes tutorials/9_new_widget/project.xml | 7 + tutorials/9_new_widget/screens/README.md | 1 + .../screens/screen_widgets/screen_widgets.xml | 13 + .../screen_widgets/screen_widgets_gen.c | 63 + .../screen_widgets/screen_widgets_gen.h | 48 + tutorials/9_new_widget/widgets/README.md | 1 + .../widgets/wd_segment/wd_segment.c | 135 + .../widgets/wd_segment/wd_segment.h | 43 + .../widgets/wd_segment/wd_segment.xml | 31 + .../widgets/wd_segment/wd_segment_gen.c | 123 + .../widgets/wd_segment/wd_segment_gen.h | 74 + .../wd_segment/wd_segment_private_gen.h | 60 + .../wd_segment/wd_segment_xml_parser.c | 122 + 31 files changed, 10662 insertions(+) create mode 100644 tutorials/9_new_widget/.gitignore create mode 100644 tutorials/9_new_widget/CMakeLists.txt create mode 100644 tutorials/9_new_widget/component_lib_list_gen.cmake create mode 100644 tutorials/9_new_widget/components/README.md create mode 100644 tutorials/9_new_widget/components/segment_item/segment_item.xml create mode 100644 tutorials/9_new_widget/components/segment_item/segment_item_gen.c create mode 100644 tutorials/9_new_widget/components/segment_item/segment_item_gen.h create mode 100644 tutorials/9_new_widget/file_list_gen.cmake create mode 100644 tutorials/9_new_widget/fonts/README.md create mode 100644 tutorials/9_new_widget/globals.xml create mode 100644 tutorials/9_new_widget/images/README.md create mode 100644 tutorials/9_new_widget/new_widget.c create mode 100644 tutorials/9_new_widget/new_widget.h create mode 100644 tutorials/9_new_widget/new_widget_gen.c create mode 100644 tutorials/9_new_widget/new_widget_gen.h create mode 100644 tutorials/9_new_widget/preview-bin/.lvgl-version create mode 100644 tutorials/9_new_widget/preview-bin/lved-runtime.js create mode 100755 tutorials/9_new_widget/preview-bin/lved-runtime.wasm create mode 100644 tutorials/9_new_widget/project.xml create mode 100644 tutorials/9_new_widget/screens/README.md create mode 100644 tutorials/9_new_widget/screens/screen_widgets/screen_widgets.xml create mode 100644 tutorials/9_new_widget/screens/screen_widgets/screen_widgets_gen.c create mode 100644 tutorials/9_new_widget/screens/screen_widgets/screen_widgets_gen.h create mode 100644 tutorials/9_new_widget/widgets/README.md create mode 100644 tutorials/9_new_widget/widgets/wd_segment/wd_segment.c create mode 100644 tutorials/9_new_widget/widgets/wd_segment/wd_segment.h create mode 100644 tutorials/9_new_widget/widgets/wd_segment/wd_segment.xml create mode 100644 tutorials/9_new_widget/widgets/wd_segment/wd_segment_gen.c create mode 100644 tutorials/9_new_widget/widgets/wd_segment/wd_segment_gen.h create mode 100644 tutorials/9_new_widget/widgets/wd_segment/wd_segment_private_gen.h create mode 100644 tutorials/9_new_widget/widgets/wd_segment/wd_segment_xml_parser.c diff --git a/tutorials/9_new_widget/.gitignore b/tutorials/9_new_widget/.gitignore new file mode 100644 index 0000000..8b23de8 --- /dev/null +++ b/tutorials/9_new_widget/.gitignore @@ -0,0 +1 @@ +preview-build diff --git a/tutorials/9_new_widget/CMakeLists.txt b/tutorials/9_new_widget/CMakeLists.txt new file mode 100644 index 0000000..e46feb5 --- /dev/null +++ b/tutorials/9_new_widget/CMakeLists.txt @@ -0,0 +1,41 @@ +# This basic file is used to compile the runtime for the Editor preview. +# Generated file, do not edit. + +# Only set project if this is the top-level CMakeLists.txt +if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + cmake_minimum_required(VERSION 3.10) + # can be customized + project(LVGLProject) + set(IS_TOP_LEVEL TRUE) +else() + set(IS_TOP_LEVEL FALSE) +endif() + +# Handles giving component libraries unique names when included as subprojects. +if (DEFINED LVGL_COMPONENT_LIB_NAME) + set(LIB_NAME ${LVGL_COMPONENT_LIB_NAME}) +else() + set(LIB_NAME lib-ui) +endif() + +# This includes the generated list of .c files +include(${CMAKE_CURRENT_LIST_DIR}/file_list_gen.cmake) +# Include any component libraries +include(${CMAKE_CURRENT_LIST_DIR}/component_lib_list_gen.cmake) + +# Create the UI sources as a library +add_library(${LIB_NAME} ${LV_EDITOR_PROJECT_SOURCES}) +if (DEFINED LV_EDITOR_COMPONENT_LIB_LIST) + target_link_libraries(${LIB_NAME} PUBLIC ${LV_EDITOR_COMPONENT_LIB_LIST}) +endif () + +if(TARGET lvgl) + target_link_libraries(${LIB_NAME} PUBLIC lvgl) +endif() + +# Add the project folder as include folder +target_include_directories(${LIB_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) + +# Set include directories for the project +# This will include the LVGL includes +target_include_directories(${LIB_NAME} PRIVATE ${COMMON_INCLUDE_DIRS}) diff --git a/tutorials/9_new_widget/component_lib_list_gen.cmake b/tutorials/9_new_widget/component_lib_list_gen.cmake new file mode 100644 index 0000000..b28b04f --- /dev/null +++ b/tutorials/9_new_widget/component_lib_list_gen.cmake @@ -0,0 +1,3 @@ + + + diff --git a/tutorials/9_new_widget/components/README.md b/tutorials/9_new_widget/components/README.md new file mode 100644 index 0000000..c44ff7a --- /dev/null +++ b/tutorials/9_new_widget/components/README.md @@ -0,0 +1 @@ +Create XML files here that start with a `` tag diff --git a/tutorials/9_new_widget/components/segment_item/segment_item.xml b/tutorials/9_new_widget/components/segment_item/segment_item.xml new file mode 100644 index 0000000..6be4574 --- /dev/null +++ b/tutorials/9_new_widget/components/segment_item/segment_item.xml @@ -0,0 +1,29 @@ + + + + + + + + + + +