Refresh rework

This commit is contained in:
Riku Isokoski
2021-07-19 16:26:12 +03:00
parent 57b3397078
commit 97c761a5c7
72 changed files with 198 additions and 306 deletions

View File

@@ -2,6 +2,7 @@
#include <cstdint>
#include "../TouchEvents.h"
#include <lvgl/lvgl.h>
namespace Pinetime {
namespace Applications {
@@ -34,25 +35,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() {