From 7898636d94b57fd6351430bdc149c19a4496dae3 Mon Sep 17 00:00:00 2001 From: Michele Bini Date: Mon, 28 Mar 2022 04:21:19 +0200 Subject: digital seconds diff --git a/src/displayapp/screens/WatchFaceDigital.cpp b/src/displayapp/screens/WatchFaceDigital.cpp index 8176c7b..6d9ed32 100644 --- a/src/displayapp/screens/WatchFaceDigital.cpp +++ b/src/displayapp/screens/WatchFaceDigital.cpp @@ -66,8 +66,14 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app, label_time = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_font(label_time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont3); + lv_label_set_text_fmt(label_time, "??:??"); + lv_obj_align(label_time, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - lv_obj_align(label_time, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, 0, 0); + label_time_sec = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(label_time_sec, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xFFFFFF)); + lv_obj_set_style_local_text_font(label_time_sec, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont2); + lv_label_set_text_fmt(label_time_sec, ":??"); + lv_obj_align(label_time_sec, label_time, LV_ALIGN_OUT_BOTTOM_RIGHT, 0, 0); label_time_ampm = lv_label_create(lv_scr_act(), nullptr); lv_label_set_text_static(label_time_ampm, ""); @@ -150,6 +156,7 @@ void WatchFaceDigital::Refresh() { uint8_t hour = time.hours().count(); uint8_t minute = time.minutes().count(); + uint8_t second = time.seconds().count(); if (displayedHour != hour || displayedMinute != minute) { displayedHour = hour; @@ -167,13 +174,18 @@ void WatchFaceDigital::Refresh() { } lv_label_set_text(label_time_ampm, ampmChar); lv_label_set_text_fmt(label_time, "%2d:%02d", hour, minute); - lv_obj_align(label_time, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, 0, 0); + // lv_obj_align(label_time, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, 0, 0); } else { lv_label_set_text_fmt(label_time, "%02d:%02d", hour, minute); - lv_obj_align(label_time, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); + // lv_obj_align(label_time, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); } } + if (displayedSecond != second) { + displayedSecond = second; + lv_label_set_text_fmt(label_time_sec, ":%02d", second); + } + if ((year != currentYear) || (month != currentMonth) || (dayOfWeek != currentDayOfWeek) || (day != currentDay)) { if (settingsController.GetClockType() == Controllers::Settings::ClockType::H24) { lv_label_set_text_fmt( diff --git a/src/displayapp/screens/WatchFaceDigital.h b/src/displayapp/screens/WatchFaceDigital.h index 770645d..560176f 100644 --- a/src/displayapp/screens/WatchFaceDigital.h +++ b/src/displayapp/screens/WatchFaceDigital.h @@ -39,6 +39,7 @@ namespace Pinetime { System::SystemTask& systemTask; uint8_t displayedHour = -1; uint8_t displayedMinute = -1; + uint8_t displayedSecond = -1; uint16_t currentYear = 1970; Controllers::DateTime::Months currentMonth = Pinetime::Controllers::DateTime::Months::Unknown; @@ -55,6 +56,7 @@ namespace Pinetime { lv_obj_t* label_temp; lv_obj_t* label_time; + lv_obj_t* label_time_sec; lv_obj_t* label_time_ampm; lv_obj_t* label_date; lv_obj_t* backgroundLabel; -- cgit v0.10.2