Release 1.01
Diff: Menu.cpp
- Revision:
- 3:8395f7ab6d3e
- Parent:
- 1:84d263c8932d
- Child:
- 4:7226c43320b5
diff -r 2654dc659298 -r 8395f7ab6d3e Menu.cpp --- a/Menu.cpp Tue Mar 05 21:24:37 2013 +0000 +++ b/Menu.cpp Thu Jul 25 00:42:49 2019 +0000 @@ -2,7 +2,12 @@ #include "Menu.h" #include "Selection.h" -Menu::Menu(char *id) : menuID(id) +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(); } @@ -13,3 +18,130 @@ } +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); + +}