diff options
author | Kieran Cawthray <kieranc@gmail.com> | 2022-08-16 23:38:07 +0200 |
---|---|---|
committer | Kieran Cawthray <kieranc@gmail.com> | 2022-08-16 23:38:07 +0200 |
commit | 593ca2028d77c013fa4026a7183b7f66f2cca5ba (patch) | |
tree | 0a479f6f4ce250373d18e09bb6949af2106ce73f /src | |
parent | a0ba80882c55e5bd6e1636916fdbadd1c7c4a069 (diff) | |
parent | a7c86786c3a56877a0343c58bc706acf131af30b (diff) |
Add half gauge/seconds option
Diffstat (limited to 'src')
-rw-r--r-- | src/displayapp/screens/WatchFacePineTimeStyle.cpp | 43 | ||||
-rw-r--r-- | src/displayapp/screens/WatchFacePineTimeStyle.h | 2 |
2 files changed, 38 insertions, 7 deletions
diff --git a/src/displayapp/screens/WatchFacePineTimeStyle.cpp b/src/displayapp/screens/WatchFacePineTimeStyle.cpp index 9658c1d6..835e8737 100644 --- a/src/displayapp/screens/WatchFacePineTimeStyle.cpp +++ b/src/displayapp/screens/WatchFacePineTimeStyle.cpp @@ -203,6 +203,13 @@ WatchFacePineTimeStyle::WatchFacePineTimeStyle(DisplayApp* app, lv_obj_align(stepIcon, stepValue, LV_ALIGN_OUT_TOP_MID, 0, 0); lv_obj_set_hidden(stepIcon, true); + // Display seconds + timeDD3 = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(timeDD3, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); + lv_label_set_text_static(timeDD3, ":00"); + lv_obj_align(timeDD3, sidebar, LV_ALIGN_IN_BOTTOM_MID, 0, 0); + lv_obj_set_hidden(timeDD3, true); + btnNextTime = lv_btn_create(lv_scr_act(), nullptr); btnNextTime->user_data = this; lv_obj_set_size(btnNextTime, 60, 60); @@ -424,6 +431,7 @@ void WatchFacePineTimeStyle::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; @@ -449,6 +457,11 @@ void WatchFacePineTimeStyle::Refresh() { } } + if (displayedSecond != second) { + displayedSecond = second; + lv_label_set_text_fmt(timeDD3, ":%02d", second); + } + if ((year != currentYear) || (month != currentMonth) || (dayOfWeek != currentDayOfWeek) || (day != currentDay)) { lv_label_set_text_static(dateDayOfWeek, dateTimeController.DayOfWeekShortToString()); lv_label_set_text_fmt(dateDay, "%d", day); @@ -590,14 +603,30 @@ void WatchFacePineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) CloseMenu(); } if (object == btnSteps) { - if (!lv_obj_get_hidden(stepGauge)) { - lv_obj_set_hidden(stepGauge, true); - lv_obj_set_hidden(stepValue, false); - lv_obj_set_hidden(stepIcon, false); + if (!lv_obj_get_hidden(stepGauge) && (lv_obj_get_hidden(timeDD3))) { + // show half gauge & seconds + lv_obj_set_hidden(timeDD3, false); + lv_obj_set_size(stepGauge, 37, 37); + lv_obj_align(stepGauge, sidebar, LV_ALIGN_IN_BOTTOM_MID, 0, -10); + lv_gauge_set_scale(stepGauge, 180, 5, 0); + lv_gauge_set_angle_offset(stepGauge, 0); + lv_gauge_set_critical_value(stepGauge, 120); + } else if (!lv_obj_get_hidden(timeDD3) && (lv_obj_get_hidden(stepValue))) { + // show step count & icon + lv_obj_set_hidden(timeDD3, true); + lv_obj_set_hidden(stepGauge, true); + lv_obj_set_hidden(stepValue, false); + lv_obj_set_hidden(stepIcon, false); } else { - lv_obj_set_hidden(stepGauge, false); - lv_obj_set_hidden(stepValue, true); - lv_obj_set_hidden(stepIcon, true); + // show full gauge + lv_obj_set_hidden(stepGauge, false); + lv_obj_set_hidden(stepValue, true); + lv_obj_set_hidden(stepIcon, true); + lv_obj_set_size(stepGauge, 40, 40); + lv_obj_align(stepGauge, sidebar, LV_ALIGN_IN_BOTTOM_MID, 0, 0); + lv_gauge_set_scale(stepGauge, 360, 11, 0); + lv_gauge_set_angle_offset(stepGauge, 180); + lv_gauge_set_critical_value(stepGauge, 100); } } if (object == btnSetColor) { diff --git a/src/displayapp/screens/WatchFacePineTimeStyle.h b/src/displayapp/screens/WatchFacePineTimeStyle.h index e769bfff..0b6acd95 100644 --- a/src/displayapp/screens/WatchFacePineTimeStyle.h +++ b/src/displayapp/screens/WatchFacePineTimeStyle.h @@ -43,6 +43,7 @@ namespace Pinetime { private: 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; @@ -76,6 +77,7 @@ namespace Pinetime { lv_obj_t* sidebar; lv_obj_t* timeDD1; lv_obj_t* timeDD2; + lv_obj_t* timeDD3; lv_obj_t* timeAMPM; lv_obj_t* dateDayOfWeek; lv_obj_t* dateDay; |