mirror of https://github.com/meshcore-dev/MeshCore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
251 lines
13 KiB
251 lines
13 KiB
// This file was generated by SquareLine Studio
|
|
// SquareLine Studio version: SquareLine Studio 1.3.4
|
|
// LVGL version: 8.2.0
|
|
// Project name: Buttons
|
|
|
|
#include "defines.h"
|
|
#include "ui_screen.h"
|
|
#include "ui.h"
|
|
|
|
static void scroll_begin_event(lv_event_t* e)
|
|
{
|
|
/*Disable the scroll animations. Triggered when a tab button is clicked */
|
|
if (lv_event_get_code(e) == LV_EVENT_SCROLL_BEGIN) {
|
|
lv_anim_t* a = (lv_anim_t*)lv_event_get_param(e);
|
|
if (a) a->time = 0;
|
|
|
|
}
|
|
}
|
|
|
|
/*void btns_value_changed_event_cb(lv_event_t * e)
|
|
{
|
|
lv_obj_t * btns = lv_event_get_target(e);
|
|
|
|
lv_obj_t * tv = lv_obj_get_parent(btns);
|
|
uint32_t id = lv_btnmatrix_get_selected_btn(btns);
|
|
lv_tabview_set_act(tv, id, LV_ANIM_ON);
|
|
}*/
|
|
|
|
#ifdef SHOW_TABS_AT_LEFT
|
|
|
|
static void drawTabItemImage(lv_event_t *e, const void *icon) {
|
|
|
|
lv_event_code_t event_code = lv_event_get_code(e);
|
|
lv_obj_draw_part_dsc_t * dsc = (lv_obj_draw_part_dsc_t*)lv_event_get_param(e);
|
|
|
|
lv_img_header_t header;
|
|
lv_res_t res = lv_img_decoder_get_info(icon, &header);
|
|
|
|
if(res != LV_RES_OK) return;
|
|
|
|
lv_area_t a;
|
|
a.x1 = dsc->draw_area->x1 + (lv_area_get_width(dsc->draw_area) - header.w) / 2;
|
|
a.x2 = a.x1 + header.w - 1;
|
|
a.y1 = dsc->draw_area->y1 + (lv_area_get_height(dsc->draw_area) - header.h) / 2;
|
|
a.y2 = a.y1 + header.h - 1;
|
|
|
|
lv_draw_img_dsc_t img_draw_dsc;
|
|
lv_draw_img_dsc_init(&img_draw_dsc);
|
|
//dsc->label_dsc->opa = LV_OPA_TRANSP; /*Hide the text if any*/
|
|
//img_draw_dsc.recolor = lv_color_make(0xFF, 0x0, 0x00);
|
|
//if(lv_btnmatrix_get_selected_btn(target) == dsc->id) img_draw_dsc.recolor_opa = LV_OPA_30;
|
|
|
|
lv_draw_img(dsc->draw_ctx, &img_draw_dsc, &a, icon);
|
|
}
|
|
|
|
#ifdef USE_HOME_PAGE
|
|
static void home_button_draw_event_cb(lv_event_t *e) {
|
|
drawTabItemImage(e, &ui_img_icon_home_png);
|
|
}
|
|
#endif
|
|
|
|
#ifdef USE_MODULE_CONTROLS
|
|
static void controls_button_draw_event_cb(lv_event_t *e) {
|
|
drawTabItemImage(e, &ui_img_icon_switch_png);
|
|
}
|
|
#endif
|
|
|
|
#ifdef USE_MODULE_SETTINGS
|
|
static void settings_button_draw_event_cb(lv_event_t *e) {
|
|
drawTabItemImage(e, &ui_img_icon_settings_png);
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
void ui_init_screen_events() {
|
|
#ifdef USE_MODULE_SETTINGS
|
|
// lv_obj_add_event_cb(ui_Dropdown1, ui_event_Dropdown, LV_EVENT_VALUE_CHANGED, NULL);
|
|
// lv_obj_add_event_cb(ui_Dropdown2, ui_event_Dropdown, LV_EVENT_VALUE_CHANGED, NULL);
|
|
// lv_obj_add_event_cb(ui_Dropdown3, ui_event_Dropdown, LV_EVENT_VALUE_CHANGED, NULL);
|
|
// lv_obj_add_event_cb(ui_Dropdown4, ui_event_Dropdown, LV_EVENT_VALUE_CHANGED, NULL);
|
|
// lv_obj_add_event_cb(ui_Dropdown5, ui_event_Dropdown, LV_EVENT_VALUE_CHANGED, NULL);
|
|
// lv_obj_add_event_cb(ui_Dropdown6, ui_event_Dropdown, LV_EVENT_VALUE_CHANGED, NULL);
|
|
#endif
|
|
|
|
#ifdef USE_MODULE_CONTROLS
|
|
#ifdef USE_MODULE_SETTINGS
|
|
// lv_obj_add_event_cb(ui_SwitchesControllerType, ui_event_Dropdown, LV_EVENT_VALUE_CHANGED, NULL);
|
|
#endif
|
|
|
|
lv_obj_add_event_cb(ui_Panel1, ui_event_Panel, LV_EVENT_CLICKED, NULL);
|
|
lv_obj_add_event_cb(ui_Panel2, ui_event_Panel, LV_EVENT_CLICKED, NULL);
|
|
lv_obj_add_event_cb(ui_Panel3, ui_event_Panel, LV_EVENT_CLICKED, NULL);
|
|
lv_obj_add_event_cb(ui_Panel4, ui_event_Panel, LV_EVENT_CLICKED, NULL);
|
|
lv_obj_add_event_cb(ui_Panel5, ui_event_Panel, LV_EVENT_CLICKED, NULL);
|
|
lv_obj_add_event_cb(ui_Panel6, ui_event_Panel, LV_EVENT_CLICKED, NULL);
|
|
lv_obj_add_event_cb(ui_Panel7, ui_event_Panel, LV_EVENT_CLICKED, NULL);
|
|
#endif
|
|
|
|
#ifdef SHOW_TABS_AT_LEFT
|
|
#ifdef USE_MODULE_CONTROLS
|
|
lv_obj_add_event_cb(lv_obj_get_child(ui_MainTabView, 0), controls_button_draw_event_cb, LV_EVENT_DRAW_PART_END, NULL);
|
|
#endif
|
|
#endif
|
|
|
|
//Disable scroll animation
|
|
#ifdef USE_MAIN_TAB_VIEW
|
|
lv_obj_add_event_cb(lv_tabview_get_content(ui_MainTabView), scroll_begin_event,LV_EVENT_SCROLL_BEGIN, NULL);
|
|
lv_obj_clear_flag(lv_tabview_get_content(ui_MainTabView), LV_OBJ_FLAG_SCROLLABLE);
|
|
#endif
|
|
}
|
|
|
|
void ui_init_screen(void)
|
|
{
|
|
ui_Screen1 = lv_obj_create(NULL);
|
|
lv_obj_clear_flag(ui_Screen1, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
|
|
|
ui_Main = lv_obj_create(ui_Screen1);
|
|
lv_obj_remove_style_all(ui_Main);
|
|
lv_obj_set_width(ui_Main, 800);
|
|
lv_obj_set_height(ui_Main, 480);
|
|
lv_obj_set_align(ui_Main, LV_ALIGN_CENTER);
|
|
lv_obj_set_flex_flow(ui_Main, LV_FLEX_FLOW_COLUMN);
|
|
lv_obj_set_flex_align(ui_Main, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_START);
|
|
lv_obj_clear_flag(ui_Main, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
|
|
|
#ifdef SHOW_TOP_BAR
|
|
ui_TopBar = lv_obj_create(ui_Main);
|
|
lv_obj_remove_style_all(ui_TopBar);
|
|
lv_obj_set_width(ui_TopBar, lv_pct(100));
|
|
lv_obj_set_height(ui_TopBar, lv_pct(10));
|
|
lv_obj_set_align(ui_TopBar, LV_ALIGN_TOP_MID);
|
|
lv_obj_set_flex_flow(ui_TopBar, LV_FLEX_FLOW_ROW);
|
|
lv_obj_set_flex_align(ui_TopBar, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
|
|
lv_obj_clear_flag(ui_TopBar, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
|
//lv_obj_set_style_bg_color(ui_TopBar, lv_color_hex(0x333333), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_bg_color(ui_TopBar, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_bg_opa(ui_TopBar, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_border_color(ui_TopBar, lv_color_hex(0xAAAAAA), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_border_opa(ui_TopBar, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_border_width(ui_TopBar, 2, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_border_side(ui_TopBar, LV_BORDER_SIDE_BOTTOM, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_row(ui_TopBar, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_column(ui_TopBar, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
ui_TopBarLeftContainer = lv_obj_create(ui_TopBar);
|
|
lv_obj_remove_style_all(ui_TopBarLeftContainer);
|
|
lv_obj_set_width(ui_TopBarLeftContainer, lv_pct(30));
|
|
lv_obj_set_height(ui_TopBarLeftContainer, lv_pct(100));
|
|
lv_obj_set_align(ui_TopBarLeftContainer, LV_ALIGN_CENTER);
|
|
lv_obj_set_flex_flow(ui_TopBarLeftContainer, LV_FLEX_FLOW_ROW);
|
|
lv_obj_set_flex_align(ui_TopBarLeftContainer, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
|
|
lv_obj_clear_flag(ui_TopBarLeftContainer, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
|
lv_obj_set_style_pad_left(ui_TopBarLeftContainer, 10, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_right(ui_TopBarLeftContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_top(ui_TopBarLeftContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_bottom(ui_TopBarLeftContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_row(ui_TopBarLeftContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_column(ui_TopBarLeftContainer, 10, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
#ifdef USE_MODULE_CONTROLS
|
|
ui_ControlsStatus = lv_img_create(ui_TopBarLeftContainer);
|
|
lv_img_set_src(ui_ControlsStatus, &ui_img_icon_switch_png);
|
|
lv_obj_set_width(ui_ControlsStatus, LV_SIZE_CONTENT); /// 1
|
|
lv_obj_set_height(ui_ControlsStatus, LV_SIZE_CONTENT); /// 1
|
|
lv_obj_set_align(ui_ControlsStatus, LV_ALIGN_CENTER);
|
|
lv_obj_add_flag(ui_ControlsStatus, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
|
|
lv_obj_clear_flag(ui_ControlsStatus, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
|
lv_obj_set_style_opa(ui_ControlsStatus, 50, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
#endif
|
|
|
|
ui_TopBarMiddleContainer = lv_obj_create(ui_TopBar);
|
|
lv_obj_remove_style_all(ui_TopBarMiddleContainer);
|
|
lv_obj_set_width(ui_TopBarMiddleContainer, lv_pct(30));
|
|
lv_obj_set_height(ui_TopBarMiddleContainer, lv_pct(100));
|
|
lv_obj_set_align(ui_TopBarMiddleContainer, LV_ALIGN_CENTER);
|
|
lv_obj_clear_flag(ui_TopBarMiddleContainer, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
|
|
|
ui_TopBarRightContainer = lv_obj_create(ui_TopBar);
|
|
lv_obj_remove_style_all(ui_TopBarRightContainer);
|
|
lv_obj_set_width(ui_TopBarRightContainer, lv_pct(30));
|
|
lv_obj_set_height(ui_TopBarRightContainer, lv_pct(100));
|
|
lv_obj_set_align(ui_TopBarRightContainer, LV_ALIGN_CENTER);
|
|
lv_obj_set_flex_flow(ui_TopBarRightContainer, LV_FLEX_FLOW_ROW);
|
|
lv_obj_set_flex_align(ui_TopBarRightContainer, LV_FLEX_ALIGN_END, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
|
|
lv_obj_clear_flag(ui_TopBarRightContainer, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
|
lv_obj_set_style_pad_left(ui_TopBarRightContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_right(ui_TopBarRightContainer, 10, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_top(ui_TopBarRightContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_pad_bottom(ui_TopBarRightContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
#ifdef ENABLE_RTC_CLOCK
|
|
ui_DateTime = lv_label_create(ui_TopBarRightContainer);
|
|
lv_obj_set_width(ui_DateTime, LV_SIZE_CONTENT); /// 1
|
|
lv_obj_set_height(ui_DateTime, LV_SIZE_CONTENT); /// 1
|
|
lv_obj_set_x(ui_DateTime, -100);
|
|
lv_obj_set_y(ui_DateTime, 0);
|
|
lv_obj_set_align(ui_DateTime, LV_ALIGN_CENTER);
|
|
lv_label_set_text(ui_DateTime, "00:00");
|
|
lv_obj_set_style_text_color(ui_DateTime, lv_color_hex(0xD3D3D3), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_opa(ui_DateTime, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_font(ui_DateTime, &lv_font_arial_32, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef USE_MAIN_TAB_VIEW
|
|
#ifdef SHOW_TABS_AT_LEFT
|
|
ui_MainTabView = lv_tabview_create(ui_Main, LV_DIR_LEFT, 60);
|
|
#else
|
|
ui_MainTabView = lv_tabview_create(ui_Main, LV_DIR_TOP, 60);
|
|
#endif
|
|
lv_obj_set_width(ui_MainTabView, lv_pct(100));
|
|
#ifdef SHOW_TOP_BAR
|
|
lv_obj_set_height(ui_MainTabView, lv_pct(90));
|
|
#else
|
|
lv_obj_set_height(ui_MainTabView, lv_pct(100));
|
|
#endif
|
|
lv_obj_set_x(ui_MainTabView, 0);
|
|
lv_obj_set_y(ui_MainTabView, 50);
|
|
lv_obj_set_align(ui_MainTabView, LV_ALIGN_CENTER);
|
|
lv_obj_clear_flag(ui_MainTabView, LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM |
|
|
LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags
|
|
//lv_obj_set_style_bg_color(ui_MainTabView, lv_color_hex(0x333333), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_bg_color(ui_MainTabView, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_bg_opa(ui_MainTabView, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
|
|
|
lv_obj_set_style_text_color(lv_tabview_get_tab_btns(ui_MainTabView), lv_color_hex(0xFEFEFE), LV_PART_ITEMS | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_opa(lv_tabview_get_tab_btns(ui_MainTabView), 255, LV_PART_ITEMS | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_text_font(lv_tabview_get_tab_btns(ui_MainTabView), &lv_font_arial_18, LV_PART_ITEMS | LV_STATE_DEFAULT);
|
|
//lv_obj_set_style_bg_color(lv_tabview_get_tab_btns(ui_MainTabView), lv_color_hex(0x333333),
|
|
lv_obj_set_style_bg_color(lv_tabview_get_tab_btns(ui_MainTabView), lv_color_hex(0x000000), LV_PART_ITEMS | LV_STATE_DEFAULT);
|
|
|
|
// Selected button (LV_STATE_CHECKED)
|
|
lv_obj_set_style_text_font(lv_tabview_get_tab_btns(ui_MainTabView), &lv_font_arial_24, LV_PART_ITEMS | LV_STATE_CHECKED);
|
|
lv_obj_set_style_text_color(lv_tabview_get_tab_btns(ui_MainTabView), lv_color_hex(0x000000), LV_PART_ITEMS | LV_STATE_CHECKED);
|
|
//lv_obj_set_style_bg_color(lv_tabview_get_tab_btns(ui_MainTabView), lv_color_hex(0xCACACA), LV_PART_ITEMS | LV_STATE_CHECKED);
|
|
|
|
lv_obj_set_style_bg_opa(lv_tabview_get_tab_btns(ui_MainTabView), 255, LV_PART_ITEMS | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_border_color(lv_tabview_get_tab_btns(ui_MainTabView), lv_color_hex(0xCACACA), LV_PART_ITEMS | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_border_opa(lv_tabview_get_tab_btns(ui_MainTabView), 255, LV_PART_ITEMS | LV_STATE_DEFAULT);
|
|
lv_obj_set_style_border_width(lv_tabview_get_tab_btns(ui_MainTabView), 1, LV_PART_ITEMS | LV_STATE_DEFAULT);
|
|
#ifdef SHOW_TABS_AT_LEFT
|
|
lv_obj_set_style_border_side(lv_tabview_get_tab_btns(ui_MainTabView), LV_BORDER_SIDE_RIGHT, LV_PART_ITEMS | LV_STATE_DEFAULT);
|
|
#else
|
|
lv_obj_set_style_border_side(lv_tabview_get_tab_btns(ui_MainTabView), LV_BORDER_SIDE_BOTTOM, LV_PART_ITEMS | LV_STATE_DEFAULT);
|
|
#endif
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
|
|