summaryrefslogtreecommitdiff
path: root/src/displayapp/screens/Screen.h
diff options
context:
space:
mode:
authorJF002 <JF002@users.noreply.github.com>2021-08-28 16:39:48 +0200
committerGitHub <noreply@github.com>2021-08-28 16:39:48 +0200
commit2870d3ae6c00f127883e6cedecda328994b0fec7 (patch)
tree75c4b96ace962cbb965c2bdd0dd11137b471c5ac /src/displayapp/screens/Screen.h
parentfab49f8557ef8ff38fe4f607e33b18fb5a1aeb9a (diff)
parentc2fae47391f02b515c8d85a00ae1b7190bcd30a0 (diff)
Merge pull request #497 from Riksu9000/refresh_rework
Rework Refresh
Diffstat (limited to 'src/displayapp/screens/Screen.h')
-rw-r--r--src/displayapp/screens/Screen.h24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/displayapp/screens/Screen.h b/src/displayapp/screens/Screen.h
index 420f2015..ce5741b2 100644
--- a/src/displayapp/screens/Screen.h
+++ b/src/displayapp/screens/Screen.h
@@ -2,6 +2,7 @@
#include <cstdint>
#include "../TouchEvents.h"
+#include <lvgl/lvgl.h>
namespace Pinetime {
namespace Applications {
@@ -38,25 +39,20 @@ namespace Pinetime {
};
class Screen {
+ private:
+ virtual void Refresh() {
+ }
+
public:
explicit Screen(DisplayApp* app) : app {app} {
}
virtual ~Screen() = default;
- /**
- * Most of the time, apps only react to events (touch events, for example).
- * In this case you don't need to do anything in this method.
- *
- * For example, InfiniPaint does nothing in Refresh().
- * But, if you want to update your display periodically, draw an animation...
- * you cannot do it in a touch event handler because these handlers are not
- * called if the user does not touch the screen.
- *
- * That's why Refresh() is there: update the display periodically.
- *
- * @return false if the app can be closed, true if it must continue to run
- **/
- virtual bool Refresh() = 0;
+ static void RefreshTaskCallback(lv_task_t* task);
+
+ bool IsRunning() const {
+ return running;
+ }
/** @return false if the button hasn't been handled by the app, true if it has been handled */
virtual bool OnButtonPushed() {