diff options
Diffstat (limited to 'src/displayapp/screens/WatchFaceAnalog24.h')
| -rw-r--r-- | src/displayapp/screens/WatchFaceAnalog24.h | 90 |
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; + }; + } + } +} |
