ReelTwo
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
{
18
fCurrentDisplayItem
= -1;
19
}
20
21
virtual
void
render
()
override
22
{
23
if
(
fCurrentItem
!=
fCurrentDisplayItem
)
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();
31
fCurrentDisplayItem
=
fCurrentItem
;
32
}
33
}
34
35
virtual
void
buttonUpPressed
(
bool
repeat)
override
36
{
37
fCurrentItem
= (
fCurrentItem
> 0) ?
fCurrentItem
- 1 :
fMenuCount
- 1;
38
}
39
40
virtual
void
buttonDownPressed
(
bool
repeat)
override
41
{
42
fCurrentItem
= (
fCurrentItem
+ 1 <
fMenuCount
) ?
fCurrentItem
+ 1 : 0;
43
}
44
45
virtual
void
buttonLeftReleased
()
override
46
{
47
popScreen
();
48
}
49
50
virtual
void
buttonRightReleased
()
override
51
{
52
buttonInReleased
();
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
menus
utility
MenuScreen.h
Generated by
1.8.17