From 2642d07a2f8a426d9ec5a2d8fda44ceb29caf93d Mon Sep 17 00:00:00 2001
From: Manuel <71137295+mverch67@users.noreply.github.com>
Date: Sat, 29 Mar 2025 14:52:40 +0100
Subject: [PATCH] customizable boot logo (#108)
---
README.md | 3 +-
generated/ui_320x240/screens.c | 180 +--
generated/ui_320x240/screens.h | 6 +-
include/util/FileLoader.h | 30 +
source/graphics/TFT/TFTView_320x240.cpp | 13 +-
source/util/FileLoader.cpp | 106 ++
studio/320x240/TFT320x240.eez-project | 1377 ++++++++++++-----------
7 files changed, 968 insertions(+), 747 deletions(-)
create mode 100644 include/util/FileLoader.h
create mode 100644 source/util/FileLoader.cpp
diff --git a/README.md b/README.md
index 6aa2f46..9245a9d 100644
--- a/README.md
+++ b/README.md
@@ -87,6 +87,7 @@ Graphics using LVGL library
- [x] Slovenian translation
- [x] Turkish translation
- [x] Greek translation
+ - [x] Ukrainian translation
- [ ] Support dynamic OLED / Color(TFT) selection
- [x] Add support for UI scaling and try eliminate fixed positioning (lvgl v9)
- [x] Allow co-existence of generated files/views by different eez-studio projects
@@ -101,7 +102,7 @@ Graphics using LVGL library
### Meshtastic UI (general)
- [x] Boot screen
- - [ ] Customizable boot screen
+ - [x] Customizable boot screen
- [x] Home Screen
- [x] Messages info
- [x] Nodes info
diff --git a/generated/ui_320x240/screens.c b/generated/ui_320x240/screens.c
index 8878b31..f694589 100644
--- a/generated/ui_320x240/screens.c
+++ b/generated/ui_320x240/screens.c
@@ -32,7 +32,9 @@ void create_screen_boot_screen() {
lv_arc_set_range(obj, 0, 360);
lv_arc_set_value(obj, 360);
lv_arc_set_bg_start_angle(obj, 0);
+ lv_arc_set_bg_end_angle(obj, 0);
lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE|LV_OBJ_FLAG_GESTURE_BUBBLE|LV_OBJ_FLAG_PRESS_LOCK|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW|LV_OBJ_FLAG_SNAPPABLE);
lv_obj_set_style_arc_color(obj, lv_color_hex(0xff000000), LV_PART_INDICATOR | LV_STATE_DEFAULT);
lv_obj_set_style_arc_width(obj, 8, LV_PART_INDICATOR | LV_STATE_DEFAULT);
lv_obj_set_style_arc_color(obj, lv_color_hex(0xff67ea94), LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -47,12 +49,10 @@ void create_screen_boot_screen() {
lv_obj_set_pos(obj, 0, LV_PCT(-10));
lv_obj_set_size(obj, 100, 50);
lv_obj_set_style_align(obj, LV_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
- lv_obj_set_style_bg_image_src(obj, &img_meshtastic_boot_logo_image, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_max_width(obj, 210, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_max_height(obj, 120, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_shadow_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- lv_obj_set_style_bg_image_recolor_opa(obj, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
}
{
// MeshtasticUrl
@@ -73,6 +73,15 @@ void create_screen_boot_screen() {
lv_label_set_text(obj, "");
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
+ {
+ // bootLogo
+ lv_obj_t *obj = lv_img_create(parent_obj);
+ objects.boot_logo = obj;
+ lv_obj_set_pos(obj, 0, -24);
+ lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
+ lv_img_set_src(obj, &img_meshtastic_boot_logo_image);
+ lv_obj_set_style_align(obj, LV_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
+ }
{
// bluetoothButton
lv_obj_t *obj = lv_btn_create(parent_obj);
@@ -190,6 +199,8 @@ void create_screen_boot_screen() {
}
}
}
+
+ tick_screen_boot_screen();
}
void tick_screen_boot_screen() {
@@ -713,7 +724,7 @@ void create_screen_main_screen() {
lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN|LV_OBJ_FLAG_HIDDEN);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_GESTURE_BUBBLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_AUTO);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_VER);
+ lv_obj_set_scroll_dir(obj, LV_DIR_VER);
add_style_panel_style(obj);
lv_obj_set_style_pad_top(obj, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_left(obj, 8, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -886,7 +897,7 @@ void create_screen_main_screen() {
lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN|LV_OBJ_FLAG_HIDDEN);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_AUTO);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_VER);
+ lv_obj_set_scroll_dir(obj, LV_DIR_VER);
add_style_panel_style(obj);
lv_obj_set_style_layout(obj, LV_LAYOUT_FLEX, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_flex_flow(obj, LV_FLEX_FLOW_COLUMN, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -1120,7 +1131,7 @@ void create_screen_main_screen() {
lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE|LV_OBJ_FLAG_SCROLLABLE);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_ACTIVE);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_VER);
+ lv_obj_set_scroll_dir(obj, LV_DIR_VER);
add_style_panel_style(obj);
lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -1164,7 +1175,7 @@ void create_screen_main_screen() {
lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_HOR);
+ lv_obj_set_scroll_dir(obj, LV_DIR_HOR);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_top(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -1573,7 +1584,7 @@ void create_screen_main_screen() {
lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN|LV_OBJ_FLAG_HIDDEN);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE|LV_OBJ_FLAG_GESTURE_BUBBLE|LV_OBJ_FLAG_PRESS_LOCK|LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SNAPPABLE);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_NONE);
+ lv_obj_set_scroll_dir(obj, LV_DIR_NONE);
add_style_panel_style(obj);
lv_obj_set_style_layout(obj, LV_LAYOUT_NONE, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -1591,7 +1602,7 @@ void create_screen_main_screen() {
lv_obj_set_pos(obj, 0, 0);
lv_obj_set_size(obj, LV_PCT(100), LV_PCT(100));
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_NONE);
+ lv_obj_set_scroll_dir(obj, LV_DIR_NONE);
add_style_tab_view_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -1602,7 +1613,7 @@ void create_screen_main_screen() {
lv_obj_t *obj = lv_tabview_add_tab(parent_obj, _("Settings"));
objects.tab_page_basic_settings = obj;
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_ACTIVE);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_VER);
+ lv_obj_set_scroll_dir(obj, LV_DIR_VER);
lv_obj_set_style_layout(obj, LV_LAYOUT_FLEX, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_flex_flow(obj, LV_FLEX_FLOW_COLUMN, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_top(obj, 10, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -2082,7 +2093,7 @@ void create_screen_main_screen() {
lv_obj_t *obj = lv_tabview_add_tab(parent_obj, _("Tools"));
objects.tab_page_tools = obj;
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_ACTIVE);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_VER);
+ lv_obj_set_scroll_dir(obj, LV_DIR_VER);
lv_obj_set_style_layout(obj, LV_LAYOUT_FLEX, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_flex_flow(obj, LV_FLEX_FLOW_COLUMN, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_top(obj, 10, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -2279,8 +2290,8 @@ void create_screen_main_screen() {
objects.top_panel = obj;
lv_obj_set_pos(obj, LV_PCT(12), 0);
lv_obj_set_size(obj, LV_PCT(80), LV_PCT(10));
+ lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE|LV_OBJ_FLAG_GESTURE_BUBBLE|LV_OBJ_FLAG_PRESS_LOCK|LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW|LV_OBJ_FLAG_SNAPPABLE);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_NONE);
add_style_top_panel_style(obj);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
{
@@ -2319,7 +2330,7 @@ void create_screen_main_screen() {
lv_obj_set_pos(obj, LV_PCT(12), 0);
lv_obj_set_size(obj, LV_PCT(80), LV_PCT(10));
lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
- lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE|LV_OBJ_FLAG_GESTURE_BUBBLE|LV_OBJ_FLAG_PRESS_LOCK|LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW|LV_OBJ_FLAG_SNAPPABLE);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
add_style_top_panel_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_TOP_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -2356,7 +2367,7 @@ void create_screen_main_screen() {
lv_obj_set_pos(obj, LV_PCT(12), 0);
lv_obj_set_size(obj, LV_PCT(80), LV_PCT(10));
lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
- lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE|LV_OBJ_FLAG_GESTURE_BUBBLE|LV_OBJ_FLAG_PRESS_LOCK|LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW|LV_OBJ_FLAG_SNAPPABLE);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
add_style_top_panel_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_TOP_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -2393,7 +2404,7 @@ void create_screen_main_screen() {
lv_obj_set_pos(obj, LV_PCT(12), 0);
lv_obj_set_size(obj, LV_PCT(80), LV_PCT(10));
lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
- lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE|LV_OBJ_FLAG_GESTURE_BUBBLE|LV_OBJ_FLAG_PRESS_LOCK|LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW|LV_OBJ_FLAG_SNAPPABLE);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
add_style_top_panel_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_TOP_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -2430,7 +2441,7 @@ void create_screen_main_screen() {
lv_obj_set_pos(obj, LV_PCT(12), 0);
lv_obj_set_size(obj, LV_PCT(80), LV_PCT(10));
lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
- lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_clear_flag(obj, LV_OBJ_FLAG_GESTURE_BUBBLE|LV_OBJ_FLAG_PRESS_LOCK|LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW|LV_OBJ_FLAG_SNAPPABLE);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
add_style_top_panel_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_TOP_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -2466,7 +2477,7 @@ void create_screen_main_screen() {
lv_obj_set_pos(obj, LV_PCT(12), 0);
lv_obj_set_size(obj, LV_PCT(80), LV_PCT(10));
lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
- lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE|LV_OBJ_FLAG_GESTURE_BUBBLE|LV_OBJ_FLAG_PRESS_LOCK|LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW|LV_OBJ_FLAG_SNAPPABLE);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
add_style_top_panel_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_TOP_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -2501,7 +2512,7 @@ void create_screen_main_screen() {
lv_obj_set_pos(obj, LV_PCT(12), 0);
lv_obj_set_size(obj, LV_PCT(80), LV_PCT(10));
lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
- lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE|LV_OBJ_FLAG_GESTURE_BUBBLE|LV_OBJ_FLAG_PRESS_LOCK|LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW|LV_OBJ_FLAG_SNAPPABLE);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
add_style_top_panel_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_TOP_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -3076,7 +3087,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 227);
+ create_user_widget_ok_cancel_widget(obj, 228);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -3090,7 +3101,7 @@ void create_screen_main_screen() {
lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN|LV_OBJ_FLAG_HIDDEN);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_AUTO);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_VER);
+ lv_obj_set_scroll_dir(obj, LV_DIR_VER);
add_style_settings_panel_style(obj);
lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_radius(obj, 12, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -3388,7 +3399,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 248);
+ create_user_widget_ok_cancel_widget(obj, 249);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -3433,7 +3444,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 254);
+ create_user_widget_ok_cancel_widget(obj, 255);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -3511,7 +3522,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 262);
+ create_user_widget_ok_cancel_widget(obj, 263);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -3557,7 +3568,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 268);
+ create_user_widget_ok_cancel_widget(obj, 269);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -3668,7 +3679,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 277);
+ create_user_widget_ok_cancel_widget(obj, 278);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -3732,7 +3743,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 284);
+ create_user_widget_ok_cancel_widget(obj, 285);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -3777,7 +3788,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 290);
+ create_user_widget_ok_cancel_widget(obj, 291);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -3842,7 +3853,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 297);
+ create_user_widget_ok_cancel_widget(obj, 298);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -3948,7 +3959,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 305);
+ create_user_widget_ok_cancel_widget(obj, 306);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
{
@@ -4033,7 +4044,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 313);
+ create_user_widget_ok_cancel_widget(obj, 314);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -4108,7 +4119,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 320);
+ create_user_widget_ok_cancel_widget(obj, 321);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -4153,7 +4164,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 326);
+ create_user_widget_ok_cancel_widget(obj, 327);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -4228,7 +4239,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 333);
+ create_user_widget_ok_cancel_widget(obj, 334);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -4258,7 +4269,7 @@ void create_screen_main_screen() {
objects.settings_backup_checkbox = obj;
lv_obj_set_pos(obj, 5, -1);
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
- lv_checkbox_set_text(obj, "Backup");
+ lv_checkbox_set_text(obj, _("Backup"));
lv_obj_set_style_bg_color(obj, lv_color_hex(0xff67ea94), LV_PART_INDICATOR | LV_STATE_CHECKED);
}
{
@@ -4267,7 +4278,7 @@ void create_screen_main_screen() {
objects.settings_restore_checkbox = obj;
lv_obj_set_pos(obj, 5, 25);
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
- lv_checkbox_set_text(obj, "Restore");
+ lv_checkbox_set_text(obj, _("Restore"));
lv_obj_set_style_bg_color(obj, lv_color_hex(0xff67ea94), LV_PART_INDICATOR | LV_STATE_CHECKED);
}
{
@@ -4293,7 +4304,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 341);
+ create_user_widget_ok_cancel_widget(obj, 342);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -4337,7 +4348,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 347);
+ create_user_widget_ok_cancel_widget(obj, 348);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -4482,7 +4493,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 360);
+ create_user_widget_ok_cancel_widget(obj, 361);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
{
@@ -4808,7 +4819,7 @@ void create_screen_main_screen() {
lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_HOR);
+ lv_obj_set_scroll_dir(obj, LV_DIR_HOR);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_RIGHT, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_top(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -5000,7 +5011,7 @@ void create_screen_main_screen() {
lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_HOR);
+ lv_obj_set_scroll_dir(obj, LV_DIR_HOR);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_RIGHT, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_top(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -5039,7 +5050,7 @@ void create_screen_main_screen() {
lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN|LV_OBJ_FLAG_HIDDEN);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_NONE);
+ lv_obj_set_scroll_dir(obj, LV_DIR_NONE);
add_style_panel_style(obj);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_left(obj, 8, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -5062,7 +5073,7 @@ void create_screen_main_screen() {
lv_obj_set_size(obj, 202, 202);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_NONE);
+ lv_obj_set_scroll_dir(obj, LV_DIR_NONE);
add_style_panel_style(obj);
lv_obj_set_style_bg_opa(obj, 200, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_align(obj, LV_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -5318,7 +5329,7 @@ void create_screen_main_screen() {
lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_NONE);
+ lv_obj_set_scroll_dir(obj, LV_DIR_NONE);
add_style_panel_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -5852,7 +5863,7 @@ void create_screen_main_screen() {
lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN|LV_OBJ_FLAG_HIDDEN);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_ACTIVE);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_VER);
+ lv_obj_set_scroll_dir(obj, LV_DIR_VER);
add_style_panel_style(obj);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_left(obj, 4, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -6011,7 +6022,7 @@ void create_screen_main_screen() {
lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN|LV_OBJ_FLAG_HIDDEN);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_NONE);
+ lv_obj_set_scroll_dir(obj, LV_DIR_NONE);
add_style_panel_style(obj);
lv_obj_set_style_pad_left(obj, 14, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_top(obj, 1, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -6027,7 +6038,7 @@ void create_screen_main_screen() {
lv_obj_set_size(obj, 240, 206);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_NONE);
+ lv_obj_set_scroll_dir(obj, LV_DIR_NONE);
add_style_settings_panel_style(obj);
lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_radius(obj, 12, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -6155,7 +6166,7 @@ void create_screen_main_screen() {
lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
- create_user_widget_ok_cancel_widget(obj, 466);
+ create_user_widget_ok_cancel_widget(obj, 467);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
@@ -6212,27 +6223,29 @@ void create_screen_main_screen() {
lv_obj_set_style_max_width(obj, 600, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
+
+ tick_screen_main_screen();
}
void tick_screen_main_screen() {
- tick_user_widget_ok_cancel_widget(227);
- tick_user_widget_ok_cancel_widget(248);
- tick_user_widget_ok_cancel_widget(254);
- tick_user_widget_ok_cancel_widget(262);
- tick_user_widget_ok_cancel_widget(268);
- tick_user_widget_ok_cancel_widget(277);
- tick_user_widget_ok_cancel_widget(284);
- tick_user_widget_ok_cancel_widget(290);
- tick_user_widget_ok_cancel_widget(297);
- tick_user_widget_ok_cancel_widget(305);
- tick_user_widget_ok_cancel_widget(313);
- tick_user_widget_ok_cancel_widget(320);
- tick_user_widget_ok_cancel_widget(326);
- tick_user_widget_ok_cancel_widget(333);
- tick_user_widget_ok_cancel_widget(341);
- tick_user_widget_ok_cancel_widget(347);
- tick_user_widget_ok_cancel_widget(360);
- tick_user_widget_ok_cancel_widget(466);
+ tick_user_widget_ok_cancel_widget(228);
+ tick_user_widget_ok_cancel_widget(249);
+ tick_user_widget_ok_cancel_widget(255);
+ tick_user_widget_ok_cancel_widget(263);
+ tick_user_widget_ok_cancel_widget(269);
+ tick_user_widget_ok_cancel_widget(278);
+ tick_user_widget_ok_cancel_widget(285);
+ tick_user_widget_ok_cancel_widget(291);
+ tick_user_widget_ok_cancel_widget(298);
+ tick_user_widget_ok_cancel_widget(306);
+ tick_user_widget_ok_cancel_widget(314);
+ tick_user_widget_ok_cancel_widget(321);
+ tick_user_widget_ok_cancel_widget(327);
+ tick_user_widget_ok_cancel_widget(334);
+ tick_user_widget_ok_cancel_widget(342);
+ tick_user_widget_ok_cancel_widget(348);
+ tick_user_widget_ok_cancel_widget(361);
+ tick_user_widget_ok_cancel_widget(467);
}
void create_screen_blank_screen() {
@@ -6258,6 +6271,8 @@ void create_screen_blank_screen() {
lv_obj_set_style_radius(obj, 0, LV_PART_MAIN | LV_STATE_PRESSED);
}
}
+
+ tick_screen_blank_screen();
}
void tick_screen_blank_screen() {
@@ -6335,6 +6350,8 @@ void create_screen_lock_screen() {
lv_obj_set_style_text_color(obj, lv_color_hex(0xffe0e0e0), LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
+
+ tick_screen_lock_screen();
}
void tick_screen_lock_screen() {
@@ -6347,6 +6364,8 @@ void create_screen_calibration_screen() {
lv_obj_set_size(obj, 320, 240);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_set_style_bg_color(obj, lv_color_hex(0xff67ea94), LV_PART_MAIN | LV_STATE_DEFAULT);
+
+ tick_screen_calibration_screen();
}
void tick_screen_calibration_screen() {
@@ -6365,7 +6384,7 @@ void create_user_widget_ok_cancel_widget(lv_obj_t *parent_obj, int startWidgetIn
lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ONE);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_WITH_ARROW);
lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF);
- lv_obj_set_scroll_snap_x(obj, LV_DIR_NONE);
+ lv_obj_set_scroll_dir(obj, LV_DIR_NONE);
add_style_panel_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_BOTTOM_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
@@ -6430,6 +6449,22 @@ void tick_user_widget_ok_cancel_widget(int startWidgetIndex) {
}
+
+typedef void (*tick_screen_func_t)();
+tick_screen_func_t tick_screen_funcs[] = {
+ tick_screen_boot_screen,
+ tick_screen_main_screen,
+ tick_screen_blank_screen,
+ tick_screen_lock_screen,
+ tick_screen_calibration_screen,
+};
+void tick_screen(int screen_index) {
+ tick_screen_funcs[screen_index]();
+}
+void tick_screen_by_id(enum ScreensEnum screenId) {
+ tick_screen_funcs[screenId - 1]();
+}
+
void create_screens() {
lv_disp_t *dispp = lv_disp_get_default();
lv_theme_t *theme = lv_theme_default_init(dispp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), false, LV_FONT_DEFAULT);
@@ -6441,18 +6476,3 @@ void create_screens() {
create_screen_lock_screen();
create_screen_calibration_screen();
}
-
-typedef void (*tick_screen_func_t)();
-
-tick_screen_func_t tick_screen_funcs[] = {
- tick_screen_boot_screen,
- tick_screen_main_screen,
- tick_screen_blank_screen,
- tick_screen_lock_screen,
- tick_screen_calibration_screen,
- 0,
-};
-
-void tick_screen(int screen_index) {
- tick_screen_funcs[screen_index]();
-}
diff --git a/generated/ui_320x240/screens.h b/generated/ui_320x240/screens.h
index b6a5def..833f648 100644
--- a/generated/ui_320x240/screens.h
+++ b/generated/ui_320x240/screens.h
@@ -75,6 +75,7 @@ typedef struct _objects_t {
lv_obj_t *boot_logo_button;
lv_obj_t *meshtastic_url;
lv_obj_t *firmware_label;
+ lv_obj_t *boot_logo;
lv_obj_t *bluetooth_button;
lv_obj_t *reboot_panel;
lv_obj_t *cancel_reboot_button;
@@ -551,7 +552,6 @@ enum ScreensEnum {
SCREEN_ID_BLANK_SCREEN = 3,
SCREEN_ID_LOCK_SCREEN = 4,
SCREEN_ID_CALIBRATION_SCREEN = 5,
- SCREEN_ID_OK_CANCEL_WIDGET = 6,
};
void create_screen_boot_screen();
@@ -572,8 +572,10 @@ void tick_screen_calibration_screen();
void create_user_widget_ok_cancel_widget(lv_obj_t *parent_obj, int startWidgetIndex);
void tick_user_widget_ok_cancel_widget(int startWidgetIndex);
-void create_screens();
+void tick_screen_by_id(enum ScreensEnum screenId);
void tick_screen(int screen_index);
+
+void create_screens();
#ifdef __cplusplus
diff --git a/include/util/FileLoader.h b/include/util/FileLoader.h
new file mode 100644
index 0000000..e83afd5
--- /dev/null
+++ b/include/util/FileLoader.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#include "FS.h"
+#include "lvgl.h"
+
+#define FL_DRIVE_LETTER "L:"
+
+class FileLoader
+{
+ public:
+ FileLoader(){};
+ static void init(fs::FS *fs);
+ static bool loadImage(lv_obj_t *img, const char *path);
+ static bool loadBootImage(lv_obj_t *img);
+
+ private:
+ static void *fs_open(lv_fs_drv_t *drv, const char *path, lv_fs_mode_t mode);
+ static lv_fs_res_t fs_close(lv_fs_drv_t *drv, void *file_p);
+ static lv_fs_res_t fs_read(lv_fs_drv_t *drv, void *file_p, void *buf, uint32_t btr, uint32_t *br);
+ static lv_fs_res_t fs_write(lv_fs_drv_t *drv, void *file_p, const void *buf, uint32_t btw, uint32_t *bw);
+ static lv_fs_res_t fs_seek(lv_fs_drv_t *drv, void *file_p, uint32_t pos, lv_fs_whence_t whence);
+ static lv_fs_res_t fs_size(lv_fs_drv_t *drv, void *file_p, uint32_t *size_p);
+ static lv_fs_res_t fs_tell(lv_fs_drv_t *drv, void *file_p, uint32_t *pos_p);
+
+ typedef struct FileHandle {
+ File file;
+ } FileHandle;
+
+ static fs::FS *_fs;
+};
diff --git a/source/graphics/TFT/TFTView_320x240.cpp b/source/graphics/TFT/TFTView_320x240.cpp
index 8c55878..0740eba 100644
--- a/source/graphics/TFT/TFTView_320x240.cpp
+++ b/source/graphics/TFT/TFTView_320x240.cpp
@@ -16,6 +16,7 @@
#include "lvgl_private.h"
#include "styles.h"
#include "ui.h"
+#include "util/FileLoader.h"
#include "util/ILog.h"
#include
#include
@@ -28,7 +29,15 @@
#include
#include
-#ifdef ARCH_PORTDUINO
+#if defined(ARCH_PORTDUINO)
+#include "PortduinoFS.h"
+fs::FS &fileSystem = PortduinoFS;
+#else
+#include "LittleFS.h"
+fs::FS &fileSystem = LittleFS;
+#endif
+
+#if defined(ARCH_PORTDUINO)
#include "util/LinuxHelper.h"
// #include "graphics/map/LinuxFileSystemService.h"
#include "graphics/map/SDCardService.h"
@@ -159,6 +168,8 @@ void TFTView_320x240::init(IClientBase *client)
MeshtasticView::init(client);
ui_init_boot();
+ FileLoader::init(&fileSystem);
+ FileLoader::loadBootImage(objects.boot_logo);
lv_label_set_text(objects.firmware_label, firmware_version);
time(&lastrun60);
diff --git a/source/util/FileLoader.cpp b/source/util/FileLoader.cpp
new file mode 100644
index 0000000..9e2f771
--- /dev/null
+++ b/source/util/FileLoader.cpp
@@ -0,0 +1,106 @@
+#include "util/FileLoader.h"
+#include "lvgl_private.h"
+#include "util/ILog.h"
+
+fs::FS *FileLoader::_fs = nullptr;
+
+void FileLoader::init(fs::FS *fs)
+{
+ _fs = fs;
+ static lv_fs_drv_t drv;
+ lv_fs_drv_init(&drv);
+
+ drv.letter = FL_DRIVE_LETTER[0];
+ drv.cache_size = 32768;
+ drv.ready_cb = nullptr;
+ drv.open_cb = fs_open;
+ drv.close_cb = fs_close;
+ drv.read_cb = fs_read;
+ drv.write_cb = fs_write;
+ drv.seek_cb = fs_seek;
+ drv.tell_cb = fs_tell;
+ drv.dir_open_cb = nullptr;
+ drv.dir_read_cb = nullptr;
+ drv.dir_close_cb = nullptr;
+ lv_fs_drv_register(&drv);
+}
+
+void *FileLoader::fs_open(lv_fs_drv_t *drv, const char *path, lv_fs_mode_t mode)
+{
+ File file = _fs->open(path, mode == LV_FS_MODE_RD ? FILE_READ : FILE_WRITE);
+ if (!file) {
+ return nullptr;
+ } else {
+ FileHandle *lf = new FileHandle{file};
+ return static_cast(lf);
+ }
+}
+
+lv_fs_res_t FileLoader::fs_close(lv_fs_drv_t *drv, void *file_p)
+{
+ if (file_p == nullptr) {
+ return LV_FS_RES_INV_PARAM;
+ }
+ FileHandle *lf = static_cast(file_p);
+ if (lf->file) {
+ lf->file.close();
+ delete lf;
+ }
+ return LV_FS_RES_OK;
+}
+
+lv_fs_res_t FileLoader::fs_read(lv_fs_drv_t *drv, void *file_p, void *buf, uint32_t btr, uint32_t *br)
+{
+ if (file_p == nullptr) {
+ return LV_FS_RES_INV_PARAM;
+ }
+ *br = static_cast(file_p)->file.read((uint8_t *)buf, btr);
+ return (*br <= 0) ? LV_FS_RES_UNKNOWN : LV_FS_RES_OK;
+}
+
+lv_fs_res_t FileLoader::fs_write(lv_fs_drv_t *drv, void *file_p, const void *buf, uint32_t btw, uint32_t *bw)
+{
+ if (file_p == nullptr) {
+ return LV_FS_RES_INV_PARAM;
+ }
+ *bw = static_cast(file_p)->file.write((uint8_t *)buf, btw);
+ return (*bw <= 0) ? LV_FS_RES_UNKNOWN : LV_FS_RES_OK;
+}
+
+lv_fs_res_t FileLoader::fs_seek(lv_fs_drv_t *drv, void *file_p, uint32_t pos, lv_fs_whence_t whence)
+{
+ if (file_p == nullptr) {
+ return LV_FS_RES_INV_PARAM;
+ }
+ return static_cast(file_p)->file.seek(pos, (SeekMode)whence) ? LV_FS_RES_OK : LV_FS_RES_UNKNOWN;
+}
+
+lv_fs_res_t FileLoader::fs_size(lv_fs_drv_t *drv, void *file_p, uint32_t *size_p)
+{
+ if (file_p == nullptr) {
+ return LV_FS_RES_INV_PARAM;
+ }
+ *size_p = static_cast(file_p)->file.size();
+ return LV_FS_RES_OK;
+}
+
+lv_fs_res_t FileLoader::fs_tell(lv_fs_drv_t *drv, void *file_p, uint32_t *pos_p)
+{
+ if (file_p == nullptr) {
+ return LV_FS_RES_INV_PARAM;
+ }
+ *pos_p = static_cast(file_p)->file.position();
+ return (int32_t)(*pos_p) < 0 ? LV_FS_RES_UNKNOWN : LV_FS_RES_OK;
+}
+
+bool FileLoader::loadImage(lv_obj_t *img, const char *path)
+{
+ lv_image_set_src(img, path);
+ return lv_image_get_src((lv_obj_t *)img) != nullptr;
+}
+
+bool FileLoader::loadBootImage(lv_obj_t *img)
+{
+ lv_image_set_src(img, FL_DRIVE_LETTER "/boot/logo.png");
+ return lv_image_get_src((lv_obj_t *)img) != nullptr;
+}
diff --git a/studio/320x240/TFT320x240.eez-project b/studio/320x240/TFT320x240.eez-project
index 32ec0ee..8044b4f 100644
--- a/studio/320x240/TFT320x240.eez-project
+++ b/studio/320x240/TFT320x240.eez-project
@@ -116,6 +116,709 @@
}
],
"userPages": [
+ {
+ "objID": "3cc480fa-19db-4465-a060-8b648dd7e6e2",
+ "components": [
+ {
+ "objID": "f90b60d0-0665-1f2d-d7bb-8672ca4b6e2e",
+ "type": "LVGLScreenWidget",
+ "left": 0,
+ "top": 0,
+ "width": 320,
+ "height": 240,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "fb6a8ebf-ffb2-c572-e37b-06078605c72c",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "timeline": [],
+ "eventHandlers": [],
+ "leftUnit": "px",
+ "topUnit": "px",
+ "widthUnit": "px",
+ "heightUnit": "px",
+ "children": [
+ {
+ "objID": "0c995f56-29c7-4e0a-d405-ad351a9942d9",
+ "type": "LVGLArcWidget",
+ "left": 1,
+ "top": -8,
+ "width": 140,
+ "height": 140,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "8e670374-907b-4f45-e03e-95841a5e632c",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "hiddenInEditor": false,
+ "timeline": [],
+ "eventHandlers": [],
+ "identifier": "bootLogoArc",
+ "leftUnit": "px",
+ "topUnit": "%",
+ "widthUnit": "px",
+ "heightUnit": "px",
+ "children": [],
+ "widgetFlags": "",
+ "hiddenFlag": true,
+ "hiddenFlagType": "literal",
+ "clickableFlag": true,
+ "clickableFlagType": "literal",
+ "flagScrollbarMode": "",
+ "flagScrollDirection": "",
+ "scrollSnapX": "",
+ "scrollSnapY": "",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "6aaaed9e-e19f-4da2-9a5e-147b76aa9bb8",
+ "definition": {
+ "INDICATOR": {
+ "DEFAULT": {
+ "arc_color": "#000000",
+ "arc_width": 8
+ }
+ },
+ "MAIN": {
+ "DEFAULT": {
+ "arc_color": "#67EA94",
+ "arc_width": 8,
+ "align": "CENTER"
+ }
+ },
+ "KNOB": {
+ "DEFAULT": {
+ "bg_opa": 0
+ }
+ }
+ }
+ },
+ "group": "",
+ "groupIndex": 0,
+ "rangeMin": 0,
+ "rangeMinType": "literal",
+ "rangeMax": 360,
+ "rangeMaxType": "literal",
+ "value": 360,
+ "valueType": "literal",
+ "bgStartAngle": 0,
+ "bgEndAngle": 0,
+ "mode": "NORMAL",
+ "rotation": 0
+ },
+ {
+ "objID": "ae9500a6-9493-4bd8-fe5e-443bcfdd7cc4",
+ "type": "LVGLButtonWidget",
+ "left": 0,
+ "top": -10,
+ "width": 100,
+ "height": 50,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "a2f83895-943b-443f-e949-46b6c3b80e5c",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "hiddenInEditor": false,
+ "timeline": [],
+ "eventHandlers": [],
+ "identifier": "bootLogoButton",
+ "leftUnit": "px",
+ "topUnit": "%",
+ "widthUnit": "px",
+ "heightUnit": "px",
+ "children": [],
+ "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE",
+ "hiddenFlagType": "literal",
+ "clickableFlag": true,
+ "clickableFlagType": "literal",
+ "flagScrollbarMode": "",
+ "flagScrollDirection": "",
+ "scrollSnapX": "",
+ "scrollSnapY": "",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "ae47e8e1-9236-42ca-8458-e873a2d5bc68",
+ "definition": {
+ "MAIN": {
+ "DEFAULT": {
+ "align": "CENTER",
+ "max_width": 210,
+ "max_height": 120,
+ "shadow_width": 0,
+ "bg_opa": 0
+ }
+ }
+ }
+ },
+ "group": "",
+ "groupIndex": 0
+ },
+ {
+ "objID": "fdb8c13a-ee32-4840-92ce-77569803ee6a",
+ "type": "LVGLLabelWidget",
+ "left": 0,
+ "top": -15,
+ "width": 213,
+ "height": 26,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "b05d105d-10b8-4b56-df9a-e72c35c9bca4",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "timeline": [],
+ "eventHandlers": [],
+ "identifier": "MeshtasticUrl",
+ "leftUnit": "px",
+ "topUnit": "%",
+ "widthUnit": "content",
+ "heightUnit": "content",
+ "children": [],
+ "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
+ "hiddenFlagType": "literal",
+ "clickableFlagType": "literal",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "361f13db-4093-4fb2-ddef-675b661cc144",
+ "definition": {
+ "MAIN": {
+ "DEFAULT": {
+ "align": "BOTTOM_MID",
+ "text_font": "montserrat_20"
+ }
+ }
+ }
+ },
+ "groupIndex": 0,
+ "text": "www.meshtastic.org",
+ "textType": "literal",
+ "longMode": "WRAP",
+ "recolor": false
+ },
+ {
+ "objID": "7d5fe9ac-02c0-4118-8efd-f0cf42aa3260",
+ "type": "LVGLLabelWidget",
+ "left": 0,
+ "top": -15,
+ "width": 0,
+ "height": 19,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "b1de63a5-ab3c-4540-e6cc-385f4d3cbe0d",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "timeline": [],
+ "eventHandlers": [],
+ "identifier": "FirmwareLabel",
+ "leftUnit": "px",
+ "topUnit": "px",
+ "widthUnit": "content",
+ "heightUnit": "content",
+ "children": [],
+ "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
+ "hiddenFlagType": "literal",
+ "clickableFlagType": "literal",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "0c98aadc-0b69-4275-ac79-1dbf59f3a150",
+ "definition": {
+ "MAIN": {
+ "DEFAULT": {
+ "align": "BOTTOM_MID"
+ }
+ }
+ }
+ },
+ "groupIndex": 0,
+ "text": "",
+ "textType": "literal",
+ "longMode": "WRAP",
+ "recolor": false
+ },
+ {
+ "objID": "fbf231f4-2f31-443e-f3f7-9c0ebc3b80cc",
+ "type": "LVGLImageWidget",
+ "left": 0,
+ "top": -24,
+ "width": 99,
+ "height": 52,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "7499af2d-bb26-4fc5-ce1a-27b3e2b65e42",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "timeline": [],
+ "eventHandlers": [],
+ "identifier": "bootLogo",
+ "leftUnit": "px",
+ "topUnit": "px",
+ "widthUnit": "content",
+ "heightUnit": "content",
+ "children": [],
+ "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
+ "hiddenFlagType": "literal",
+ "clickableFlagType": "literal",
+ "flagScrollbarMode": "",
+ "flagScrollDirection": "",
+ "scrollSnapX": "",
+ "scrollSnapY": "",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "d91af209-e841-47e2-f813-97d259d6ad7c",
+ "definition": {
+ "MAIN": {
+ "DEFAULT": {
+ "align": "CENTER"
+ }
+ }
+ }
+ },
+ "group": "",
+ "groupIndex": 0,
+ "image": "meshtastic_boot_logo_image",
+ "setPivot": false,
+ "pivotX": 0,
+ "pivotY": 0,
+ "zoom": 256,
+ "angle": 0,
+ "innerAlign": "CENTER"
+ },
+ {
+ "objID": "ccd9162a-e384-4ebf-9127-496e13fa3aaf",
+ "type": "LVGLButtonWidget",
+ "left": 0,
+ "top": -10,
+ "width": 80,
+ "height": 80,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "8a4c93fc-f9fe-4d6a-bc76-b522ecf2b4b5",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "timeline": [],
+ "eventHandlers": [],
+ "identifier": "bluetoothButton",
+ "leftUnit": "px",
+ "topUnit": "%",
+ "widthUnit": "px",
+ "heightUnit": "px",
+ "children": [],
+ "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE",
+ "hiddenFlag": true,
+ "hiddenFlagType": "literal",
+ "clickableFlag": true,
+ "clickableFlagType": "literal",
+ "flagScrollbarMode": "",
+ "flagScrollDirection": "",
+ "scrollSnapX": "",
+ "scrollSnapY": "",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "c2be567d-cb41-4eaf-bccf-d4299f574acc",
+ "definition": {
+ "MAIN": {
+ "DEFAULT": {
+ "align": "CENTER",
+ "bg_img_src": "bluetooth_on_image",
+ "shadow_width": 0,
+ "bg_opa": 0,
+ "bg_img_recolor_opa": 255,
+ "bg_img_recolor": "#172ef8"
+ }
+ }
+ }
+ },
+ "group": "",
+ "groupIndex": 0
+ },
+ {
+ "objID": "67614f32-6ae3-428c-906a-ca80e810e6c6",
+ "type": "LVGLPanelWidget",
+ "left": 0,
+ "top": 0,
+ "width": 100,
+ "height": 100,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "be20787a-7a0b-4ed5-c132-24be8baa51d1",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "hiddenInEditor": false,
+ "timeline": [],
+ "eventHandlers": [],
+ "identifier": "RebootPanel",
+ "leftUnit": "%",
+ "topUnit": "%",
+ "widthUnit": "%",
+ "heightUnit": "%",
+ "children": [
+ {
+ "objID": "57afcacb-beb8-4b44-f46f-9f057e865800",
+ "type": "LVGLButtonWidget",
+ "left": 0,
+ "top": 0,
+ "width": 100,
+ "height": 100,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "4aa6c41e-f4f5-4c70-fdae-ce35719d0c46",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "hiddenInEditor": false,
+ "timeline": [],
+ "eventHandlers": [],
+ "identifier": "CancelRebootButton",
+ "leftUnit": "px",
+ "topUnit": "px",
+ "widthUnit": "%",
+ "heightUnit": "%",
+ "children": [],
+ "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE",
+ "hiddenFlagType": "literal",
+ "clickableFlag": true,
+ "clickableFlagType": "literal",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "698ce875-a086-4a42-be4f-081095112c24",
+ "definition": {
+ "MAIN": {
+ "DEFAULT": {
+ "bg_color": "#67EA94",
+ "shadow_width": 0,
+ "shadow_ofs_y": 0,
+ "align": "CENTER",
+ "radius": 0
+ },
+ "PRESSED": {
+ "bg_color": "#000000"
+ }
+ }
+ }
+ },
+ "groupIndex": 0
+ },
+ {
+ "objID": "1eb78964-e019-489a-d2c9-827201580c85",
+ "type": "LVGLButtonWidget",
+ "left": 18,
+ "top": -10,
+ "width": 55,
+ "height": 55,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "ef3fb65c-148d-4fb4-b3f5-7cf8dcb2e299",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "hiddenInEditor": false,
+ "timeline": [],
+ "eventHandlers": [],
+ "identifier": "RebootButton",
+ "leftUnit": "%",
+ "topUnit": "%",
+ "widthUnit": "px",
+ "heightUnit": "px",
+ "children": [],
+ "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE",
+ "hiddenFlagType": "literal",
+ "clickableFlag": true,
+ "clickableFlagType": "literal",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "994fddb3-c909-4ce9-bd08-fbc1bbedcae2",
+ "definition": {
+ "MAIN": {
+ "CHECKED": {
+ "bg_color": "#229c00"
+ },
+ "DEFAULT": {
+ "bg_img_src": "reboot_image",
+ "bg_color": "#e0e0e0",
+ "radius": 12,
+ "align": "LEFT_MID",
+ "shadow_width": 3,
+ "shadow_ofs_x": 1,
+ "shadow_ofs_y": 3,
+ "shadow_color": "#606060"
+ }
+ }
+ }
+ },
+ "groupIndex": 0
+ },
+ {
+ "objID": "f9e5310c-8dd4-4046-fa39-b9c0171cf973",
+ "type": "LVGLButtonWidget",
+ "left": 0,
+ "top": -10,
+ "width": 55,
+ "height": 55,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "ec707b23-08c6-4da3-d6c2-eea535f4a710",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "hiddenInEditor": false,
+ "timeline": [],
+ "eventHandlers": [],
+ "identifier": "progmodeButton",
+ "leftUnit": "%",
+ "topUnit": "%",
+ "widthUnit": "px",
+ "heightUnit": "px",
+ "children": [],
+ "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE",
+ "hiddenFlagType": "literal",
+ "clickableFlag": true,
+ "clickableFlagType": "literal",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "e6cc7081-85ea-4922-b951-745e618460b8",
+ "definition": {
+ "MAIN": {
+ "CHECKED": {
+ "bg_color": "#229c00"
+ },
+ "DEFAULT": {
+ "bg_img_src": "reboot_BT_on_image",
+ "bg_color": "#e0e0e0",
+ "radius": 12,
+ "align": "CENTER",
+ "shadow_width": 3,
+ "shadow_ofs_x": 1,
+ "shadow_ofs_y": 3,
+ "shadow_color": "#606060",
+ "bg_img_recolor": "#2d2ff5",
+ "bg_img_recolor_opa": 255
+ }
+ }
+ }
+ },
+ "groupIndex": 0
+ },
+ {
+ "objID": "186dae5a-17ed-45f2-bb92-32fdd255c74c",
+ "type": "LVGLButtonWidget",
+ "left": -18,
+ "top": -10,
+ "width": 55,
+ "height": 55,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "f6900311-7ba0-4ee2-fa5b-5439c5de001a",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "hiddenInEditor": false,
+ "timeline": [],
+ "eventHandlers": [],
+ "identifier": "ShutdownButton",
+ "leftUnit": "%",
+ "topUnit": "%",
+ "widthUnit": "px",
+ "heightUnit": "px",
+ "children": [],
+ "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE",
+ "hiddenFlagType": "literal",
+ "clickableFlag": true,
+ "clickableFlagType": "literal",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "abfb9ebc-5f5b-45be-cdfb-f4482dadcd73",
+ "definition": {
+ "MAIN": {
+ "CHECKED": {
+ "align": "LEFT_MID"
+ },
+ "DEFAULT": {
+ "bg_img_src": "shutdown_image",
+ "bg_color": "#e0e0e0",
+ "shadow_width": 3,
+ "shadow_ofs_y": 3,
+ "radius": 12,
+ "align": "RIGHT_MID",
+ "shadow_ofs_x": 1,
+ "shadow_color": "#606060"
+ }
+ }
+ }
+ },
+ "groupIndex": 0
+ },
+ {
+ "objID": "dad949a0-3e96-445c-e9b6-8adc3635c92d",
+ "type": "LVGLLabelWidget",
+ "left": 0,
+ "top": -25,
+ "width": 218,
+ "height": 26,
+ "customInputs": [],
+ "customOutputs": [],
+ "style": {
+ "objID": "232ef011-e268-43fe-d2cb-60c126faf10f",
+ "useStyle": "default",
+ "conditionalStyles": [],
+ "childStyles": []
+ },
+ "hiddenInEditor": false,
+ "timeline": [],
+ "eventHandlers": [],
+ "identifier": "",
+ "leftUnit": "px",
+ "topUnit": "%",
+ "widthUnit": "content",
+ "heightUnit": "content",
+ "children": [],
+ "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
+ "hiddenFlagType": "literal",
+ "clickableFlagType": "literal",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "81603f9f-1dee-48e5-c121-15e600dc3eb6",
+ "definition": {
+ "MAIN": {
+ "DEFAULT": {
+ "align": "BOTTOM_MID",
+ "text_font": "montserrat_20",
+ "text_color": "#000000"
+ }
+ }
+ }
+ },
+ "groupIndex": 0,
+ "text": " www.meshtastic.org",
+ "textType": "literal",
+ "longMode": "WRAP",
+ "recolor": false
+ }
+ ],
+ "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
+ "hiddenFlag": true,
+ "hiddenFlagType": "literal",
+ "clickableFlag": true,
+ "clickableFlagType": "literal",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "6017d46b-563c-4b03-840a-f452b65adfd2",
+ "definition": {
+ "MAIN": {
+ "DEFAULT": {
+ "bg_color": "#000000",
+ "border_width": 0,
+ "radius": 12,
+ "align": "TOP_MID",
+ "bg_opa": 255,
+ "text_color": "#ffffff",
+ "layout": "NONE",
+ "pad_top": 0,
+ "pad_bottom": 0,
+ "pad_left": 0,
+ "pad_right": 0
+ },
+ "PRESSED": {
+ "bg_color": "#000000",
+ "pad_top": 0,
+ "pad_bottom": 0,
+ "pad_left": 0,
+ "pad_right": 0,
+ "pad_row": 0,
+ "pad_column": 0
+ }
+ }
+ }
+ },
+ "groupIndex": 0
+ }
+ ],
+ "widgetFlags": "PRESS_LOCK|CLICK_FOCUSABLE|GESTURE_BUBBLE|SNAPPABLE|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER",
+ "hiddenFlagType": "literal",
+ "clickableFlag": true,
+ "clickableFlagType": "literal",
+ "checkedStateType": "literal",
+ "disabledStateType": "literal",
+ "states": "",
+ "localStyles": {
+ "objID": "8eb86917-c831-b762-5685-8d01972e8a22",
+ "definition": {
+ "MAIN": {
+ "DEFAULT": {
+ "text_font": "montserrat_14",
+ "bg_color": "#67ea94"
+ }
+ }
+ }
+ },
+ "groupIndex": 0
+ }
+ ],
+ "connectionLines": [],
+ "localVariables": [],
+ "userProperties": [],
+ "name": "BootScreen",
+ "left": 0,
+ "top": 0,
+ "width": 320,
+ "height": 240,
+ "isUsedAsUserWidget": false,
+ "createAtStart": true,
+ "deleteOnScreenUnload": false
+ },
{
"objID": "4b40eba7-b31a-468a-b887-11dfd0b6637f",
"components": [
@@ -7686,13 +8389,12 @@
"recolor": false
}
],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
+ "widgetFlags": "",
"hiddenFlag": false,
"hiddenFlagType": "literal",
"clickableFlag": true,
"clickableFlagType": "literal",
"flagScrollbarMode": "off",
- "flagScrollDirection": "none",
"checkedStateType": "literal",
"disabledStateType": "literal",
"states": "",
@@ -7831,7 +8533,7 @@
"innerAlign": "CENTER"
}
],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
+ "widgetFlags": "",
"hiddenFlag": true,
"hiddenFlagType": "literal",
"clickableFlag": true,
@@ -7975,7 +8677,7 @@
"innerAlign": "CENTER"
}
],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
+ "widgetFlags": "",
"hiddenFlag": true,
"hiddenFlagType": "literal",
"clickableFlag": true,
@@ -8119,7 +8821,7 @@
"innerAlign": "CENTER"
}
],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
+ "widgetFlags": "",
"hiddenFlag": true,
"hiddenFlagType": "literal",
"clickableFlag": true,
@@ -8156,7 +8858,7 @@
"conditionalStyles": [],
"childStyles": []
},
- "hiddenInEditor": false,
+ "hiddenInEditor": true,
"timeline": [],
"eventHandlers": [],
"identifier": "TopSettingsPanel",
@@ -8180,7 +8882,7 @@
"conditionalStyles": [],
"childStyles": []
},
- "hiddenInEditor": false,
+ "hiddenInEditor": true,
"timeline": [],
"eventHandlers": [],
"identifier": "TopBasicSettingsLabel",
@@ -8226,7 +8928,7 @@
"conditionalStyles": [],
"childStyles": []
},
- "hiddenInEditor": false,
+ "hiddenInEditor": true,
"timeline": [],
"eventHandlers": [],
"identifier": "TopBasicSettingsImage",
@@ -8262,7 +8964,7 @@
"innerAlign": "CENTER"
}
],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
+ "widgetFlags": "CLICK_FOCUSABLE",
"hiddenFlag": true,
"hiddenFlagType": "literal",
"clickableFlag": true,
@@ -8405,7 +9107,7 @@
"innerAlign": "CENTER"
}
],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
+ "widgetFlags": "",
"hiddenFlag": true,
"hiddenFlagType": "literal",
"clickableFlag": true,
@@ -8548,7 +9250,7 @@
"innerAlign": "CENTER"
}
],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
+ "widgetFlags": "",
"hiddenFlag": true,
"hiddenFlagType": "literal",
"clickableFlag": true,
@@ -14434,7 +15136,7 @@
}
},
"groupIndex": 0,
- "options": "English\nDeutsch\nΕλληνικά\nEspañol\nFrançais\nItaliano\nNederlands\nNorsk\nPolski\nPortuguês\nРусский\nSlovenščina\nSrpski\nSuomalainen\nSvenska\nTürkçe",
+ "options": "English\nDeutsch\nΕλληνικά\nEspañol\nFrançais\nItaliano\nNederlands\nNorsk\nPolski\nPortuguês\nРусский\nSlovenščina\nSrpski\nSuomalainen\nSvenska\nTürkçe\nУкраїнська",
"optionsType": "literal",
"selected": 0,
"selectedType": "literal",
@@ -21515,657 +22217,6 @@
"createAtStart": true,
"deleteOnScreenUnload": false
},
- {
- "objID": "3cc480fa-19db-4465-a060-8b648dd7e6e2",
- "components": [
- {
- "objID": "f90b60d0-0665-1f2d-d7bb-8672ca4b6e2e",
- "type": "LVGLScreenWidget",
- "left": 0,
- "top": 0,
- "width": 320,
- "height": 240,
- "customInputs": [],
- "customOutputs": [],
- "style": {
- "objID": "fb6a8ebf-ffb2-c572-e37b-06078605c72c",
- "useStyle": "default",
- "conditionalStyles": [],
- "childStyles": []
- },
- "timeline": [],
- "eventHandlers": [],
- "leftUnit": "px",
- "topUnit": "px",
- "widthUnit": "px",
- "heightUnit": "px",
- "children": [
- {
- "objID": "0c995f56-29c7-4e0a-d405-ad351a9942d9",
- "type": "LVGLArcWidget",
- "left": 1,
- "top": -8,
- "width": 140,
- "height": 140,
- "customInputs": [],
- "customOutputs": [],
- "style": {
- "objID": "8e670374-907b-4f45-e03e-95841a5e632c",
- "useStyle": "default",
- "conditionalStyles": [],
- "childStyles": []
- },
- "timeline": [],
- "eventHandlers": [],
- "identifier": "bootLogoArc",
- "leftUnit": "px",
- "topUnit": "%",
- "widthUnit": "px",
- "heightUnit": "px",
- "children": [],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
- "hiddenFlag": false,
- "hiddenFlagType": "literal",
- "clickableFlag": true,
- "clickableFlagType": "literal",
- "flagScrollbarMode": "",
- "flagScrollDirection": "",
- "scrollSnapX": "",
- "scrollSnapY": "",
- "checkedStateType": "literal",
- "disabledStateType": "literal",
- "states": "",
- "localStyles": {
- "objID": "6aaaed9e-e19f-4da2-9a5e-147b76aa9bb8",
- "definition": {
- "INDICATOR": {
- "DEFAULT": {
- "arc_color": "#000000",
- "arc_width": 8
- }
- },
- "MAIN": {
- "DEFAULT": {
- "arc_color": "#67EA94",
- "arc_width": 8,
- "align": "CENTER"
- }
- },
- "KNOB": {
- "DEFAULT": {
- "bg_opa": 0
- }
- }
- }
- },
- "group": "",
- "groupIndex": 0,
- "rangeMin": 0,
- "rangeMinType": "literal",
- "rangeMax": 360,
- "rangeMaxType": "literal",
- "value": 360,
- "valueType": "literal",
- "bgStartAngle": 0,
- "bgEndAngle": 0,
- "mode": "NORMAL",
- "rotation": 0
- },
- {
- "objID": "ae9500a6-9493-4bd8-fe5e-443bcfdd7cc4",
- "type": "LVGLButtonWidget",
- "left": 0,
- "top": -10,
- "width": 100,
- "height": 50,
- "customInputs": [],
- "customOutputs": [],
- "style": {
- "objID": "a2f83895-943b-443f-e949-46b6c3b80e5c",
- "useStyle": "default",
- "conditionalStyles": [],
- "childStyles": []
- },
- "hiddenInEditor": false,
- "timeline": [],
- "eventHandlers": [],
- "identifier": "bootLogoButton",
- "leftUnit": "px",
- "topUnit": "%",
- "widthUnit": "px",
- "heightUnit": "px",
- "children": [],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE",
- "hiddenFlagType": "literal",
- "clickableFlag": true,
- "clickableFlagType": "literal",
- "flagScrollbarMode": "",
- "flagScrollDirection": "",
- "scrollSnapX": "",
- "scrollSnapY": "",
- "checkedStateType": "literal",
- "disabledStateType": "literal",
- "states": "",
- "localStyles": {
- "objID": "ae47e8e1-9236-42ca-8458-e873a2d5bc68",
- "definition": {
- "MAIN": {
- "DEFAULT": {
- "align": "CENTER",
- "bg_img_src": "meshtastic_boot_logo_image",
- "max_width": 210,
- "max_height": 120,
- "shadow_width": 0,
- "bg_opa": 0,
- "bg_img_recolor_opa": 255
- }
- }
- }
- },
- "group": "",
- "groupIndex": 0
- },
- {
- "objID": "fdb8c13a-ee32-4840-92ce-77569803ee6a",
- "type": "LVGLLabelWidget",
- "left": 0,
- "top": -15,
- "width": 213,
- "height": 26,
- "customInputs": [],
- "customOutputs": [],
- "style": {
- "objID": "b05d105d-10b8-4b56-df9a-e72c35c9bca4",
- "useStyle": "default",
- "conditionalStyles": [],
- "childStyles": []
- },
- "timeline": [],
- "eventHandlers": [],
- "identifier": "MeshtasticUrl",
- "leftUnit": "px",
- "topUnit": "%",
- "widthUnit": "content",
- "heightUnit": "content",
- "children": [],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
- "hiddenFlagType": "literal",
- "clickableFlagType": "literal",
- "checkedStateType": "literal",
- "disabledStateType": "literal",
- "states": "",
- "localStyles": {
- "objID": "361f13db-4093-4fb2-ddef-675b661cc144",
- "definition": {
- "MAIN": {
- "DEFAULT": {
- "align": "BOTTOM_MID",
- "text_font": "montserrat_20"
- }
- }
- }
- },
- "groupIndex": 0,
- "text": "www.meshtastic.org",
- "textType": "literal",
- "longMode": "WRAP",
- "recolor": false
- },
- {
- "objID": "7d5fe9ac-02c0-4118-8efd-f0cf42aa3260",
- "type": "LVGLLabelWidget",
- "left": 0,
- "top": -15,
- "width": 0,
- "height": 19,
- "customInputs": [],
- "customOutputs": [],
- "style": {
- "objID": "b1de63a5-ab3c-4540-e6cc-385f4d3cbe0d",
- "useStyle": "default",
- "conditionalStyles": [],
- "childStyles": []
- },
- "timeline": [],
- "eventHandlers": [],
- "identifier": "FirmwareLabel",
- "leftUnit": "px",
- "topUnit": "px",
- "widthUnit": "content",
- "heightUnit": "content",
- "children": [],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
- "hiddenFlagType": "literal",
- "clickableFlagType": "literal",
- "checkedStateType": "literal",
- "disabledStateType": "literal",
- "states": "",
- "localStyles": {
- "objID": "0c98aadc-0b69-4275-ac79-1dbf59f3a150",
- "definition": {
- "MAIN": {
- "DEFAULT": {
- "align": "BOTTOM_MID"
- }
- }
- }
- },
- "groupIndex": 0,
- "text": "",
- "textType": "literal",
- "longMode": "WRAP",
- "recolor": false
- },
- {
- "objID": "ccd9162a-e384-4ebf-9127-496e13fa3aaf",
- "type": "LVGLButtonWidget",
- "left": 0,
- "top": -10,
- "width": 80,
- "height": 80,
- "customInputs": [],
- "customOutputs": [],
- "style": {
- "objID": "8a4c93fc-f9fe-4d6a-bc76-b522ecf2b4b5",
- "useStyle": "default",
- "conditionalStyles": [],
- "childStyles": []
- },
- "timeline": [],
- "eventHandlers": [],
- "identifier": "bluetoothButton",
- "leftUnit": "px",
- "topUnit": "%",
- "widthUnit": "px",
- "heightUnit": "px",
- "children": [],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE",
- "hiddenFlag": true,
- "hiddenFlagType": "literal",
- "clickableFlag": true,
- "clickableFlagType": "literal",
- "flagScrollbarMode": "",
- "flagScrollDirection": "",
- "scrollSnapX": "",
- "scrollSnapY": "",
- "checkedStateType": "literal",
- "disabledStateType": "literal",
- "states": "",
- "localStyles": {
- "objID": "c2be567d-cb41-4eaf-bccf-d4299f574acc",
- "definition": {
- "MAIN": {
- "DEFAULT": {
- "align": "CENTER",
- "bg_img_src": "bluetooth_on_image",
- "shadow_width": 0,
- "bg_opa": 0,
- "bg_img_recolor_opa": 255,
- "bg_img_recolor": "#172ef8"
- }
- }
- }
- },
- "group": "",
- "groupIndex": 0
- },
- {
- "objID": "67614f32-6ae3-428c-906a-ca80e810e6c6",
- "type": "LVGLPanelWidget",
- "left": 0,
- "top": 0,
- "width": 100,
- "height": 100,
- "customInputs": [],
- "customOutputs": [],
- "style": {
- "objID": "be20787a-7a0b-4ed5-c132-24be8baa51d1",
- "useStyle": "default",
- "conditionalStyles": [],
- "childStyles": []
- },
- "hiddenInEditor": false,
- "timeline": [],
- "eventHandlers": [],
- "identifier": "RebootPanel",
- "leftUnit": "%",
- "topUnit": "%",
- "widthUnit": "%",
- "heightUnit": "%",
- "children": [
- {
- "objID": "57afcacb-beb8-4b44-f46f-9f057e865800",
- "type": "LVGLButtonWidget",
- "left": 0,
- "top": 0,
- "width": 100,
- "height": 100,
- "customInputs": [],
- "customOutputs": [],
- "style": {
- "objID": "4aa6c41e-f4f5-4c70-fdae-ce35719d0c46",
- "useStyle": "default",
- "conditionalStyles": [],
- "childStyles": []
- },
- "hiddenInEditor": false,
- "timeline": [],
- "eventHandlers": [],
- "identifier": "CancelRebootButton",
- "leftUnit": "px",
- "topUnit": "px",
- "widthUnit": "%",
- "heightUnit": "%",
- "children": [],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE",
- "hiddenFlagType": "literal",
- "clickableFlag": true,
- "clickableFlagType": "literal",
- "checkedStateType": "literal",
- "disabledStateType": "literal",
- "states": "",
- "localStyles": {
- "objID": "698ce875-a086-4a42-be4f-081095112c24",
- "definition": {
- "MAIN": {
- "DEFAULT": {
- "bg_color": "#67EA94",
- "shadow_width": 0,
- "shadow_ofs_y": 0,
- "align": "CENTER",
- "radius": 0
- },
- "PRESSED": {
- "bg_color": "#000000"
- }
- }
- }
- },
- "groupIndex": 0
- },
- {
- "objID": "1eb78964-e019-489a-d2c9-827201580c85",
- "type": "LVGLButtonWidget",
- "left": 18,
- "top": -10,
- "width": 55,
- "height": 55,
- "customInputs": [],
- "customOutputs": [],
- "style": {
- "objID": "ef3fb65c-148d-4fb4-b3f5-7cf8dcb2e299",
- "useStyle": "default",
- "conditionalStyles": [],
- "childStyles": []
- },
- "hiddenInEditor": false,
- "timeline": [],
- "eventHandlers": [],
- "identifier": "RebootButton",
- "leftUnit": "%",
- "topUnit": "%",
- "widthUnit": "px",
- "heightUnit": "px",
- "children": [],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE",
- "hiddenFlagType": "literal",
- "clickableFlag": true,
- "clickableFlagType": "literal",
- "checkedStateType": "literal",
- "disabledStateType": "literal",
- "states": "",
- "localStyles": {
- "objID": "994fddb3-c909-4ce9-bd08-fbc1bbedcae2",
- "definition": {
- "MAIN": {
- "CHECKED": {
- "bg_color": "#229c00"
- },
- "DEFAULT": {
- "bg_img_src": "reboot_image",
- "bg_color": "#e0e0e0",
- "radius": 12,
- "align": "LEFT_MID",
- "shadow_width": 3,
- "shadow_ofs_x": 1,
- "shadow_ofs_y": 3,
- "shadow_color": "#606060"
- }
- }
- }
- },
- "groupIndex": 0
- },
- {
- "objID": "f9e5310c-8dd4-4046-fa39-b9c0171cf973",
- "type": "LVGLButtonWidget",
- "left": 0,
- "top": -10,
- "width": 55,
- "height": 55,
- "customInputs": [],
- "customOutputs": [],
- "style": {
- "objID": "ec707b23-08c6-4da3-d6c2-eea535f4a710",
- "useStyle": "default",
- "conditionalStyles": [],
- "childStyles": []
- },
- "hiddenInEditor": false,
- "timeline": [],
- "eventHandlers": [],
- "identifier": "progmodeButton",
- "leftUnit": "%",
- "topUnit": "%",
- "widthUnit": "px",
- "heightUnit": "px",
- "children": [],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE",
- "hiddenFlagType": "literal",
- "clickableFlag": true,
- "clickableFlagType": "literal",
- "checkedStateType": "literal",
- "disabledStateType": "literal",
- "states": "",
- "localStyles": {
- "objID": "e6cc7081-85ea-4922-b951-745e618460b8",
- "definition": {
- "MAIN": {
- "CHECKED": {
- "bg_color": "#229c00"
- },
- "DEFAULT": {
- "bg_img_src": "reboot_BT_on_image",
- "bg_color": "#e0e0e0",
- "radius": 12,
- "align": "CENTER",
- "shadow_width": 3,
- "shadow_ofs_x": 1,
- "shadow_ofs_y": 3,
- "shadow_color": "#606060",
- "bg_img_recolor": "#2d2ff5",
- "bg_img_recolor_opa": 255
- }
- }
- }
- },
- "groupIndex": 0
- },
- {
- "objID": "186dae5a-17ed-45f2-bb92-32fdd255c74c",
- "type": "LVGLButtonWidget",
- "left": -18,
- "top": -10,
- "width": 55,
- "height": 55,
- "customInputs": [],
- "customOutputs": [],
- "style": {
- "objID": "f6900311-7ba0-4ee2-fa5b-5439c5de001a",
- "useStyle": "default",
- "conditionalStyles": [],
- "childStyles": []
- },
- "hiddenInEditor": false,
- "timeline": [],
- "eventHandlers": [],
- "identifier": "ShutdownButton",
- "leftUnit": "%",
- "topUnit": "%",
- "widthUnit": "px",
- "heightUnit": "px",
- "children": [],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE",
- "hiddenFlagType": "literal",
- "clickableFlag": true,
- "clickableFlagType": "literal",
- "checkedStateType": "literal",
- "disabledStateType": "literal",
- "states": "",
- "localStyles": {
- "objID": "abfb9ebc-5f5b-45be-cdfb-f4482dadcd73",
- "definition": {
- "MAIN": {
- "CHECKED": {
- "align": "LEFT_MID"
- },
- "DEFAULT": {
- "bg_img_src": "shutdown_image",
- "bg_color": "#e0e0e0",
- "shadow_width": 3,
- "shadow_ofs_y": 3,
- "radius": 12,
- "align": "RIGHT_MID",
- "shadow_ofs_x": 1,
- "shadow_color": "#606060"
- }
- }
- }
- },
- "groupIndex": 0
- },
- {
- "objID": "dad949a0-3e96-445c-e9b6-8adc3635c92d",
- "type": "LVGLLabelWidget",
- "left": 0,
- "top": -25,
- "width": 218,
- "height": 26,
- "customInputs": [],
- "customOutputs": [],
- "style": {
- "objID": "232ef011-e268-43fe-d2cb-60c126faf10f",
- "useStyle": "default",
- "conditionalStyles": [],
- "childStyles": []
- },
- "hiddenInEditor": false,
- "timeline": [],
- "eventHandlers": [],
- "identifier": "",
- "leftUnit": "px",
- "topUnit": "%",
- "widthUnit": "content",
- "heightUnit": "content",
- "children": [],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
- "hiddenFlagType": "literal",
- "clickableFlagType": "literal",
- "checkedStateType": "literal",
- "disabledStateType": "literal",
- "states": "",
- "localStyles": {
- "objID": "81603f9f-1dee-48e5-c121-15e600dc3eb6",
- "definition": {
- "MAIN": {
- "DEFAULT": {
- "align": "BOTTOM_MID",
- "text_font": "montserrat_20",
- "text_color": "#000000"
- }
- }
- }
- },
- "groupIndex": 0,
- "text": " www.meshtastic.org",
- "textType": "literal",
- "longMode": "WRAP",
- "recolor": false
- }
- ],
- "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE",
- "hiddenFlag": true,
- "hiddenFlagType": "literal",
- "clickableFlag": true,
- "clickableFlagType": "literal",
- "checkedStateType": "literal",
- "disabledStateType": "literal",
- "states": "",
- "localStyles": {
- "objID": "6017d46b-563c-4b03-840a-f452b65adfd2",
- "definition": {
- "MAIN": {
- "DEFAULT": {
- "bg_color": "#000000",
- "border_width": 0,
- "radius": 12,
- "align": "TOP_MID",
- "bg_opa": 255,
- "text_color": "#ffffff",
- "layout": "NONE",
- "pad_top": 0,
- "pad_bottom": 0,
- "pad_left": 0,
- "pad_right": 0
- },
- "PRESSED": {
- "bg_color": "#000000",
- "pad_top": 0,
- "pad_bottom": 0,
- "pad_left": 0,
- "pad_right": 0,
- "pad_row": 0,
- "pad_column": 0
- }
- }
- }
- },
- "groupIndex": 0
- }
- ],
- "widgetFlags": "PRESS_LOCK|CLICK_FOCUSABLE|GESTURE_BUBBLE|SNAPPABLE|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER",
- "hiddenFlagType": "literal",
- "clickableFlag": true,
- "clickableFlagType": "literal",
- "checkedStateType": "literal",
- "disabledStateType": "literal",
- "states": "",
- "localStyles": {
- "objID": "8eb86917-c831-b762-5685-8d01972e8a22",
- "definition": {
- "MAIN": {
- "DEFAULT": {
- "text_font": "montserrat_14",
- "bg_color": "#67ea94"
- }
- }
- }
- },
- "groupIndex": 0
- }
- ],
- "connectionLines": [],
- "localVariables": [],
- "userProperties": [],
- "name": "BootScreen",
- "left": 0,
- "top": 0,
- "width": 320,
- "height": 240,
- "isUsedAsUserWidget": false,
- "createAtStart": true,
- "deleteOnScreenUnload": false
- },
{
"objID": "cf258ce5-f401-44ea-a356-6dfb27edc1ca",
"components": [