mirror of
https://github.com/lvgl/lvgl.git
synced 2026-06-01 00:51:49 +08:00
add some extra components and examples
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
#include "../../../lvgl.h"
|
||||
#include <stdio.h>
|
||||
#if LV_USE_BTNMATRIX
|
||||
|
||||
|
||||
static void event_cb(lv_obj_t * obj, lv_event_t e)
|
||||
{
|
||||
if(e == LV_EVENT_VALUE_CHANGED) {
|
||||
uint32_t id = lv_btnmatrix_get_active_btn(obj);
|
||||
bool prev = id == 0 ? true : false;
|
||||
bool next = id == 6 ? true : false;
|
||||
if(prev || next) {
|
||||
/*Find the checked button*/
|
||||
uint32_t i;
|
||||
for(i = 1; i < 7; i++) {
|
||||
if(lv_btnmatrix_has_btn_ctrl(obj, i, LV_BTNMATRIX_CTRL_CHECKED)) break;
|
||||
}
|
||||
|
||||
if(prev && i > 1) i--;
|
||||
else if(next && i < 5) i++;
|
||||
|
||||
lv_btnmatrix_set_btn_ctrl(obj, i, LV_BTNMATRIX_CTRL_CHECKED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Make a button group
|
||||
*/
|
||||
void lv_ex_btnmatrix_3(void)
|
||||
{
|
||||
static lv_style_t style_bg;
|
||||
lv_style_init(&style_bg);
|
||||
lv_style_set_pad_all(&style_bg, 0);
|
||||
lv_style_set_pad_gap(&style_bg, 0);
|
||||
lv_style_set_clip_corner(&style_bg, true);
|
||||
lv_style_set_radius(&style_bg, LV_RADIUS_CIRCLE);
|
||||
lv_style_set_border_width(&style_bg, 0);
|
||||
|
||||
|
||||
static lv_style_t style_btn;
|
||||
lv_style_init(&style_btn);
|
||||
lv_style_set_radius(&style_btn, 0);
|
||||
lv_style_set_border_width(&style_btn, 1);
|
||||
lv_style_set_border_opa(&style_btn, LV_OPA_50);
|
||||
lv_style_set_border_color(&style_btn, LV_COLOR_GRAY);
|
||||
lv_style_set_border_side(&style_btn, LV_BORDER_SIDE_INTERNAL);
|
||||
lv_style_set_radius(&style_btn, 0);
|
||||
|
||||
static const char * map[] = {LV_SYMBOL_LEFT, "1", "2", "3", "4", "5", LV_SYMBOL_RIGHT, ""};
|
||||
|
||||
lv_obj_t * btnm = lv_btnmatrix_create(lv_scr_act(), NULL);
|
||||
lv_btnmatrix_set_map(btnm, map);
|
||||
lv_obj_add_style(btnm, LV_PART_MAIN, LV_STATE_DEFAULT, &style_bg);
|
||||
lv_obj_add_style(btnm, LV_PART_ITEMS, LV_STATE_DEFAULT, &style_btn);
|
||||
lv_obj_add_event_cb(btnm, event_cb, NULL);
|
||||
lv_obj_set_size(btnm, 225, 35);
|
||||
|
||||
/*Allow selecting on one number at time*/
|
||||
lv_btnmatrix_set_btn_ctrl_all(btnm, LV_BTNMATRIX_CTRL_CHECKABLE);
|
||||
lv_btnmatrix_clear_btn_ctrl(btnm, 0, LV_BTNMATRIX_CTRL_CHECKABLE);
|
||||
lv_btnmatrix_clear_btn_ctrl(btnm, 6, LV_BTNMATRIX_CTRL_CHECKABLE);
|
||||
|
||||
lv_btnmatrix_set_one_checked(btnm, true);
|
||||
lv_btnmatrix_set_btn_ctrl(btnm, 1, LV_BTNMATRIX_CTRL_CHECKED);
|
||||
|
||||
lv_obj_align(btnm, NULL, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -2,7 +2,7 @@
|
||||
#include <stdio.h>
|
||||
#if LV_USE_MSGBOX
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
static void event_cb(lv_obj_t * obj, lv_event_t event)
|
||||
{
|
||||
if(event == LV_EVENT_VALUE_CHANGED) {
|
||||
printf("Button: %s\n", lv_msgbox_get_active_btn_text(obj));
|
||||
@@ -11,15 +11,15 @@ static void event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
|
||||
void lv_ex_msgbox_1(void)
|
||||
{
|
||||
static lv_style_t style;
|
||||
lv_style_init(&style);
|
||||
lv_style_set_radius(&style, LV_STATE_DEFAULT, 30);
|
||||
// static lv_style_t style;
|
||||
// lv_style_init(&style);
|
||||
// lv_style_set_radius(&style, LV_STATE_DEFAULT, 30);
|
||||
|
||||
static const char * btns[] ={"Apply", "Close", ""};
|
||||
|
||||
lv_obj_t * mbox1 = lv_msgbox_create("Hello", "This is a message box with two buttons.", btns, true);
|
||||
// lv_obj_set_width(mbox1, 300);
|
||||
lv_obj_set_event_cb(mbox1, event_handler);
|
||||
lv_obj_add_event_cb(mbox1, event_cb, NULL);
|
||||
lv_obj_align(mbox1, NULL, LV_ALIGN_CENTER, 0, 0); /*Align to the corner*/
|
||||
}
|
||||
|
||||
|
||||
@@ -30,16 +30,18 @@ void lv_ex_spinbox_1(void)
|
||||
lv_obj_align(spinbox, NULL, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
lv_coord_t h = lv_obj_get_height(spinbox);
|
||||
|
||||
lv_obj_t * btn = lv_btn_create(lv_scr_act(), NULL);
|
||||
lv_obj_set_size(btn, h, h);
|
||||
lv_obj_align(btn, spinbox, LV_ALIGN_OUT_RIGHT_MID, 5, 0);
|
||||
lv_obj_set_style_local_value_str(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_SYMBOL_PLUS);
|
||||
lv_obj_set_event_cb(btn, lv_spinbox_increment_event_cb);
|
||||
lv_obj_set_style_content_text(btn, LV_PART_MAIN, LV_STATE_DEFAULT, LV_SYMBOL_PLUS);
|
||||
lv_obj_add_event_cb(btn, lv_spinbox_increment_event_cb, NULL);
|
||||
|
||||
btn = lv_btn_create(lv_scr_act(), btn);
|
||||
btn = lv_btn_create(lv_scr_act(), NULL);
|
||||
lv_obj_set_size(btn, h, h);
|
||||
lv_obj_align(btn, spinbox, LV_ALIGN_OUT_LEFT_MID, -5, 0);
|
||||
lv_obj_set_event_cb(btn, lv_spinbox_decrement_event_cb);
|
||||
lv_obj_set_style_local_value_str(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_SYMBOL_MINUS);
|
||||
lv_obj_set_style_content_text(btn, LV_PART_MAIN, LV_STATE_DEFAULT, LV_SYMBOL_MINUS);
|
||||
lv_obj_add_event_cb(btn, lv_spinbox_decrement_event_cb, NULL);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
void lv_ex_spinner_1(void)
|
||||
{
|
||||
/*Create a Preloader object*/
|
||||
lv_obj_t * spinner = lv_spinner_create(lv_scr_act(), 500, 60);
|
||||
lv_obj_t * spinner = lv_spinner_create(lv_scr_act(), 1000, 60);
|
||||
lv_obj_set_size(spinner, 100, 100);
|
||||
lv_obj_align(spinner, NULL, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
|
||||
@@ -19,13 +19,16 @@ void lv_ex_tabview_1(void)
|
||||
"If the content\n"
|
||||
"of a tab\n"
|
||||
"becomes too\n"
|
||||
"long then\n"
|
||||
"it will \n"
|
||||
"longer\n"
|
||||
"than the\n"
|
||||
"container\n"
|
||||
"then it\n"
|
||||
"automatically\n"
|
||||
"become\n"
|
||||
"becomes\n"
|
||||
"scrollable.\n"
|
||||
"\n"
|
||||
"\n"
|
||||
"\n"
|
||||
"Can you see it?");
|
||||
|
||||
label = lv_label_create(tab2, NULL);
|
||||
|
||||
Reference in New Issue
Block a user