summaryrefslogtreecommitdiff
path: root/src/displayapp/screens/WatchFaceAnalog24.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/displayapp/screens/WatchFaceAnalog24.h')
-rw-r--r--src/displayapp/screens/WatchFaceAnalog24.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/src/displayapp/screens/WatchFaceAnalog24.h b/src/displayapp/screens/WatchFaceAnalog24.h
new file mode 100644
index 0000000..25233af
--- /dev/null
+++ b/src/displayapp/screens/WatchFaceAnalog24.h
@@ -0,0 +1,90 @@
+#pragma once
+
+#include <lvgl/src/lv_core/lv_obj.h>
+#include <chrono>
+#include <cstdint>
+#include <memory>
+#include "displayapp/screens/Screen.h"
+#include "components/datetime/DateTimeController.h"
+#include "components/battery/BatteryController.h"
+#include "components/ble/BleController.h"
+#include "components/ble/NotificationManager.h"
+
+namespace Pinetime {
+ namespace Controllers {
+ class Settings;
+ class Battery;
+ class Ble;
+ class NotificationManager;
+ }
+ namespace Applications {
+ namespace Screens {
+
+ class WatchFaceAnalog24 : public Screen {
+ public:
+ WatchFaceAnalog24(DisplayApp* app,
+ Controllers::DateTime& dateTimeController,
+ Controllers::Battery& batteryController,
+ Controllers::Ble& bleController,
+ Controllers::NotificationManager& notificationManager,
+ Controllers::Settings& settingsController);
+
+ ~WatchFaceAnalog24() override;
+
+ void Refresh() override;
+
+ private:
+ uint8_t sHour, sMinute; // , sSecond;
+ uint8_t hour;
+ uint8_t minute;
+ // uint8_t second;
+
+ Pinetime::Controllers::DateTime::Months month;
+ uint8_t day;
+ Pinetime::Controllers::DateTime::Days dayOfWeek;
+
+ Pinetime::Controllers::DateTime::Months currentMonth = Pinetime::Controllers::DateTime::Months::Unknown;
+ Pinetime::Controllers::DateTime::Days currentDayOfWeek = Pinetime::Controllers::DateTime::Days::Unknown;
+ uint8_t currentDay = 0;
+
+ DirtyValue<uint8_t> batteryPercentRemaining {0};
+ DirtyValue<bool> isCharging {};
+ DirtyValue<std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds>> currentDateTime;
+ DirtyValue<bool> notificationState {false};
+
+ // lv_obj_t* hour_body;
+ lv_obj_t* hour_body_trace;
+ // lv_obj_t* minute_body;
+ // lv_obj_t* minute_body_trace;
+ // lv_obj_t* second_body;
+
+ // lv_point_t hour_point[2];
+ lv_point_t hour_point_trace[2];
+ // lv_point_t minute_point[2];
+ // lv_point_t minute_point_trace[2];
+ // lv_point_t second_point[2];
+
+ // lv_style_t hour_line_style;
+ lv_style_t hour_line_style_trace;
+ // lv_style_t minute_line_style;
+ // lv_style_t minute_line_style_trace;
+ // lv_style_t second_line_style;
+
+ // lv_obj_t* label_date_day;
+ lv_obj_t* batteryIcon;
+ lv_obj_t* notificationIcon;
+
+ Controllers::DateTime& dateTimeController;
+ Controllers::Battery& batteryController;
+ Controllers::Ble& bleController;
+ Controllers::NotificationManager& notificationManager;
+ Controllers::Settings& settingsController;
+
+ void UpdateClock();
+ void SetBatteryIcon();
+
+ lv_task_t* taskRefresh;
+ };
+ }
+ }
+}