From c3058c55f5110d7c285f0d40dce198b10a17adbc Mon Sep 17 00:00:00 2001 From: SteveAmor Date: Sun, 16 Aug 2026 20:39:39 +0100 Subject: [PATCH] Replace dot indicator with page indicator on settings Date & Time --- src/CMakeLists.txt | 2 -- .../screens/settings/SettingSetDate.cpp | 2 ++ .../screens/settings/SettingSetDate.h | 3 +- .../screens/settings/SettingSetDateTime.cpp | 5 ---- .../screens/settings/SettingSetTime.cpp | 1 + .../screens/settings/SettingSetTime.h | 3 +- src/displayapp/widgets/DotIndicator.cpp | 28 ------------------- src/displayapp/widgets/DotIndicator.h | 18 ------------ 8 files changed, 7 insertions(+), 55 deletions(-) delete mode 100644 src/displayapp/widgets/DotIndicator.cpp delete mode 100644 src/displayapp/widgets/DotIndicator.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e4a354df64..44b0577bc5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -401,7 +401,6 @@ list(APPEND SOURCE_FILES displayapp/Colors.cpp displayapp/widgets/Counter.cpp displayapp/widgets/PageIndicator.cpp - displayapp/widgets/DotIndicator.cpp displayapp/widgets/StatusIcons.cpp ## Settings @@ -622,7 +621,6 @@ set(INCLUDE_FILES displayapp/Colors.h displayapp/widgets/Counter.h displayapp/widgets/PageIndicator.h - displayapp/widgets/DotIndicator.h displayapp/widgets/StatusIcons.h drivers/St7789.h drivers/SpiNorFlash.h diff --git a/src/displayapp/screens/settings/SettingSetDate.cpp b/src/displayapp/screens/settings/SettingSetDate.cpp index 93a8da4d27..5a34b85cff 100644 --- a/src/displayapp/screens/settings/SettingSetDate.cpp +++ b/src/displayapp/screens/settings/SettingSetDate.cpp @@ -85,6 +85,8 @@ SettingSetDate::SettingSetDate(Pinetime::Controllers::DateTime& dateTimeControll lblSetTime = lv_label_create(btnSetTime, nullptr); lv_label_set_text_static(lblSetTime, "Set"); lv_obj_set_event_cb(btnSetTime, event_handler); + + pageIndicator.Create(); } SettingSetDate::~SettingSetDate() { diff --git a/src/displayapp/screens/settings/SettingSetDate.h b/src/displayapp/screens/settings/SettingSetDate.h index 1fe2bd9eb4..8169393b4f 100644 --- a/src/displayapp/screens/settings/SettingSetDate.h +++ b/src/displayapp/screens/settings/SettingSetDate.h @@ -5,7 +5,7 @@ #include "components/datetime/DateTimeController.h" #include "displayapp/screens/Screen.h" #include "displayapp/widgets/Counter.h" -#include "displayapp/widgets/DotIndicator.h" +#include "displayapp/widgets/PageIndicator.h" #include "displayapp/screens/settings/SettingSetDateTime.h" namespace Pinetime { @@ -30,6 +30,7 @@ namespace Pinetime { Widgets::Counter dayCounter = Widgets::Counter(1, 31, jetbrains_mono_bold_20); Widgets::Counter monthCounter = Widgets::Counter(1, 12, jetbrains_mono_bold_20); Widgets::Counter yearCounter = Widgets::Counter(1970, 9999, jetbrains_mono_bold_20); + Widgets::PageIndicator pageIndicator = Widgets::PageIndicator(0, 2); }; } } diff --git a/src/displayapp/screens/settings/SettingSetDateTime.cpp b/src/displayapp/screens/settings/SettingSetDateTime.cpp index 8926ff31b1..58382e2a36 100644 --- a/src/displayapp/screens/settings/SettingSetDateTime.cpp +++ b/src/displayapp/screens/settings/SettingSetDateTime.cpp @@ -4,7 +4,6 @@ #include "displayapp/DisplayApp.h" #include "displayapp/screens/ScreenList.h" #include "components/settings/Settings.h" -#include "displayapp/widgets/DotIndicator.h" using namespace Pinetime::Applications::Screens; @@ -29,14 +28,10 @@ SettingSetDateTime::SettingSetDateTime(Pinetime::Applications::DisplayApp* app, } std::unique_ptr SettingSetDateTime::screenSetDate() { - Widgets::DotIndicator dotIndicator(0, 2); - dotIndicator.Create(); return std::make_unique(dateTimeController, *this); } std::unique_ptr SettingSetDateTime::screenSetTime() { - Widgets::DotIndicator dotIndicator(1, 2); - dotIndicator.Create(); return std::make_unique(dateTimeController, settingsController, *this); } diff --git a/src/displayapp/screens/settings/SettingSetTime.cpp b/src/displayapp/screens/settings/SettingSetTime.cpp index e5a6be2f9b..dcd5a397d0 100644 --- a/src/displayapp/screens/settings/SettingSetTime.cpp +++ b/src/displayapp/screens/settings/SettingSetTime.cpp @@ -73,6 +73,7 @@ SettingSetTime::SettingSetTime(Pinetime::Controllers::DateTime& dateTimeControll lv_obj_set_style_local_text_color(lblSetTime, LV_LABEL_PART_MAIN, LV_STATE_DISABLED, LV_COLOR_GRAY); lv_obj_set_event_cb(btnSetTime, SetTimeEventHandler); + pageIndicator.Create(); UpdateScreen(); } diff --git a/src/displayapp/screens/settings/SettingSetTime.h b/src/displayapp/screens/settings/SettingSetTime.h index feac15d5ac..56bfd38833 100644 --- a/src/displayapp/screens/settings/SettingSetTime.h +++ b/src/displayapp/screens/settings/SettingSetTime.h @@ -6,7 +6,7 @@ #include "components/settings/Settings.h" #include "displayapp/widgets/Counter.h" #include "displayapp/screens/Screen.h" -#include "displayapp/widgets/DotIndicator.h" +#include "displayapp/widgets/PageIndicator.h" #include "displayapp/screens/settings/SettingSetDateTime.h" namespace Pinetime { @@ -32,6 +32,7 @@ namespace Pinetime { lv_obj_t* lblSetTime; Widgets::Counter hourCounter = Widgets::Counter(0, 23, jetbrains_mono_42); Widgets::Counter minuteCounter = Widgets::Counter(0, 59, jetbrains_mono_42); + Widgets::PageIndicator pageIndicator = Widgets::PageIndicator(1, 2); }; } } diff --git a/src/displayapp/widgets/DotIndicator.cpp b/src/displayapp/widgets/DotIndicator.cpp deleted file mode 100644 index 209b43bdc3..0000000000 --- a/src/displayapp/widgets/DotIndicator.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include "displayapp/widgets/DotIndicator.h" -#include "displayapp/InfiniTimeTheme.h" - -using namespace Pinetime::Applications::Widgets; - -DotIndicator::DotIndicator(uint8_t nCurrentScreen, uint8_t nScreens) : nCurrentScreen {nCurrentScreen}, nScreens {nScreens} { -} - -void DotIndicator::Create() { - lv_obj_t* dotIndicator[nScreens]; - static constexpr uint8_t dotSize = 12; - - lv_obj_t* container = lv_cont_create(lv_scr_act(), nullptr); - lv_cont_set_layout(container, LV_LAYOUT_COLUMN_LEFT); - lv_cont_set_fit(container, LV_FIT_TIGHT); - lv_obj_set_style_local_pad_inner(container, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, dotSize); - lv_obj_set_style_local_bg_opa(container, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); - - for (int i = 0; i < nScreens; i++) { - dotIndicator[i] = lv_obj_create(container, nullptr); - lv_obj_set_size(dotIndicator[i], dotSize, dotSize); - lv_obj_set_style_local_bg_color(dotIndicator[i], LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); - } - - lv_obj_set_style_local_bg_color(dotIndicator[nCurrentScreen], LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); - - lv_obj_align(container, nullptr, LV_ALIGN_IN_RIGHT_MID, 0, 0); -} diff --git a/src/displayapp/widgets/DotIndicator.h b/src/displayapp/widgets/DotIndicator.h deleted file mode 100644 index 49cdca26ed..0000000000 --- a/src/displayapp/widgets/DotIndicator.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once -#include - -namespace Pinetime { - namespace Applications { - namespace Widgets { - class DotIndicator { - public: - DotIndicator(uint8_t nCurrentScreen, uint8_t nScreens); - void Create(); - - private: - uint8_t nCurrentScreen; - uint8_t nScreens; - }; - } - } -}