demo: add lv_demo_scroll
This commit is contained in:
@@ -43,6 +43,10 @@ extern "C" {
|
||||
#include "transform/lv_demo_transform.h"
|
||||
#endif
|
||||
|
||||
#if LV_USE_DEMO_SCROLL
|
||||
#include "scroll/lv_demo_scroll.h"
|
||||
#endif
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
113
demos/scroll/lv_demo_scroll.c
Normal file
113
demos/scroll/lv_demo_scroll.c
Normal file
@@ -0,0 +1,113 @@
|
||||
/**
|
||||
* @file lv_demo_scroll.c
|
||||
*/
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#include "lv_demo_scroll.h"
|
||||
|
||||
#if LV_USE_DEMO_SCROLL
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* STATIC PROTOTYPES
|
||||
**********************/
|
||||
static lv_obj_t * switch_create(lv_obj_t * parent, const char * title, lv_obj_flag_t flag, bool en);
|
||||
static void generic_swicth_event_cb(lv_event_t * e);
|
||||
|
||||
/**********************
|
||||
* STATIC VARIABLES
|
||||
**********************/
|
||||
static lv_obj_t * list;
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* GLOBAL FUNCTIONS
|
||||
**********************/
|
||||
void lv_demo_scroll(void)
|
||||
{
|
||||
lv_obj_t * panel = lv_obj_create(lv_scr_act());
|
||||
lv_obj_set_style_shadow_width(panel, 16, 0);
|
||||
lv_obj_set_style_shadow_ofs_y(panel, 8, 0);
|
||||
lv_obj_set_style_shadow_ofs_x(panel, 4, 0);
|
||||
lv_obj_set_style_shadow_opa(panel, LV_OPA_40, 0);
|
||||
|
||||
lv_obj_set_size(panel, lv_pct(70), lv_pct(90));
|
||||
lv_obj_center(panel);
|
||||
lv_obj_set_flex_flow(panel, LV_FLEX_FLOW_COLUMN);
|
||||
lv_obj_set_flex_align(panel, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
|
||||
|
||||
list = lv_list_create(panel);
|
||||
lv_list_add_btn(list, LV_SYMBOL_IMAGE, "Image1.png");
|
||||
lv_list_add_btn(list, LV_SYMBOL_IMAGE, "Image2.png");
|
||||
lv_list_add_btn(list, LV_SYMBOL_IMAGE, "Image3.png");
|
||||
lv_list_add_btn(list, LV_SYMBOL_IMAGE, "Image4.png");
|
||||
lv_list_add_btn(list, LV_SYMBOL_IMAGE, "Image5.png");
|
||||
lv_list_add_btn(list, LV_SYMBOL_IMAGE, "Image6.png");
|
||||
lv_list_add_btn(list, LV_SYMBOL_IMAGE, "Image7.png");
|
||||
lv_list_add_btn(list, LV_SYMBOL_IMAGE, "Image8.png");
|
||||
lv_list_add_btn(list, LV_SYMBOL_IMAGE, "Image9.png");
|
||||
lv_list_add_btn(list, LV_SYMBOL_IMAGE, "Image10.png");
|
||||
|
||||
switch_create(panel, "Scrollable", LV_OBJ_FLAG_SCROLLABLE, true);
|
||||
switch_create(panel, "Scroll chain", LV_OBJ_FLAG_SCROLL_CHAIN, true);
|
||||
switch_create(panel, "Elastic scroll", LV_OBJ_FLAG_SCROLL_ELASTIC, true);
|
||||
switch_create(panel, "Add scroll momentum", LV_OBJ_FLAG_SCROLL_MOMENTUM, true);
|
||||
|
||||
|
||||
/*Show the switches first*/
|
||||
lv_obj_move_foreground(list);
|
||||
|
||||
}
|
||||
|
||||
/**********************
|
||||
* STATIC FUNCTIONS
|
||||
**********************/
|
||||
|
||||
static lv_obj_t * switch_create(lv_obj_t * parent, const char * title, lv_obj_flag_t flag, bool en)
|
||||
{
|
||||
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_flex_flow(cont, LV_FLEX_FLOW_ROW);
|
||||
lv_obj_set_flex_align(cont, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_START);
|
||||
|
||||
lv_obj_t * label = lv_label_create(cont);
|
||||
lv_label_set_text(label, title);
|
||||
lv_obj_set_flex_grow(label, 1);
|
||||
|
||||
lv_obj_t * sw = lv_switch_create(cont);
|
||||
lv_obj_add_event(sw, generic_swicth_event_cb, LV_EVENT_VALUE_CHANGED, (void *)((lv_uintptr_t) flag));
|
||||
if(en) {
|
||||
lv_obj_add_state(sw, LV_STATE_CHECKED);
|
||||
lv_obj_add_flag(list, flag);
|
||||
}
|
||||
else {
|
||||
lv_obj_clear_state(sw, LV_STATE_CHECKED);
|
||||
lv_obj_clear_flag(list, flag);
|
||||
}
|
||||
|
||||
return cont;
|
||||
}
|
||||
|
||||
static void generic_swicth_event_cb(lv_event_t * e)
|
||||
{
|
||||
lv_obj_t * sw = lv_event_get_target(e);
|
||||
lv_obj_flag_t flag = (lv_obj_flag_t)((lv_uintptr_t)lv_event_get_user_data(e));
|
||||
|
||||
if(lv_obj_has_state(sw, LV_STATE_CHECKED)) lv_obj_add_flag(list, flag);
|
||||
else lv_obj_clear_flag(list, flag);
|
||||
}
|
||||
|
||||
#endif
|
||||
39
demos/scroll/lv_demo_scroll.h
Normal file
39
demos/scroll/lv_demo_scroll.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* @file lv_demo_scroll.h
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef LV_DEMO_SCROLL_H
|
||||
#define LV_DEMO_SCROLL_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#include "../lv_demos.h"
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* GLOBAL PROTOTYPES
|
||||
**********************/
|
||||
void lv_demo_scroll(void);
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /*LV_DEMO_SCROLL_H*/
|
||||
@@ -106,7 +106,7 @@ img_transform_avatar_15_map[] = {
|
||||
};
|
||||
|
||||
const lv_img_dsc_t img_transform_avatar_15 = {
|
||||
.header.cf = LV_COLOR_FORMAT_NATIVE_WITH_ALPHA,
|
||||
.header.cf = LV_COLOR_FORMAT_ARGB8888,
|
||||
.header.always_zero = 0,
|
||||
.header.reserved = 0,
|
||||
.header.w = 80,
|
||||
|
||||
@@ -776,14 +776,16 @@
|
||||
#endif
|
||||
|
||||
/*Flex layout demo*/
|
||||
#define LV_USE_DEMO_FLEX_LAYOUT 0
|
||||
#define LV_USE_DEMO_FLEX_LAYOUT 0
|
||||
|
||||
/*Smart-phone like multi-language demo*/
|
||||
#define LV_USE_DEMO_MULTILANG 0
|
||||
#define LV_USE_DEMO_MULTILANG 0
|
||||
|
||||
/*Widget transformation demo*/
|
||||
#define LV_USE_DEMO_TRANSFORM 0
|
||||
|
||||
/*Demonstrate scroll settings*/
|
||||
#define LV_USE_DEMO_SCROLL 0
|
||||
/*--END OF LV_CONF_H--*/
|
||||
|
||||
#endif /*LV_CONF_H*/
|
||||
|
||||
@@ -2512,7 +2512,7 @@
|
||||
#ifdef CONFIG_LV_USE_DEMO_FLEX_LAYOUT
|
||||
#define LV_USE_DEMO_FLEX_LAYOUT CONFIG_LV_USE_DEMO_FLEX_LAYOUT
|
||||
#else
|
||||
#define LV_USE_DEMO_FLEX_LAYOUT 0
|
||||
#define LV_USE_DEMO_FLEX_LAYOUT 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -2521,7 +2521,7 @@
|
||||
#ifdef CONFIG_LV_USE_DEMO_MULTILANG
|
||||
#define LV_USE_DEMO_MULTILANG CONFIG_LV_USE_DEMO_MULTILANG
|
||||
#else
|
||||
#define LV_USE_DEMO_MULTILANG 0
|
||||
#define LV_USE_DEMO_MULTILANG 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -2534,6 +2534,14 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*Demonstrate scroll settings*/
|
||||
#ifndef LV_USE_DEMO_SCROLL
|
||||
#ifdef CONFIG_LV_USE_DEMO_SCROLL
|
||||
#define LV_USE_DEMO_SCROLL CONFIG_LV_USE_DEMO_SCROLL
|
||||
#else
|
||||
#define LV_USE_DEMO_SCROLL 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------
|
||||
|
||||
@@ -78,5 +78,6 @@
|
||||
#define LV_USE_DEMO_STRESS 1
|
||||
#define LV_USE_DEMO_TRANSFORM 1
|
||||
#define LV_USE_DEMO_MULTILANG 1
|
||||
#define LV_USE_DEMO_SCROLL 1
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user