summaryrefslogtreecommitdiff
path: root/src/displayapp/Screens/Screen.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/displayapp/Screens/Screen.h')
-rw-r--r--src/displayapp/Screens/Screen.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/displayapp/Screens/Screen.h b/src/displayapp/Screens/Screen.h
new file mode 100644
index 00000000..dbf81a44
--- /dev/null
+++ b/src/displayapp/Screens/Screen.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#include <cstdint>
+#include "../TouchEvents.h"
+
+namespace Pinetime {
+ namespace Applications {
+ class DisplayApp;
+ namespace Screens {
+ class Screen {
+ public:
+ Screen(DisplayApp* app) : app{app} {}
+ virtual ~Screen() = default;
+
+ // 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
+ 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; }
+ virtual bool OnTouchEvent(uint16_t x, uint16_t y) { return false; }
+
+ protected:
+ DisplayApp* app;
+ };
+ }
+ }
+}