replace WatchFaceAnalog.cpp
This commit is contained in:
parent
5d7e1ae1f3
commit
9e8da5cfc6
@ -11,7 +11,7 @@
|
|||||||
using namespace Pinetime::Applications::Screens;
|
using namespace Pinetime::Applications::Screens;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
constexpr int16_t HourLength = 70;
|
constexpr int16_t HourLength = 100;
|
||||||
constexpr int16_t MinuteLength = 90;
|
constexpr int16_t MinuteLength = 90;
|
||||||
constexpr int16_t SecondLength = 110;
|
constexpr int16_t SecondLength = 110;
|
||||||
|
|
||||||
@ -58,6 +58,23 @@ WatchFaceAnalog::WatchFaceAnalog(Controllers::DateTime& dateTimeController,
|
|||||||
sMinute = 99;
|
sMinute = 99;
|
||||||
sSecond = 99;
|
sSecond = 99;
|
||||||
|
|
||||||
|
mouth = lv_arc_create(lv_scr_act(), nullptr);
|
||||||
|
lv_arc_set_angles(mouth, 30, 110);
|
||||||
|
lv_arc_set_bg_angles(mouth, 45, 135);
|
||||||
|
lv_obj_set_size(mouth, 130, 130);
|
||||||
|
lv_obj_align(mouth, nullptr, LV_ALIGN_CENTER, 0, 0);
|
||||||
|
|
||||||
|
leye = lv_arc_create(lv_scr_act(), nullptr);
|
||||||
|
lv_arc_set_angles(leye, 0, 360);
|
||||||
|
lv_obj_set_size(leye, 30, 30);
|
||||||
|
lv_obj_align(leye, nullptr, LV_ALIGN_CENTER, -35, -35);
|
||||||
|
|
||||||
|
reye = lv_arc_create(lv_scr_act(), nullptr);
|
||||||
|
lv_arc_set_angles(reye, 0, 360);
|
||||||
|
lv_obj_set_size(reye, 30, 30);
|
||||||
|
lv_obj_align(reye, nullptr, LV_ALIGN_CENTER, 35, -35);
|
||||||
|
|
||||||
|
|
||||||
minor_scales = lv_linemeter_create(lv_scr_act(), nullptr);
|
minor_scales = lv_linemeter_create(lv_scr_act(), nullptr);
|
||||||
lv_linemeter_set_scale(minor_scales, 300, 51);
|
lv_linemeter_set_scale(minor_scales, 300, 51);
|
||||||
lv_linemeter_set_angle_offset(minor_scales, 180);
|
lv_linemeter_set_angle_offset(minor_scales, 180);
|
||||||
@ -116,7 +133,7 @@ WatchFaceAnalog::WatchFaceAnalog(Controllers::DateTime& dateTimeController,
|
|||||||
lv_obj_set_style_local_text_color(label_date_day, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Colors::orange);
|
lv_obj_set_style_local_text_color(label_date_day, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Colors::orange);
|
||||||
lv_label_set_text_fmt(label_date_day, "%s\n%02i", dateTimeController.DayOfWeekShortToString(), dateTimeController.Day());
|
lv_label_set_text_fmt(label_date_day, "%s\n%02i", dateTimeController.DayOfWeekShortToString(), dateTimeController.Day());
|
||||||
lv_label_set_align(label_date_day, LV_LABEL_ALIGN_CENTER);
|
lv_label_set_align(label_date_day, LV_LABEL_ALIGN_CENTER);
|
||||||
lv_obj_align(label_date_day, nullptr, LV_ALIGN_CENTER, 50, 0);
|
lv_obj_align(label_date_day, nullptr, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
|
||||||
|
|
||||||
minute_body = lv_line_create(lv_scr_act(), nullptr);
|
minute_body = lv_line_create(lv_scr_act(), nullptr);
|
||||||
minute_body_trace = lv_line_create(lv_scr_act(), nullptr);
|
minute_body_trace = lv_line_create(lv_scr_act(), nullptr);
|
||||||
@ -131,7 +148,7 @@ WatchFaceAnalog::WatchFaceAnalog(Controllers::DateTime& dateTimeController,
|
|||||||
lv_obj_add_style(second_body, LV_LINE_PART_MAIN, &second_line_style);
|
lv_obj_add_style(second_body, LV_LINE_PART_MAIN, &second_line_style);
|
||||||
|
|
||||||
lv_style_init(&minute_line_style);
|
lv_style_init(&minute_line_style);
|
||||||
lv_style_set_line_width(&minute_line_style, LV_STATE_DEFAULT, 7);
|
lv_style_set_line_width(&minute_line_style, LV_STATE_DEFAULT, 3);
|
||||||
lv_style_set_line_color(&minute_line_style, LV_STATE_DEFAULT, LV_COLOR_WHITE);
|
lv_style_set_line_color(&minute_line_style, LV_STATE_DEFAULT, LV_COLOR_WHITE);
|
||||||
lv_style_set_line_rounded(&minute_line_style, LV_STATE_DEFAULT, true);
|
lv_style_set_line_rounded(&minute_line_style, LV_STATE_DEFAULT, true);
|
||||||
lv_obj_add_style(minute_body, LV_LINE_PART_MAIN, &minute_line_style);
|
lv_obj_add_style(minute_body, LV_LINE_PART_MAIN, &minute_line_style);
|
||||||
@ -178,14 +195,11 @@ void WatchFaceAnalog::UpdateClock() {
|
|||||||
|
|
||||||
if (sMinute != minute) {
|
if (sMinute != minute) {
|
||||||
auto const angle = minute * 6;
|
auto const angle = minute * 6;
|
||||||
minute_point[0] = CoordinateRelocate(30, angle);
|
minute_point[0] = CoordinateRelocate(10, angle - 90);
|
||||||
minute_point[1] = CoordinateRelocate(MinuteLength, angle);
|
minute_point[1] = CoordinateRelocate(MinuteLength, angle);
|
||||||
|
minute_point[2] = CoordinateRelocate(10, angle + 90);
|
||||||
|
|
||||||
minute_point_trace[0] = CoordinateRelocate(5, angle);
|
lv_line_set_points(minute_body, minute_point, 3);
|
||||||
minute_point_trace[1] = CoordinateRelocate(31, angle);
|
|
||||||
|
|
||||||
lv_line_set_points(minute_body, minute_point, 2);
|
|
||||||
lv_line_set_points(minute_body_trace, minute_point_trace, 2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sHour != hour || sMinute != minute) {
|
if (sHour != hour || sMinute != minute) {
|
||||||
@ -193,24 +207,20 @@ void WatchFaceAnalog::UpdateClock() {
|
|||||||
sMinute = minute;
|
sMinute = minute;
|
||||||
auto const angle = (hour * 30 + minute / 2);
|
auto const angle = (hour * 30 + minute / 2);
|
||||||
|
|
||||||
hour_point[0] = CoordinateRelocate(30, angle);
|
hour_point[0] = CoordinateRelocate(90, angle);
|
||||||
hour_point[1] = CoordinateRelocate(HourLength, angle);
|
hour_point[1] = CoordinateRelocate(HourLength, angle);
|
||||||
|
|
||||||
hour_point_trace[0] = CoordinateRelocate(5, angle);
|
|
||||||
hour_point_trace[1] = CoordinateRelocate(31, angle);
|
|
||||||
|
|
||||||
lv_line_set_points(hour_body, hour_point, 2);
|
lv_line_set_points(hour_body, hour_point, 2);
|
||||||
lv_line_set_points(hour_body_trace, hour_point_trace, 2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sSecond != second) {
|
if (sSecond != second) {
|
||||||
sSecond = second;
|
sSecond = second;
|
||||||
auto const angle = second * 6;
|
auto const angle = second * 6;
|
||||||
|
|
||||||
second_point[0] = CoordinateRelocate(-20, angle);
|
second_point[0] = CoordinateRelocate(105, angle);
|
||||||
second_point[1] = CoordinateRelocate(SecondLength, angle);
|
second_point[1] = CoordinateRelocate(SecondLength, angle);
|
||||||
lv_line_set_points(second_body, second_point, 2);
|
lv_line_set_points(second_body, second_point, 2);
|
||||||
}
|
}//TODO: redo seconds
|
||||||
}
|
}
|
||||||
|
|
||||||
void WatchFaceAnalog::SetBatteryIcon() {
|
void WatchFaceAnalog::SetBatteryIcon() {
|
||||||
|
Loading…
Reference in New Issue
Block a user