RSeries astromech firmware
MenuScreen.h
Go to the documentation of this file.
1 //
3 // Utility base class for menu selection screens
4 //
6 
7 class MenuScreen : public CommandScreen
8 {
9 public:
10  MenuScreen(ScreenID id, const char** menu, uint8_t siz) :
11  CommandScreen(sDisplay, id),
12  fMenu(menu),
13  fMenuCount(siz)
14  {}
15 
16  virtual void init() override
17  {
19  }
20 
21  virtual void render() override
22  {
24  {
25  sDisplay.invertDisplay(false);
26  sDisplay.clearDisplay();
27  sDisplay.setTextSize(2);
28  sDisplay.setCursor(0, 0);
29  sDisplay.println(fMenu[fCurrentItem]);
30  sDisplay.display();
32  }
33  }
34 
35  virtual void buttonUpPressed(bool repeat) override
36  {
38  }
39 
40  virtual void buttonDownPressed(bool repeat) override
41  {
43  }
44 
45  virtual void buttonLeftReleased() override
46  {
47  popScreen();
48  }
49 
50  virtual void buttonRightReleased() override
51  {
53  }
54 
55 protected:
56  const char** fMenu;
57  uint8_t fMenuCount;
58  int16_t fCurrentItem = 0;
59  int16_t fCurrentDisplayItem = -1;
60 };
61 
CommandScreen
Definition: CommandScreen.h:273
MenuScreen
Definition: MenuScreen.h:7
CommandScreen::buttonInReleased
virtual void buttonInReleased()
Definition: CommandScreen.h:336
MenuScreen::buttonUpPressed
virtual void buttonUpPressed(bool repeat) override
Definition: MenuScreen.h:35
MenuScreen::fMenu
const char ** fMenu
Definition: MenuScreen.h:56
MenuScreen::buttonRightReleased
virtual void buttonRightReleased() override
Definition: MenuScreen.h:50
MenuScreen::fMenuCount
uint8_t fMenuCount
Definition: MenuScreen.h:57
MenuScreen::buttonLeftReleased
virtual void buttonLeftReleased() override
Definition: MenuScreen.h:45
MenuScreen::buttonDownPressed
virtual void buttonDownPressed(bool repeat) override
Definition: MenuScreen.h:40
MenuScreen::init
virtual void init() override
Definition: MenuScreen.h:16
MenuScreen::fCurrentItem
int16_t fCurrentItem
Definition: MenuScreen.h:58
CommandScreen::popScreen
void popScreen()
Definition: CommandScreen.h:311
MenuScreen::render
virtual void render() override
Definition: MenuScreen.h:21
MenuScreen::fCurrentDisplayItem
int16_t fCurrentDisplayItem
Definition: MenuScreen.h:59
MenuScreen::MenuScreen
MenuScreen(ScreenID id, const char **menu, uint8_t siz)
Definition: MenuScreen.h:10