diff options
| author | JF <jf@codingfield.com> | 2020-03-15 20:01:24 (GMT) |
|---|---|---|
| committer | JF <jf@codingfield.com> | 2020-03-15 20:01:24 (GMT) |
| commit | 8ed6ffaaf8d0ad681c4f84b89e4a72792edb5a8f (patch) | |
| tree | 594ce4ca20956b61bd796d8aabb64a1ae78c425e /src/DisplayApp/Screens | |
| parent | 2c55ab20b4f52d21a04e1d0ee049f7c4ca0196de (diff) | |
Add the possibility to the screen to handle a touch gesture.
A default action is taken if the current screen doesn't handle it.
Diffstat (limited to 'src/DisplayApp/Screens')
| -rw-r--r-- | src/DisplayApp/Screens/Brightness.cpp | 20 | ||||
| -rw-r--r-- | src/DisplayApp/Screens/Brightness.h | 2 | ||||
| -rw-r--r-- | src/DisplayApp/Screens/Screen.h | 4 |
3 files changed, 26 insertions, 0 deletions
diff --git a/src/DisplayApp/Screens/Brightness.cpp b/src/DisplayApp/Screens/Brightness.cpp index a87a62a..9e3416c 100644 --- a/src/DisplayApp/Screens/Brightness.cpp +++ b/src/DisplayApp/Screens/Brightness.cpp @@ -70,3 +70,23 @@ uint8_t Brightness::LevelToInt(Pinetime::Controllers::BrightnessController::Leve default : return 0; } } + +bool Brightness::OnTouchEvent(Pinetime::Applications::TouchEvents event) { + switch(event) { + case TouchEvents::SwipeLeft: + brightness.Lower(); + SetValue(); + return true; + case TouchEvents::SwipeRight: + brightness.Higher(); + SetValue(); + return true; + default: + return false; + } +} + +void Brightness::SetValue() { + lv_slider_set_value(slider, LevelToInt(brightness.Level()), LV_ANIM_OFF); + lv_label_set_text(slider_label, LevelToString(brightness.Level())); +} diff --git a/src/DisplayApp/Screens/Brightness.h b/src/DisplayApp/Screens/Brightness.h index 31861f8..37cbcd7 100644 --- a/src/DisplayApp/Screens/Brightness.h +++ b/src/DisplayApp/Screens/Brightness.h @@ -13,6 +13,7 @@ namespace Pinetime { ~Brightness() override; bool Refresh() override; bool OnButtonPushed() override; + bool OnTouchEvent(TouchEvents event) override; void OnValueChanged(); private: @@ -25,6 +26,7 @@ namespace Pinetime { const char* LevelToString(Controllers::BrightnessController::Levels level); uint8_t LevelToInt(Controllers::BrightnessController::Levels level); void SetValue(uint8_t value); + void SetValue(); }; } } diff --git a/src/DisplayApp/Screens/Screen.h b/src/DisplayApp/Screens/Screen.h index 6cbd41a..d890231 100644 --- a/src/DisplayApp/Screens/Screen.h +++ b/src/DisplayApp/Screens/Screen.h @@ -1,4 +1,5 @@ #pragma once +#include "../TouchEvents.h" namespace Pinetime { namespace Applications { @@ -15,6 +16,9 @@ namespace Pinetime { // Return false if the button hasn't been handled by the app, true if it has been handled virtual bool OnButtonPushed() { return false; } + // Return false if the event hasn't been handled by the app, true if it has been handled + virtual bool OnTouchEvent(TouchEvents event) { return false; } + protected: DisplayApp* app; }; |
