mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-15 10:58:54 +00:00
192 lines
11 KiB
C
192 lines
11 KiB
C
/*
|
|
* Copyright 2025 NXP
|
|
* NXP Confidential and Proprietary. This software is owned or controlled by NXP and may only be used strictly in
|
|
* accordance with the applicable license terms. By expressly accepting such terms or by downloading, installing,
|
|
* activating and/or otherwise using the software, you are agreeing that you have read, and that you agree to
|
|
* comply with and are bound by, such license terms. If you do not agree to be bound by the applicable license
|
|
* terms, then you may not retain, install, activate or otherwise use the software.
|
|
*/
|
|
|
|
#include "lvgl.h"
|
|
#include <stdio.h>
|
|
#include "gui_guider.h"
|
|
#include "events_init.h"
|
|
#include "widgets_init.h"
|
|
#include "custom.h"
|
|
#include <drivers/rtc.h>
|
|
|
|
|
|
|
|
void setup_scr_screensaver(lv_ui *ui)
|
|
{
|
|
time_t now;
|
|
struct tm timeinfo;
|
|
|
|
time(&now);
|
|
localtime_r(&now, &timeinfo);
|
|
|
|
guider_ui.screensaverflag=1;//设置屏保标记
|
|
|
|
//Write codes screensaver
|
|
ui->screensaver = lv_obj_create(lv_scr_act());
|
|
lv_obj_set_pos(ui->screensaver, 0, 0);
|
|
lv_obj_set_size(ui->screensaver, 480, 480);
|
|
lv_obj_center(ui->screensaver);
|
|
lv_obj_set_scrollbar_mode(ui->screensaver,LV_SCROLLBAR_MODE_OFF);//不显示滚动条
|
|
lv_obj_clear_flag(ui->screensaver, LV_OBJ_FLAG_SCROLLABLE); // 禁止滚动
|
|
|
|
//Write style for screensaver, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
|
|
lv_obj_set_style_bg_color(ui->screensaver, lv_color_make(0x00, 0x00, 0x00),LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_bg_opa(ui->screensaver,255,LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_border_opa(ui->screensaver,0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_border_width(ui->screensaver, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_all(ui->screensaver, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_radius(ui->screensaver,0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
|
|
//Write codes screensaver_clock_bg
|
|
ui->screensaver_clock_bg = lv_img_create(ui->screensaver);
|
|
lv_obj_add_flag(ui->screensaver_clock_bg, LV_OBJ_FLAG_CLICKABLE);
|
|
lv_img_set_src(ui->screensaver_clock_bg, LVGL_PATH(standyclock_bg.png));
|
|
lv_img_set_pivot(ui->screensaver_clock_bg, 50,50);
|
|
lv_img_set_angle(ui->screensaver_clock_bg, 0);
|
|
lv_obj_set_pos(ui->screensaver_clock_bg, 20, 20);
|
|
lv_obj_set_size(ui->screensaver_clock_bg, 420, 420);
|
|
|
|
//Write style for screensaver_clock_bg, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
|
|
lv_obj_set_style_img_opa(ui->screensaver_clock_bg, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
|
|
//Write codes screensaver_clock_time
|
|
ui->screensaver_clock_time = lv_label_create(ui->screensaver);
|
|
//lv_label_set_text(ui->screensaver_clock_time, "Wed September 18, 2024");
|
|
|
|
lv_label_set_long_mode(ui->screensaver_clock_time, LV_LABEL_LONG_WRAP);
|
|
lv_obj_set_pos(ui->screensaver_clock_time, 155, 321);
|
|
lv_obj_set_size(ui->screensaver_clock_time, 160, 26);
|
|
|
|
//Write style for screensaver_clock_time, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
|
|
lv_obj_set_style_border_width(ui->screensaver_clock_time, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_radius(ui->screensaver_clock_time, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_color(ui->screensaver_clock_time, lv_color_hex(0x9D7931), LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_font(ui->screensaver_clock_time, &lv_font_DroidSansFallback_12, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_opa(ui->screensaver_clock_time, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_letter_space(ui->screensaver_clock_time, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_line_space(ui->screensaver_clock_time, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_align(ui->screensaver_clock_time, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_bg_opa(ui->screensaver_clock_time, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_top(ui->screensaver_clock_time, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_right(ui->screensaver_clock_time, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_bottom(ui->screensaver_clock_time, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_left(ui->screensaver_clock_time, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_shadow_width(ui->screensaver_clock_time, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
|
|
//Write codes screensaver_clock_date
|
|
ui->screensaver_clock_date = lv_label_create(ui->screensaver);
|
|
//lv_label_set_text(ui->screensaver_clock_date, "Wed September 18, 2024");
|
|
lv_label_set_long_mode(ui->screensaver_clock_date, LV_LABEL_LONG_WRAP);
|
|
lv_obj_set_pos(ui->screensaver_clock_date, 0, 450);
|
|
lv_obj_set_size(ui->screensaver_clock_date, 480, 24);
|
|
|
|
//Write style for screensaver_clock_date, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
|
|
lv_obj_set_style_border_width(ui->screensaver_clock_date, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_radius(ui->screensaver_clock_date, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_color(ui->screensaver_clock_date, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_font(ui->screensaver_clock_date, &lv_font_simsun_16, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_opa(ui->screensaver_clock_date, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_letter_space(ui->screensaver_clock_date, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_line_space(ui->screensaver_clock_date, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_align(ui->screensaver_clock_date, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_bg_opa(ui->screensaver_clock_date, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_top(ui->screensaver_clock_date, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_right(ui->screensaver_clock_date, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_bottom(ui->screensaver_clock_date, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_left(ui->screensaver_clock_date, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_shadow_width(ui->screensaver_clock_date, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
if(GET_nvs_Sys_Info_language()==LANG_CH)
|
|
{
|
|
lv_label_set_text_fmt(ui->screensaver_clock_time,"%d年%d月%d日,%s",timeinfo.tm_year+1900,timeinfo.tm_mon+1,timeinfo.tm_mday,Menu_List[GET_nvs_Sys_Info_language()][timeinfo.tm_wday+MENU_LIST_SUN]);
|
|
lv_label_set_text_fmt(guider_ui.screensaver_clock_date,"%d年%d月%d日,%s",timeinfo.tm_year+1900,timeinfo.tm_mon+1,timeinfo.tm_mday,Menu_List[GET_nvs_Sys_Info_language()][timeinfo.tm_wday+MENU_LIST_SUN]);
|
|
}
|
|
else
|
|
{
|
|
lv_label_set_text_fmt(ui->screensaver_clock_time,"%s %s %d, %d",Menu_List[GET_nvs_Sys_Info_language()][timeinfo.tm_wday+MENU_LIST_SUN],Menu_monList[timeinfo.tm_mon+1],timeinfo.tm_mday,timeinfo.tm_year+1900);
|
|
lv_label_set_text_fmt(ui->screensaver_clock_date,"%s %s %d, %d",Menu_List[GET_nvs_Sys_Info_language()][timeinfo.tm_wday+MENU_LIST_SUN],Menu_monList[timeinfo.tm_mon+1],timeinfo.tm_mday,timeinfo.tm_year+1900);
|
|
}
|
|
|
|
//Write codes screensaver_clock_hour
|
|
ui->screensaver_clock_hour = lv_img_create(ui->screensaver);
|
|
lv_obj_add_flag(ui->screensaver_clock_hour, LV_OBJ_FLAG_CLICKABLE);
|
|
lv_img_set_src(ui->screensaver_clock_hour, LVGL_PATH(standyclock_hour.png));
|
|
lv_img_set_pivot(ui->screensaver_clock_hour, 18,210);
|
|
//lv_img_set_angle(ui->screensaver_clock_hour, 0);
|
|
lv_obj_set_pos(ui->screensaver_clock_hour, 212, 20);
|
|
lv_obj_set_size(ui->screensaver_clock_hour, 36, 420);
|
|
|
|
//Write style for screensaver_clock_hour, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
|
|
lv_obj_set_style_img_opa(ui->screensaver_clock_hour, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
|
|
//Write codes screensaver_clock_min
|
|
ui->screensaver_clock_min = lv_img_create(ui->screensaver);
|
|
lv_obj_add_flag(ui->screensaver_clock_min, LV_OBJ_FLAG_CLICKABLE);
|
|
lv_img_set_src(ui->screensaver_clock_min, LVGL_PATH(standyclock_min.png));
|
|
lv_img_set_pivot(ui->screensaver_clock_min, 18,210);
|
|
//lv_img_set_angle(ui->screensaver_clock_min, 600);
|
|
lv_obj_set_pos(ui->screensaver_clock_min, 212, 20);
|
|
lv_obj_set_size(ui->screensaver_clock_min, 36, 420);
|
|
|
|
//Write style for screensaver_clock_min, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
|
|
lv_obj_set_style_img_opa(ui->screensaver_clock_min, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
|
|
//Write codes screensaver_clock_second
|
|
ui->screensaver_clock_second = lv_img_create(ui->screensaver);
|
|
lv_obj_add_flag(ui->screensaver_clock_second, LV_OBJ_FLAG_CLICKABLE);
|
|
lv_img_set_src(ui->screensaver_clock_second, LVGL_PATH(standyclock_second.png));
|
|
lv_img_set_pivot(ui->screensaver_clock_second, 18,210);
|
|
//lv_img_set_angle(ui->screensaver_clock_second, 1200);
|
|
lv_obj_set_pos(ui->screensaver_clock_second, 212, 20);
|
|
lv_obj_set_size(ui->screensaver_clock_second, 36, 420);
|
|
|
|
//Write style for screensaver_clock_second, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
|
|
lv_obj_set_style_img_opa(ui->screensaver_clock_second, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
|
|
//Write codes screensaver_btn_1
|
|
ui->screensaver_btn_1 = lv_btn_create(ui->screensaver);
|
|
//ui->screensaver_btn_1_label = lv_label_create(ui->screensaver_btn_1);
|
|
//lv_label_set_text(ui->screensaver_btn_1_label, "");
|
|
//lv_label_set_long_mode(ui->screensaver_btn_1_label, LV_LABEL_LONG_WRAP);
|
|
//lv_obj_align(ui->screensaver_btn_1_label, LV_ALIGN_CENTER, 0, 0);
|
|
lv_obj_set_style_pad_all(ui->screensaver_btn_1, 0, LV_STATE_DEFAULT);
|
|
//lv_obj_set_width(ui->screensaver_btn_1_label, LV_PCT(100));
|
|
lv_obj_set_pos(ui->screensaver_btn_1, 0, 0);
|
|
lv_obj_set_size(ui->screensaver_btn_1, 480, 480);
|
|
|
|
//Write style for screensaver_btn_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
|
|
lv_obj_set_style_bg_opa(ui->screensaver_btn_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_border_width(ui->screensaver_btn_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_radius(ui->screensaver_btn_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
lv_obj_set_style_shadow_width(ui->screensaver_btn_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
// lv_obj_set_style_text_color(ui->screensaver_btn_1, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
// lv_obj_set_style_text_font(ui->screensaver_btn_1, &lv_font_simsun_16, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
// lv_obj_set_style_text_opa(ui->screensaver_btn_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
// lv_obj_set_style_text_align(ui->screensaver_btn_1, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
|
|
|
|
//The custom code of screensaver.
|
|
int16_t angle=timeinfo.tm_sec*60;//一圈是60秒 1秒是1格 每秒6°(精度0.1° 所以是60代表6°)
|
|
printf("ss:%d\r\n",angle);
|
|
lv_img_set_angle(ui->screensaver_clock_second, angle);
|
|
//分
|
|
angle=now%3600;//0.1° now的单位是秒
|
|
printf("mm:%d\r\n",angle);
|
|
lv_img_set_angle(ui->screensaver_clock_min, angle);
|
|
|
|
//时
|
|
angle=((timeinfo.tm_hour%12)*60+timeinfo.tm_min)*5;//0.5°
|
|
printf("hh-angle:%d\r\n",angle);
|
|
lv_img_set_angle(ui->screensaver_clock_hour, angle);//
|
|
|
|
//Update current screen layout.
|
|
lv_obj_update_layout(ui->screensaver);
|
|
|
|
//Init events for screen.
|
|
events_init_screensaver(ui);
|
|
}
|