summaryrefslogtreecommitdiff
path: root/src/displayapp/screens
diff options
context:
space:
mode:
Diffstat (limited to 'src/displayapp/screens')
-rw-r--r--src/displayapp/screens/InfiniPaint.cpp12
-rw-r--r--src/displayapp/screens/Screen.h18
2 files changed, 21 insertions, 9 deletions
diff --git a/src/displayapp/screens/InfiniPaint.cpp b/src/displayapp/screens/InfiniPaint.cpp
index b340f5d8..312bb93a 100644
--- a/src/displayapp/screens/InfiniPaint.cpp
+++ b/src/displayapp/screens/InfiniPaint.cpp
@@ -7,9 +7,9 @@ using namespace Pinetime::Applications::Screens;
extern lv_font_t jetbrains_mono_extrabold_compressed;
extern lv_font_t jetbrains_mono_bold_20;
-InfiniPaint::InfiniPaint(Pinetime::Applications::DisplayApp *app, Pinetime::Components::LittleVgl& lvgl) : Screen(app), lvgl{lvgl} {
+InfiniPaint::InfiniPaint(Pinetime::Applications::DisplayApp *app, Pinetime::Components::LittleVgl &lvgl) : Screen(app), lvgl{lvgl} {
app->SetTouchMode(DisplayApp::TouchModes::Polling);
- std::fill(b, b+bufferSize, LV_COLOR_WHITE);
+ std::fill(b, b + bufferSize, LV_COLOR_WHITE);
}
InfiniPaint::~InfiniPaint() {
@@ -33,10 +33,10 @@ bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
bool InfiniPaint::OnTouchEvent(uint16_t x, uint16_t y) {
lv_area_t area;
- area.x1 = x-(width/2);
- area.y1 = y-(height/2);
- area.x2 = x+(width/2)-1;
- area.y2 = y+(height/2)-1;
+ area.x1 = x - (width / 2);
+ area.y1 = y - (height / 2);
+ area.x2 = x + (width / 2) - 1;
+ area.y2 = y + (height / 2) - 1;
lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::None);
lvgl.FlushDisplay(&area, b);
return true;
diff --git a/src/displayapp/screens/Screen.h b/src/displayapp/screens/Screen.h
index 0a17b4da..6b1d0eec 100644
--- a/src/displayapp/screens/Screen.h
+++ b/src/displayapp/screens/Screen.h
@@ -12,13 +12,25 @@ namespace Pinetime {
explicit Screen(DisplayApp* app) : app{app} {}
virtual ~Screen() = default;
- // Return false if the app can be closed, true if it must continue to run
+ /**
+ * 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;
- // Return false if the button hasn't been handled by the app, true if it has been handled
+ /** @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
+ /** @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; }
virtual bool OnTouchEvent(uint16_t x, uint16_t y) { return false; }