aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteve Amor <steveamor@users.noreply.github.com>2025-07-18 18:45:56 +0100
committerJF <JF002@users.noreply.github.com>2025-11-04 21:46:23 +0100
commit101f9626e3e42c8edc180eccda2549b6fbba491f (patch)
tree1fea59f8723f26047c919298300baabd5e42f8a1 /src
parente33a83a81129e2337c16f7170e66f801dfc30fbc (diff)
Refactor pageindicator
Diffstat (limited to 'src')
-rw-r--r--src/displayapp/widgets/PageIndicator.cpp15
-rw-r--r--src/displayapp/widgets/PageIndicator.h2
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;