// This file was generated by SquareLine Studio // SquareLine Studio version: SquareLine Studio 1.5.3 // LVGL version: 9.2.2 // Project name: PowerPico #include "../ui.h" #include "./ui_PPSPage.h" lv_obj_t * ui_SetPage = NULL; // backlight static lv_obj_t * ui_PanelBL = NULL; static lv_obj_t * ui_SliderBL = NULL; static lv_obj_t * ui_LabelBL = NULL; // key sound static lv_obj_t * ui_PanelKS = NULL; static lv_obj_t * ui_SwitchKS = NULL; static lv_obj_t * ui_LabelKS = NULL; // language static lv_obj_t * ui_PanelLang = NULL; static lv_obj_t * ui_SwitchLang = NULL; static lv_obj_t * ui_LabelLang = NULL; // chose rotation static lv_obj_t * ui_PanelRotate = NULL; static lv_obj_t * ui_LabelRotation = NULL; static lv_obj_t * ui_LabelRotNum = NULL; // enable PPS, goto PPS page static lv_obj_t * ui_PanelPPS = NULL; static lv_obj_t * ui_SwitchPPS = NULL; static lv_obj_t * ui_LabelPPS = NULL; // about static lv_obj_t * ui_PanelAbout = NULL; static lv_obj_t * ui_LabelAbout = NULL; static lv_timer_t * _setting_timer = NULL; static lv_obj_t * msgbox = NULL; // msgbox 对象 static lv_obj_t * spinner = NULL; // spinner 对象 static bool waiting_for_signal = false; // 标志位,表示是否在等待信号 static lv_obj_t * panels[6]; // 存储所有 panel 的指针 static int current_panel_index = 0; // 当前选中的 panel 索引 static void show_wait_msgbox(void); static void hide_wait_msgbox(void); static void show_fail_msgbox(void); static void show_restart_msgbox(void); // event funtions /////////////////////// Timer ////////////////////// static void _setting_timer_cb(lv_timer_t * timer) { int8_t Msg = 0; Msg = MsgQueueGet_PPS_ready(); if(Msg == 1) { // 隐藏等待框 hide_wait_msgbox(); lv_lib_pm_goto("PPS Page", 0); } else if(Msg == -1) { // 隐藏等待框 hide_wait_msgbox(); // 显示失败框 show_fail_msgbox(); ui_send_pps_stop_msg(); } } ///////////////// key function /////////////////// #include "key.h" void ui_set_page_key_handler(void *key_event) { if(waiting_for_signal) return; int panel_count = sizeof(panels) / sizeof(panels[0]); // key boot if (((key_event_t*)key_event)->id == KEY_ID_B && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { lv_lib_pm_goto_first(); } // key left if (((key_event_t*)key_event)->id == KEY_ID_L && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { lv_obj_clear_state(panels[current_panel_index], LV_STATE_CHECKED); current_panel_index = (current_panel_index - 1 + panel_count) % panel_count; lv_obj_add_state(panels[current_panel_index], LV_STATE_CHECKED); lv_obj_scroll_to_view(panels[current_panel_index], LV_ANIM_ON); } // key right else if (((key_event_t*)key_event)->id == KEY_ID_R && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { lv_obj_clear_state(panels[current_panel_index], LV_STATE_CHECKED); current_panel_index = (current_panel_index + 1) % panel_count; lv_obj_add_state(panels[current_panel_index], LV_STATE_CHECKED); lv_obj_scroll_to_view(panels[current_panel_index], LV_ANIM_ON); } // key yes or key neg else if(((key_event_t*)key_event)->id == KEY_ID_Y || ((key_event_t*)key_event)->id == KEY_ID_N) { switch(current_panel_index) { // Screen Brightness case 0: if (((key_event_t*)key_event)->id == KEY_ID_Y && (((key_event_t*)key_event)->type == KEY_EVT_CLICK || ((key_event_t*)key_event)->type == KEY_EVT_REPEAT)) { // key yes int16_t slider_value = lv_slider_get_value(ui_SliderBL); slider_value += 10; if(slider_value > 100) slider_value = 100; lv_slider_set_value(ui_SliderBL, slider_value, LV_ANIM_ON); ui_set_back_light_level(slider_value); } else if (((key_event_t*)key_event)->id == KEY_ID_N && (((key_event_t*)key_event)->type == KEY_EVT_CLICK || ((key_event_t*)key_event)->type == KEY_EVT_REPEAT)) { // key neg int16_t slider_value = lv_slider_get_value(ui_SliderBL); slider_value -= 10; if(slider_value < 10) slider_value = 10; lv_slider_set_value(ui_SliderBL, slider_value, LV_ANIM_ON); ui_set_back_light_level(slider_value); } break; // key sound case 1: // key yes if (((key_event_t*)key_event)->id == KEY_ID_Y && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { lv_obj_add_state(ui_SwitchKS, LV_STATE_CHECKED); ui_set_key_sound_enable(1); } // key neg else if (((key_event_t*)key_event)->id == KEY_ID_N && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { lv_obj_clear_state(ui_SwitchKS, LV_STATE_CHECKED); ui_set_key_sound_enable(0); } break; // language case 2: // key yes if (((key_event_t*)key_event)->id == KEY_ID_Y && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { show_restart_msgbox(); lv_obj_add_state(ui_SwitchLang, LV_STATE_CHECKED); ui_set_language_select(1); lv_i18n_set_locale("zh-cn"); } // key neg else if (((key_event_t*)key_event)->id == KEY_ID_N && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { show_restart_msgbox(); lv_obj_clear_state(ui_SwitchLang, LV_STATE_CHECKED); ui_set_language_select(0); lv_i18n_set_locale("en"); } break; // chose rotation case 3: uint16_t rotation = ui_get_display_rotation(); // key yes if (((key_event_t*)key_event)->id == KEY_ID_Y && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { rotation = (rotation + 360 + 90) % 360; } // key neg else if (((key_event_t*)key_event)->id == KEY_ID_N && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { rotation = (rotation + 360 - 90) % 360; } if (rotation == 0) { lv_label_set_text(ui_LabelRotNum, "< 0 >"); } else if (rotation == 90) { lv_label_set_text(ui_LabelRotNum, "< 90 >"); } else if (rotation == 180) { lv_label_set_text(ui_LabelRotNum, "< 180 >"); } else if (rotation == 270) { lv_label_set_text(ui_LabelRotNum, "< 270 >"); } ui_set_display_rotation(rotation); ui_full_screen_refresh(ui_SetPage); break; // PPS page case 4: // 发送开启PD诱骗的信号 if (((key_event_t*)key_event)->id == KEY_ID_Y && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { // 发送pps开始信号到PD UFP Task ui_send_pps_start_msg(); // 弹出 msgbox 等待PD完成,并锁住按键操作 show_wait_msgbox(); // lv_lib_pm_goto("PPS Page", NULL); } break; // about case 5: // do nothing break; } // save settings to eeprom ui_system_settings_save(); } } /////////////////////// para_initialize ////////////////////// static void on_setpage_loaded(lv_event_t * e) { // 当 SetPage 页面加载完成后,滚动到当前选中的 panel lv_obj_scroll_to_view(panels[current_panel_index], LV_ANIM_ON); } static void _setting_init(void) { // backlight lv_slider_set_value(ui_SliderBL, ui_get_back_light_level(), LV_ANIM_OFF); // key sound if(ui_get_key_sound_enable()) lv_obj_add_state(ui_SwitchKS, LV_STATE_CHECKED); else lv_obj_clear_state(ui_SwitchKS, LV_STATE_CHECKED); // language if(ui_get_language_select() == 1) lv_obj_add_state(ui_SwitchLang, LV_STATE_CHECKED); else lv_obj_clear_state(ui_SwitchLang, LV_STATE_CHECKED); // lcd rotation uint16_t rotation = ui_get_display_rotation(); if (rotation == 0) { lv_label_set_text(ui_LabelRotNum, "< 0 >"); } else if (rotation == 90) { lv_label_set_text(ui_LabelRotNum, "< 90 >"); } else if (rotation == 180) { lv_label_set_text(ui_LabelRotNum, "< 180 >"); } else if (rotation == 270) { lv_label_set_text(ui_LabelRotNum, "< 270 >"); } } /////////////////////// ui_components ////////////////////// // 显示 PD msgbox static void show_wait_msgbox(void) { // 获取当前视角y pos int32_t view_y = lv_obj_get_scroll_top(ui_SetPage); // 创建 msgbox msgbox = lv_obj_create(ui_SetPage); lv_obj_set_size(msgbox, 200, 160); lv_obj_center(msgbox); lv_obj_set_pos(msgbox, 0, view_y); lv_obj_set_style_bg_color(msgbox, lv_color_hex(0x606060), LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_opa(msgbox, 255, LV_PART_MAIN | LV_STATE_DEFAULT); // 添加 spinner spinner = lv_spinner_create(msgbox); lv_obj_set_size(spinner, 60, 60); lv_obj_center(spinner); // 添加文本 lv_obj_t * label = lv_label_create(msgbox); lv_label_set_text(label, "Waiting for PD..."); lv_obj_set_align(label, LV_ALIGN_BOTTOM_MID); lv_obj_set_style_text_font(label, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); // 设置标志位 waiting_for_signal = true; } // 隐藏 PD msgbox static void hide_wait_msgbox(void) { if (msgbox) { lv_obj_del(msgbox); msgbox = NULL; spinner = NULL; } waiting_for_signal = false; } // 定时器回调函数,用于关闭失败弹窗 static void _fail_msgbox_timer_cb(lv_timer_t * t) { lv_obj_t * mbox = (lv_obj_t *)lv_timer_get_user_data(t); if (mbox) { lv_obj_del(mbox); // 删除 msgbox } lv_timer_del(t); // 删除定时器 } // 显示重启提示弹窗 static void show_restart_msgbox(void) { // 获取当前视角y pos int32_t view_y = lv_obj_get_scroll_top(ui_SetPage); // 创建 msgbox lv_obj_t * restart_msgbox = lv_obj_create(ui_SetPage); lv_obj_set_size(restart_msgbox, 220, 100); lv_obj_center(restart_msgbox); lv_obj_set_pos(restart_msgbox, 0, view_y); lv_obj_set_style_bg_color(restart_msgbox, lv_color_hex(0x958030), LV_PART_MAIN | LV_STATE_DEFAULT); // 黄色背景 lv_obj_set_style_bg_opa(restart_msgbox, 200, LV_PART_MAIN | LV_STATE_DEFAULT); // 添加文本 lv_obj_t * label = lv_label_create(restart_msgbox); lv_label_set_text(label, _("Please reboot to apply\nall changes!")); lv_obj_center(label); if(ui_get_language_select() == 0) { // 如果是English lv_obj_set_style_text_font(label, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); } else { // 如果是中文 lv_obj_set_style_text_font(label, &ui_font_zhongyuan20, LV_PART_MAIN | LV_STATE_DEFAULT); } lv_obj_set_style_text_align(label, LV_TEXT_ALIGN_CENTER, 0); // 设置定时器,2 秒后关闭弹窗 lv_timer_t * timer = lv_timer_create(_fail_msgbox_timer_cb, 2000, restart_msgbox); // 重用关闭回调 lv_timer_set_repeat_count(timer, 1); // 只执行一次 } // 显示PPS失败提示弹窗 static void show_fail_msgbox(void) { // 获取当前视角y pos int32_t view_y = lv_obj_get_scroll_top(ui_SetPage); // 创建 msgbox msgbox = lv_obj_create(ui_SetPage); lv_obj_set_size(msgbox, 200, 100); lv_obj_center(msgbox); lv_obj_set_pos(msgbox, 0, view_y); lv_obj_set_style_bg_color(msgbox, lv_color_hex(0xFF0000), LV_PART_MAIN | LV_STATE_DEFAULT); // 红色背景 lv_obj_set_style_bg_opa(msgbox, 200, LV_PART_MAIN | LV_STATE_DEFAULT); // 添加文本 lv_obj_t * label = lv_label_create(msgbox); lv_label_set_text(label, "PD Setting Failed!"); lv_obj_center(label); lv_obj_set_style_text_font(label, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); // 设置定时器,2 秒后关闭弹窗 lv_timer_t * timer = lv_timer_create(_fail_msgbox_timer_cb, 2000, msgbox); // 传递 msgbox 对象 lv_timer_set_repeat_count(timer, 1); // 只执行一次 } /////////////////////// ui_initialize ////////////////////// void ui_SetPage_screen_init(void) { ui_SetPage = lv_obj_create(NULL); ui_PanelBL = lv_obj_create(ui_SetPage); lv_obj_set_width(ui_PanelBL, 234); lv_obj_set_height(ui_PanelBL, 65); lv_obj_set_x(ui_PanelBL, 0); lv_obj_set_y(ui_PanelBL, 5); lv_obj_set_align(ui_PanelBL, LV_ALIGN_TOP_MID); lv_obj_add_flag(ui_PanelBL, LV_OBJ_FLAG_CHECKABLE); /// Flags lv_obj_remove_flag(ui_PanelBL, LV_OBJ_FLAG_SCROLLABLE); /// Flags lv_obj_set_style_bg_color(ui_PanelBL, lv_color_hex(0x606060), LV_PART_MAIN | LV_STATE_CHECKED); lv_obj_set_style_bg_opa(ui_PanelBL, 255, LV_PART_MAIN | LV_STATE_CHECKED); ui_SliderBL = lv_slider_create(ui_PanelBL); lv_slider_set_value(ui_SliderBL, 50, LV_ANIM_OFF); if(lv_slider_get_mode(ui_SliderBL) == LV_SLIDER_MODE_RANGE) lv_slider_set_left_value(ui_SliderBL, 0, LV_ANIM_OFF); lv_obj_set_width(ui_SliderBL, 200); lv_obj_set_height(ui_SliderBL, 10); lv_obj_set_align(ui_SliderBL, LV_ALIGN_BOTTOM_MID); //Compensating for LVGL9.1 draw crash with bar/slider max value when top-padding is nonzero and right-padding is 0 if(lv_obj_get_style_pad_top(ui_SliderBL, LV_PART_MAIN) > 0) lv_obj_set_style_pad_right(ui_SliderBL, lv_obj_get_style_pad_right(ui_SliderBL, LV_PART_MAIN) + 1, LV_PART_MAIN); ui_LabelBL = lv_label_create(ui_PanelBL); lv_obj_set_width(ui_LabelBL, LV_SIZE_CONTENT); /// 1 lv_obj_set_height(ui_LabelBL, LV_SIZE_CONTENT); /// 1 lv_obj_set_x(ui_LabelBL, 0); lv_obj_set_y(ui_LabelBL, -5); lv_label_set_text(ui_LabelBL, _("Screen Brightness :")); if(ui_get_language_select() == 0) lv_obj_set_style_text_font(ui_LabelBL, &lv_font_montserrat_16, LV_PART_MAIN | LV_STATE_DEFAULT); else lv_obj_set_style_text_font(ui_LabelBL, &ui_font_zhongyuan18, LV_PART_MAIN | LV_STATE_DEFAULT); ui_PanelKS = lv_obj_create(ui_SetPage); lv_obj_set_width(ui_PanelKS, 234); lv_obj_set_height(ui_PanelKS, 45); lv_obj_set_x(ui_PanelKS, 0); lv_obj_set_y(ui_PanelKS, 75); lv_obj_set_align(ui_PanelKS, LV_ALIGN_TOP_MID); lv_obj_add_flag(ui_PanelKS, LV_OBJ_FLAG_CHECKABLE); /// Flags lv_obj_remove_flag(ui_PanelKS, LV_OBJ_FLAG_SCROLLABLE); /// Flags lv_obj_set_style_bg_color(ui_PanelKS, lv_color_hex(0x606060), LV_PART_MAIN | LV_STATE_CHECKED); lv_obj_set_style_bg_opa(ui_PanelKS, 255, LV_PART_MAIN | LV_STATE_CHECKED); ui_SwitchKS = lv_switch_create(ui_PanelKS); lv_obj_set_width(ui_SwitchKS, 50); lv_obj_set_height(ui_SwitchKS, 25); lv_obj_set_align(ui_SwitchKS, LV_ALIGN_RIGHT_MID); lv_obj_add_state(ui_SwitchKS, LV_STATE_CHECKED); /// States ui_LabelKS = lv_label_create(ui_PanelKS); lv_obj_set_width(ui_LabelKS, LV_SIZE_CONTENT); /// 1 lv_obj_set_height(ui_LabelKS, LV_SIZE_CONTENT); /// 1 lv_obj_set_align(ui_LabelKS, LV_ALIGN_LEFT_MID); lv_label_set_text(ui_LabelKS, _("Enable key sound")); if(ui_get_language_select() == 0) lv_obj_set_style_text_font(ui_LabelKS, &lv_font_montserrat_16, LV_PART_MAIN | LV_STATE_DEFAULT); else lv_obj_set_style_text_font(ui_LabelKS, &ui_font_zhongyuan18, LV_PART_MAIN | LV_STATE_DEFAULT); ui_PanelLang = lv_obj_create(ui_SetPage); lv_obj_set_width(ui_PanelLang, 234); lv_obj_set_height(ui_PanelLang, 45); lv_obj_set_x(ui_PanelLang, 0); lv_obj_set_y(ui_PanelLang, 125); lv_obj_set_align(ui_PanelLang, LV_ALIGN_TOP_MID); lv_obj_add_flag(ui_PanelLang, LV_OBJ_FLAG_CHECKABLE); /// Flags lv_obj_remove_flag(ui_PanelLang, LV_OBJ_FLAG_SCROLLABLE); /// Flags lv_obj_set_style_bg_color(ui_PanelLang, lv_color_hex(0x606060), LV_PART_MAIN | LV_STATE_CHECKED); lv_obj_set_style_bg_opa(ui_PanelLang, 255, LV_PART_MAIN | LV_STATE_CHECKED); ui_SwitchLang = lv_switch_create(ui_PanelLang); lv_obj_set_width(ui_SwitchLang, 50); lv_obj_set_height(ui_SwitchLang, 25); lv_obj_set_align(ui_SwitchLang, LV_ALIGN_RIGHT_MID); ui_LabelLang = lv_label_create(ui_PanelLang); lv_obj_set_width(ui_LabelLang, LV_SIZE_CONTENT); /// 1 lv_obj_set_height(ui_LabelLang, LV_SIZE_CONTENT); /// 1 lv_obj_set_align(ui_LabelLang, LV_ALIGN_LEFT_MID); lv_label_set_text(ui_LabelLang, _("Enable Chinese")); if(ui_get_language_select() == 0) lv_obj_set_style_text_font(ui_LabelLang, &lv_font_montserrat_16, LV_PART_MAIN | LV_STATE_DEFAULT); else lv_obj_set_style_text_font(ui_LabelLang, &ui_font_zhongyuan18, LV_PART_MAIN | LV_STATE_DEFAULT); ui_PanelRotate = lv_obj_create(ui_SetPage); lv_obj_set_width(ui_PanelRotate, 234); lv_obj_set_height(ui_PanelRotate, 45); lv_obj_set_x(ui_PanelRotate, 0); lv_obj_set_y(ui_PanelRotate, 175); lv_obj_set_align(ui_PanelRotate, LV_ALIGN_TOP_MID); lv_obj_add_flag(ui_PanelRotate, LV_OBJ_FLAG_CHECKABLE); /// Flags lv_obj_remove_flag(ui_PanelRotate, LV_OBJ_FLAG_SCROLLABLE); /// Flags lv_obj_set_style_bg_color(ui_PanelRotate, lv_color_hex(0x606060), LV_PART_MAIN | LV_STATE_CHECKED); lv_obj_set_style_bg_opa(ui_PanelRotate, 255, LV_PART_MAIN | LV_STATE_CHECKED); ui_LabelRotation = lv_label_create(ui_PanelRotate); lv_obj_set_width(ui_LabelRotation, LV_SIZE_CONTENT); /// 1 lv_obj_set_height(ui_LabelRotation, LV_SIZE_CONTENT); /// 1 lv_obj_set_align(ui_LabelRotation, LV_ALIGN_LEFT_MID); lv_label_set_text(ui_LabelRotation, _("Chose Rotation")); if(ui_get_language_select() == 0) lv_obj_set_style_text_font(ui_LabelRotation, &lv_font_montserrat_16, LV_PART_MAIN | LV_STATE_DEFAULT); else lv_obj_set_style_text_font(ui_LabelRotation, &ui_font_zhongyuan18, LV_PART_MAIN | LV_STATE_DEFAULT); ui_LabelRotNum = lv_label_create(ui_PanelRotate); lv_obj_set_width(ui_LabelRotNum, LV_SIZE_CONTENT); /// 1 lv_obj_set_height(ui_LabelRotNum, LV_SIZE_CONTENT); /// 1 lv_obj_set_align(ui_LabelRotNum, LV_ALIGN_RIGHT_MID); lv_label_set_text(ui_LabelRotNum, "< 180 >"); lv_obj_set_style_text_font(ui_LabelRotNum, &lv_font_montserrat_16, LV_PART_MAIN | LV_STATE_DEFAULT); ui_PanelPPS = lv_obj_create(ui_SetPage); lv_obj_set_width(ui_PanelPPS, 234); lv_obj_set_height(ui_PanelPPS, 45); lv_obj_set_x(ui_PanelPPS, 0); lv_obj_set_y(ui_PanelPPS, 225); lv_obj_set_align(ui_PanelPPS, LV_ALIGN_TOP_MID); lv_obj_add_flag(ui_PanelPPS, LV_OBJ_FLAG_CHECKABLE); /// Flags lv_obj_remove_flag(ui_PanelPPS, LV_OBJ_FLAG_SCROLLABLE); /// Flags lv_obj_set_style_bg_color(ui_PanelPPS, lv_color_hex(0x606060), LV_PART_MAIN | LV_STATE_CHECKED); lv_obj_set_style_bg_opa(ui_PanelPPS, 255, LV_PART_MAIN | LV_STATE_CHECKED); ui_SwitchPPS = lv_switch_create(ui_PanelPPS); lv_obj_set_width(ui_SwitchPPS, 50); lv_obj_set_height(ui_SwitchPPS, 25); lv_obj_set_align(ui_SwitchPPS, LV_ALIGN_RIGHT_MID); ui_LabelPPS = lv_label_create(ui_PanelPPS); lv_obj_set_width(ui_LabelPPS, LV_SIZE_CONTENT); /// 1 lv_obj_set_height(ui_LabelPPS, LV_SIZE_CONTENT); /// 1 lv_obj_set_align(ui_LabelPPS, LV_ALIGN_LEFT_MID); lv_label_set_text(ui_LabelPPS, _("PD Sink")); if(ui_get_language_select() == 0) lv_obj_set_style_text_font(ui_LabelPPS, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); else lv_obj_set_style_text_font(ui_LabelPPS, &ui_font_zhongyuan20, LV_PART_MAIN | LV_STATE_DEFAULT); ui_PanelAbout = lv_obj_create(ui_SetPage); lv_obj_set_width(ui_PanelAbout, 234); lv_obj_set_height(ui_PanelAbout, 100); lv_obj_set_x(ui_PanelAbout, 0); lv_obj_set_y(ui_PanelAbout, 275); lv_obj_set_align(ui_PanelAbout, LV_ALIGN_TOP_MID); lv_obj_add_flag(ui_PanelAbout, LV_OBJ_FLAG_CHECKABLE); /// Flags lv_obj_remove_flag(ui_PanelAbout, LV_OBJ_FLAG_SCROLLABLE); /// Flags lv_obj_set_style_bg_color(ui_PanelAbout, lv_color_hex(0x606060), LV_PART_MAIN | LV_STATE_CHECKED); lv_obj_set_style_bg_opa(ui_PanelAbout, 255, LV_PART_MAIN | LV_STATE_CHECKED); ui_LabelAbout = lv_label_create(ui_PanelAbout); lv_obj_set_width(ui_LabelAbout, LV_SIZE_CONTENT); /// 1 lv_obj_set_height(ui_LabelAbout, LV_SIZE_CONTENT); /// 1 lv_label_set_text(ui_LabelAbout, "About\nPower-Pico\nThe uA current meter\nV 1.0.7"); lv_obj_set_style_text_font(ui_LabelAbout, &lv_font_montserrat_16, LV_PART_MAIN | LV_STATE_DEFAULT); // init setting values _setting_init(); // store panels in array panels[0] = ui_PanelBL; panels[1] = ui_PanelKS; panels[2] = ui_PanelLang; panels[3] = ui_PanelRotate; panels[4] = ui_PanelPPS; panels[5] = ui_PanelAbout; lv_obj_add_state(panels[current_panel_index], LV_STATE_CHECKED); // timer _setting_timer = lv_timer_create(_setting_timer_cb, 500, NULL); // lv_obj_add_event_cb(ui_SetPage, on_setpage_loaded, LV_EVENT_SCREEN_LOADED, NULL); } void ui_SetPage_screen_destroy(void) { if(_setting_timer) { lv_timer_delete(_setting_timer); } }