aboutsummaryrefslogtreecommitdiffstats
path: root/src/displayapp/screens/WatchFaceAnalog.cpp
diff options
context:
space:
mode:
authorMax Friedrich <minacode@users.noreply.github.com>2023-08-15 13:01:17 +0200
committerGitHub <noreply@github.com>2023-08-15 13:01:17 +0200
commit6d0d8c7d6373062cd084c170d2e50e1535c9e95d (patch)
tree12829f5c0a7a638d089f24e722a42a281d49e4ae /src/displayapp/screens/WatchFaceAnalog.cpp
parent782ef7902f6576a7f5c2855e8cd13ab0ef650f6f (diff)
watchfaceanalog: Background in lvgl (#1824)
* change background image to widgets This commit removes the background image for the WatchFaceAnalog and replaces it with lvgl widgets. It aims to keep the original look. * remove comments and background image --------- Co-authored-by: minacode <minamoto9@web.de>
Diffstat (limited to 'src/displayapp/screens/WatchFaceAnalog.cpp')
-rw-r--r--src/displayapp/screens/WatchFaceAnalog.cpp40
1 files changed, 35 insertions, 5 deletions
diff --git a/src/displayapp/screens/WatchFaceAnalog.cpp b/src/displayapp/screens/WatchFaceAnalog.cpp
index 76d01cf1..2b27ad64 100644
--- a/src/displayapp/screens/WatchFaceAnalog.cpp
+++ b/src/displayapp/screens/WatchFaceAnalog.cpp
@@ -8,8 +8,6 @@
#include "components/settings/Settings.h"
#include "displayapp/InfiniTimeTheme.h"
-LV_IMG_DECLARE(bg_clock);
-
using namespace Pinetime::Applications::Screens;
namespace {
@@ -60,9 +58,41 @@ WatchFaceAnalog::WatchFaceAnalog(Controllers::DateTime& dateTimeController,
sMinute = 99;
sSecond = 99;
- lv_obj_t* bg_clock_img = lv_img_create(lv_scr_act(), nullptr);
- lv_img_set_src(bg_clock_img, &bg_clock);
- lv_obj_align(bg_clock_img, nullptr, LV_ALIGN_CENTER, 0, 0);
+ minor_scales = lv_linemeter_create(lv_scr_act(), nullptr);
+ lv_linemeter_set_scale(minor_scales, 300, 51);
+ lv_linemeter_set_angle_offset(minor_scales, 180);
+ lv_obj_set_size(minor_scales, 240, 240);
+ lv_obj_align(minor_scales, nullptr, LV_ALIGN_CENTER, 0, 0);
+ lv_obj_set_style_local_bg_opa(minor_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP);
+ lv_obj_set_style_local_scale_width(minor_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 4);
+ lv_obj_set_style_local_scale_end_line_width(minor_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 1);
+ lv_obj_set_style_local_scale_end_color(minor_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY);
+
+ major_scales = lv_linemeter_create(lv_scr_act(), nullptr);
+ lv_linemeter_set_scale(major_scales, 300, 11);
+ lv_linemeter_set_angle_offset(major_scales, 180);
+ lv_obj_set_size(major_scales, 240, 240);
+ lv_obj_align(major_scales, nullptr, LV_ALIGN_CENTER, 0, 0);
+ lv_obj_set_style_local_bg_opa(major_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP);
+ lv_obj_set_style_local_scale_width(major_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 6);
+ lv_obj_set_style_local_scale_end_line_width(major_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 4);
+ lv_obj_set_style_local_scale_end_color(major_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE);
+
+ large_scales = lv_linemeter_create(lv_scr_act(), nullptr);
+ lv_linemeter_set_scale(large_scales, 180, 3);
+ lv_linemeter_set_angle_offset(large_scales, 180);
+ lv_obj_set_size(large_scales, 240, 240);
+ lv_obj_align(large_scales, nullptr, LV_ALIGN_CENTER, 0, 0);
+ lv_obj_set_style_local_bg_opa(large_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP);
+ lv_obj_set_style_local_scale_width(large_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 20);
+ lv_obj_set_style_local_scale_end_line_width(large_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 4);
+ lv_obj_set_style_local_scale_end_color(large_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_AQUA);
+
+ twelve = lv_label_create(lv_scr_act(), nullptr);
+ lv_label_set_align(twelve, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_static(twelve, "12");
+ lv_obj_set_pos(twelve, 110, 10);
+ lv_obj_set_style_local_text_color(twelve, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_AQUA);
batteryIcon.Create(lv_scr_act());
lv_obj_align(batteryIcon.GetObject(), nullptr, LV_ALIGN_IN_TOP_RIGHT, 0, 0);