diff options
author | Cristian Maglie <c.maglie@bug.st> | 2013-08-08 16:43:19 +0200 |
---|---|---|
committer | Cristian Maglie <c.maglie@bug.st> | 2013-08-08 16:43:19 +0200 |
commit | a8193ed933d9c9954cefbfb541cde56770ab5b74 (patch) | |
tree | 80796833fecca5d7426f1d09f7ac9870bab5f062 /libraries/Robot_Control/utility/VirtualKeyboard.cpp | |
parent | a4c9fee673342304a5b12f7f2f7f9ecb9cb26d30 (diff) | |
parent | 5527c44aa443b20d63cf7a276180a36695233924 (diff) |
Merge branch 'ide-1.5.x-library-to-new-format' into ide-1.5.x
Diffstat (limited to 'libraries/Robot_Control/utility/VirtualKeyboard.cpp')
-rw-r--r-- | libraries/Robot_Control/utility/VirtualKeyboard.cpp | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/libraries/Robot_Control/utility/VirtualKeyboard.cpp b/libraries/Robot_Control/utility/VirtualKeyboard.cpp deleted file mode 100644 index ad73c75..0000000 --- a/libraries/Robot_Control/utility/VirtualKeyboard.cpp +++ /dev/null @@ -1,127 +0,0 @@ -#include "VirtualKeyboard.h" - -int VirtualKeyboard::getColLin(int val){ - uint8_t col,lin; - lin=val/10; - col=val%10; // saving 36 bytes :( - /*if(0<=val && 9>=val){ - col=val; - lin=0; - }else if(10<=val && 19>=val){ - col=val-10; - lin=1; - }else if(20<=val && 29>=val){ - col=val-20; - lin=2; - }else if(30<=val && 39>=val){ - col=val-30; - lin=3; - }*/ - return (col<<8)+lin; //Put col and lin in one int -} -void VirtualKeyboard::run(){ -/** visually select a letter on the keyboard -* The selection boarder is 1px higher than the character, -* 1px on the bottom, 2px to the left and 2px to the right. -* -*/ - if(!onOff)return; - //Serial.println(onOff); - static int oldColLin=0; - uint8_t val=map(Robot.knobRead(),0,1023,0,38); - if(val==38)val=37; //The last value is jumpy when using batteries - int colLin=getColLin(val); - - if(oldColLin!=colLin){ - uint8_t x=(oldColLin>>8 & 0xFF)*11+10;//col*11+1+9 - uint8_t y=(oldColLin & 0xFF)*11+1+top;//lin*11+1+top - uint8_t w=9; - if(oldColLin==1795) //last item "Enter", col=7 lin=3 - w=33; //(5+1)*6-1+2+2 charWidth=5, charMargin=1, count("Enter")=6, lastItem_MarginRight=0, marginLeft==marginRight=2 - Robot.drawRect(x,y,w,9,hideColor); - - - x=(colLin>>8 & 0xFF)*11+10; - y=(colLin & 0xFF)*11+1+top; - w=9; - if(colLin==1795) //last item "Enter", col=7 lin=3 - w=33; //(5+1)*6-1+2+2 charWidth=5, charMargin=1, count("Enter")=6, lastItem_MarginRight=0, marginLeft==marginRight=2 - Robot.drawRect(x,y,w,9,showColor); - oldColLin=colLin; - } -} - -char VirtualKeyboard::getSelection(){ - if(!onOff)return -1; - - uint8_t val=map(Robot.knobRead(),0,1023,0,38); - if(0<=val && 9>=val) - val='0'+val; - else if(10<=val && 35>=val) - val='A'+val-10; - else if(val==36) - val=' '; - else if(val>=37) - val='\0'; - - return val; -} -void VirtualKeyboard::hide(){ - onOff=false; - Robot.fillRect(0,top,128,44,hideColor);//11*4 -} - -void VirtualKeyboard::display(uint8_t top, uint16_t showColor, uint16_t hideColor){ -/** Display the keyboard at y position of top -* formular: -* When text size is 1, one character is 5*7 -* margin-left==margin-right==3, -* margin-top==margin-bottom==2, -* keyWidth=5+3+3==11, -* keyHeight=7+2+2==11, -* keyboard-margin-left=keyboard-margin-right==9 -* so character-x=11*col+9+3=11*col+12 -* character-y=11*lin+2+top -* -**/ - this->top=top; - this->onOff=true; - - this->showColor=showColor; - this->hideColor=hideColor; - - for(uint8_t i=0;i<36;i++){ - Robot.setCursor(i%10*11+12,2+top+i/10*11); - if(i<10) - Robot.print(char('0'+i)); - else - Robot.print(char(55+i));//'A'-10=55 - }//for saving 58 bytes :( - - /*for(int i=0;i<10;i++){ - Robot.setCursor(i*11+12,2+top);//11*0+2+top - Robot.print(char('0'+i));//line_1: 0-9 - } - for(int i=0;i<10;i++){ - Robot.setCursor(i*11+12,13+top);//11*1+2+top - Robot.print(char('A'+i));//line_2: A-J - } - for(int i=0;i<10;i++){ - Robot.setCursor(i*11+12,24+top);//11*2+2+top - Robot.print(char('K'+i));//line_3: K-T - } - for(int i=0;i<6;i++){ - Robot.setCursor(i*11+12,35+top);//11*3+2+top - Robot.print(char('U'+i));//line_4: U-Z - }*/ - //space and enter at the end of the last line. - Robot.setCursor(78,35+top);//6*11+12=78 - Robot.print('_');//_ - - Robot.setCursor(89,35+top);//7*11+12=89 - Robot.print("Enter");//enter -} - - - -VirtualKeyboard Vkey=VirtualKeyboard();
\ No newline at end of file |