mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-21 22:52:46 +08:00
feat(demo): separate the widgets demo into multiple files (#8507)
Arduino Lint / lint (push) Has been cancelled
Build Examples with C++ Compiler / build-examples (push) Has been cancelled
Hardware Build Test / Hardware Build Test (push) Has been cancelled
MicroPython CI / Build esp32 port (push) Has been cancelled
MicroPython CI / Build rp2 port (push) Has been cancelled
MicroPython CI / Build stm32 port (push) Has been cancelled
MicroPython CI / Build unix port (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_NORMAL_8BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_SDL - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_VG_LITE - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_VG_LITE - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_VG_LITE - gcc - Windows (push) Has been cancelled
C/C++ CI / Build ESP IDF ESP32S3 (push) Has been cancelled
C/C++ CI / Run tests with 32bit build (push) Has been cancelled
C/C++ CI / Run tests with 64bit build (push) Has been cancelled
BOM Check / bom-check (push) Has been cancelled
Verify that lv_conf_internal.h matches repository state / verify-conf-internal (push) Has been cancelled
Verify the widget property name / verify-property-name (push) Has been cancelled
Verify code formatting / verify-formatting (push) Has been cancelled
Compare file templates with file names / template-check (push) Has been cancelled
Build docs / build-and-deploy (push) Has been cancelled
Test API JSON generator / Test API JSON (push) Has been cancelled
Check Makefile / Build using Makefile (push) Has been cancelled
Check Makefile for UEFI / Build using Makefile for UEFI (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/benchmark_results_comment/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/filter_docker_logs/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/serialize_results/test.sh) (push) Has been cancelled
Hardware Performance Test / Hardware Performance Benchmark (push) Has been cancelled
Hardware Performance Test / HW Benchmark - Save PR Number (push) Has been cancelled
Performance Tests CI / Perf Tests OPTIONS_TEST_PERF_32B - Ubuntu (push) Has been cancelled
Performance Tests CI / Perf Tests OPTIONS_TEST_PERF_64B - Ubuntu (push) Has been cancelled
Port repo release update / run-release-branch-updater (push) Has been cancelled
Verify Font License / verify-font-license (push) Has been cancelled
Verify Kconfig / verify-kconfig (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark 32b - lv_conf_perf32b (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark 64b - lv_conf_perf64b (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Save PR Number (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
Arduino Lint / lint (push) Has been cancelled
Build Examples with C++ Compiler / build-examples (push) Has been cancelled
Hardware Build Test / Hardware Build Test (push) Has been cancelled
MicroPython CI / Build esp32 port (push) Has been cancelled
MicroPython CI / Build rp2 port (push) Has been cancelled
MicroPython CI / Build stm32 port (push) Has been cancelled
MicroPython CI / Build unix port (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_NORMAL_8BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_SDL - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_VG_LITE - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_VG_LITE - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_VG_LITE - gcc - Windows (push) Has been cancelled
C/C++ CI / Build ESP IDF ESP32S3 (push) Has been cancelled
C/C++ CI / Run tests with 32bit build (push) Has been cancelled
C/C++ CI / Run tests with 64bit build (push) Has been cancelled
BOM Check / bom-check (push) Has been cancelled
Verify that lv_conf_internal.h matches repository state / verify-conf-internal (push) Has been cancelled
Verify the widget property name / verify-property-name (push) Has been cancelled
Verify code formatting / verify-formatting (push) Has been cancelled
Compare file templates with file names / template-check (push) Has been cancelled
Build docs / build-and-deploy (push) Has been cancelled
Test API JSON generator / Test API JSON (push) Has been cancelled
Check Makefile / Build using Makefile (push) Has been cancelled
Check Makefile for UEFI / Build using Makefile for UEFI (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/benchmark_results_comment/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/filter_docker_logs/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/serialize_results/test.sh) (push) Has been cancelled
Hardware Performance Test / Hardware Performance Benchmark (push) Has been cancelled
Hardware Performance Test / HW Benchmark - Save PR Number (push) Has been cancelled
Performance Tests CI / Perf Tests OPTIONS_TEST_PERF_32B - Ubuntu (push) Has been cancelled
Performance Tests CI / Perf Tests OPTIONS_TEST_PERF_64B - Ubuntu (push) Has been cancelled
Port repo release update / run-release-branch-updater (push) Has been cancelled
Verify Font License / verify-font-license (push) Has been cancelled
Verify Kconfig / verify-kconfig (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark 32b - lv_conf_perf32b (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark 64b - lv_conf_perf64b (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Save PR Number (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
This commit is contained in:
committed by
GitHub
parent
8c7b3115b1
commit
ec4536e916
+24
-1427
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* @file lv_demo_widgets_analytics.h
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef LV_DEMO_WIDGETS_ANALYTICS_H
|
||||
#define LV_DEMO_WIDGETS_ANALYTICS_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#include "lv_demo_widgets.h"
|
||||
#if LV_USE_DEMO_WIDGETS
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* GLOBAL PROTOTYPES
|
||||
**********************/
|
||||
void lv_demo_widgets_analytics_create(lv_obj_t * parent);
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
#endif /* LV_USE_DEMO_WIDGETS */
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /*LV_DEMO_WIDGETS_ANALYTICS_H*/
|
||||
@@ -0,0 +1,145 @@
|
||||
/**
|
||||
* @file lv_demo_widgets_components.c
|
||||
*
|
||||
*/
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#include "lv_demo_widgets_components.h"
|
||||
#if LV_USE_DEMO_WIDGETS
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* STATIC PROTOTYPES
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* STATIC VARIABLES
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* GLOBAL VARIABLES
|
||||
**********************/
|
||||
disp_size_t disp_size;
|
||||
lv_style_t style_title;
|
||||
lv_style_t style_text_muted;
|
||||
lv_style_t style_icon;
|
||||
lv_style_t style_bullet;
|
||||
|
||||
const lv_font_t * font_large;
|
||||
const lv_font_t * font_normal;
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* GLOBAL FUNCTIONS
|
||||
**********************/
|
||||
|
||||
void lv_demo_widgets_components_init(void)
|
||||
{
|
||||
|
||||
if(LV_HOR_RES <= 320) disp_size = DISP_SMALL;
|
||||
else if(LV_HOR_RES < 720) disp_size = DISP_MEDIUM;
|
||||
else disp_size = DISP_LARGE;
|
||||
|
||||
font_large = LV_FONT_DEFAULT;
|
||||
font_normal = LV_FONT_DEFAULT;
|
||||
|
||||
if(disp_size == DISP_LARGE) {
|
||||
#if LV_DEMO_BENCHMARK_ALIGNED_FONTS
|
||||
font_large = &lv_font_benchmark_montserrat_24_aligned;
|
||||
#elif LV_FONT_MONTSERRAT_24
|
||||
font_large = &lv_font_montserrat_24;
|
||||
#else
|
||||
LV_LOG_WARN("LV_FONT_MONTSERRAT_24 or LV_DEMO_BENCHMARK_ALIGNED_FONTS is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead.");
|
||||
#endif
|
||||
#if LV_DEMO_BENCHMARK_ALIGNED_FONTS
|
||||
font_normal = &lv_font_benchmark_montserrat_16_aligned;
|
||||
#elif LV_FONT_MONTSERRAT_16
|
||||
font_normal = &lv_font_montserrat_16;
|
||||
#else
|
||||
LV_LOG_WARN("LV_FONT_MONTSERRAT_16 or LV_DEMO_BENCHMARK_ALIGNED_FONTS is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead.");
|
||||
#endif
|
||||
}
|
||||
else if(disp_size == DISP_MEDIUM) {
|
||||
#if LV_DEMO_BENCHMARK_ALIGNED_FONTS
|
||||
font_large = &lv_font_benchmark_montserrat_20_aligned;
|
||||
#elif LV_FONT_MONTSERRAT_20
|
||||
font_large = &lv_font_montserrat_20;
|
||||
#else
|
||||
LV_LOG_WARN("LV_FONT_MONTSERRAT_20 or LV_DEMO_BENCHMARK_ALIGNED_FONTS is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead.");
|
||||
#endif
|
||||
#if LV_DEMO_BENCHMARK_ALIGNED_FONTS
|
||||
font_normal = &lv_font_benchmark_montserrat_14_aligned;
|
||||
#elif LV_FONT_MONTSERRAT_14
|
||||
font_normal = &lv_font_montserrat_14;
|
||||
#else
|
||||
LV_LOG_WARN("LV_FONT_MONTSERRAT_14 or LV_DEMO_BENCHMARK_ALIGNED_FONTS is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead.");
|
||||
#endif
|
||||
}
|
||||
else { /* disp_size == DISP_SMALL */
|
||||
#if LV_DEMO_BENCHMARK_ALIGNED_FONTS
|
||||
font_large = &lv_font_benchmark_montserrat_18_aligned;
|
||||
#elif LV_FONT_MONTSERRAT_18
|
||||
font_large = &lv_font_montserrat_18;
|
||||
#else
|
||||
LV_LOG_WARN("LV_FONT_MONTSERRAT_18 or LV_DEMO_BENCHMARK_ALIGNED_FONTS is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead.");
|
||||
#endif
|
||||
#if LV_DEMO_BENCHMARK_ALIGNED_FONTS
|
||||
font_normal = &lv_font_benchmark_montserrat_12_aligned;
|
||||
#elif LV_FONT_MONTSERRAT_12
|
||||
font_normal = &lv_font_montserrat_12;
|
||||
#else
|
||||
LV_LOG_WARN("LV_FONT_MONTSERRAT_12 or LV_DEMO_BENCHMARK_ALIGNED_FONTS is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead.");
|
||||
#endif
|
||||
}
|
||||
#if LV_USE_THEME_DEFAULT
|
||||
lv_theme_default_init(NULL, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), LV_THEME_DEFAULT_DARK,
|
||||
font_normal);
|
||||
#endif
|
||||
|
||||
|
||||
lv_obj_set_style_text_font(lv_screen_active(), font_normal, 0);
|
||||
|
||||
|
||||
lv_style_init(&style_title);
|
||||
lv_style_set_text_font(&style_title, font_large);
|
||||
|
||||
lv_style_init(&style_text_muted);
|
||||
lv_style_set_text_opa(&style_text_muted, LV_OPA_50);
|
||||
|
||||
|
||||
lv_style_init(&style_icon);
|
||||
lv_style_set_text_color(&style_icon, lv_theme_get_color_primary(NULL));
|
||||
lv_style_set_text_font(&style_icon, font_large);
|
||||
|
||||
lv_style_init(&style_bullet);
|
||||
lv_style_set_border_width(&style_bullet, 0);
|
||||
lv_style_set_radius(&style_bullet, LV_RADIUS_CIRCLE);
|
||||
|
||||
}
|
||||
|
||||
lv_obj_t * lv_demo_widgets_title_create(lv_obj_t * parent, const char * text)
|
||||
{
|
||||
lv_obj_t * label = lv_label_create(parent);
|
||||
lv_obj_add_style(label, &style_title, 0);
|
||||
lv_label_set_text_static(label, text);
|
||||
|
||||
return label;
|
||||
}
|
||||
|
||||
/**********************
|
||||
* STATIC FUNCTIONS
|
||||
**********************/
|
||||
|
||||
#endif /* LV_USE_DEMO_WIDGETS */
|
||||
@@ -0,0 +1,66 @@
|
||||
/**
|
||||
* @file lv_demo_widgets_components.h
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef LV_DEMO_WIDGETS_COMPONENTS_H
|
||||
#define LV_DEMO_WIDGETS_COMPONENTS_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#include "../../lvgl.h"
|
||||
|
||||
#if LV_USE_DEMO_WIDGETS
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
typedef enum {
|
||||
DISP_SMALL,
|
||||
DISP_MEDIUM,
|
||||
DISP_LARGE,
|
||||
} disp_size_t;
|
||||
|
||||
/**********************
|
||||
* GLOBAL PROTOTYPES
|
||||
**********************/
|
||||
|
||||
void lv_demo_widgets_components_init(void);
|
||||
|
||||
lv_obj_t * lv_demo_widgets_title_create(lv_obj_t * parent, const char * text);
|
||||
|
||||
/**********************
|
||||
* GLOBAL VARIABLES
|
||||
**********************/
|
||||
|
||||
extern disp_size_t disp_size;
|
||||
|
||||
extern lv_style_t style_title;
|
||||
extern lv_style_t style_text_muted;
|
||||
extern lv_style_t style_icon;
|
||||
extern lv_style_t style_bullet;
|
||||
|
||||
extern const lv_font_t * font_large;
|
||||
extern const lv_font_t * font_normal;
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
#endif /* LV_USE_DEMO_BENCHMARK */
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /*LV_DEMO_WIDGETS_COMPONENTS_H*/
|
||||
@@ -0,0 +1,494 @@
|
||||
/**
|
||||
* @file lv_demo_widgets_profile.c
|
||||
*
|
||||
*/
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#include "lv_demo_widgets_profile.h"
|
||||
#if LV_USE_DEMO_WIDGETS
|
||||
|
||||
#include "lv_demo_widgets_components.h"
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* STATIC PROTOTYPES
|
||||
**********************/
|
||||
static void ta_event_cb(lv_event_t * e);
|
||||
static void slider_event_cb(lv_event_t * e);
|
||||
static void birthday_event_cb(lv_event_t * e);
|
||||
static void calendar_event_cb(lv_event_t * e);
|
||||
|
||||
/**********************
|
||||
* STATIC VARIABLES
|
||||
**********************/
|
||||
static lv_obj_t * calendar;
|
||||
|
||||
/**********************
|
||||
* GLOBAL VARIABLES
|
||||
**********************/
|
||||
extern lv_obj_t * tv;
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* GLOBAL FUNCTIONS
|
||||
**********************/
|
||||
|
||||
void lv_demo_widgets_profile_create(lv_obj_t * parent)
|
||||
{
|
||||
|
||||
lv_obj_t * panel1 = lv_obj_create(parent);
|
||||
lv_obj_set_height(panel1, LV_SIZE_CONTENT);
|
||||
|
||||
LV_IMAGE_DECLARE(img_demo_widgets_avatar);
|
||||
lv_obj_t * avatar = lv_image_create(panel1);
|
||||
lv_image_set_src(avatar, &img_demo_widgets_avatar);
|
||||
|
||||
lv_obj_t * name = lv_demo_widgets_title_create(panel1, "Elena Smith");
|
||||
|
||||
lv_obj_t * dsc = lv_label_create(panel1);
|
||||
lv_obj_add_style(dsc, &style_text_muted, 0);
|
||||
lv_label_set_text_static(dsc, "This is a short description of me. Take a look at my profile!");
|
||||
lv_label_set_long_mode(dsc, LV_LABEL_LONG_MODE_WRAP);
|
||||
|
||||
lv_obj_t * email_icn = lv_label_create(panel1);
|
||||
lv_obj_add_style(email_icn, &style_icon, 0);
|
||||
lv_label_set_text_static(email_icn, LV_SYMBOL_ENVELOPE);
|
||||
|
||||
lv_obj_t * email_label = lv_label_create(panel1);
|
||||
lv_label_set_text_static(email_label, "elena@smith.com");
|
||||
|
||||
lv_obj_t * call_icn = lv_label_create(panel1);
|
||||
lv_obj_add_style(call_icn, &style_icon, 0);
|
||||
lv_label_set_text_static(call_icn, LV_SYMBOL_CALL);
|
||||
|
||||
lv_obj_t * call_label = lv_label_create(panel1);
|
||||
lv_label_set_text_static(call_label, "+79 246 123 4567");
|
||||
|
||||
lv_obj_t * log_out_btn = lv_button_create(panel1);
|
||||
lv_obj_set_height(log_out_btn, LV_SIZE_CONTENT);
|
||||
|
||||
lv_obj_t * label = lv_label_create(log_out_btn);
|
||||
lv_label_set_text_static(label, "Log out");
|
||||
lv_obj_center(label);
|
||||
|
||||
lv_obj_t * invite_btn = lv_button_create(panel1);
|
||||
lv_obj_add_state(invite_btn, LV_STATE_DISABLED);
|
||||
lv_obj_set_height(invite_btn, LV_SIZE_CONTENT);
|
||||
|
||||
label = lv_label_create(invite_btn);
|
||||
lv_label_set_text_static(label, "Invite");
|
||||
lv_obj_center(label);
|
||||
|
||||
/*Create a keyboard*/
|
||||
lv_obj_t * kb = lv_keyboard_create(lv_screen_active());
|
||||
lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
|
||||
|
||||
/*Create the second panel*/
|
||||
lv_obj_t * panel2 = lv_obj_create(parent);
|
||||
lv_obj_set_height(panel2, LV_SIZE_CONTENT);
|
||||
|
||||
lv_obj_t * panel2_title = lv_demo_widgets_title_create(panel2, "Your profile");
|
||||
|
||||
lv_obj_t * user_name_label = lv_label_create(panel2);
|
||||
lv_label_set_text_static(user_name_label, "User name");
|
||||
lv_obj_add_style(user_name_label, &style_text_muted, 0);
|
||||
|
||||
lv_obj_t * user_name = lv_textarea_create(panel2);
|
||||
lv_textarea_set_one_line(user_name, true);
|
||||
lv_textarea_set_placeholder_text(user_name, "Your name");
|
||||
lv_obj_add_event_cb(user_name, ta_event_cb, LV_EVENT_ALL, kb);
|
||||
|
||||
lv_obj_t * password_label = lv_label_create(panel2);
|
||||
lv_label_set_text_static(password_label, "Password");
|
||||
lv_obj_add_style(password_label, &style_text_muted, 0);
|
||||
|
||||
lv_obj_t * password = lv_textarea_create(panel2);
|
||||
lv_textarea_set_one_line(password, true);
|
||||
lv_textarea_set_password_mode(password, true);
|
||||
lv_textarea_set_placeholder_text(password, "Min. 8 chars.");
|
||||
lv_obj_add_event_cb(password, ta_event_cb, LV_EVENT_ALL, kb);
|
||||
|
||||
lv_obj_t * gender_label = lv_label_create(panel2);
|
||||
lv_label_set_text_static(gender_label, "Gender");
|
||||
lv_obj_add_style(gender_label, &style_text_muted, 0);
|
||||
|
||||
lv_obj_t * gender = lv_dropdown_create(panel2);
|
||||
lv_dropdown_set_options_static(gender, "Male\nFemale\nOther");
|
||||
|
||||
lv_obj_t * birthday_label = lv_label_create(panel2);
|
||||
lv_label_set_text_static(birthday_label, "Birthday");
|
||||
lv_obj_add_style(birthday_label, &style_text_muted, 0);
|
||||
|
||||
lv_obj_t * birthdate = lv_textarea_create(panel2);
|
||||
lv_textarea_set_one_line(birthdate, true);
|
||||
lv_obj_add_event_cb(birthdate, birthday_event_cb, LV_EVENT_ALL, NULL);
|
||||
|
||||
/*Create the third panel*/
|
||||
lv_obj_t * panel3 = lv_obj_create(parent);
|
||||
lv_obj_t * panel3_title = lv_demo_widgets_title_create(panel3, "Your skills");
|
||||
|
||||
lv_obj_t * experience_label = lv_label_create(panel3);
|
||||
lv_label_set_text_static(experience_label, "Experience");
|
||||
lv_obj_add_style(experience_label, &style_text_muted, 0);
|
||||
|
||||
lv_obj_t * slider1 = lv_slider_create(panel3);
|
||||
lv_obj_set_width(slider1, LV_PCT(95));
|
||||
lv_obj_add_event_cb(slider1, slider_event_cb, LV_EVENT_ALL, NULL);
|
||||
lv_obj_add_flag(slider1, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
|
||||
lv_obj_refresh_ext_draw_size(slider1);
|
||||
|
||||
lv_obj_t * team_player_label = lv_label_create(panel3);
|
||||
lv_label_set_text_static(team_player_label, "Team player");
|
||||
lv_obj_add_style(team_player_label, &style_text_muted, 0);
|
||||
|
||||
lv_obj_t * sw1 = lv_switch_create(panel3);
|
||||
|
||||
lv_obj_t * hard_working_label = lv_label_create(panel3);
|
||||
lv_label_set_text_static(hard_working_label, "Hard-working");
|
||||
lv_obj_add_style(hard_working_label, &style_text_muted, 0);
|
||||
|
||||
lv_obj_t * sw2 = lv_switch_create(panel3);
|
||||
|
||||
if(disp_size == DISP_LARGE) {
|
||||
static int32_t grid_main_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid_main_row_dsc[] = {LV_GRID_CONTENT, LV_GRID_CONTENT, LV_GRID_TEMPLATE_LAST};
|
||||
|
||||
/*Create the top panel*/
|
||||
static int32_t grid_1_col_dsc[] = {LV_GRID_CONTENT, 5, LV_GRID_CONTENT, LV_GRID_FR(2), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid_1_row_dsc[] = {LV_GRID_CONTENT, LV_GRID_CONTENT, 10, LV_GRID_CONTENT, LV_GRID_CONTENT, LV_GRID_TEMPLATE_LAST};
|
||||
|
||||
static int32_t grid_2_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid_2_row_dsc[] = {
|
||||
LV_GRID_CONTENT, /*Title*/
|
||||
5, /*Separator*/
|
||||
LV_GRID_CONTENT, /*Box title*/
|
||||
30, /*Boxes*/
|
||||
5, /*Separator*/
|
||||
LV_GRID_CONTENT, /*Box title*/
|
||||
30, /*Boxes*/
|
||||
LV_GRID_TEMPLATE_LAST
|
||||
};
|
||||
|
||||
lv_obj_set_grid_dsc_array(parent, grid_main_col_dsc, grid_main_row_dsc);
|
||||
|
||||
lv_obj_set_grid_cell(panel1, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
|
||||
lv_obj_set_grid_dsc_array(panel1, grid_1_col_dsc, grid_1_row_dsc);
|
||||
lv_obj_set_grid_cell(avatar, LV_GRID_ALIGN_CENTER, 0, 1, LV_GRID_ALIGN_CENTER, 0, 5);
|
||||
lv_obj_set_grid_cell(name, LV_GRID_ALIGN_START, 2, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
lv_obj_set_grid_cell(dsc, LV_GRID_ALIGN_STRETCH, 2, 4, LV_GRID_ALIGN_START, 1, 1);
|
||||
lv_obj_set_grid_cell(email_icn, LV_GRID_ALIGN_CENTER, 2, 1, LV_GRID_ALIGN_CENTER, 3, 1);
|
||||
lv_obj_set_grid_cell(email_label, LV_GRID_ALIGN_START, 3, 1, LV_GRID_ALIGN_CENTER, 3, 1);
|
||||
lv_obj_set_grid_cell(call_icn, LV_GRID_ALIGN_CENTER, 2, 1, LV_GRID_ALIGN_CENTER, 4, 1);
|
||||
lv_obj_set_grid_cell(call_label, LV_GRID_ALIGN_START, 3, 1, LV_GRID_ALIGN_CENTER, 4, 1);
|
||||
lv_obj_set_grid_cell(log_out_btn, LV_GRID_ALIGN_STRETCH, 4, 1, LV_GRID_ALIGN_CENTER, 3, 2);
|
||||
lv_obj_set_grid_cell(invite_btn, LV_GRID_ALIGN_STRETCH, 5, 1, LV_GRID_ALIGN_CENTER, 3, 2);
|
||||
|
||||
lv_obj_set_grid_cell(panel2, LV_GRID_ALIGN_STRETCH, 0, 1, LV_GRID_ALIGN_START, 1, 1);
|
||||
lv_obj_set_grid_dsc_array(panel2, grid_2_col_dsc, grid_2_row_dsc);
|
||||
lv_obj_set_grid_cell(panel2_title, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
lv_obj_set_grid_cell(user_name, LV_GRID_ALIGN_STRETCH, 0, 1, LV_GRID_ALIGN_CENTER, 3, 1);
|
||||
lv_obj_set_grid_cell(user_name_label, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 2, 1);
|
||||
lv_obj_set_grid_cell(password, LV_GRID_ALIGN_STRETCH, 1, 1, LV_GRID_ALIGN_CENTER, 3, 1);
|
||||
lv_obj_set_grid_cell(password_label, LV_GRID_ALIGN_START, 1, 1, LV_GRID_ALIGN_START, 2, 1);
|
||||
lv_obj_set_grid_cell(birthdate, LV_GRID_ALIGN_STRETCH, 1, 1, LV_GRID_ALIGN_CENTER, 6, 1);
|
||||
lv_obj_set_grid_cell(birthday_label, LV_GRID_ALIGN_START, 1, 1, LV_GRID_ALIGN_START, 5, 1);
|
||||
lv_obj_set_grid_cell(gender, LV_GRID_ALIGN_STRETCH, 0, 1, LV_GRID_ALIGN_CENTER, 6, 1);
|
||||
lv_obj_set_grid_cell(gender_label, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 5, 1);
|
||||
|
||||
lv_obj_set_grid_cell(panel3, LV_GRID_ALIGN_STRETCH, 1, 1, LV_GRID_ALIGN_STRETCH, 1, 1);
|
||||
lv_obj_set_grid_dsc_array(panel3, grid_2_col_dsc, grid_2_row_dsc);
|
||||
lv_obj_set_grid_cell(panel3_title, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
lv_obj_set_grid_cell(slider1, LV_GRID_ALIGN_CENTER, 0, 2, LV_GRID_ALIGN_CENTER, 3, 1);
|
||||
lv_obj_set_grid_cell(experience_label, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 2, 1);
|
||||
lv_obj_set_grid_cell(sw2, LV_GRID_ALIGN_START, 1, 1, LV_GRID_ALIGN_CENTER, 6, 1);
|
||||
lv_obj_set_grid_cell(hard_working_label, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 5, 1);
|
||||
lv_obj_set_grid_cell(sw1, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_CENTER, 6, 1);
|
||||
lv_obj_set_grid_cell(team_player_label, LV_GRID_ALIGN_START, 1, 1, LV_GRID_ALIGN_START, 5, 1);
|
||||
}
|
||||
else if(disp_size == DISP_MEDIUM) {
|
||||
static int32_t grid_main_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid_main_row_dsc[] = {LV_GRID_CONTENT, LV_GRID_CONTENT, LV_GRID_TEMPLATE_LAST};
|
||||
|
||||
/*Create the top panel*/
|
||||
static int32_t grid_1_col_dsc[] = {LV_GRID_CONTENT, 1, LV_GRID_CONTENT, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid_1_row_dsc[] = {
|
||||
LV_GRID_CONTENT, /*Name*/
|
||||
LV_GRID_CONTENT, /*Description*/
|
||||
LV_GRID_CONTENT, /*Email*/
|
||||
-20,
|
||||
LV_GRID_CONTENT, /*Phone*/
|
||||
LV_GRID_CONTENT, /*Buttons*/
|
||||
LV_GRID_TEMPLATE_LAST
|
||||
};
|
||||
|
||||
static int32_t grid_2_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid_2_row_dsc[] = {
|
||||
LV_GRID_CONTENT, /*Title*/
|
||||
5, /*Separator*/
|
||||
LV_GRID_CONTENT, /*Box title*/
|
||||
40, /*Box*/
|
||||
LV_GRID_CONTENT, /*Box title*/
|
||||
40, /*Box*/
|
||||
LV_GRID_CONTENT, /*Box title*/
|
||||
40, /*Box*/
|
||||
LV_GRID_CONTENT, /*Box title*/
|
||||
40, /*Box*/
|
||||
LV_GRID_TEMPLATE_LAST
|
||||
};
|
||||
|
||||
lv_obj_set_grid_dsc_array(parent, grid_main_col_dsc, grid_main_row_dsc);
|
||||
lv_obj_set_grid_cell(panel1, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
|
||||
lv_obj_set_width(log_out_btn, 120);
|
||||
lv_obj_set_width(invite_btn, 120);
|
||||
|
||||
lv_obj_set_grid_dsc_array(panel1, grid_1_col_dsc, grid_1_row_dsc);
|
||||
lv_obj_set_grid_cell(avatar, LV_GRID_ALIGN_CENTER, 0, 1, LV_GRID_ALIGN_START, 0, 4);
|
||||
lv_obj_set_grid_cell(name, LV_GRID_ALIGN_START, 2, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
lv_obj_set_grid_cell(dsc, LV_GRID_ALIGN_STRETCH, 2, 2, LV_GRID_ALIGN_START, 1, 1);
|
||||
lv_obj_set_grid_cell(email_label, LV_GRID_ALIGN_START, 3, 1, LV_GRID_ALIGN_CENTER, 2, 1);
|
||||
lv_obj_set_grid_cell(email_icn, LV_GRID_ALIGN_CENTER, 2, 1, LV_GRID_ALIGN_CENTER, 2, 1);
|
||||
lv_obj_set_grid_cell(call_icn, LV_GRID_ALIGN_CENTER, 2, 1, LV_GRID_ALIGN_CENTER, 4, 1);
|
||||
lv_obj_set_grid_cell(call_label, LV_GRID_ALIGN_START, 3, 1, LV_GRID_ALIGN_CENTER, 4, 1);
|
||||
lv_obj_set_grid_cell(log_out_btn, LV_GRID_ALIGN_START, 1, 1, LV_GRID_ALIGN_CENTER, 5, 1);
|
||||
lv_obj_set_grid_cell(invite_btn, LV_GRID_ALIGN_END, 3, 1, LV_GRID_ALIGN_CENTER, 5, 1);
|
||||
|
||||
lv_obj_set_grid_cell(panel2, LV_GRID_ALIGN_STRETCH, 0, 1, LV_GRID_ALIGN_START, 1, 1);
|
||||
lv_obj_set_grid_dsc_array(panel2, grid_2_col_dsc, grid_2_row_dsc);
|
||||
lv_obj_set_grid_cell(panel2_title, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
lv_obj_set_grid_cell(user_name_label, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_START, 2, 1);
|
||||
lv_obj_set_grid_cell(user_name, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_START, 3, 1);
|
||||
lv_obj_set_grid_cell(password_label, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_START, 4, 1);
|
||||
lv_obj_set_grid_cell(password, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_START, 5, 1);
|
||||
lv_obj_set_grid_cell(birthday_label, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_START, 6, 1);
|
||||
lv_obj_set_grid_cell(birthdate, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_START, 7, 1);
|
||||
lv_obj_set_grid_cell(gender_label, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_START, 8, 1);
|
||||
lv_obj_set_grid_cell(gender, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_START, 9, 1);
|
||||
|
||||
lv_obj_set_grid_cell(panel3, LV_GRID_ALIGN_STRETCH, 1, 1, LV_GRID_ALIGN_STRETCH, 1, 1);
|
||||
lv_obj_set_grid_dsc_array(panel3, grid_2_col_dsc, grid_2_row_dsc);
|
||||
lv_obj_set_grid_cell(panel3_title, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
lv_obj_set_grid_cell(slider1, LV_GRID_ALIGN_CENTER, 0, 2, LV_GRID_ALIGN_CENTER, 3, 1);
|
||||
lv_obj_set_grid_cell(experience_label, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 2, 1);
|
||||
lv_obj_set_grid_cell(hard_working_label, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 4, 1);
|
||||
lv_obj_set_grid_cell(sw2, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 5, 1);
|
||||
lv_obj_set_grid_cell(team_player_label, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 6, 1);
|
||||
lv_obj_set_grid_cell(sw1, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 7, 1);
|
||||
}
|
||||
else if(disp_size == DISP_SMALL) {
|
||||
static int32_t grid_main_col_dsc[] = {LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid_main_row_dsc[] = {LV_GRID_CONTENT, LV_GRID_CONTENT, LV_GRID_CONTENT, LV_GRID_TEMPLATE_LAST};
|
||||
lv_obj_set_grid_dsc_array(parent, grid_main_col_dsc, grid_main_row_dsc);
|
||||
|
||||
/*Create the top panel*/
|
||||
static int32_t grid_1_col_dsc[] = {LV_GRID_CONTENT, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid_1_row_dsc[] = {LV_GRID_CONTENT, /*Avatar*/
|
||||
LV_GRID_CONTENT, /*Name*/
|
||||
LV_GRID_CONTENT, /*Description*/
|
||||
LV_GRID_CONTENT, /*Email*/
|
||||
LV_GRID_CONTENT, /*Phone number*/
|
||||
LV_GRID_CONTENT, /*Button1*/
|
||||
LV_GRID_CONTENT, /*Button2*/
|
||||
LV_GRID_TEMPLATE_LAST
|
||||
};
|
||||
|
||||
lv_obj_set_grid_dsc_array(panel1, grid_1_col_dsc, grid_1_row_dsc);
|
||||
|
||||
static int32_t grid_2_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid_2_row_dsc[] = {
|
||||
LV_GRID_CONTENT, /*Title*/
|
||||
5, /*Separator*/
|
||||
LV_GRID_CONTENT, /*Box title*/
|
||||
40, /*Box*/
|
||||
LV_GRID_CONTENT, /*Box title*/
|
||||
40, /*Box*/
|
||||
LV_GRID_CONTENT, /*Box title*/
|
||||
40, /*Box*/
|
||||
LV_GRID_CONTENT, /*Box title*/
|
||||
40, LV_GRID_TEMPLATE_LAST /*Box*/
|
||||
};
|
||||
|
||||
lv_obj_set_grid_dsc_array(panel2, grid_2_col_dsc, grid_2_row_dsc);
|
||||
lv_obj_set_grid_dsc_array(panel3, grid_2_col_dsc, grid_2_row_dsc);
|
||||
|
||||
lv_obj_set_grid_cell(panel1, LV_GRID_ALIGN_STRETCH, 0, 1, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
|
||||
lv_obj_set_style_text_align(dsc, LV_TEXT_ALIGN_CENTER, 0);
|
||||
|
||||
lv_obj_set_grid_cell(avatar, LV_GRID_ALIGN_CENTER, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
lv_obj_set_grid_cell(name, LV_GRID_ALIGN_CENTER, 0, 2, LV_GRID_ALIGN_CENTER, 1, 1);
|
||||
lv_obj_set_grid_cell(dsc, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_START, 2, 1);
|
||||
lv_obj_set_grid_cell(email_icn, LV_GRID_ALIGN_CENTER, 0, 1, LV_GRID_ALIGN_CENTER, 3, 1);
|
||||
lv_obj_set_grid_cell(email_label, LV_GRID_ALIGN_START, 1, 1, LV_GRID_ALIGN_CENTER, 3, 1);
|
||||
lv_obj_set_grid_cell(call_icn, LV_GRID_ALIGN_CENTER, 0, 1, LV_GRID_ALIGN_CENTER, 4, 1);
|
||||
lv_obj_set_grid_cell(call_label, LV_GRID_ALIGN_START, 1, 1, LV_GRID_ALIGN_CENTER, 4, 1);
|
||||
lv_obj_set_grid_cell(log_out_btn, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_CENTER, 5, 1);
|
||||
lv_obj_set_grid_cell(invite_btn, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_CENTER, 6, 1);
|
||||
|
||||
lv_obj_set_grid_cell(panel2, LV_GRID_ALIGN_STRETCH, 0, 1, LV_GRID_ALIGN_START, 1, 1);
|
||||
lv_obj_set_grid_cell(panel2_title, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
lv_obj_set_grid_cell(user_name_label, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_START, 2, 1);
|
||||
lv_obj_set_grid_cell(user_name, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_START, 3, 1);
|
||||
lv_obj_set_grid_cell(password_label, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_START, 4, 1);
|
||||
lv_obj_set_grid_cell(password, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_START, 5, 1);
|
||||
lv_obj_set_grid_cell(birthday_label, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_START, 6, 1);
|
||||
lv_obj_set_grid_cell(birthdate, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_START, 7, 1);
|
||||
lv_obj_set_grid_cell(gender_label, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_START, 8, 1);
|
||||
lv_obj_set_grid_cell(gender, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_START, 9, 1);
|
||||
|
||||
lv_obj_set_height(panel3, LV_SIZE_CONTENT);
|
||||
lv_obj_set_grid_cell(panel3, LV_GRID_ALIGN_STRETCH, 0, 1, LV_GRID_ALIGN_START, 2, 1);
|
||||
lv_obj_set_grid_cell(panel3_title, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
lv_obj_set_grid_cell(experience_label, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 2, 1);
|
||||
lv_obj_set_grid_cell(slider1, LV_GRID_ALIGN_CENTER, 0, 2, LV_GRID_ALIGN_CENTER, 3, 1);
|
||||
lv_obj_set_grid_cell(hard_working_label, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 4, 1);
|
||||
lv_obj_set_grid_cell(sw1, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 5, 1);
|
||||
lv_obj_set_grid_cell(team_player_label, LV_GRID_ALIGN_START, 1, 1, LV_GRID_ALIGN_START, 4, 1);
|
||||
lv_obj_set_grid_cell(sw2, LV_GRID_ALIGN_START, 1, 1, LV_GRID_ALIGN_START, 5, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/**********************
|
||||
* STATIC FUNCTIONS
|
||||
**********************/
|
||||
|
||||
static void ta_event_cb(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t code = lv_event_get_code(e);
|
||||
lv_obj_t * ta = lv_event_get_target(e);
|
||||
lv_obj_t * kb = lv_event_get_user_data(e);
|
||||
if(code == LV_EVENT_FOCUSED) {
|
||||
if(lv_indev_get_type(lv_indev_active()) != LV_INDEV_TYPE_KEYPAD) {
|
||||
lv_keyboard_set_textarea(kb, ta);
|
||||
lv_obj_set_style_max_height(kb, LV_HOR_RES * 2 / 3, 0);
|
||||
lv_obj_update_layout(tv); /*Be sure the sizes are recalculated*/
|
||||
lv_obj_set_height(tv, LV_VER_RES - lv_obj_get_height(kb));
|
||||
lv_obj_remove_flag(kb, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_obj_scroll_to_view_recursive(ta, LV_ANIM_OFF);
|
||||
lv_indev_wait_release(lv_event_get_param(e));
|
||||
}
|
||||
}
|
||||
else if(code == LV_EVENT_DEFOCUSED) {
|
||||
lv_keyboard_set_textarea(kb, NULL);
|
||||
lv_obj_set_height(tv, LV_VER_RES);
|
||||
lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_indev_reset(NULL, ta);
|
||||
|
||||
}
|
||||
else if(code == LV_EVENT_READY || code == LV_EVENT_CANCEL) {
|
||||
lv_obj_set_height(tv, LV_VER_RES);
|
||||
lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_indev_reset(NULL, ta); /*To forget the last clicked object to make it focusable again*/
|
||||
}
|
||||
}
|
||||
|
||||
static void birthday_event_cb(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t code = lv_event_get_code(e);
|
||||
lv_obj_t * ta = lv_event_get_target(e);
|
||||
|
||||
if(code == LV_EVENT_FOCUSED) {
|
||||
if(lv_indev_get_type(lv_indev_active()) == LV_INDEV_TYPE_POINTER) {
|
||||
if(calendar == NULL) {
|
||||
lv_obj_add_flag(lv_layer_top(), LV_OBJ_FLAG_CLICKABLE);
|
||||
calendar = lv_calendar_create(lv_layer_top());
|
||||
lv_obj_set_style_bg_opa(lv_layer_top(), LV_OPA_50, 0);
|
||||
lv_obj_set_style_bg_color(lv_layer_top(), lv_palette_main(LV_PALETTE_GREY), 0);
|
||||
if(disp_size == DISP_SMALL) lv_obj_set_size(calendar, 180, 200);
|
||||
else if(disp_size == DISP_MEDIUM) lv_obj_set_size(calendar, 200, 220);
|
||||
else lv_obj_set_size(calendar, 300, 330);
|
||||
lv_calendar_set_month_shown(calendar, 1990, 01);
|
||||
lv_obj_align(calendar, LV_ALIGN_CENTER, 0, 30);
|
||||
lv_obj_add_event_cb(calendar, calendar_event_cb, LV_EVENT_ALL, ta);
|
||||
|
||||
lv_calendar_add_header_dropdown(calendar);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void calendar_event_cb(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t code = lv_event_get_code(e);
|
||||
lv_obj_t * ta = lv_event_get_user_data(e);
|
||||
lv_obj_t * obj = lv_event_get_current_target(e);
|
||||
if(code == LV_EVENT_VALUE_CHANGED) {
|
||||
lv_calendar_date_t d;
|
||||
lv_calendar_get_pressed_date(obj, &d);
|
||||
char buf[32];
|
||||
lv_snprintf(buf, sizeof(buf), "%02d.%02d.%d", d.day, d.month, d.year);
|
||||
lv_textarea_set_text(ta, buf);
|
||||
|
||||
lv_obj_delete(calendar);
|
||||
calendar = NULL;
|
||||
lv_obj_remove_flag(lv_layer_top(), LV_OBJ_FLAG_CLICKABLE);
|
||||
lv_obj_set_style_bg_opa(lv_layer_top(), LV_OPA_TRANSP, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void slider_event_cb(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t code = lv_event_get_code(e);
|
||||
lv_obj_t * obj = lv_event_get_target(e);
|
||||
|
||||
if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) {
|
||||
int32_t * s = lv_event_get_param(e);
|
||||
*s = LV_MAX(*s, 60);
|
||||
}
|
||||
else if(code == LV_EVENT_DRAW_TASK_ADDED) {
|
||||
lv_draw_task_t * draw_task = lv_event_get_param(e);
|
||||
if(draw_task == NULL || lv_draw_task_get_type(draw_task) != LV_DRAW_TASK_TYPE_FILL) return;
|
||||
lv_draw_rect_dsc_t * draw_rect_dsc = lv_draw_task_get_draw_dsc(draw_task);
|
||||
|
||||
if(draw_rect_dsc->base.part == LV_PART_KNOB && lv_obj_has_state(obj, LV_STATE_PRESSED)) {
|
||||
char buf[8];
|
||||
lv_snprintf(buf, sizeof(buf), "%"LV_PRId32, lv_slider_get_value(obj));
|
||||
|
||||
lv_point_t text_size;
|
||||
lv_text_get_size(&text_size, buf, font_normal, 0, 0, LV_COORD_MAX, LV_TEXT_FLAG_NONE);
|
||||
|
||||
lv_area_t txt_area;
|
||||
lv_area_t draw_task_area;
|
||||
lv_draw_task_get_area(draw_task, &draw_task_area);
|
||||
txt_area.x1 = draw_task_area.x1 + lv_area_get_width(&draw_task_area) / 2 - text_size.x / 2;
|
||||
txt_area.x2 = txt_area.x1 + text_size.x;
|
||||
txt_area.y2 = draw_task_area.y1 - 10;
|
||||
txt_area.y1 = txt_area.y2 - text_size.y;
|
||||
|
||||
lv_area_t bg_area;
|
||||
bg_area.x1 = txt_area.x1 - LV_DPX(8);
|
||||
bg_area.x2 = txt_area.x2 + LV_DPX(8);
|
||||
bg_area.y1 = txt_area.y1 - LV_DPX(8);
|
||||
bg_area.y2 = txt_area.y2 + LV_DPX(8);
|
||||
|
||||
lv_draw_rect_dsc_t rect_dsc;
|
||||
lv_draw_rect_dsc_init(&rect_dsc);
|
||||
rect_dsc.bg_color = lv_palette_darken(LV_PALETTE_GREY, 3);
|
||||
rect_dsc.radius = LV_DPX(5);
|
||||
lv_draw_rect(draw_rect_dsc->base.layer, &rect_dsc, &bg_area);
|
||||
|
||||
lv_draw_label_dsc_t label_dsc;
|
||||
lv_draw_label_dsc_init(&label_dsc);
|
||||
label_dsc.color = lv_color_white();
|
||||
label_dsc.font = font_normal;
|
||||
label_dsc.text = buf;
|
||||
label_dsc.text_local = 1;
|
||||
lv_draw_label(draw_rect_dsc->base.layer, &label_dsc, &txt_area);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* LV_USE_DEMO_WIDGETS */
|
||||
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* @file lv_demo_widgets_profile.h
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef LV_DEMO_WIDGETS_PROFILE_H
|
||||
#define LV_DEMO_WIDGETS_PROFILE_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
|
||||
#include "lv_demo_widgets.h"
|
||||
#if LV_USE_DEMO_WIDGETS
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* GLOBAL PROTOTYPES
|
||||
**********************/
|
||||
void lv_demo_widgets_profile_create(lv_obj_t * parent);
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
#endif /* LV_USE_DEMO_WIDGETS */
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /*LV_DEMO_WIDGETS_PROFILE_H*/
|
||||
@@ -0,0 +1,250 @@
|
||||
/**
|
||||
* @file lv_demo_widgets_shop.c
|
||||
*
|
||||
*/
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#include "lv_demo_widgets_shop.h"
|
||||
#if LV_USE_DEMO_WIDGETS
|
||||
|
||||
#include "lv_demo_widgets_components.h"
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* STATIC PROTOTYPES
|
||||
**********************/
|
||||
static lv_obj_t * create_shop_item(lv_obj_t * parent, const void * img_src, const char * name, const char * category,
|
||||
const char * price);
|
||||
static void shop_chart_event_cb(lv_event_t * e);
|
||||
|
||||
/**********************
|
||||
* STATIC VARIABLES
|
||||
**********************/
|
||||
static lv_obj_t * chart3;
|
||||
|
||||
static lv_chart_series_t * ser4;
|
||||
|
||||
/**********************
|
||||
* GLOBAL VARIABLES
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* GLOBAL FUNCTIONS
|
||||
**********************/
|
||||
|
||||
|
||||
void lv_demo_widgets_shop_create(lv_obj_t * parent)
|
||||
{
|
||||
lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_ROW_WRAP);
|
||||
|
||||
lv_obj_t * panel1 = lv_obj_create(parent);
|
||||
lv_obj_set_size(panel1, lv_pct(100), LV_SIZE_CONTENT);
|
||||
lv_obj_set_style_pad_bottom(panel1, 30, 0);
|
||||
|
||||
lv_obj_t * title = lv_demo_widgets_title_create(panel1, "Monthly Summary");
|
||||
|
||||
lv_obj_t * date = lv_demo_widgets_title_create(panel1, "8-15 July, 2021");
|
||||
lv_obj_add_style(date, &style_text_muted, 0);
|
||||
|
||||
lv_obj_t * amount = lv_demo_widgets_title_create(panel1, "$27,123.25");
|
||||
|
||||
lv_obj_t * hint = lv_label_create(panel1);
|
||||
lv_label_set_text(hint, LV_SYMBOL_UP" 17% growth this week");
|
||||
lv_obj_set_style_text_color(hint, lv_palette_main(LV_PALETTE_GREEN), 0);
|
||||
|
||||
chart3 = lv_chart_create(panel1);
|
||||
lv_chart_set_type(chart3, LV_CHART_TYPE_BAR);
|
||||
lv_chart_set_div_line_count(chart3, 6, 0);
|
||||
lv_chart_set_point_count(chart3, 7);
|
||||
lv_obj_add_event_cb(chart3, shop_chart_event_cb, LV_EVENT_ALL, NULL);
|
||||
|
||||
ser4 = lv_chart_add_series(chart3, lv_theme_get_color_primary(chart3), LV_CHART_AXIS_PRIMARY_Y);
|
||||
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
|
||||
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
|
||||
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
|
||||
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
|
||||
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
|
||||
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
|
||||
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
|
||||
|
||||
if(disp_size == DISP_LARGE) {
|
||||
static int32_t grid1_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid1_row_dsc[] = {
|
||||
LV_GRID_CONTENT, /*Title*/
|
||||
LV_GRID_CONTENT, /*Sub title*/
|
||||
20, /*Spacer*/
|
||||
LV_GRID_CONTENT, /*Amount*/
|
||||
LV_GRID_CONTENT, /*Hint*/
|
||||
LV_GRID_TEMPLATE_LAST
|
||||
};
|
||||
|
||||
lv_obj_set_size(chart3, lv_pct(100), lv_pct(100));
|
||||
lv_obj_set_style_pad_column(chart3, LV_DPX(30), 0);
|
||||
|
||||
lv_obj_set_grid_dsc_array(panel1, grid1_col_dsc, grid1_row_dsc);
|
||||
lv_obj_set_grid_cell(title, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 0, 1);
|
||||
lv_obj_set_grid_cell(date, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 1, 1);
|
||||
lv_obj_set_grid_cell(amount, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 3, 1);
|
||||
lv_obj_set_grid_cell(hint, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 4, 1);
|
||||
lv_obj_set_grid_cell(chart3, LV_GRID_ALIGN_STRETCH, 1, 1, LV_GRID_ALIGN_STRETCH, 0, 5);
|
||||
}
|
||||
else if(disp_size == DISP_MEDIUM) {
|
||||
static int32_t grid1_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid1_row_dsc[] = {
|
||||
LV_GRID_CONTENT, /*Title + Date*/
|
||||
LV_GRID_CONTENT, /*Amount + Hint*/
|
||||
200, /*Chart*/
|
||||
LV_GRID_TEMPLATE_LAST
|
||||
};
|
||||
|
||||
lv_obj_update_layout(panel1);
|
||||
lv_obj_set_width(chart3, lv_obj_get_content_width(panel1) - 20);
|
||||
lv_obj_set_style_pad_column(chart3, LV_DPX(30), 0);
|
||||
|
||||
lv_obj_set_grid_dsc_array(panel1, grid1_col_dsc, grid1_row_dsc);
|
||||
lv_obj_set_grid_cell(title, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
lv_obj_set_grid_cell(date, LV_GRID_ALIGN_START, 1, 1, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
lv_obj_set_grid_cell(amount, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_CENTER, 1, 1);
|
||||
lv_obj_set_grid_cell(hint, LV_GRID_ALIGN_START, 1, 1, LV_GRID_ALIGN_CENTER, 1, 1);
|
||||
lv_obj_set_grid_cell(chart3, LV_GRID_ALIGN_END, 0, 2, LV_GRID_ALIGN_STRETCH, 2, 1);
|
||||
}
|
||||
else if(disp_size == DISP_SMALL) {
|
||||
static int32_t grid1_col_dsc[] = {LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid1_row_dsc[] = {
|
||||
LV_GRID_CONTENT, /*Title*/
|
||||
LV_GRID_CONTENT, /*Date*/
|
||||
LV_GRID_CONTENT, /*Amount*/
|
||||
LV_GRID_CONTENT, /*Hint*/
|
||||
LV_GRID_CONTENT, /*Chart*/
|
||||
LV_GRID_TEMPLATE_LAST
|
||||
};
|
||||
|
||||
lv_obj_set_width(chart3, LV_PCT(95));
|
||||
lv_obj_set_height(chart3, LV_VER_RES - 70);
|
||||
lv_obj_set_style_max_height(chart3, 300, 0);
|
||||
|
||||
lv_obj_set_grid_dsc_array(panel1, grid1_col_dsc, grid1_row_dsc);
|
||||
lv_obj_set_grid_cell(title, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 0, 1);
|
||||
lv_obj_set_grid_cell(date, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 1, 1);
|
||||
lv_obj_set_grid_cell(amount, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 2, 1);
|
||||
lv_obj_set_grid_cell(hint, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 3, 1);
|
||||
lv_obj_set_grid_cell(chart3, LV_GRID_ALIGN_END, 0, 1, LV_GRID_ALIGN_START, 4, 1);
|
||||
}
|
||||
|
||||
lv_obj_t * list = lv_obj_create(parent);
|
||||
if(disp_size == DISP_SMALL) {
|
||||
lv_obj_add_flag(list, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
|
||||
lv_obj_set_height(list, LV_PCT(100));
|
||||
}
|
||||
else {
|
||||
lv_obj_set_height(list, LV_PCT(100));
|
||||
lv_obj_set_style_max_height(list, 300, 0);
|
||||
}
|
||||
|
||||
lv_obj_set_flex_flow(list, LV_FLEX_FLOW_COLUMN);
|
||||
lv_obj_set_flex_grow(list, 1);
|
||||
lv_obj_add_flag(list, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
|
||||
|
||||
title = lv_demo_widgets_title_create(list, "Top products");
|
||||
|
||||
LV_IMAGE_DECLARE(img_clothes);
|
||||
create_shop_item(list, &img_clothes, "Blue T-shirt", "Clothes", "$722");
|
||||
create_shop_item(list, &img_clothes, "Blue T-shirt", "Clothes", "$411");
|
||||
create_shop_item(list, &img_clothes, "Blue T-shirt", "Clothes", "$917");
|
||||
create_shop_item(list, &img_clothes, "Blue T-shirt", "Clothes", "$64");
|
||||
create_shop_item(list, &img_clothes, "Blue T-shirt", "Clothes", "$805");
|
||||
|
||||
lv_obj_t * notifications = lv_obj_create(parent);
|
||||
if(disp_size == DISP_SMALL) {
|
||||
lv_obj_add_flag(notifications, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
|
||||
lv_obj_set_height(notifications, LV_PCT(100));
|
||||
}
|
||||
else {
|
||||
lv_obj_set_height(notifications, LV_PCT(100));
|
||||
lv_obj_set_style_max_height(notifications, 300, 0);
|
||||
}
|
||||
|
||||
lv_obj_set_flex_flow(notifications, LV_FLEX_FLOW_COLUMN);
|
||||
lv_obj_set_flex_grow(notifications, 1);
|
||||
|
||||
title = lv_demo_widgets_title_create(notifications, "Notification");
|
||||
|
||||
lv_obj_t * cb;
|
||||
cb = lv_checkbox_create(notifications);
|
||||
lv_checkbox_set_text_static(cb, "Item purchased");
|
||||
|
||||
cb = lv_checkbox_create(notifications);
|
||||
lv_checkbox_set_text_static(cb, "New connection");
|
||||
|
||||
cb = lv_checkbox_create(notifications);
|
||||
lv_checkbox_set_text_static(cb, "New subscriber");
|
||||
lv_obj_add_state(cb, LV_STATE_CHECKED);
|
||||
|
||||
cb = lv_checkbox_create(notifications);
|
||||
lv_checkbox_set_text_static(cb, "New message");
|
||||
lv_obj_add_state(cb, LV_STATE_DISABLED);
|
||||
|
||||
cb = lv_checkbox_create(notifications);
|
||||
lv_checkbox_set_text_static(cb, "Milestone reached");
|
||||
lv_obj_add_state(cb, LV_STATE_CHECKED | LV_STATE_DISABLED);
|
||||
|
||||
cb = lv_checkbox_create(notifications);
|
||||
lv_checkbox_set_text_static(cb, "Out of stock");
|
||||
|
||||
}
|
||||
|
||||
/**********************
|
||||
* STATIC FUNCTIONS
|
||||
**********************/
|
||||
|
||||
static lv_obj_t * create_shop_item(lv_obj_t * parent, const void * img_src, const char * name, const char * category,
|
||||
const char * price)
|
||||
{
|
||||
static int32_t grid_col_dsc[] = {LV_GRID_CONTENT, 5, LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
static int32_t grid_row_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
|
||||
|
||||
lv_obj_t * cont = lv_obj_create(parent);
|
||||
lv_obj_remove_style_all(cont);
|
||||
lv_obj_set_size(cont, LV_PCT(100), LV_SIZE_CONTENT);
|
||||
lv_obj_set_grid_dsc_array(cont, grid_col_dsc, grid_row_dsc);
|
||||
|
||||
lv_obj_t * img = lv_image_create(cont);
|
||||
lv_image_set_src(img, img_src);
|
||||
lv_obj_set_grid_cell(img, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 0, 2);
|
||||
|
||||
lv_obj_t * label;
|
||||
label = lv_label_create(cont);
|
||||
lv_label_set_text_static(label, name);
|
||||
lv_obj_set_grid_cell(label, LV_GRID_ALIGN_START, 2, 1, LV_GRID_ALIGN_END, 0, 1);
|
||||
|
||||
label = lv_label_create(cont);
|
||||
lv_label_set_text_static(label, category);
|
||||
lv_obj_add_style(label, &style_text_muted, 0);
|
||||
lv_obj_set_grid_cell(label, LV_GRID_ALIGN_START, 2, 1, LV_GRID_ALIGN_START, 1, 1);
|
||||
|
||||
label = lv_label_create(cont);
|
||||
lv_label_set_text_static(label, price);
|
||||
lv_obj_set_grid_cell(label, LV_GRID_ALIGN_END, 3, 1, LV_GRID_ALIGN_END, 0, 1);
|
||||
|
||||
return cont;
|
||||
}
|
||||
|
||||
static void shop_chart_event_cb(lv_event_t * e)
|
||||
{
|
||||
LV_UNUSED(e);
|
||||
}
|
||||
|
||||
#endif /* LV_USE_DEMO_WIDGETS */
|
||||
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* @file lv_demo_widgets_shop.h
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef LV_DEMO_WIDGETS_SHOP_H
|
||||
#define LV_DEMO_WIDGETS_SHOP_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#include "lv_demo_widgets.h"
|
||||
#if LV_USE_DEMO_WIDGETS
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* GLOBAL PROTOTYPES
|
||||
**********************/
|
||||
void lv_demo_widgets_shop_create(lv_obj_t * parent);
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
#endif /* LV_USE_DEMO_WIDGETS */
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /*LV_DEMO_WIDGETS_SHOP_H*/
|
||||
Reference in New Issue
Block a user