Baseline for testing
Menu.cpp
- Committer:
- foxbrianr
- Date:
- 2019-07-25
- Revision:
- 3:8395f7ab6d3e
- Parent:
- 1:84d263c8932d
File content as of revision 3:8395f7ab6d3e:
#include "mbed.h" #include "Menu.h" #include "Selection.h" Menu::Menu(char *id) : menuID(id), parent(NULL),update_needed(1) { selections.clear(); } Menu::Menu(string id) : menuID(id), parent(NULL),update_needed(1) { selections.clear(); } void Menu::add(const Selection &toAdd) { selections.push_back(toAdd); } void Menu::select(void) { } void Menu::display(LCD * lcd) { lcd->writeLine(0,"Default Menu"); #if 0 for ( int i=0; i< lcd->rows();i++) { if ( i < selections.size()) { //if (i==cursorLine) { // lcd->character(i,0,'>'); //} fprintf(stdout, "(%d) i = %s\n\r", selections[i].getText()); lcd->writeLine(i,selections[i].getText()); } } #endif } void Menu::moveUp() { cursorLine--; if (cursorLine < 0 ) { cursorLine = lcd->rows() -1 ; //if (top > 0 ) top -=4; // page menu if needed } if(cursorPos > 0) { cursorPos--; } printCursor(); //printMenu(); printf ("UP:%d %d ", cursorLine , cursorPos ); } void Menu::moveDown() { cursorLine++; if (cursorLine >= lcd->rows() ) { cursorLine = 0; //if (top < activeMenu->selections.size() ) top +=4; // page menu if needed } if(cursorPos < selections.size()){ cursorPos++; } printCursor(); //printMenu(); printf ("DOWN:%d %d ", cursorLine , cursorPos ); } void Menu::pressMode() { } void Menu::pressSet() { } void Menu::pressUp() { } void Menu::pressDown() { } void Menu::pressClear() { } void Menu::printMenu() { for (int i=0;i<lcd->rows();i++) { if ((i) < selections.size()) { lcd->writeLine(i,selections[i].selText); } else { lcd->writeLine(i,""); } } lcd->dump(NULL); } void Menu::printCursor() { for(int i=0;i<lcd->rows();i++) { lcd->locate(i,0); if (i==cursorLine) { lcd->character(i,0,'>'); } else { lcd->character(i,0,' '); } } lcd->dump(NULL); }