From d9d24d7ca4b16cfd037a5de676af61a5a2fdd6e9 Mon Sep 17 00:00:00 2001 From: Ali Jahangiri <75624145+aliphys@users.noreply.github.com> Date: Fri, 7 Jun 2024 08:33:13 +0200 Subject: [PATCH 1/3] chore: add lvgl 9.1 UI files --- .../README.md | 3 - .../squarelinestudio_lvgl.ino} | 8 +- .../ui/library.properties | 14 + .../ui/src/CMakeLists.txt | 9 + .../squarelinestudio_lvgl/ui/src/filelist.txt | 7 + .../lvgl/squarelinestudio_lvgl/ui/src/ui.c | 41 +++ .../lvgl/squarelinestudio_lvgl/ui/src/ui.h | 50 +++ .../squarelinestudio_lvgl/ui/src/ui_Screen1.c | 28 ++ .../squarelinestudio_lvgl/ui/src/ui_comp.c | 37 ++ .../squarelinestudio_lvgl/ui/src/ui_comp.h | 26 ++ .../ui/src/ui_comp_button.c | 31 ++ .../ui/src/ui_comp_button.h | 24 ++ .../ui/src/ui_comp_hook.c | 10 + .../ui/src/ui_comp_hook.h | 19 + .../ui/src/ui_events.h | 6 +- .../squarelinestudio_lvgl/ui/src/ui_helpers.c | 348 ++++++++++++++++++ .../squarelinestudio_lvgl/ui/src/ui_helpers.h | 149 ++++++++ .../ui/ui.h | 0 .../ui/library.properties | 7 - .../ui/src/CMakeLists.txt | 6 - .../ui/src/components/ui_comp_hook.c | 5 - .../ui/src/filelist.txt | 4 - .../ui/src/readme.txt | 1 - .../ui/src/screens/ui_Screen1.c | 28 -- .../lvgl/squarelinestudio_lvgl_v8/ui/src/ui.c | 41 --- .../lvgl/squarelinestudio_lvgl_v8/ui/src/ui.h | 43 --- .../ui/src/ui_helpers.c | 254 ------------- .../ui/src/ui_helpers.h | 122 ------ 28 files changed, 798 insertions(+), 523 deletions(-) rename examples/lvgl/{squarelinestudio_lvgl_v8 => squarelinestudio_lvgl}/README.md (51%) rename examples/lvgl/{squarelinestudio_lvgl_v8/squarelinestudio_lvgl_v8.ino => squarelinestudio_lvgl/squarelinestudio_lvgl.ino} (83%) create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/library.properties create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/CMakeLists.txt create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/filelist.txt create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/ui.c create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/ui.h create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/ui_Screen1.c create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp.c create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp.h create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_button.c create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_button.h create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_hook.c create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_hook.h rename examples/lvgl/{squarelinestudio_lvgl_v8 => squarelinestudio_lvgl}/ui/src/ui_events.h (61%) create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/ui_helpers.c create mode 100644 examples/lvgl/squarelinestudio_lvgl/ui/src/ui_helpers.h rename examples/lvgl/{squarelinestudio_lvgl_v8 => squarelinestudio_lvgl}/ui/ui.h (100%) delete mode 100644 examples/lvgl/squarelinestudio_lvgl_v8/ui/library.properties delete mode 100644 examples/lvgl/squarelinestudio_lvgl_v8/ui/src/CMakeLists.txt delete mode 100644 examples/lvgl/squarelinestudio_lvgl_v8/ui/src/components/ui_comp_hook.c delete mode 100644 examples/lvgl/squarelinestudio_lvgl_v8/ui/src/filelist.txt delete mode 100644 examples/lvgl/squarelinestudio_lvgl_v8/ui/src/readme.txt delete mode 100644 examples/lvgl/squarelinestudio_lvgl_v8/ui/src/screens/ui_Screen1.c delete mode 100644 examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui.c delete mode 100644 examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui.h delete mode 100644 examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui_helpers.c delete mode 100644 examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui_helpers.h diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/README.md b/examples/lvgl/squarelinestudio_lvgl/README.md similarity index 51% rename from examples/lvgl/squarelinestudio_lvgl_v8/README.md rename to examples/lvgl/squarelinestudio_lvgl/README.md index 276b899..cd01c38 100644 --- a/examples/lvgl/squarelinestudio_lvgl_v8/README.md +++ b/examples/lvgl/squarelinestudio_lvgl/README.md @@ -1,6 +1,3 @@ -> [!NOTE] -> SquareLine Studio has ended its collaboration with LVGL. It only supports LVGL version 8 and earlier. - # How to run the sketch: - move the `ui` folder into your `Arduino/libraries` directory - upload the sketch and see the magic! \ No newline at end of file diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/squarelinestudio_lvgl_v8.ino b/examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino similarity index 83% rename from examples/lvgl/squarelinestudio_lvgl_v8/squarelinestudio_lvgl_v8.ino rename to examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino index 2684ce9..d9ac0b1 100644 --- a/examples/lvgl/squarelinestudio_lvgl_v8/squarelinestudio_lvgl_v8.ino +++ b/examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino @@ -8,7 +8,7 @@ * 1. Create a SquareLine Studio project with the following settings: * - Resolution: 800x480 * - Color depth: 16-bit - * - LVGL version: 8.3.x (NOTE: It only supports LVGL version 8 and earlier.) + * - LVGL version: 9.1 * 2. Design your GUI using the drag-and-drop tool. * 3. Export the LVGL UI files. * 4. Open the exported file and copy the 'libraries/ui' folder into your 'Arduino/libraries' directory. @@ -23,16 +23,12 @@ #include "Arduino_GigaDisplayTouch.h" #include "lvgl.h" -#include "ui.h" +#include "ui/ui.h" /* Initialize the GIGA Display Shield with a resolution of 800x480 pixels */ Arduino_H7_Video Display(800, 480, GigaDisplayShield); Arduino_GigaDisplayTouch Touch; -#if (LVGL_VERSION_MAJOR >= 9) - #error "SquareLine Studio has ended its collaboration with LVGL. It only supports LVGL version 8 and earlier." -#endif - void setup() { Display.begin(); Touch.begin(); diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/library.properties b/examples/lvgl/squarelinestudio_lvgl/ui/library.properties new file mode 100644 index 0000000..640997f --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/library.properties @@ -0,0 +1,14 @@ +name=ui +version=1.0 +author=SquareLine_Studio +category=Display +url=https://squareline.io +architectures=* +includes=ui.h +sentence=SquareLine_Studio +paragraph=Squareline Studio creates smart, user-friendly LVGL UI solutions. +name=ui +maintainer=Squareline Studio +maintainer_email=contact@squareline.io + + diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/CMakeLists.txt b/examples/lvgl/squarelinestudio_lvgl/ui/src/CMakeLists.txt new file mode 100644 index 0000000..7efe089 --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/CMakeLists.txt @@ -0,0 +1,9 @@ +SET(SOURCES ui_comp_button.c + ui_comp.c + ui_Screen1.c + ui.c + ui_comp_hook.c + ui_helpers.c + ui_events.c) + +add_library(ui ${SOURCES}) diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/filelist.txt b/examples/lvgl/squarelinestudio_lvgl/ui/src/filelist.txt new file mode 100644 index 0000000..459c87a --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/filelist.txt @@ -0,0 +1,7 @@ +ui_comp_button.c +ui_comp.c +ui_Screen1.c +ui.c +ui_comp_hook.c +ui_helpers.c +ui_events.c diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui.c b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui.c new file mode 100644 index 0000000..ded0ff4 --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui.c @@ -0,0 +1,41 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.4.1 +// LVGL version: 9.1.0 +// Project name: SquareLine_Project + +#include "ui.h" +#include "ui_helpers.h" + +///////////////////// VARIABLES //////////////////// + + +// SCREEN: ui_Screen1 +void ui_Screen1_screen_init(void); +lv_obj_t * ui_Screen1; +lv_obj_t * ui_Button; +lv_obj_t * ui_Label1; +lv_obj_t * ui____initial_actions0; + +///////////////////// TEST LVGL SETTINGS //////////////////// +#if LV_COLOR_DEPTH != 16 + #error "LV_COLOR_DEPTH should be 16bit to match SquareLine Studio's settings" +#endif + +///////////////////// ANIMATIONS //////////////////// + +///////////////////// FUNCTIONS //////////////////// + +///////////////////// SCREENS //////////////////// + +void ui_init(void) +{ + LV_EVENT_GET_COMP_CHILD = lv_event_register_id(); + + lv_disp_t * dispp = lv_display_get_default(); + lv_theme_t * theme = lv_theme_default_init(dispp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), + false, LV_FONT_DEFAULT); + lv_disp_set_theme(dispp, theme); + ui_Screen1_screen_init(); + ui____initial_actions0 = lv_obj_create(NULL); + lv_disp_load_scr(ui_Screen1); +} diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui.h b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui.h new file mode 100644 index 0000000..8f686f9 --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui.h @@ -0,0 +1,50 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.4.1 +// LVGL version: 9.1.0 +// Project name: SquareLine_Project + +#ifndef _SQUARELINE_PROJECT_UI_H +#define _SQUARELINE_PROJECT_UI_H + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined __has_include +#if __has_include("lvgl.h") +#include "lvgl.h" +#elif __has_include("lvgl/lvgl.h") +#include "lvgl/lvgl.h" +#else +#include "lvgl.h" +#endif +#else +#include "lvgl.h" +#endif + +#include "ui_helpers.h" +#include "ui_comp.h" +#include "ui_comp_hook.h" +#include "ui_events.h" + +// SCREEN: ui_Screen1 +void ui_Screen1_screen_init(void); +extern lv_obj_t * ui_Screen1; +extern lv_obj_t * ui_Button; +extern lv_obj_t * ui_Label1; +extern lv_obj_t * ui____initial_actions0; + + + + + + + + +void ui_init(void); + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_Screen1.c b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_Screen1.c new file mode 100644 index 0000000..c7362c8 --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_Screen1.c @@ -0,0 +1,28 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.4.1 +// LVGL version: 9.1.0 +// Project name: SquareLine_Project + +#include "ui.h" + +void ui_Screen1_screen_init(void) +{ + ui_Screen1 = lv_obj_create(NULL); + lv_obj_remove_flag(ui_Screen1, LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_Button = ui_Button_create(ui_Screen1); + lv_obj_set_width(ui_Button, lv_pct(30)); + lv_obj_set_height(ui_Button, lv_pct(20)); + lv_obj_set_x(ui_Button, 0); + lv_obj_set_y(ui_Button, -3); + + ui_Label1 = lv_label_create(ui_Button); + lv_obj_set_width(ui_Label1, lv_pct(100)); + lv_obj_set_height(ui_Label1, lv_pct(100)); + lv_obj_set_x(ui_Label1, 18); + lv_obj_set_y(ui_Label1, 11); + lv_obj_set_align(ui_Label1, LV_ALIGN_CENTER); + lv_label_set_text(ui_Label1, "Button"); + lv_obj_set_style_text_font(ui_Label1, &lv_font_montserrat_46, LV_PART_MAIN | LV_STATE_DEFAULT); + +} diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp.c b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp.c new file mode 100644 index 0000000..0087da2 --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp.c @@ -0,0 +1,37 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.4.1 +// LVGL version: 9.1.0 +// Project name: SquareLine_Project + +#include "ui.h" +#include "ui_helpers.h" +#include "ui_comp.h" + +uint32_t LV_EVENT_GET_COMP_CHILD; + +typedef struct { + uint32_t child_idx; + lv_obj_t * child; +} ui_comp_get_child_t; + +lv_obj_t * ui_comp_get_child(lv_obj_t * comp, uint32_t child_idx) +{ + ui_comp_get_child_t info; + info.child = NULL; + info.child_idx = child_idx; + lv_obj_send_event(comp, LV_EVENT_GET_COMP_CHILD, &info); + return info.child; +} + +void get_component_child_event_cb(lv_event_t * e) +{ + lv_obj_t ** c = lv_event_get_user_data(e); + ui_comp_get_child_t * info = lv_event_get_param(e); + info->child = c[info->child_idx]; +} + +void del_component_child_event_cb(lv_event_t * e) +{ + lv_obj_t ** c = lv_event_get_user_data(e); + lv_free(c); +} diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp.h b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp.h new file mode 100644 index 0000000..747f3da --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp.h @@ -0,0 +1,26 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.4.1 +// LVGL version: 9.1.0 +// Project name: SquareLine_Project + +#ifndef _UI_COMP__H +#define _UI_COMP__H + +#include "ui.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void get_component_child_event_cb(lv_event_t * e); +void del_component_child_event_cb(lv_event_t * e); + +lv_obj_t * ui_comp_get_child(lv_obj_t * comp, uint32_t child_idx); +extern uint32_t LV_EVENT_GET_COMP_CHILD; +#include "ui_comp_button.h" + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_button.c b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_button.c new file mode 100644 index 0000000..1770bc8 --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_button.c @@ -0,0 +1,31 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.4.1 +// LVGL version: 9.1.0 +// Project name: SquareLine_Project + +#include "ui.h" + + +// COMPONENT Button + +lv_obj_t * ui_Button_create(lv_obj_t * comp_parent) +{ + + lv_obj_t * cui_Button; + cui_Button = lv_button_create(comp_parent); + lv_obj_set_width(cui_Button, 100); + lv_obj_set_height(cui_Button, 50); + lv_obj_set_x(cui_Button, 0); + lv_obj_set_y(cui_Button, -3); + lv_obj_set_align(cui_Button, LV_ALIGN_CENTER); + lv_obj_add_flag(cui_Button, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_remove_flag(cui_Button, LV_OBJ_FLAG_SCROLLABLE); /// Flags + + lv_obj_t ** children = lv_malloc(sizeof(lv_obj_t *) * _UI_COMP_BUTTON_NUM); + children[UI_COMP_BUTTON_BUTTON] = cui_Button; + lv_obj_add_event_cb(cui_Button, get_component_child_event_cb, LV_EVENT_GET_COMP_CHILD, children); + lv_obj_add_event_cb(cui_Button, del_component_child_event_cb, LV_EVENT_DELETE, children); + ui_comp_Button_create_hook(cui_Button); + return cui_Button; +} + diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_button.h b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_button.h new file mode 100644 index 0000000..e2eeeac --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_button.h @@ -0,0 +1,24 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.4.1 +// LVGL version: 9.1.0 +// Project name: SquareLine_Project + +#ifndef _UI_COMP_BUTTON_H +#define _UI_COMP_BUTTON_H + +#include "ui.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// COMPONENT Button +#define UI_COMP_BUTTON_BUTTON 0 +#define _UI_COMP_BUTTON_NUM 1 +lv_obj_t * ui_Button_create(lv_obj_t * comp_parent); + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_hook.c b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_hook.c new file mode 100644 index 0000000..96dceb8 --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_hook.c @@ -0,0 +1,10 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.4.1 +// LVGL version: 9.1.0 +// Project name: SquareLine_Project + +#include "ui.h" + +void ui_comp_Button_create_hook(lv_obj_t * comp) +{ +} diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_hook.h b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_hook.h new file mode 100644 index 0000000..9c2da56 --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_comp_hook.h @@ -0,0 +1,19 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.4.1 +// LVGL version: 9.1.0 +// Project name: SquareLine_Project + +#ifndef _SQUARELINE_PROJECT_UI_COMP_HOOK_H +#define _SQUARELINE_PROJECT_UI_COMP_HOOK_H + +#ifdef __cplusplus +extern "C" { +#endif + +void ui_comp_Button_create_hook(lv_obj_t * comp); + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui_events.h b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_events.h similarity index 61% rename from examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui_events.h rename to examples/lvgl/squarelinestudio_lvgl/ui/src/ui_events.h index 5fdf215..6cebfd0 100644 --- a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui_events.h +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_events.h @@ -1,7 +1,7 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.2 -// LVGL version: 8.3.6 -// Project name: ButtonTest +// SquareLine Studio version: SquareLine Studio 1.4.1 +// LVGL version: 9.1.0 +// Project name: SquareLine_Project #ifndef _UI_EVENTS_H #define _UI_EVENTS_H diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_helpers.c b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_helpers.c new file mode 100644 index 0000000..9ea0127 --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_helpers.c @@ -0,0 +1,348 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.4.1 +// LVGL version: 9.1.0 +// Project name: SquareLine_Project + +#include "ui_helpers.h" + +void _ui_bar_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_BAR_PROPERTY_VALUE_WITH_ANIM) lv_bar_set_value(target, val, LV_ANIM_ON); + if(id == _UI_BAR_PROPERTY_VALUE) lv_bar_set_value(target, val, LV_ANIM_OFF); +} + +void _ui_basic_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_BASIC_PROPERTY_POSITION_X) lv_obj_set_x(target, val); + if(id == _UI_BASIC_PROPERTY_POSITION_Y) lv_obj_set_y(target, val); + if(id == _UI_BASIC_PROPERTY_WIDTH) lv_obj_set_width(target, val); + if(id == _UI_BASIC_PROPERTY_HEIGHT) lv_obj_set_height(target, val); +} + + +void _ui_dropdown_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_DROPDOWN_PROPERTY_SELECTED) lv_dropdown_set_selected(target, val); +} + +void _ui_image_set_property(lv_obj_t * target, int id, uint8_t * val) +{ + if(id == _UI_IMAGE_PROPERTY_IMAGE) lv_image_set_src(target, val); +} + +void _ui_label_set_property(lv_obj_t * target, int id, const char * val) +{ + if(id == _UI_LABEL_PROPERTY_TEXT) lv_label_set_text(target, val); +} + + +void _ui_roller_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM) lv_roller_set_selected(target, val, LV_ANIM_ON); + if(id == _UI_ROLLER_PROPERTY_SELECTED) lv_roller_set_selected(target, val, LV_ANIM_OFF); +} + +void _ui_slider_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM) lv_slider_set_value(target, val, LV_ANIM_ON); + if(id == _UI_SLIDER_PROPERTY_VALUE) lv_slider_set_value(target, val, LV_ANIM_OFF); +} + + +void _ui_screen_change(lv_obj_t ** target, lv_screen_load_anim_t fademode, int spd, int delay, + void (*target_init)(void)) +{ + if(*target == NULL) + target_init(); + lv_screen_load_anim(*target, fademode, spd, delay, false); +} + +void _ui_screen_delete(lv_obj_t ** target) +{ + if(*target == NULL) { + lv_obj_delete(*target); + target = NULL; + } +} + +void _ui_arc_increment(lv_obj_t * target, int val) +{ + int old = lv_arc_get_value(target); + lv_arc_set_value(target, old + val); + lv_obj_send_event(target, LV_EVENT_VALUE_CHANGED, 0); +} + +void _ui_bar_increment(lv_obj_t * target, int val, int anm) +{ + int old = lv_bar_get_value(target); + lv_bar_set_value(target, old + val, anm); +} + +void _ui_slider_increment(lv_obj_t * target, int val, int anm) +{ + int old = lv_slider_get_value(target); + lv_slider_set_value(target, old + val, anm); + lv_obj_send_event(target, LV_EVENT_VALUE_CHANGED, 0); +} + +void _ui_keyboard_set_target(lv_obj_t * keyboard, lv_obj_t * textarea) +{ + lv_keyboard_set_textarea(keyboard, textarea); +} + +void _ui_flag_modify(lv_obj_t * target, int32_t flag, int value) +{ + if(value == _UI_MODIFY_FLAG_TOGGLE) { + if(lv_obj_has_flag(target, flag)) lv_obj_remove_flag(target, flag); + else lv_obj_add_flag(target, flag); + } + else if(value == _UI_MODIFY_FLAG_ADD) lv_obj_add_flag(target, flag); + else lv_obj_remove_flag(target, flag); +} +void _ui_state_modify(lv_obj_t * target, int32_t state, int value) +{ + if(value == _UI_MODIFY_STATE_TOGGLE) { + if(lv_obj_has_state(target, state)) lv_obj_remove_state(target, state); + else lv_obj_add_state(target, state); + } + else if(value == _UI_MODIFY_STATE_ADD) lv_obj_add_state(target, state); + else lv_obj_remove_state(target, state); +} + + +void _ui_textarea_move_cursor(lv_obj_t * target, int val) + +{ + + if(val == UI_MOVE_CURSOR_UP) lv_textarea_cursor_up(target); + if(val == UI_MOVE_CURSOR_RIGHT) lv_textarea_cursor_right(target); + if(val == UI_MOVE_CURSOR_DOWN) lv_textarea_cursor_down(target); + if(val == UI_MOVE_CURSOR_LEFT) lv_textarea_cursor_left(target); + lv_obj_add_state(target, LV_STATE_FOCUSED); +} + +void scr_unloaded_delete_cb(lv_event_t * e) + +{ + + lv_obj_t ** var = lv_event_get_user_data(e); + lv_obj_delete(*var); + (*var) = NULL; + +} + +void _ui_opacity_set(lv_obj_t * target, int val) +{ + lv_obj_set_style_opa(target, val, 0); +} + +void _ui_anim_callback_free_user_data(lv_anim_t * a) +{ + lv_free(a->user_data); + a->user_data = NULL; +} + +void _ui_anim_callback_set_x(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_x(usr->target, v); + +} + + +void _ui_anim_callback_set_y(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_y(usr->target, v); + +} + + +void _ui_anim_callback_set_width(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_width(usr->target, v); + +} + + +void _ui_anim_callback_set_height(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_height(usr->target, v); + +} + + +void _ui_anim_callback_set_opacity(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_style_opa(usr->target, v, 0); + +} + + +void _ui_anim_callback_set_image_zoom(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_image_set_scale(usr->target, v); + +} + + +void _ui_anim_callback_set_image_angle(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_image_set_rotation(usr->target, v); + +} + + +void _ui_anim_callback_set_image_frame(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + usr->val = v; + + if(v < 0) v = 0; + if(v >= usr->imgset_size) v = usr->imgset_size - 1; + lv_image_set_src(usr->target, usr->imgset[v]); +} + +int32_t _ui_anim_callback_get_x(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_x_aligned(usr->target); + +} + + +int32_t _ui_anim_callback_get_y(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_y_aligned(usr->target); + +} + + +int32_t _ui_anim_callback_get_width(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_width(usr->target); + +} + + +int32_t _ui_anim_callback_get_height(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_height(usr->target); + +} + + +int32_t _ui_anim_callback_get_opacity(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_style_opa(usr->target, 0); + +} + +int32_t _ui_anim_callback_get_image_zoom(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_image_get_scale(usr->target); + +} + +int32_t _ui_anim_callback_get_image_angle(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_image_get_rotation(usr->target); + +} + +int32_t _ui_anim_callback_get_image_frame(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return usr->val; + +} + +void _ui_arc_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix) +{ + char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; + + lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_arc_get_value(src), postfix); + + lv_label_set_text(trg, buf); +} + +void _ui_slider_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix) +{ + char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; + + lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_slider_get_value(src), postfix); + + lv_label_set_text(trg, buf); +} +void _ui_checked_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * txt_on, const char * txt_off) +{ + if(lv_obj_has_state(src, LV_STATE_CHECKED)) lv_label_set_text(trg, txt_on); + else lv_label_set_text(trg, txt_off); +} + + +void _ui_spinbox_step(lv_obj_t * target, int val) + +{ + + if(val > 0) lv_spinbox_increment(target); + + else lv_spinbox_decrement(target); + + + lv_obj_send_event(target, LV_EVENT_VALUE_CHANGED, 0); +} + +void _ui_switch_theme(int val) + +{ + +#ifdef UI_THEME_ACTIVE + ui_theme_set(val); +#endif +} + + diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_helpers.h b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_helpers.h new file mode 100644 index 0000000..1acfac4 --- /dev/null +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_helpers.h @@ -0,0 +1,149 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.4.1 +// LVGL version: 9.1.0 +// Project name: SquareLine_Project + +#ifndef _SQUARELINE_PROJECT_UI_HELPERS_H +#define _SQUARELINE_PROJECT_UI_HELPERS_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ui.h" + +#define _UI_TEMPORARY_STRING_BUFFER_SIZE 32 +#define _UI_BAR_PROPERTY_VALUE 0 +#define _UI_BAR_PROPERTY_VALUE_WITH_ANIM 1 +void _ui_bar_set_property(lv_obj_t * target, int id, int val); + +#define _UI_BASIC_PROPERTY_POSITION_X 0 +#define _UI_BASIC_PROPERTY_POSITION_Y 1 +#define _UI_BASIC_PROPERTY_WIDTH 2 +#define _UI_BASIC_PROPERTY_HEIGHT 3 +void _ui_basic_set_property(lv_obj_t * target, int id, int val); + +#define _UI_DROPDOWN_PROPERTY_SELECTED 0 +void _ui_dropdown_set_property(lv_obj_t * target, int id, int val); + +#define _UI_IMAGE_PROPERTY_IMAGE 0 +void _ui_image_set_property(lv_obj_t * target, int id, uint8_t * val); + +#define _UI_LABEL_PROPERTY_TEXT 0 +void _ui_label_set_property(lv_obj_t * target, int id, const char * val); + +#define _UI_ROLLER_PROPERTY_SELECTED 0 +#define _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM 1 +void _ui_roller_set_property(lv_obj_t * target, int id, int val); + +#define _UI_SLIDER_PROPERTY_VALUE 0 +#define _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM 1 +void _ui_slider_set_property(lv_obj_t * target, int id, int val); + +void _ui_screen_change(lv_obj_t ** target, lv_screen_load_anim_t fademode, int spd, int delay, + void (*target_init)(void)); + +void _ui_screen_delete(lv_obj_t ** target); + +void _ui_arc_increment(lv_obj_t * target, int val); + +void _ui_bar_increment(lv_obj_t * target, int val, int anm); + +void _ui_slider_increment(lv_obj_t * target, int val, int anm); + +void _ui_keyboard_set_target(lv_obj_t * keyboard, lv_obj_t * textarea); + +#define _UI_MODIFY_FLAG_ADD 0 +#define _UI_MODIFY_FLAG_REMOVE 1 +#define _UI_MODIFY_FLAG_TOGGLE 2 +void _ui_flag_modify(lv_obj_t * target, int32_t flag, int value); + +#define _UI_MODIFY_STATE_ADD 0 +#define _UI_MODIFY_STATE_REMOVE 1 +#define _UI_MODIFY_STATE_TOGGLE 2 +void _ui_state_modify(lv_obj_t * target, int32_t state, int value); + +#define UI_MOVE_CURSOR_UP 0 +#define UI_MOVE_CURSOR_RIGHT 1 +#define UI_MOVE_CURSOR_DOWN 2 +#define UI_MOVE_CURSOR_LEFT 3 +void _ui_textarea_move_cursor(lv_obj_t * target, int val) +; + + +void scr_unloaded_delete_cb(lv_event_t * e); + +void _ui_opacity_set(lv_obj_t * target, int val); + +/** Describes an animation*/ +typedef struct _ui_anim_user_data_t { + lv_obj_t * target; + lv_image_dsc_t ** imgset; + int32_t imgset_size; + int32_t val; +} ui_anim_user_data_t; +void _ui_anim_callback_free_user_data(lv_anim_t * a); + +void _ui_anim_callback_set_x(lv_anim_t * a, int32_t v); + +void _ui_anim_callback_set_y(lv_anim_t * a, int32_t v); + +void _ui_anim_callback_set_width(lv_anim_t * a, int32_t v); + +void _ui_anim_callback_set_height(lv_anim_t * a, int32_t v); + + +void _ui_anim_callback_set_opacity(lv_anim_t * a, int32_t v); + + +void _ui_anim_callback_set_image_zoom(lv_anim_t * a, int32_t v); + + +void _ui_anim_callback_set_image_angle(lv_anim_t * a, int32_t v); + + +void _ui_anim_callback_set_image_frame(lv_anim_t * a, int32_t v); + + +int32_t _ui_anim_callback_get_x(lv_anim_t * a); + +int32_t _ui_anim_callback_get_y(lv_anim_t * a); + +int32_t _ui_anim_callback_get_width(lv_anim_t * a); + + +int32_t _ui_anim_callback_get_height(lv_anim_t * a); + + +int32_t _ui_anim_callback_get_opacity(lv_anim_t * a); + + +int32_t _ui_anim_callback_get_image_zoom(lv_anim_t * a); + + +int32_t _ui_anim_callback_get_image_angle(lv_anim_t * a); + + +int32_t _ui_anim_callback_get_image_frame(lv_anim_t * a); + + +void _ui_arc_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix); + +void _ui_slider_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix); + +void _ui_checked_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * txt_on, const char * txt_off); + +void _ui_spinbox_step(lv_obj_t * target, int val) +; + + +void _ui_switch_theme(int val) +; + + + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/ui/ui.h b/examples/lvgl/squarelinestudio_lvgl/ui/ui.h similarity index 100% rename from examples/lvgl/squarelinestudio_lvgl_v8/ui/ui.h rename to examples/lvgl/squarelinestudio_lvgl/ui/ui.h diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/ui/library.properties b/examples/lvgl/squarelinestudio_lvgl_v8/ui/library.properties deleted file mode 100644 index 9eb18d4..0000000 --- a/examples/lvgl/squarelinestudio_lvgl_v8/ui/library.properties +++ /dev/null @@ -1,7 +0,0 @@ -name=ui -version=1.0 -author=SquareLine_Studio -category=Display -url=https://squareline.io -architectures=* -includes=ui.h diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/CMakeLists.txt b/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/CMakeLists.txt deleted file mode 100644 index 92b63e5..0000000 --- a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -SET(SOURCES screens/ui_Screen1.c - ui.c - components/ui_comp_hook.c - ui_helpers.c) - -add_library(ui ${SOURCES}) diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/components/ui_comp_hook.c b/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/components/ui_comp_hook.c deleted file mode 100644 index dc822ea..0000000 --- a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/components/ui_comp_hook.c +++ /dev/null @@ -1,5 +0,0 @@ -// This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.2 -// LVGL version: 8.3.6 -// Project name: ButtonTest - diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/filelist.txt b/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/filelist.txt deleted file mode 100644 index 92447dd..0000000 --- a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/filelist.txt +++ /dev/null @@ -1,4 +0,0 @@ -screens/ui_Screen1.c -ui.c -components/ui_comp_hook.c -ui_helpers.c diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/readme.txt b/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/readme.txt deleted file mode 100644 index 039a09b..0000000 --- a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/readme.txt +++ /dev/null @@ -1 +0,0 @@ -The UI files will be exported here diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/screens/ui_Screen1.c b/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/screens/ui_Screen1.c deleted file mode 100644 index b2f7749..0000000 --- a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/screens/ui_Screen1.c +++ /dev/null @@ -1,28 +0,0 @@ -// This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.2 -// LVGL version: 8.3.6 -// Project name: ButtonTest - -#include "../ui.h" - -void ui_Screen1_screen_init(void) -{ -ui_Screen1 = lv_obj_create(NULL); -lv_obj_clear_flag( ui_Screen1, LV_OBJ_FLAG_SCROLLABLE ); /// Flags - -ui_Button1 = lv_btn_create(ui_Screen1); -lv_obj_set_width( ui_Button1, 150); -lv_obj_set_height( ui_Button1, 125); -lv_obj_set_x( ui_Button1, -5 ); -lv_obj_set_y( ui_Button1, -3 ); -lv_obj_set_align( ui_Button1, LV_ALIGN_CENTER ); -lv_obj_add_flag( ui_Button1, LV_OBJ_FLAG_SCROLL_ON_FOCUS ); /// Flags -lv_obj_clear_flag( ui_Button1, LV_OBJ_FLAG_SCROLLABLE ); /// Flags - -ui_Label1 = lv_label_create(ui_Button1); -lv_obj_set_width( ui_Label1, LV_SIZE_CONTENT); /// 1 -lv_obj_set_height( ui_Label1, LV_SIZE_CONTENT); /// 1 -lv_obj_set_align( ui_Label1, LV_ALIGN_CENTER ); -lv_label_set_text(ui_Label1,"Button"); - -} diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui.c b/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui.c deleted file mode 100644 index 323354d..0000000 --- a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui.c +++ /dev/null @@ -1,41 +0,0 @@ -// This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.2 -// LVGL version: 8.3.6 -// Project name: ButtonTest - -#include "ui.h" -#include "ui_helpers.h" - -///////////////////// VARIABLES //////////////////// - - -// SCREEN: ui_Screen1 -void ui_Screen1_screen_init(void); -lv_obj_t *ui_Screen1; -lv_obj_t *ui_Button1; -lv_obj_t *ui_Label1; -lv_obj_t *ui____initial_actions0; - -///////////////////// TEST LVGL SETTINGS //////////////////// -#if LV_COLOR_DEPTH != 16 - #error "LV_COLOR_DEPTH should be 16bit to match SquareLine Studio's settings" -#endif -#if LV_COLOR_16_SWAP !=0 - #error "LV_COLOR_16_SWAP should be 0 to match SquareLine Studio's settings" -#endif - -///////////////////// ANIMATIONS //////////////////// - -///////////////////// FUNCTIONS //////////////////// - -///////////////////// SCREENS //////////////////// - -void ui_init( void ) -{ -lv_disp_t *dispp = lv_disp_get_default(); -lv_theme_t *theme = lv_theme_default_init(dispp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), false, LV_FONT_DEFAULT); -lv_disp_set_theme(dispp, theme); -ui_Screen1_screen_init(); -ui____initial_actions0 = lv_obj_create(NULL); -lv_disp_load_scr( ui_Screen1); -} diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui.h b/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui.h deleted file mode 100644 index bca2ecb..0000000 --- a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui.h +++ /dev/null @@ -1,43 +0,0 @@ -// This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.2 -// LVGL version: 8.3.6 -// Project name: ButtonTest - -#ifndef _BUTTONTEST_UI_H -#define _BUTTONTEST_UI_H - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined __has_include - #if __has_include("lvgl.h") - #include "lvgl.h" - #elif __has_include("lvgl/lvgl.h") - #include "lvgl/lvgl.h" - #else - #include "lvgl.h" - #endif -#else - #include "lvgl.h" -#endif - -#include "ui_helpers.h" -#include "ui_events.h" -// SCREEN: ui_Screen1 -void ui_Screen1_screen_init(void); -extern lv_obj_t *ui_Screen1; -extern lv_obj_t *ui_Button1; -extern lv_obj_t *ui_Label1; -extern lv_obj_t *ui____initial_actions0; - - - - -void ui_init(void); - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui_helpers.c b/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui_helpers.c deleted file mode 100644 index 6ee259f..0000000 --- a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui_helpers.c +++ /dev/null @@ -1,254 +0,0 @@ -// This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.2 -// LVGL version: 8.3.6 -// Project name: ButtonTest - -#include "ui_helpers.h" - -void _ui_bar_set_property( lv_obj_t *target, int id, int val) -{ - if (id == _UI_BAR_PROPERTY_VALUE_WITH_ANIM) lv_bar_set_value(target, val, LV_ANIM_ON); - if (id == _UI_BAR_PROPERTY_VALUE) lv_bar_set_value(target, val, LV_ANIM_OFF); -} - -void _ui_basic_set_property( lv_obj_t *target, int id, int val) -{ - if (id == _UI_BASIC_PROPERTY_POSITION_X) lv_obj_set_x(target, val); - if (id == _UI_BASIC_PROPERTY_POSITION_Y) lv_obj_set_y(target, val); - if (id == _UI_BASIC_PROPERTY_WIDTH) lv_obj_set_width(target, val); - if (id == _UI_BASIC_PROPERTY_HEIGHT) lv_obj_set_height(target, val); -} - -void _ui_dropdown_set_property( lv_obj_t *target, int id, int val) -{ - if (id == _UI_DROPDOWN_PROPERTY_SELECTED) lv_dropdown_set_selected(target, val); -} - -void _ui_image_set_property( lv_obj_t *target, int id, uint8_t *val) -{ - if (id == _UI_IMAGE_PROPERTY_IMAGE) lv_img_set_src(target, val); -} - -void _ui_label_set_property( lv_obj_t *target, int id, const char *val) -{ - if (id == _UI_LABEL_PROPERTY_TEXT) lv_label_set_text(target, val); -} - -void _ui_roller_set_property( lv_obj_t *target, int id, int val) -{ - if (id == _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM) lv_roller_set_selected(target, val, LV_ANIM_ON); - if (id == _UI_ROLLER_PROPERTY_SELECTED) lv_roller_set_selected(target, val, LV_ANIM_OFF); -} - -void _ui_slider_set_property( lv_obj_t *target, int id, int val) -{ - if (id == _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM) lv_slider_set_value(target, val, LV_ANIM_ON); - if (id == _UI_SLIDER_PROPERTY_VALUE) lv_slider_set_value(target, val, LV_ANIM_OFF); -} - -void _ui_screen_change( lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)) -{ - if(*target == NULL) - target_init(); - lv_scr_load_anim(*target, fademode, spd, delay, false); -} - -void _ui_screen_delete( lv_obj_t ** target ) -{ - if(*target == NULL) - { - lv_obj_del(*target); - target = NULL; - } -} - -void _ui_arc_increment( lv_obj_t *target, int val) -{ - int old = lv_arc_get_value(target); - lv_arc_set_value(target, old+val); - lv_event_send(target,LV_EVENT_VALUE_CHANGED, 0); -} - -void _ui_bar_increment( lv_obj_t *target, int val, int anm) -{ - int old = lv_bar_get_value(target); - lv_bar_set_value(target, old+val, anm); -} - -void _ui_slider_increment( lv_obj_t *target, int val, int anm) -{ - int old = lv_slider_get_value(target); - lv_slider_set_value(target, old+val, anm); - lv_event_send(target,LV_EVENT_VALUE_CHANGED, 0); -} - -void _ui_keyboard_set_target( lv_obj_t *keyboard, lv_obj_t *textarea) -{ - lv_keyboard_set_textarea(keyboard, textarea); -} - -void _ui_flag_modify( lv_obj_t *target, int32_t flag, int value) -{ - if (value==_UI_MODIFY_FLAG_TOGGLE) - { - if ( lv_obj_has_flag(target,flag) ) lv_obj_clear_flag(target,flag); - else lv_obj_add_flag(target,flag); - } - else if (value==_UI_MODIFY_FLAG_ADD) lv_obj_add_flag(target,flag); - else lv_obj_clear_flag(target,flag); -} -void _ui_state_modify( lv_obj_t *target, int32_t state, int value) -{ - if (value==_UI_MODIFY_STATE_TOGGLE) - { - if ( lv_obj_has_state(target,state) ) lv_obj_clear_state(target,state); - else lv_obj_add_state(target,state); - } - else if (value==_UI_MODIFY_STATE_ADD) lv_obj_add_state(target,state); - else lv_obj_clear_state(target,state); -} - -void scr_unloaded_delete_cb(lv_event_t * e) -{ - lv_obj_t ** var = lv_event_get_user_data(e); - lv_obj_del(*var); - (*var) = NULL; -} - -void _ui_opacity_set( lv_obj_t *target, int val) -{ - lv_obj_set_style_opa(target, val, 0); -} - -void _ui_anim_callback_free_user_data(lv_anim_t *a) -{ - lv_mem_free(a->user_data); - a->user_data=NULL; -} - -void _ui_anim_callback_set_x(lv_anim_t* a, int32_t v) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_obj_set_x(usr->target, v); -} - -void _ui_anim_callback_set_y(lv_anim_t* a, int32_t v) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_obj_set_y(usr->target, v); -} - -void _ui_anim_callback_set_width(lv_anim_t* a, int32_t v) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_obj_set_width(usr->target, v); -} - -void _ui_anim_callback_set_height(lv_anim_t* a, int32_t v) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_obj_set_height(usr->target, v); -} - -void _ui_anim_callback_set_opacity(lv_anim_t* a, int32_t v) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_obj_set_style_opa(usr->target, v, 0); -} - -void _ui_anim_callback_set_image_zoom(lv_anim_t* a, int32_t v) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_img_set_zoom(usr->target, v); -} - -void _ui_anim_callback_set_image_angle(lv_anim_t* a, int32_t v) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_img_set_angle(usr->target, v); -} - -void _ui_anim_callback_set_image_frame(lv_anim_t* a, int32_t v) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - usr->val = v; - if ( v<0 ) v=0; - if ( v>=usr->imgset_size ) v=usr->imgset_size-1; - lv_img_set_src(usr->target, usr->imgset[v]); -} - -int32_t _ui_anim_callback_get_x(lv_anim_t* a) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_obj_get_x_aligned(usr->target); -} - -int32_t _ui_anim_callback_get_y(lv_anim_t* a) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_obj_get_y_aligned(usr->target); -} - -int32_t _ui_anim_callback_get_width(lv_anim_t* a) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_obj_get_width(usr->target); -} - -int32_t _ui_anim_callback_get_height(lv_anim_t* a) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_obj_get_height(usr->target); -} - -int32_t _ui_anim_callback_get_opacity(lv_anim_t* a) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_obj_get_style_opa(usr->target, 0); -} - -int32_t _ui_anim_callback_get_image_zoom(lv_anim_t* a) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_img_get_zoom(usr->target); -} - -int32_t _ui_anim_callback_get_image_angle(lv_anim_t* a) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_img_get_angle(usr->target); -} - -int32_t _ui_anim_callback_get_image_frame(lv_anim_t* a) -{ - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return usr->val; -} - -void _ui_arc_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix) -{ - char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; - lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_arc_get_value(src), postfix); - lv_label_set_text(trg, buf); -} - -void _ui_slider_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix) -{ - char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; - lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_slider_get_value(src), postfix); - lv_label_set_text(trg, buf); -} -void _ui_checked_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *txt_on, const char *txt_off) -{ - if (lv_obj_has_state(src,LV_STATE_CHECKED)) lv_label_set_text(trg,txt_on); - else lv_label_set_text(trg,txt_off); -} - -void _ui_spinbox_step(lv_obj_t * target, int val) -{ - if(val > 0) lv_spinbox_increment(target); - else lv_spinbox_decrement(target); - - lv_event_send(target,LV_EVENT_VALUE_CHANGED, 0); -} - diff --git a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui_helpers.h b/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui_helpers.h deleted file mode 100644 index f79f42c..0000000 --- a/examples/lvgl/squarelinestudio_lvgl_v8/ui/src/ui_helpers.h +++ /dev/null @@ -1,122 +0,0 @@ -// This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.2 -// LVGL version: 8.3.6 -// Project name: ButtonTest - -#ifndef _BUTTONTEST_UI_HELPERS_H -#define _BUTTONTEST_UI_HELPERS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "ui.h" - -#define _UI_TEMPORARY_STRING_BUFFER_SIZE 32 -#define _UI_BAR_PROPERTY_VALUE 0 -#define _UI_BAR_PROPERTY_VALUE_WITH_ANIM 1 -void _ui_bar_set_property( lv_obj_t *target, int id, int val); - -#define _UI_BASIC_PROPERTY_POSITION_X 0 -#define _UI_BASIC_PROPERTY_POSITION_Y 1 -#define _UI_BASIC_PROPERTY_WIDTH 2 -#define _UI_BASIC_PROPERTY_HEIGHT 3 -void _ui_basic_set_property( lv_obj_t *target, int id, int val); - -#define _UI_DROPDOWN_PROPERTY_SELECTED 0 -void _ui_dropdown_set_property( lv_obj_t *target, int id, int val); - -#define _UI_IMAGE_PROPERTY_IMAGE 0 -void _ui_image_set_property( lv_obj_t *target, int id, uint8_t *val); - -#define _UI_LABEL_PROPERTY_TEXT 0 -void _ui_label_set_property( lv_obj_t *target, int id, const char *val); - -#define _UI_ROLLER_PROPERTY_SELECTED 0 -#define _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM 1 -void _ui_roller_set_property( lv_obj_t *target, int id, int val); - -#define _UI_SLIDER_PROPERTY_VALUE 0 -#define _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM 1 -void _ui_slider_set_property( lv_obj_t *target, int id, int val); - -void _ui_screen_change( lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)); - -void _ui_screen_delete( lv_obj_t ** target ); - -void _ui_arc_increment( lv_obj_t *target, int val); - -void _ui_bar_increment( lv_obj_t *target, int val, int anm); - -void _ui_slider_increment( lv_obj_t *target, int val, int anm); - -void _ui_keyboard_set_target( lv_obj_t *keyboard, lv_obj_t *textarea); - -#define _UI_MODIFY_FLAG_ADD 0 -#define _UI_MODIFY_FLAG_REMOVE 1 -#define _UI_MODIFY_FLAG_TOGGLE 2 -void _ui_flag_modify( lv_obj_t *target, int32_t flag, int value); - -#define _UI_MODIFY_STATE_ADD 0 -#define _UI_MODIFY_STATE_REMOVE 1 -#define _UI_MODIFY_STATE_TOGGLE 2 -void _ui_state_modify( lv_obj_t *target, int32_t state, int value); - -void scr_unloaded_delete_cb(lv_event_t * e); - -void _ui_opacity_set( lv_obj_t *target, int val); - -/** Describes an animation*/ -typedef struct _ui_anim_user_data_t { - lv_obj_t *target; - lv_img_dsc_t **imgset; - int32_t imgset_size; - int32_t val; -} ui_anim_user_data_t; -void _ui_anim_callback_free_user_data(lv_anim_t *a); - -void _ui_anim_callback_set_x(lv_anim_t* a, int32_t v); - -void _ui_anim_callback_set_y(lv_anim_t* a, int32_t v); - -void _ui_anim_callback_set_width(lv_anim_t* a, int32_t v); - -void _ui_anim_callback_set_height(lv_anim_t* a, int32_t v); - -void _ui_anim_callback_set_opacity(lv_anim_t* a, int32_t v); - -void _ui_anim_callback_set_image_zoom(lv_anim_t* a, int32_t v); - -void _ui_anim_callback_set_image_angle(lv_anim_t* a, int32_t v); - -void _ui_anim_callback_set_image_frame(lv_anim_t* a, int32_t v); - -int32_t _ui_anim_callback_get_x(lv_anim_t* a); - -int32_t _ui_anim_callback_get_y(lv_anim_t* a); - -int32_t _ui_anim_callback_get_width(lv_anim_t* a); - -int32_t _ui_anim_callback_get_height(lv_anim_t* a); - -int32_t _ui_anim_callback_get_opacity(lv_anim_t* a); - -int32_t _ui_anim_callback_get_image_zoom(lv_anim_t* a); - -int32_t _ui_anim_callback_get_image_angle(lv_anim_t* a); - -int32_t _ui_anim_callback_get_image_frame(lv_anim_t* a); - -void _ui_arc_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix); - -void _ui_slider_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix); - -void _ui_checked_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *txt_on, const char *txt_off); - -void _ui_spinbox_step(lv_obj_t * target, int val) ; - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif From bcabf188ad0bb9d7f8215601b4e6d4c1aeedd12f Mon Sep 17 00:00:00 2001 From: Ali Jahangiri <75624145+aliphys@users.noreply.github.com> Date: Fri, 7 Jun 2024 10:16:14 +0200 Subject: [PATCH 2/3] fix: correct font size and include Co-authored-by: Leonardo Cavagnis --- examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino | 2 +- examples/lvgl/squarelinestudio_lvgl/ui/src/ui_Screen1.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino b/examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino index d9ac0b1..1644b5e 100644 --- a/examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino +++ b/examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino @@ -23,7 +23,7 @@ #include "Arduino_GigaDisplayTouch.h" #include "lvgl.h" -#include "ui/ui.h" +#include "ui.h" /* Initialize the GIGA Display Shield with a resolution of 800x480 pixels */ Arduino_H7_Video Display(800, 480, GigaDisplayShield); diff --git a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_Screen1.c b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_Screen1.c index c7362c8..69e5ff4 100644 --- a/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_Screen1.c +++ b/examples/lvgl/squarelinestudio_lvgl/ui/src/ui_Screen1.c @@ -23,6 +23,6 @@ void ui_Screen1_screen_init(void) lv_obj_set_y(ui_Label1, 11); lv_obj_set_align(ui_Label1, LV_ALIGN_CENTER); lv_label_set_text(ui_Label1, "Button"); - lv_obj_set_style_text_font(ui_Label1, &lv_font_montserrat_46, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_Label1, &lv_font_montserrat_14, LV_PART_MAIN | LV_STATE_DEFAULT); } From 1a903443a8c3ca072cffb3cf02a4d7be14edc68d Mon Sep 17 00:00:00 2001 From: Ali Jahangiri <75624145+aliphys@users.noreply.github.com> Date: Mon, 10 Jun 2024 15:37:12 +0200 Subject: [PATCH 3/3] Update examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino Co-authored-by: Leonardo Cavagnis <45899760+leonardocavagnis@users.noreply.github.com> --- examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino b/examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino index 1644b5e..e0e45a1 100644 --- a/examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino +++ b/examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino @@ -8,7 +8,7 @@ * 1. Create a SquareLine Studio project with the following settings: * - Resolution: 800x480 * - Color depth: 16-bit - * - LVGL version: 9.1 + * - LVGL version: 9.x.x * 2. Design your GUI using the drag-and-drop tool. * 3. Export the LVGL UI files. * 4. Open the exported file and copy the 'libraries/ui' folder into your 'Arduino/libraries' directory.