summaryrefslogtreecommitdiff
path: root/src/DisplayApp/Screens/Screen.h
blob: 57b8ea2a87210374e12bdc9e2830b0c02f842225 (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
#pragma once

#include <Components/Gfx/Gfx.h>

namespace Pinetime {
  namespace Applications {
    class DisplayApp;
    namespace Screens {
      class Screen {
        public:
          enum class NextScreen {None, Clock, Menu, App};
          Screen(DisplayApp* app, Components::Gfx& gfx) : app{app}, gfx{gfx} {}
          virtual ~Screen() = default;
          virtual void Refresh(bool fullRefresh) = 0;
          NextScreen GetNextScreen() {return nextScreen;}
          virtual void OnButtonPushed() {};

        protected:
          DisplayApp* app;
          Components::Gfx& gfx;
          NextScreen nextScreen = NextScreen::None;
      };
    }
  }
}