Arduino menU-Ui magic
1.0
Arduino menu user interface library
lib
cliSerialMenu
menu.h
Go to the documentation of this file.
1
13
#ifndef __menu__
14
#define __menu__
15
#include "
terminalParser.h
"
16
#include <Arduino.h>
17
18
//---------------------RESOURCES USAGE HERE
19
#ifndef screenMenuMax
20
#define screenMenuMax 4
// maximum screenMenu instances, displays of menuitems
21
#endif
22
#ifndef menuTextArrayLength
23
#define menuTextArrayLength 40
// Max caption length
24
#endif
25
#ifndef menuOptionsMax
26
#define menuOptionsMax 7
// maximum menu options allowed in memory for each screenMenu instance
27
#endif
28
#ifndef displayMenuOptionsDefault
29
#define displayMenuOptionsDefault 4
// the amount of menu options on the screen, always lower than screenMenuMax
30
#endif
31
32
#define menuTextLength (menuTextArrayLength-1)
33
34
static
const
char
* msgOptionsUp =
" Up!"
;
35
static
const
char
* msgOptionsDn =
" Dn!"
;
36
37
class
menuTextBox;
38
class
screenMenu
;
39
40
class
menu
;
44
class
menuOption
{
45
public
:
46
menuOption
();
47
menuOption
(
const
char
*
text
);
48
char
text
[menuTextArrayLength];
49
virtual
void
run
();
50
virtual
bool
refresh
();
51
virtual
bool
pushRt
();
52
virtual
bool
pushLt
();
53
bool
autoRefresh
=
true
;
54
};
59
class
menuOptionOnOff
:
public
menuOption
{
60
public
:
61
bool
state,statePrinted;
62
menuOptionOnOff
();
63
menuOptionOnOff
(
const
char
*
text
,
bool
initValue=
false
);
64
virtual
bool
refresh
();
65
virtual
bool
pushRt
();
66
virtual
bool
pushLt
();
67
};
72
class
menuOptionRangeValue
:
public
menuOption
{
73
public
:
74
int
state,statePrinted,_maxValue,_minValue,_step;
75
menuOptionRangeValue
();
76
menuOptionRangeValue
(
const
char
*
text
,
int
minVal,
int
maxVal,
int
initValue,
int
step=1);
77
virtual
bool
refresh
();
78
virtual
bool
pushRt
();
79
virtual
bool
pushLt
();
80
};
84
class
changeScreenMenuOption
:
public
menuOption
{
85
public
:
86
screenMenu
* _menuDesti;
87
changeScreenMenuOption
(
screenMenu
* menuDesti);
88
void
run
();
89
bool
refresh
();
90
};
94
class
screenMenu
{
95
protected
:
96
public
:
97
int
whereICame
;
98
bool
autoRefresh
=
false
;
99
unsigned
int
totalMenuOptions
;
100
unsigned
int
offsetFromTop
=0;
101
char
titol
[menuTextArrayLength];
102
menuOption
*
displayMenuOptionsPnt
[menuOptionsMax];
103
screenMenu
(
const
char
* text);
104
virtual
bool
pushUp
();
105
virtual
bool
pushDn
();
106
virtual
bool
pushRt
(
unsigned
int
index);
107
virtual
bool
pushLt
(
unsigned
int
index);
108
virtual
bool
addMenuOption(
menuOption
* menuoption);
109
virtual
bool
refreshMenu
();
110
virtual
void
run
(
unsigned
int
index);
111
virtual
void
bye
();
112
};
120
class
menu
:
public
terminalParser
{
121
protected
:
122
char
charTmp
;
123
unsigned
int
selectedMenuOption
;
124
unsigned
long
nextEscBack
= 0;
125
unsigned
long
nextRefresh
= 0;
126
bool
runningOption
=
false
;
127
int
activeScreenMenu
= -1;
128
void
show
(
unsigned
int
index);
129
virtual
void
cUU
(
unsigned
int
argc,
int
*argv);
130
virtual
void
cUD
(
unsigned
int
argc,
int
*argv);
131
virtual
void
cUF
(
unsigned
int
argc,
int
*argv);
132
virtual
void
cUB
(
unsigned
int
argc,
int
*argv);
133
virtual
void
cr
();
134
public
:
135
int
totalScreenMenus
= 0;
136
unsigned
int
screenMenuOptions
= displayMenuOptionsDefault;
137
screenMenu
*
pantalles
[screenMenuMax];
138
//------set up and initialization
139
menu
();
140
virtual
void
init
(Stream *userSerialTerminal);
141
void
addscreen
(
screenMenu
* pantalla);
142
//---------loop code
143
void
run
();
144
// public user interaction functions
145
bool
msgTxtInputSimple
(
const
char
* prompt,
char
* result,
unsigned
int
maxLength,
unsigned
int
minLength=0);
146
void
msgSmallWait
(
const
char
* text);
147
void
msgPause
(
const
char
* prompt);
148
bool
msgYes
(
const
char
* text);
149
void
msgPause
();
150
//---------not so used, rarely for public use
151
void
setscreen
(
int
targetScreenMenu,
bool
setWhereICame =
true
);
152
void
refresh
();
153
void
doBack
();
154
void
show
(
bool
resetCursor =
true
);
155
};
156
157
extern
menu
menuSystemOverTty;
158
extern
menu
* menuSystemOverTtyP;
159
#endif
changeScreenMenuOption
Definition:
menu.h:84
changeScreenMenuOption::refresh
bool refresh()
Definition:
menu.cpp:452
changeScreenMenuOption::run
void run()
Definition:
menu.cpp:445
menu
Definition:
menu.h:120
menu::init
virtual void init(Stream *userSerialTerminal)
Definition:
menu.cpp:36
menu::msgTxtInputSimple
bool msgTxtInputSimple(const char *prompt, char *result, unsigned int maxLength, unsigned int minLength=0)
Definition:
menu.cpp:258
menu::show
void show(unsigned int index)
Definition:
menu.cpp:49
menu::charTmp
char charTmp
Definition:
menu.h:122
menu::msgYes
bool msgYes(const char *text)
Definition:
menu.cpp:219
menu::cUU
virtual void cUU(unsigned int argc, int *argv)
Definition:
menu.cpp:99
menu::refresh
void refresh()
Definition:
menu.cpp:171
menu::screenMenuOptions
unsigned int screenMenuOptions
Definition:
menu.h:136
menu::run
void run()
Parses the userTty, check user interaction or display query.
Definition:
menu.cpp:182
menu::cUB
virtual void cUB(unsigned int argc, int *argv)
Definition:
menu.cpp:131
menu::msgSmallWait
void msgSmallWait(const char *text)
Definition:
menu.cpp:209
menu::runningOption
bool runningOption
Definition:
menu.h:126
menu::addscreen
void addscreen(screenMenu *pantalla)
Definition:
menu.cpp:155
menu::cr
virtual void cr()
Definition:
menu.cpp:137
menu::activeScreenMenu
int activeScreenMenu
Definition:
menu.h:127
menu::selectedMenuOption
unsigned int selectedMenuOption
Definition:
menu.h:123
menu::setscreen
void setscreen(int targetScreenMenu, bool setWhereICame=true)
Definition:
menu.cpp:165
menu::msgPause
void msgPause()
Definition:
menu.cpp:252
menu::nextEscBack
unsigned long nextEscBack
Definition:
menu.h:124
menu::menu
menu()
Definition:
menu.cpp:34
menu::pantalles
screenMenu * pantalles[screenMenuMax]
Definition:
menu.h:137
menu::nextRefresh
unsigned long nextRefresh
Definition:
menu.h:125
menu::totalScreenMenus
int totalScreenMenus
Definition:
menu.h:135
menu::cUF
virtual void cUF(unsigned int argc, int *argv)
Definition:
menu.cpp:126
menu::doBack
void doBack()
Definition:
menu.cpp:203
menu::cUD
virtual void cUD(unsigned int argc, int *argv)
Definition:
menu.cpp:113
menuOption
Definition:
menu.h:44
menuOption::menuOption
menuOption()
Definition:
menu.cpp:32
menuOption::autoRefresh
bool autoRefresh
Definition:
menu.h:53
menuOption::run
virtual void run()
Definition:
menu.cpp:21
menuOption::pushLt
virtual bool pushLt()
Definition:
menu.cpp:24
menuOption::refresh
virtual bool refresh()
Definition:
menu.cpp:22
menuOption::pushRt
virtual bool pushRt()
Definition:
menu.cpp:23
menuOption::text
char text[menuTextArrayLength]
Definition:
menu.h:48
menuOptionOnOff
Definition:
menu.h:59
menuOptionOnOff::refresh
virtual bool refresh()
Definition:
menu.cpp:377
menuOptionOnOff::pushLt
virtual bool pushLt()
Definition:
menu.cpp:394
menuOptionOnOff::pushRt
virtual bool pushRt()
Definition:
menu.cpp:390
menuOptionOnOff::menuOptionOnOff
menuOptionOnOff()
Definition:
menu.cpp:367
menuOptionRangeValue
Definition:
menu.h:72
menuOptionRangeValue::menuOptionRangeValue
menuOptionRangeValue()
Definition:
menu.cpp:398
menuOptionRangeValue::refresh
virtual bool refresh()
Definition:
menu.cpp:408
menuOptionRangeValue::pushLt
virtual bool pushLt()
Definition:
menu.cpp:429
menuOptionRangeValue::pushRt
virtual bool pushRt()
Definition:
menu.cpp:417
screenMenu
Definition:
menu.h:94
screenMenu::pushDn
virtual bool pushDn()
Definition:
menu.cpp:326
screenMenu::refreshMenu
virtual bool refreshMenu()
Definition:
menu.cpp:309
screenMenu::totalMenuOptions
unsigned int totalMenuOptions
Definition:
menu.h:99
screenMenu::pushUp
virtual bool pushUp()
Definition:
menu.cpp:333
screenMenu::offsetFromTop
unsigned int offsetFromTop
Definition:
menu.h:100
screenMenu::whereICame
int whereICame
Definition:
menu.h:97
screenMenu::pushLt
virtual bool pushLt(unsigned int index)
Definition:
menu.cpp:346
screenMenu::pushRt
virtual bool pushRt(unsigned int index)
Definition:
menu.cpp:340
screenMenu::run
virtual void run(unsigned int index)
Definition:
menu.cpp:364
screenMenu::autoRefresh
bool autoRefresh
Definition:
menu.h:98
screenMenu::bye
virtual void bye()
Definition:
menu.cpp:363
screenMenu::displayMenuOptionsPnt
menuOption * displayMenuOptionsPnt[menuOptionsMax]
Definition:
menu.h:102
screenMenu::titol
char titol[menuTextArrayLength]
Definition:
menu.h:101
terminalParser
Definition:
terminalParser.h:103
terminalParser.h
object and resources definitions for terminal parser library, Inheritable byte-by-byte string parser ...
Generated by
1.9.5