Timer menu key strokes more logical now - cool arrows found in Adafruit fonts!!

This commit is contained in:
rljonesau 2019-03-16 10:54:50 +11:00
parent 82a4970823
commit 77265112ab
7 changed files with 85 additions and 60 deletions

View file

@ -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;
}
}

View file

@ -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:

View file

@ -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;

View file

@ -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) {

View file

@ -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

View file

@ -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); */
}
}

View file

@ -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;
}