/*** @file lv_demo_test.c**/#include "stdio.h"
#include "stdlib.h"
#include "lvgl.h"typedef struct
{ // 自定义控件的属性和参数lv_obj_t *label;char *str;
} my_btn_param_t;lv_obj_t *my_btn1;
lv_obj_t *my_btn2;
lv_obj_t *my_btn3;lv_obj_t *my_btn_create(lv_obj_t *parent, const char *txt)
{lv_obj_t *btn = lv_btn_create(parent);lv_obj_set_size(btn, 200, 50);my_btn_param_t *param = (my_btn_param_t *)malloc(sizeof(my_btn_param_t));printf("user param addr:%p.|btn addr:%p.\n", param, btn);param->label = lv_label_create(btn);param->str = txt;lv_label_set_text(param->label, txt);lv_obj_align(param->label, LV_ALIGN_CENTER, 0, 0);lv_obj_set_user_data(btn, param);return btn;
}void my_btn_delete(lv_obj_t *my_btn)
{lv_obj_del(my_btn); my_btn_param_t *param = (my_btn_param_t *)lv_obj_get_user_data(my_btn);if (param)free(param);}void my_btn_set_text_color(lv_obj_t *my_btn, uint32_t color)
{my_btn_param_t *param = (my_btn_param_t *)lv_obj_get_user_data(my_btn);lv_obj_set_style_text_color(param->label, lv_color_hex(color), 0);
}void my_btn_set_text(lv_obj_t *my_btn, char *str)
{my_btn_param_t *param = (my_btn_param_t *)lv_obj_get_user_data(my_btn);param->str = str;lv_label_set_text(param->label, str);
}char *my_btn_get_text(lv_obj_t *my_btn)
{my_btn_param_t *param = (my_btn_param_t *)lv_obj_get_user_data(my_btn);return param->str;
}void my_timer_cb(lv_timer_t *timer)
{printf("timer cb.\n");lv_timer_del(timer);my_btn_delete(my_btn1);my_btn_delete(my_btn2);my_btn_delete(my_btn3);
}void lv_demo_test(void)
{lv_obj_t *obj_scr = lv_scr_act();lv_obj_set_style_bg_color(obj_scr, lv_palette_main(LV_PALETTE_GREEN), 0);my_btn1 = my_btn_create(obj_scr, "btn1");my_btn2 = my_btn_create(obj_scr, "btn2");my_btn3 = my_btn_create(obj_scr, "BTN3");lv_obj_align(my_btn1, LV_ALIGN_CENTER, 0, -80);lv_obj_align(my_btn2, LV_ALIGN_CENTER, 0, 20);my_btn_set_text_color(my_btn1, 0xffff00);my_btn_set_text_color(my_btn3, 0xff0000);my_btn_set_text(my_btn1, "testing");my_btn_set_text(my_btn2, "examing");printf("SHOW1=%s.\n", my_btn_get_text(my_btn1));printf("SHOW2=%s.\n", my_btn_get_text(my_btn2));printf("SHOW3=%s.\n", my_btn_get_text(my_btn3));//1秒后删除3个按钮对象lv_timer_create((lv_timer_cb_t)my_timer_cb, 1000, my_btn3);}