From e33a83a81129e2337c16f7170e66f801dfc30fbc Mon Sep 17 00:00:00 2001 From: Steve Amor Date: Sun, 13 Jul 2025 07:20:40 +0100 Subject: Adds SetCurrentScreen method to page indicator --- src/displayapp/screens/Music.cpp | 9 +++------ src/displayapp/screens/Music.h | 3 +-- src/displayapp/widgets/PageIndicator.cpp | 6 ++++++ src/displayapp/widgets/PageIndicator.h | 1 + 4 files changed, 11 insertions(+), 8 deletions(-) (limited to 'src/displayapp') diff --git a/src/displayapp/screens/Music.cpp b/src/displayapp/screens/Music.cpp index ab9ac58e..89de86a7 100644 --- a/src/displayapp/screens/Music.cpp +++ b/src/displayapp/screens/Music.cpp @@ -127,7 +127,7 @@ Music::Music(Pinetime::Controllers::MusicService& music) : musicService(music) { lv_obj_set_width(txtTrack, LV_HOR_RES - 12); lv_label_set_text_static(txtTrack, ""); - page1Indicator.Create(); + pageIndicator.Create(); /** Init animation */ imgDisc = lv_img_create(lv_scr_act(), nullptr); @@ -255,11 +255,9 @@ bool Music::OnTouchEvent(Pinetime::Applications::TouchEvents event) { case TouchEvents::SwipeUp: { lv_obj_set_hidden(btnVolDown, false); lv_obj_set_hidden(btnVolUp, false); - lv_obj_set_hidden(btnNext, true); lv_obj_set_hidden(btnPrev, true); - page1Indicator.Delete(); - page2Indicator.Create(); + pageIndicator.SetCurrentScreen(1); return true; } case TouchEvents::SwipeDown: { @@ -268,8 +266,7 @@ bool Music::OnTouchEvent(Pinetime::Applications::TouchEvents event) { lv_obj_set_hidden(btnPrev, false); lv_obj_set_hidden(btnVolDown, true); lv_obj_set_hidden(btnVolUp, true); - page2Indicator.Delete(); - page1Indicator.Create(); + pageIndicator.SetCurrentScreen(0); return true; } return false; diff --git a/src/displayapp/screens/Music.h b/src/displayapp/screens/Music.h index c51c8039..3c371b85 100644 --- a/src/displayapp/screens/Music.h +++ b/src/displayapp/screens/Music.h @@ -83,8 +83,7 @@ namespace Pinetime { lv_task_t* taskRefresh; - Widgets::PageIndicator page1Indicator = Widgets::PageIndicator(0, 2); - Widgets::PageIndicator page2Indicator = Widgets::PageIndicator(1, 2); + Widgets::PageIndicator pageIndicator = Widgets::PageIndicator(0, 2); /** Watchapp */ }; diff --git a/src/displayapp/widgets/PageIndicator.cpp b/src/displayapp/widgets/PageIndicator.cpp index a7bcc53f..d8558678 100644 --- a/src/displayapp/widgets/PageIndicator.cpp +++ b/src/displayapp/widgets/PageIndicator.cpp @@ -35,3 +35,9 @@ void PageIndicator::Delete() { lv_obj_del(pageIndicatorBase); lv_obj_del(pageIndicator); } + +void PageIndicator::SetCurrentScreen(uint8_t nScreen) { + Delete(); + nCurrentScreen = nScreen; + Create(); +} diff --git a/src/displayapp/widgets/PageIndicator.h b/src/displayapp/widgets/PageIndicator.h index cc9d2088..1829bb37 100644 --- a/src/displayapp/widgets/PageIndicator.h +++ b/src/displayapp/widgets/PageIndicator.h @@ -9,6 +9,7 @@ namespace Pinetime { PageIndicator(uint8_t nCurrentScreen, uint8_t nScreens); void Create(); void Delete(); + void SetCurrentScreen(uint8_t nScreen); private: uint8_t nCurrentScreen; -- cgit v1.2.3-70-g09d2