Timer menu key strokes more logical now - cool arrows found in Adafruit fonts!!
This commit is contained in:
parent
82a4970823
commit
77265112ab
|
@ -26,6 +26,8 @@
|
|||
#include "../Utility/UtilClasses.h"
|
||||
#include "../Utility/NVStorage.h"
|
||||
|
||||
static unsigned char _testoStart = 1;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CExperimentalSettingsScreen
|
||||
|
@ -81,7 +83,7 @@ CExperimentalSettingsScreen::show()
|
|||
_printInverted(_display.xCentre(), 0, " Experimental ", true, eCentreJustify);
|
||||
_printMenuText(65, Line2, "Thermostat:", false, eRightJustify);
|
||||
_printMenuText(65, Line1, "Window:", false, eRightJustify);
|
||||
sprintf(msg, "%.1f`C", _window);
|
||||
sprintf(msg, "%.1f\367C", _window); // \367 is octal for Adafruit degree symbol
|
||||
_printMenuText(Column, Line1, msg, _rowSel == 1);
|
||||
switch(_thermoMode) {
|
||||
case 1:
|
||||
|
@ -98,6 +100,16 @@ CExperimentalSettingsScreen::show()
|
|||
int yPos = 53;
|
||||
int xPos = _display.xCentre();
|
||||
_printMenuText(xPos, yPos, "exit", _rowSel == 0, eCentreJustify);
|
||||
|
||||
// TESTO - dump Adafruit font
|
||||
char testo[17];
|
||||
for(int i=0; i<16; i++) {
|
||||
testo[i] = i+_testoStart;
|
||||
}
|
||||
testo[16] = 0;
|
||||
_printMenuText(0, Line3, testo);
|
||||
sprintf(testo, "\\%03o", _testoStart, _testoStart);
|
||||
_printMenuText(124, Line3, testo, _rowSel == 3, eRightJustify);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -147,7 +159,7 @@ CExperimentalSettingsScreen::keyHandler(uint8_t event)
|
|||
case 2:
|
||||
case 3:
|
||||
_rowSel++;
|
||||
UPPERLIMIT(_rowSel, 2);
|
||||
UPPERLIMIT(_rowSel, 3);
|
||||
break;
|
||||
case 4: // confirmed save
|
||||
_showStoringMessage();
|
||||
|
@ -191,5 +203,8 @@ CExperimentalSettingsScreen::_adjust(int dir)
|
|||
ROLLLOWERLIMIT(_thermoMode, 0, 2);
|
||||
ROLLUPPERLIMIT(_thermoMode, 2, 0);
|
||||
break;
|
||||
case 3: // font dump mode
|
||||
_testoStart += dir * 16;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -99,7 +99,7 @@ CFuelMixtureScreen::show()
|
|||
// navigation line
|
||||
yPos = 53;
|
||||
xPos = _display.xCentre();
|
||||
_printMenuText(xPos, yPos, "<- exit ->", _rowSel == 0, eCentreJustify);
|
||||
_printMenuText(xPos, yPos, "\021 exit \020", _rowSel == 0, eCentreJustify);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
|
|
|
@ -88,7 +88,7 @@ CHeaterSettingsScreen::show()
|
|||
// navigation line
|
||||
int yPos = 53;
|
||||
int xPos = _display.xCentre();
|
||||
_printMenuText(xPos, yPos, "<- exit ->", _rowSel == 0, eCentreJustify);
|
||||
_printMenuText(xPos, yPos, "\021 exit \020", _rowSel == 0, eCentreJustify);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -134,7 +134,9 @@ CHeaterSettingsScreen::animate()
|
|||
_printMenuText(Column, Line2, msg);
|
||||
}
|
||||
else {
|
||||
_printMenuText(xPos, Line2, "(");
|
||||
sprintf(msg, "(\365%d)", _fanSensor); // \365 is division character
|
||||
_printMenuText(xPos, Line2, msg);
|
||||
/* _printMenuText(xPos, Line2, "(\");
|
||||
xPos += 6;
|
||||
// .
|
||||
// draw old fashioned divide symbol -----
|
||||
|
@ -145,7 +147,7 @@ CHeaterSettingsScreen::animate()
|
|||
_display.drawPixel(xPos+2, Line2+barOfs+2, WHITE);
|
||||
xPos += 6;
|
||||
sprintf(msg, "%d)", _fanSensor);
|
||||
_printMenuText(xPos, Line2, msg);
|
||||
_printMenuText(xPos, Line2, msg);*/
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -70,8 +70,8 @@ CPrimingScreen::show()
|
|||
CRect extents;
|
||||
|
||||
int yPos = 53;
|
||||
// show next/prev screen navigation line
|
||||
_printMenuText(_display.xCentre(), yPos, "<- ->", _rowSel == 0, eCentreJustify);
|
||||
// show next/prev menu navigation line
|
||||
_printMenuText(_display.xCentre(), yPos, "\021 \020", _rowSel == 0, eCentreJustify);
|
||||
|
||||
yPos = 40;
|
||||
if(_rowSel == 1) {
|
||||
|
|
|
@ -144,8 +144,7 @@ CSetTimerScreen::show()
|
|||
// navigation line
|
||||
yPos = 53;
|
||||
xPos = _display.xCentre();
|
||||
//_printMenuText(xPos, yPos, "<- ->", _rowSel==0, eCentreJustify);
|
||||
_printMenuText(xPos, yPos, "<- return ->", _rowSel==0, eCentreJustify);
|
||||
_printMenuText(xPos, yPos, "\021 return \020", _rowSel==0, eCentreJustify);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -192,6 +191,10 @@ CSetTimerScreen::keyHandler(uint8_t event)
|
|||
case 0:
|
||||
_ScreenManager.prevMenu();
|
||||
break;
|
||||
case 1:
|
||||
_colSel--;
|
||||
ROLLLOWERLIMIT(_colSel, 0, 5);
|
||||
break;
|
||||
case 2:
|
||||
_colSel--;
|
||||
ROLLLOWERLIMIT(_colSel, 0, 6);
|
||||
|
@ -204,10 +207,10 @@ CSetTimerScreen::keyHandler(uint8_t event)
|
|||
case 0:
|
||||
_ScreenManager.nextMenu();
|
||||
break;
|
||||
// case 1:
|
||||
// _colSel++;
|
||||
// ROLLUPPERLIMIT(_colSel, 5, 0);
|
||||
// break;
|
||||
case 1:
|
||||
_colSel++;
|
||||
ROLLUPPERLIMIT(_colSel, 5, 0);
|
||||
break;
|
||||
case 2:
|
||||
_colSel++;
|
||||
ROLLUPPERLIMIT(_colSel, 6, 0);
|
||||
|
@ -216,16 +219,16 @@ CSetTimerScreen::keyHandler(uint8_t event)
|
|||
}
|
||||
// press UP
|
||||
if(event & key_Up) {
|
||||
switch(_rowSel) {
|
||||
case 0:
|
||||
_rowSel = 1;
|
||||
_colSel = 5;
|
||||
break;
|
||||
case 1:
|
||||
_colSel--;
|
||||
ROLLLOWERLIMIT(_colSel, 0, 5);
|
||||
break;
|
||||
}
|
||||
// switch(_rowSel) {
|
||||
// case 0:
|
||||
// _rowSel = 1;
|
||||
// _colSel = 5;
|
||||
// break;
|
||||
// // case 1:
|
||||
// // _colSel--;
|
||||
// // ROLLLOWERLIMIT(_colSel, 0, 5);
|
||||
// // break;
|
||||
// }
|
||||
}
|
||||
// press DOWN
|
||||
if(event & key_Down) {
|
||||
|
@ -234,10 +237,10 @@ CSetTimerScreen::keyHandler(uint8_t event)
|
|||
_rowSel = 1;
|
||||
_colSel = 0;
|
||||
break;
|
||||
case 1:
|
||||
_colSel++;
|
||||
ROLLUPPERLIMIT(_colSel, 5, 0);
|
||||
break;
|
||||
// case 1:
|
||||
// _colSel++;
|
||||
// ROLLUPPERLIMIT(_colSel, 5, 0);
|
||||
// break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -247,11 +250,14 @@ CSetTimerScreen::keyHandler(uint8_t event)
|
|||
bHeld = true;
|
||||
if(_rowSel == 1) {
|
||||
if(_colSel < 4) {
|
||||
if(event & key_Left) _adjust(-1);
|
||||
if(event & key_Right) _adjust(+1);
|
||||
if(event & key_Down) _adjust(-1);
|
||||
if(event & key_Up) _adjust(+1);
|
||||
// if(event & key_Left) _adjust(-1);
|
||||
// if(event & key_Right) _adjust(+1);
|
||||
}
|
||||
else if(_colSel == 4) {
|
||||
if(event & key_Right) {
|
||||
// if(event & key_Right) {
|
||||
if(event & key_Up) {
|
||||
_timerInfo.enabled &= 0x7f; // strip next day flag
|
||||
_rowSel = 2;
|
||||
_colSel = 0;
|
||||
|
@ -259,10 +265,6 @@ CSetTimerScreen::keyHandler(uint8_t event)
|
|||
}
|
||||
}
|
||||
if(_rowSel==2) {
|
||||
/* if(event & key_Right) {
|
||||
_rowSel = 1;
|
||||
_colSel = 4;
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -271,21 +273,20 @@ CSetTimerScreen::keyHandler(uint8_t event)
|
|||
int maskDOW = 0x01 << _colSel;
|
||||
|
||||
if(event & key_Left) {
|
||||
switch(_rowSel) {
|
||||
case 1:
|
||||
_adjust(-1);
|
||||
break;
|
||||
}
|
||||
// switch(_rowSel) {
|
||||
// case 1:
|
||||
// _adjust(-1);
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
|
||||
// released DOWN - can only leave adjustment by using OK (centre button)
|
||||
if(event & key_Down) {
|
||||
// adjust selected item
|
||||
switch(_rowSel) {
|
||||
/* case 0:
|
||||
_rowSel = 1;
|
||||
_colSel = 0;
|
||||
break;*/
|
||||
case 1:
|
||||
_adjust(-1);
|
||||
break;
|
||||
case 2:
|
||||
// adjust selected item
|
||||
_timerInfo.enabled ^= maskDOW;
|
||||
|
@ -294,21 +295,26 @@ CSetTimerScreen::keyHandler(uint8_t event)
|
|||
}
|
||||
}
|
||||
if(event & key_Right) {
|
||||
switch(_rowSel) {
|
||||
case 1:
|
||||
// adjust selected item
|
||||
_adjust(+1);
|
||||
break;
|
||||
}
|
||||
// switch(_rowSel) {
|
||||
// case 1:
|
||||
// // adjust selected item
|
||||
// _adjust(+1);
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
// released UP
|
||||
if(event & key_Up) {
|
||||
switch(_rowSel) {
|
||||
/* case 0:
|
||||
// move from screen navigation to field select & adjust
|
||||
case 0:
|
||||
_rowSel = 1;
|
||||
_colSel = 5;
|
||||
break;*/
|
||||
_colSel = 0;
|
||||
break;
|
||||
case 1:
|
||||
// prevent accidentally losing per day settings
|
||||
if(!(_colSel == 4 && (_timerInfo.enabled & 0x7F) != 0)) {
|
||||
_adjust(+1); // adjust selected item, unless in per day mode
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
// adjust selected item
|
||||
_timerInfo.enabled ^= maskDOW;
|
||||
|
@ -385,7 +391,7 @@ CSetTimerScreen::_printEnabledTimers()
|
|||
}
|
||||
else {
|
||||
if(_rowSel==1 && _colSel==4) {
|
||||
_printMenuText(xPos, yPos, "Hold RIGHT", true, eRightJustify);
|
||||
_printMenuText(xPos, yPos, "Hold UP", true, eRightJustify);
|
||||
}
|
||||
else {
|
||||
xPos -= 7 * dayWidth; // back step 7 day entries
|
||||
|
|
|
@ -83,7 +83,7 @@ CSettingsScreen::show()
|
|||
|
||||
int yPos = 53;
|
||||
int xPos = _display.xCentre();
|
||||
_printMenuText(xPos, yPos, "<- enter ->", true, eCentreJustify);
|
||||
_printMenuText(xPos, yPos, "\021 enter \020", true, eCentreJustify);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -124,7 +124,9 @@ CSettingsScreen::animate()
|
|||
else {
|
||||
int xPos = Column+6;
|
||||
_printMenuText(xPos, Line2, " "); // erase
|
||||
_printMenuText(xPos, Line2, "(");
|
||||
sprintf(msg, "(\365%d)", fanSensor); // \365 is division character
|
||||
_printMenuText(xPos, Line2, msg);
|
||||
/* _printMenuText(xPos, Line2, "(");
|
||||
xPos += 6;
|
||||
// .
|
||||
// draw old fashioned divide symbol -----
|
||||
|
@ -135,7 +137,7 @@ CSettingsScreen::animate()
|
|||
_display.drawPixel(xPos+2, Line2+barOfs+2, WHITE);
|
||||
xPos += 6;
|
||||
sprintf(msg, "%d)", fanSensor);
|
||||
_printMenuText(xPos, Line2, msg);
|
||||
_printMenuText(xPos, Line2, msg); */
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -95,8 +95,8 @@ CWiFiScreen::show()
|
|||
_printInverted(0, yPos, " WiFi Inactive ", true);
|
||||
}
|
||||
|
||||
// show next/prev screen navigation line
|
||||
_printMenuText(_display.xCentre(), 53, "<- ->", _rowSel == 0, eCentreJustify);
|
||||
// show next/prev menu navigation line
|
||||
_printMenuText(_display.xCentre(), 53, "\021 \020", _rowSel == 0, eCentreJustify);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue