File tree Expand file tree Collapse file tree 4 files changed +34
-32
lines changed Expand file tree Collapse file tree 4 files changed +34
-32
lines changed Original file line number Diff line number Diff line change 11name =ArduinoMenu library
2- version =4.10.2
2+ version =4.10.3
33author =Rui Azevedo,
[email protected] 44maintainer =neu-rah,
[email protected] 55sentence =Generic menu/interactivity system
Original file line number Diff line number Diff line change @@ -62,6 +62,37 @@ Used outputsList::printMenu(navNode& nav) const {
6262 return 0 ;
6363}
6464
65+ result outputsList::idle (idleFunc f,idleEvent e,bool idleChanged) {
66+ #ifdef MENU_DEBUG
67+ if (!f) MENU_DEBUG_OUT<<" idleFunc is NULL!!!" <<endl;
68+ #endif
69+ if (!f) return proceed;
70+ for (int n=0 ;n<cnt;n++) {
71+ menuOut& o=*((menuOut*)memPtr (outs[n]));
72+ switch (e) {
73+ case idleStart:
74+ if ((*f)(o,e)==proceed) {
75+ if (!(o.style &menuOut::redraw)) {
76+ result r=(*f)(o,idling);
77+ if (r==quit) return r;
78+ }
79+ } else return quit;
80+ break ;
81+ case idling:
82+ if (idleChanged||o.style &menuOut::redraw) {
83+ result r=(*f)(o,e);
84+ if (r==quit) return r;
85+ }
86+ break ;
87+ case idleEnd:
88+ result r=(*f)(o,e);
89+ if (r==quit) return r;
90+ break ;
91+ }
92+ }
93+ return proceed;
94+ }
95+
6596// draw a menu preview on a panel
6697void menuOut::previewMenu (navRoot& root,menuNode& menu,idx_t panelNr) {
6798 trace (MENU_DEBUG_OUT<<" menuOut::previewMenu" <<endl);
Original file line number Diff line number Diff line change 204204 }
205205 void clear () {for (int n=0 ;n<cnt;n++) ((menuOut*)memPtr (outs[n]))->clear ();}
206206 void doNav (navCmd cmd,class navNode &nav) {for (int n=0 ;n<cnt;n++) ((menuOut*)memPtr (outs[n]))->doNav (cmd,nav);}
207- result idle (idleFunc f,idleEvent e) {
208- #ifdef MENU_DEBUG
209- if (!f) MENU_DEBUG_OUT<<" idleFunc is NULL!!!" <<endl;
210- #endif
211- if (!f) return proceed;
212- for (int n=0 ;n<cnt;n++) {
213- menuOut& o=*((menuOut*)memPtr (outs[n]));
214- switch (e) {
215- case idleStart:
216- if ((*f)(o,e)==proceed) {
217- if (!(o.style &menuOut::redraw)) {
218- result r=(*f)(o,idling);
219- if (r==quit) return r;
220- }
221- } else return quit;
222- break ;
223- case idling:
224- if (o.style &menuOut::redraw) {
225- result r=(*f)(o,e);
226- if (r==quit) return r;
227- }
228- break ;
229- case idleEnd:
230- result r=(*f)(o,e);
231- if (r==quit) return r;
232- break ;
233- }
234- }
235- return proceed;
236- }
207+ result idle (idleFunc f,idleEvent e,bool idleChanged=false );
237208 };
238209 }// namespace Menu
239210
Original file line number Diff line number Diff line change 150150 inline void doOutput () {
151151 if (!sleepTask) printMenu ();
152152 else {
153+ out.idle (sleepTask,idling,idleChanged);
153154 idleChanged=false ;// turn it off here so that sleepTask can force it on again
154- out.idle (sleepTask,idling);
155155 #ifdef MENU_IDLE_BKGND
156156 if (idleTask!=sleepTask) out.idle (idleTask,idling);
157157 #endif
You can’t perform that action at this time.
0 commit comments