Arduino menU-Ui magic 1.0
Arduino menu user interface library
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
34static const char * msgOptionsUp = " Up!";
35static const char * msgOptionsDn = " Dn!";
36
37class menuTextBox;
38class screenMenu;
39
40class menu;
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};
60 public:
61 bool state,statePrinted;
63 menuOptionOnOff(const char* text,bool initValue=false);
64 virtual bool refresh();
65 virtual bool pushRt();
66 virtual bool pushLt();
67};
73 public:
74 int state,statePrinted,_maxValue,_minValue,_step;
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};
85 public:
86 screenMenu* _menuDesti;
88 void run();
89 bool refresh();
90};
95 protected:
96 public:
98 bool autoRefresh = false;
99 unsigned int totalMenuOptions;
100 unsigned int offsetFromTop =0;
101 char titol[menuTextArrayLength];
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};
120class menu : public terminalParser{
121 protected:
123 unsigned int selectedMenuOption;
124 unsigned long nextEscBack = 0;
125 unsigned long nextRefresh = 0;
126 bool runningOption = false;
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:
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
157extern menu menuSystemOverTty;
158extern menu * menuSystemOverTtyP;
159#endif
Definition: menu.h:84
bool refresh()
Definition: menu.cpp:452
void run()
Definition: menu.cpp:445
Definition: menu.h:120
virtual void init(Stream *userSerialTerminal)
Definition: menu.cpp:36
bool msgTxtInputSimple(const char *prompt, char *result, unsigned int maxLength, unsigned int minLength=0)
Definition: menu.cpp:258
void show(unsigned int index)
Definition: menu.cpp:49
char charTmp
Definition: menu.h:122
bool msgYes(const char *text)
Definition: menu.cpp:219
virtual void cUU(unsigned int argc, int *argv)
Definition: menu.cpp:99
void refresh()
Definition: menu.cpp:171
unsigned int screenMenuOptions
Definition: menu.h:136
void run()
Parses the userTty, check user interaction or display query.
Definition: menu.cpp:182
virtual void cUB(unsigned int argc, int *argv)
Definition: menu.cpp:131
void msgSmallWait(const char *text)
Definition: menu.cpp:209
bool runningOption
Definition: menu.h:126
void addscreen(screenMenu *pantalla)
Definition: menu.cpp:155
virtual void cr()
Definition: menu.cpp:137
int activeScreenMenu
Definition: menu.h:127
unsigned int selectedMenuOption
Definition: menu.h:123
void setscreen(int targetScreenMenu, bool setWhereICame=true)
Definition: menu.cpp:165
void msgPause()
Definition: menu.cpp:252
unsigned long nextEscBack
Definition: menu.h:124
menu()
Definition: menu.cpp:34
screenMenu * pantalles[screenMenuMax]
Definition: menu.h:137
unsigned long nextRefresh
Definition: menu.h:125
int totalScreenMenus
Definition: menu.h:135
virtual void cUF(unsigned int argc, int *argv)
Definition: menu.cpp:126
void doBack()
Definition: menu.cpp:203
virtual void cUD(unsigned int argc, int *argv)
Definition: menu.cpp:113
Definition: menu.h:44
menuOption()
Definition: menu.cpp:32
bool autoRefresh
Definition: menu.h:53
virtual void run()
Definition: menu.cpp:21
virtual bool pushLt()
Definition: menu.cpp:24
virtual bool refresh()
Definition: menu.cpp:22
virtual bool pushRt()
Definition: menu.cpp:23
char text[menuTextArrayLength]
Definition: menu.h:48
Definition: menu.h:59
virtual bool refresh()
Definition: menu.cpp:377
virtual bool pushLt()
Definition: menu.cpp:394
virtual bool pushRt()
Definition: menu.cpp:390
menuOptionOnOff()
Definition: menu.cpp:367
Definition: menu.h:72
menuOptionRangeValue()
Definition: menu.cpp:398
virtual bool refresh()
Definition: menu.cpp:408
virtual bool pushLt()
Definition: menu.cpp:429
virtual bool pushRt()
Definition: menu.cpp:417
Definition: menu.h:94
virtual bool pushDn()
Definition: menu.cpp:326
virtual bool refreshMenu()
Definition: menu.cpp:309
unsigned int totalMenuOptions
Definition: menu.h:99
virtual bool pushUp()
Definition: menu.cpp:333
unsigned int offsetFromTop
Definition: menu.h:100
int whereICame
Definition: menu.h:97
virtual bool pushLt(unsigned int index)
Definition: menu.cpp:346
virtual bool pushRt(unsigned int index)
Definition: menu.cpp:340
virtual void run(unsigned int index)
Definition: menu.cpp:364
bool autoRefresh
Definition: menu.h:98
virtual void bye()
Definition: menu.cpp:363
menuOption * displayMenuOptionsPnt[menuOptionsMax]
Definition: menu.h:102
char titol[menuTextArrayLength]
Definition: menu.h:101
Definition: terminalParser.h:103
object and resources definitions for terminal parser library, Inheritable byte-by-byte string parser ...