Baseline for testing

Committer:
foxbrianr
Date:
Thu Jul 25 00:42:49 2019 +0000
Revision:
3:8395f7ab6d3e
Parent:
1:84d263c8932d
Baseline for testing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pyeh9 0:577f0ec71f4c 1 #include "mbed.h"
pyeh9 0:577f0ec71f4c 2 #include "Menu.h"
pyeh9 0:577f0ec71f4c 3 #include "Selection.h"
pyeh9 0:577f0ec71f4c 4
foxbrianr 3:8395f7ab6d3e 5 Menu::Menu(char *id) : menuID(id), parent(NULL),update_needed(1)
foxbrianr 3:8395f7ab6d3e 6 {
foxbrianr 3:8395f7ab6d3e 7 selections.clear();
foxbrianr 3:8395f7ab6d3e 8 }
foxbrianr 3:8395f7ab6d3e 9
foxbrianr 3:8395f7ab6d3e 10 Menu::Menu(string id) : menuID(id), parent(NULL),update_needed(1)
pyeh9 0:577f0ec71f4c 11 {
pyeh9 0:577f0ec71f4c 12 selections.clear();
pyeh9 0:577f0ec71f4c 13 }
pyeh9 0:577f0ec71f4c 14
pyeh9 0:577f0ec71f4c 15 void Menu::add(const Selection &toAdd)
pyeh9 0:577f0ec71f4c 16 {
pyeh9 0:577f0ec71f4c 17 selections.push_back(toAdd);
pyeh9 0:577f0ec71f4c 18 }
pyeh9 0:577f0ec71f4c 19
pyeh9 0:577f0ec71f4c 20
foxbrianr 3:8395f7ab6d3e 21 void Menu::select(void)
foxbrianr 3:8395f7ab6d3e 22 {
foxbrianr 3:8395f7ab6d3e 23 }
foxbrianr 3:8395f7ab6d3e 24
foxbrianr 3:8395f7ab6d3e 25 void Menu::display(LCD * lcd)
foxbrianr 3:8395f7ab6d3e 26 {
foxbrianr 3:8395f7ab6d3e 27 lcd->writeLine(0,"Default Menu");
foxbrianr 3:8395f7ab6d3e 28 #if 0
foxbrianr 3:8395f7ab6d3e 29 for ( int i=0; i< lcd->rows();i++)
foxbrianr 3:8395f7ab6d3e 30 {
foxbrianr 3:8395f7ab6d3e 31 if ( i < selections.size())
foxbrianr 3:8395f7ab6d3e 32 {
foxbrianr 3:8395f7ab6d3e 33 //if (i==cursorLine) {
foxbrianr 3:8395f7ab6d3e 34 // lcd->character(i,0,'>');
foxbrianr 3:8395f7ab6d3e 35 //}
foxbrianr 3:8395f7ab6d3e 36 fprintf(stdout, "(%d) i = %s\n\r", selections[i].getText());
foxbrianr 3:8395f7ab6d3e 37 lcd->writeLine(i,selections[i].getText());
foxbrianr 3:8395f7ab6d3e 38 }
foxbrianr 3:8395f7ab6d3e 39 }
foxbrianr 3:8395f7ab6d3e 40 #endif
foxbrianr 3:8395f7ab6d3e 41 }
foxbrianr 3:8395f7ab6d3e 42
foxbrianr 3:8395f7ab6d3e 43
foxbrianr 3:8395f7ab6d3e 44 void Menu::moveUp()
foxbrianr 3:8395f7ab6d3e 45 {
foxbrianr 3:8395f7ab6d3e 46 cursorLine--;
foxbrianr 3:8395f7ab6d3e 47 if (cursorLine < 0 ) {
foxbrianr 3:8395f7ab6d3e 48 cursorLine = lcd->rows() -1 ;
foxbrianr 3:8395f7ab6d3e 49 //if (top > 0 ) top -=4; // page menu if needed
foxbrianr 3:8395f7ab6d3e 50 }
foxbrianr 3:8395f7ab6d3e 51
foxbrianr 3:8395f7ab6d3e 52
foxbrianr 3:8395f7ab6d3e 53 if(cursorPos > 0)
foxbrianr 3:8395f7ab6d3e 54 {
foxbrianr 3:8395f7ab6d3e 55 cursorPos--;
foxbrianr 3:8395f7ab6d3e 56 }
foxbrianr 3:8395f7ab6d3e 57
foxbrianr 3:8395f7ab6d3e 58 printCursor();
foxbrianr 3:8395f7ab6d3e 59 //printMenu();
foxbrianr 3:8395f7ab6d3e 60
foxbrianr 3:8395f7ab6d3e 61
foxbrianr 3:8395f7ab6d3e 62 printf ("UP:%d %d ", cursorLine , cursorPos );
foxbrianr 3:8395f7ab6d3e 63 }
foxbrianr 3:8395f7ab6d3e 64
foxbrianr 3:8395f7ab6d3e 65 void Menu::moveDown()
foxbrianr 3:8395f7ab6d3e 66 {
foxbrianr 3:8395f7ab6d3e 67
foxbrianr 3:8395f7ab6d3e 68 cursorLine++;
foxbrianr 3:8395f7ab6d3e 69 if (cursorLine >= lcd->rows() ) {
foxbrianr 3:8395f7ab6d3e 70 cursorLine = 0;
foxbrianr 3:8395f7ab6d3e 71 //if (top < activeMenu->selections.size() ) top +=4; // page menu if needed
foxbrianr 3:8395f7ab6d3e 72 }
foxbrianr 3:8395f7ab6d3e 73
foxbrianr 3:8395f7ab6d3e 74 if(cursorPos < selections.size()){
foxbrianr 3:8395f7ab6d3e 75 cursorPos++;
foxbrianr 3:8395f7ab6d3e 76 }
foxbrianr 3:8395f7ab6d3e 77
foxbrianr 3:8395f7ab6d3e 78 printCursor();
foxbrianr 3:8395f7ab6d3e 79 //printMenu();
foxbrianr 3:8395f7ab6d3e 80
foxbrianr 3:8395f7ab6d3e 81 printf ("DOWN:%d %d ",
foxbrianr 3:8395f7ab6d3e 82 cursorLine , cursorPos );
foxbrianr 3:8395f7ab6d3e 83 }
foxbrianr 3:8395f7ab6d3e 84
foxbrianr 3:8395f7ab6d3e 85 void Menu::pressMode()
foxbrianr 3:8395f7ab6d3e 86 {
foxbrianr 3:8395f7ab6d3e 87
foxbrianr 3:8395f7ab6d3e 88 }
foxbrianr 3:8395f7ab6d3e 89
foxbrianr 3:8395f7ab6d3e 90 void Menu::pressSet()
foxbrianr 3:8395f7ab6d3e 91 {
foxbrianr 3:8395f7ab6d3e 92
foxbrianr 3:8395f7ab6d3e 93 }
foxbrianr 3:8395f7ab6d3e 94
foxbrianr 3:8395f7ab6d3e 95 void Menu::pressUp()
foxbrianr 3:8395f7ab6d3e 96 {
foxbrianr 3:8395f7ab6d3e 97
foxbrianr 3:8395f7ab6d3e 98 }
foxbrianr 3:8395f7ab6d3e 99
foxbrianr 3:8395f7ab6d3e 100 void Menu::pressDown()
foxbrianr 3:8395f7ab6d3e 101 {
foxbrianr 3:8395f7ab6d3e 102
foxbrianr 3:8395f7ab6d3e 103 }
foxbrianr 3:8395f7ab6d3e 104
foxbrianr 3:8395f7ab6d3e 105
foxbrianr 3:8395f7ab6d3e 106 void Menu::pressClear()
foxbrianr 3:8395f7ab6d3e 107 {
foxbrianr 3:8395f7ab6d3e 108
foxbrianr 3:8395f7ab6d3e 109 }
foxbrianr 3:8395f7ab6d3e 110
foxbrianr 3:8395f7ab6d3e 111
foxbrianr 3:8395f7ab6d3e 112 void Menu::printMenu()
foxbrianr 3:8395f7ab6d3e 113 {
foxbrianr 3:8395f7ab6d3e 114 for (int i=0;i<lcd->rows();i++)
foxbrianr 3:8395f7ab6d3e 115 {
foxbrianr 3:8395f7ab6d3e 116 if ((i) < selections.size())
foxbrianr 3:8395f7ab6d3e 117 {
foxbrianr 3:8395f7ab6d3e 118 lcd->writeLine(i,selections[i].selText);
foxbrianr 3:8395f7ab6d3e 119 }
foxbrianr 3:8395f7ab6d3e 120 else
foxbrianr 3:8395f7ab6d3e 121 {
foxbrianr 3:8395f7ab6d3e 122 lcd->writeLine(i,"");
foxbrianr 3:8395f7ab6d3e 123 }
foxbrianr 3:8395f7ab6d3e 124 }
foxbrianr 3:8395f7ab6d3e 125
foxbrianr 3:8395f7ab6d3e 126 lcd->dump(NULL);
foxbrianr 3:8395f7ab6d3e 127 }
foxbrianr 3:8395f7ab6d3e 128
foxbrianr 3:8395f7ab6d3e 129 void Menu::printCursor()
foxbrianr 3:8395f7ab6d3e 130 {
foxbrianr 3:8395f7ab6d3e 131
foxbrianr 3:8395f7ab6d3e 132 for(int i=0;i<lcd->rows();i++)
foxbrianr 3:8395f7ab6d3e 133 {
foxbrianr 3:8395f7ab6d3e 134 lcd->locate(i,0);
foxbrianr 3:8395f7ab6d3e 135
foxbrianr 3:8395f7ab6d3e 136 if (i==cursorLine) {
foxbrianr 3:8395f7ab6d3e 137 lcd->character(i,0,'>');
foxbrianr 3:8395f7ab6d3e 138 }
foxbrianr 3:8395f7ab6d3e 139 else
foxbrianr 3:8395f7ab6d3e 140 {
foxbrianr 3:8395f7ab6d3e 141 lcd->character(i,0,' ');
foxbrianr 3:8395f7ab6d3e 142 }
foxbrianr 3:8395f7ab6d3e 143 }
foxbrianr 3:8395f7ab6d3e 144
foxbrianr 3:8395f7ab6d3e 145 lcd->dump(NULL);
foxbrianr 3:8395f7ab6d3e 146
foxbrianr 3:8395f7ab6d3e 147 }