diff options
| author | Steve Amor <steveamor@users.noreply.github.com> | 2025-07-18 18:45:56 +0100 |
|---|---|---|
| committer | JF <JF002@users.noreply.github.com> | 2025-11-04 21:46:23 +0100 |
| commit | 101f9626e3e42c8edc180eccda2549b6fbba491f (patch) | |
| tree | 1fea59f8723f26047c919298300baabd5e42f8a1 /src/displayapp | |
| parent | e33a83a81129e2337c16f7170e66f801dfc30fbc (diff) | |
Refactor pageindicator
Diffstat (limited to 'src/displayapp')
| -rw-r--r-- | src/displayapp/widgets/PageIndicator.cpp | 15 | ||||
| -rw-r--r-- | src/displayapp/widgets/PageIndicator.h | 2 |
2 files changed, 7 insertions, 10 deletions
diff --git a/src/displayapp/widgets/PageIndicator.cpp b/src/displayapp/widgets/PageIndicator.cpp index d8558678..5d9815da 100644 --- a/src/displayapp/widgets/PageIndicator.cpp +++ b/src/displayapp/widgets/PageIndicator.cpp @@ -16,9 +16,12 @@ void PageIndicator::Create() { lv_obj_set_style_local_line_width(pageIndicatorBase, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, 3); lv_obj_set_style_local_line_color(pageIndicatorBase, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, Colors::bgDark); lv_line_set_points(pageIndicatorBase, pageIndicatorBasePoints, 2); + SetPageIndicatorPosition(nCurrentScreen); +} +void PageIndicator::SetPageIndicatorPosition(uint8_t position) { const int16_t indicatorSize = LV_VER_RES / nScreens; - const int16_t indicatorPos = indicatorSize * nCurrentScreen; + const int16_t indicatorPos = indicatorSize * position; pageIndicatorPoints[0].x = LV_HOR_RES - 1; pageIndicatorPoints[0].y = indicatorPos; @@ -31,13 +34,7 @@ void PageIndicator::Create() { lv_line_set_points(pageIndicator, pageIndicatorPoints, 2); } -void PageIndicator::Delete() { - lv_obj_del(pageIndicatorBase); - lv_obj_del(pageIndicator); -} - void PageIndicator::SetCurrentScreen(uint8_t nScreen) { - Delete(); - nCurrentScreen = nScreen; - Create(); + lv_obj_del(pageIndicator); + SetPageIndicatorPosition(nScreen); } diff --git a/src/displayapp/widgets/PageIndicator.h b/src/displayapp/widgets/PageIndicator.h index 1829bb37..b9d3117b 100644 --- a/src/displayapp/widgets/PageIndicator.h +++ b/src/displayapp/widgets/PageIndicator.h @@ -8,10 +8,10 @@ namespace Pinetime { public: PageIndicator(uint8_t nCurrentScreen, uint8_t nScreens); void Create(); - void Delete(); void SetCurrentScreen(uint8_t nScreen); private: + void SetPageIndicatorPosition(uint8_t position); uint8_t nCurrentScreen; uint8_t nScreens; |
