summaryrefslogtreecommitdiff
path: root/src/DisplayApp/Screens/Screen.h
blob: dbf81a440b5ad761d17215b843adde2b4cedde8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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;
      };
    }
  }
}