diff options
author | JF002 <JF002@users.noreply.github.com> | 2021-04-26 21:10:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-26 21:10:11 +0200 |
commit | 4706c99db4c1e05f9dd90f152f2dea08d8f22ab2 (patch) | |
tree | cf2bea6d67e8d91a7d6222b8e0b55a0075575003 /src/displayapp/screens/ScreenList.h | |
parent | e56ebb8bd621cc8838e86fa032d680a6e7a35ffc (diff) | |
parent | 69898545193a82f7d72c9f47c9d9de36167b157b (diff) |
Merge pull request #293 from Avamander/patch-5
Reformatted all the files according to clang-format style
Diffstat (limited to 'src/displayapp/screens/ScreenList.h')
-rw-r--r-- | src/displayapp/screens/ScreenList.h | 160 |
1 files changed, 79 insertions, 81 deletions
diff --git a/src/displayapp/screens/ScreenList.h b/src/displayapp/screens/ScreenList.h index 23bcd98b..73ea4610 100644 --- a/src/displayapp/screens/ScreenList.h +++ b/src/displayapp/screens/ScreenList.h @@ -10,100 +10,98 @@ namespace Pinetime { namespace Applications { namespace Screens { - enum class ScreenListModes {UpDown, RightLeft, LongPress}; - template <size_t N> - class ScreenList : public Screen { - public: + enum class ScreenListModes { UpDown, RightLeft, LongPress }; + template <size_t N> class ScreenList : public Screen { + public: + ScreenList(DisplayApp* app, + uint8_t initScreen, + std::array<std::function<std::unique_ptr<Screen>()>, N>&& screens, + ScreenListModes mode) + : Screen(app), initScreen {initScreen}, screens {std::move(screens)}, mode {mode}, current {this->screens[initScreen]()} { + screenIndex = initScreen; + } - ScreenList(DisplayApp* app, uint8_t initScreen, std::array<std::function<std::unique_ptr<Screen>()>, N>&& screens, ScreenListModes mode) - : Screen(app), initScreen{initScreen}, screens{std::move(screens)}, mode{mode}, current{this->screens[initScreen]()} { - screenIndex = initScreen; - } + ~ScreenList() override { + lv_obj_clean(lv_scr_act()); + } - ~ScreenList() override { - lv_obj_clean(lv_scr_act()); - } + bool Refresh() override { + running = current->Refresh(); + return running; + } - bool Refresh() override { - running = current->Refresh(); - return running; - } + bool OnTouchEvent(TouchEvents event) override { - bool OnTouchEvent(TouchEvents event) override { - - if ( mode == ScreenListModes::UpDown) { - switch (event) { - case TouchEvents::SwipeDown: - if (screenIndex > 0) { - current.reset(nullptr); - app->SetFullRefresh(DisplayApp::FullRefreshDirections::Down); - screenIndex--; - current = screens[screenIndex](); - return true; - } else { - return false; - } - - case TouchEvents::SwipeUp: - if (screenIndex < screens.size() - 1) { - current.reset(nullptr); - app->SetFullRefresh(DisplayApp::FullRefreshDirections::Up); - screenIndex++; - current = screens[screenIndex](); - } + if (mode == ScreenListModes::UpDown) { + switch (event) { + case TouchEvents::SwipeDown: + if (screenIndex > 0) { + current.reset(nullptr); + app->SetFullRefresh(DisplayApp::FullRefreshDirections::Down); + screenIndex--; + current = screens[screenIndex](); return true; - default: + } else { return false; - } - } else if ( mode == ScreenListModes::RightLeft) { - switch (event) { - case TouchEvents::SwipeRight: - if (screenIndex > 0) { - current.reset(nullptr); - app->SetFullRefresh(DisplayApp::FullRefreshDirections::None); - screenIndex--; - current = screens[screenIndex](); - return true; - } else { - return false; - } - - case TouchEvents::SwipeLeft: - if (screenIndex < screens.size() - 1) { - current.reset(nullptr); - app->SetFullRefresh(DisplayApp::FullRefreshDirections::None); - screenIndex++; - current = screens[screenIndex](); - } + } + + case TouchEvents::SwipeUp: + if (screenIndex < screens.size() - 1) { + current.reset(nullptr); + app->SetFullRefresh(DisplayApp::FullRefreshDirections::Up); + screenIndex++; + current = screens[screenIndex](); + } + return true; + default: + return false; + } + } else if (mode == ScreenListModes::RightLeft) { + switch (event) { + case TouchEvents::SwipeRight: + if (screenIndex > 0) { + current.reset(nullptr); + app->SetFullRefresh(DisplayApp::FullRefreshDirections::None); + screenIndex--; + current = screens[screenIndex](); return true; - default: + } else { return false; - } - } else if ( event == TouchEvents::LongTap ) { - if (screenIndex < screens.size() - 1) { - screenIndex++; - } else { - screenIndex = 0; - } - current.reset(nullptr); - app->SetFullRefresh(DisplayApp::FullRefreshDirections::None); - current = screens[screenIndex](); - return true; - } + } - return false; + case TouchEvents::SwipeLeft: + if (screenIndex < screens.size() - 1) { + current.reset(nullptr); + app->SetFullRefresh(DisplayApp::FullRefreshDirections::None); + screenIndex++; + current = screens[screenIndex](); + } + return true; + default: + return false; + } + } else if (event == TouchEvents::LongTap) { + if (screenIndex < screens.size() - 1) { + screenIndex++; + } else { + screenIndex = 0; + } + current.reset(nullptr); + app->SetFullRefresh(DisplayApp::FullRefreshDirections::None); + current = screens[screenIndex](); + return true; } - private: - - uint8_t initScreen = 0; - std::array<std::function<std::unique_ptr<Screen>()>, N> screens; - ScreenListModes mode = ScreenListModes::UpDown; + return false; + } - uint8_t screenIndex = 0; - std::unique_ptr<Screen> current; + private: + uint8_t initScreen = 0; + std::array<std::function<std::unique_ptr<Screen>()>, N> screens; + ScreenListModes mode = ScreenListModes::UpDown; - + uint8_t screenIndex = 0; + std::unique_ptr<Screen> current; }; } } |