class library for a TS Keyboard, then press enter and the values are stored and the keypad disappears.
Fork of F7_TSKeypad_MultiKey by
Diff: F7_TSKeyboard.cpp
- Revision:
- 1:a236c0568cdf
- Child:
- 2:c5532af8da08
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/F7_TSKeyboard.cpp Tue Jun 20 11:58:10 2017 +0000 @@ -0,0 +1,1425 @@ +#include "F7_TSKeyboard.h" +#include "mbed.h" + +F7_TSKeyboard::F7_TSKeyboard() +{ + btnsize = 35; + state = 0; + key = 0; + Caps = 0; + Func = 0; + + status = ts.Init(lcd.GetXSize(), lcd.GetYSize()); + if (status != TS_OK) + { + lcd.Clear(LCD_COLOR_RED); + lcd.SetBackColor(LCD_COLOR_RED); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE); + while(1); + } + else + { + OK = 1; + + } + + ticker.attach(callback(this, &F7_TSKeyboard::Detect_isr),0.01); +} + +void F7_TSKeyboard::Detect_isr() +{ + if(OK) + { + ts.GetState(&TS_State); + + if (TS_State.touchDetected) + { + + ///////////////////////check correct touch////////////////////////////////////////////////////////////// + if(TS_State.touchX[0]>= keypadstartX[0][0] && TS_State.touchX[0]<= keypadendX[0][0] && TS_State.touchY[0]>= keypadstartY[0][0] && TS_State.touchY[0]<= keypadendY[0][0] && keypad == 1) + { + correcttouch = 1; + button = 1; + if(button == key) + { + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[0][0], keypadstartY[0][0], btnsize, btnsize); + } + + } + else if(TS_State.touchX[0]>= keypadstartX[0][1] && TS_State.touchX[0]<= keypadendX[0][1] && TS_State.touchY[0]>= keypadstartY[0][1] && TS_State.touchY[0]<= keypadendY[0][1] && keypad == 1) + { + correcttouch = 1; + button = 2; + if(button == key) + { + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[0][1], keypadstartY[0][1], btnsize, btnsize); + } + } + else if(TS_State.touchX[0]>= keypadstartX[0][2] && TS_State.touchX[0]<= keypadendX[0][2] && TS_State.touchY[0]>= keypadstartY[0][2] && TS_State.touchY[0]<= keypadendY[0][2] && keypad == 1) + { + correcttouch = 1; + button = 3; + if(button == key) + { + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[0][2], keypadstartY[0][2], btnsize, btnsize); + } + } + else if(TS_State.touchX[0]>= keypadstartX[0][3] && TS_State.touchX[0]<= keypadendX[0][3] && TS_State.touchY[0]>= keypadstartY[0][3] && TS_State.touchY[0]<= keypadendY[0][3] && keypad == 1) + { + correcttouch = 1; + button = 4; + if(button == key) + { + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[0][3], keypadstartY[0][3], btnsize, btnsize); + } + } + else if(TS_State.touchX[0]>= keypadstartX[0][4] && TS_State.touchX[0]<= keypadendX[0][4] && TS_State.touchY[0]>= keypadstartY[0][4] && TS_State.touchY[0]<= keypadendY[0][4] && keypad == 1) + { + correcttouch = 1; + button = 5; + if(button == key) + { + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[0][4], keypadstartY[0][4], btnsize, btnsize); + } + } + else if(TS_State.touchX[0]>= keypadstartX[0][5] && TS_State.touchX[0]<= keypadendX[0][5] && TS_State.touchY[0]>= keypadstartY[0][5] && TS_State.touchY[0]<= keypadendY[0][5] && keypad == 1) + { + correcttouch = 1; + button = 6; + if(button == key) + { + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[0][5], keypadstartY[0][5], btnsize, btnsize); + } + } + else if(TS_State.touchX[0]>= keypadstartX[0][6] && TS_State.touchX[0]<= keypadendX[0][6] && TS_State.touchY[0]>= keypadstartY[0][6] && TS_State.touchY[0]<= keypadendY[0][6] && keypad == 1) + { + correcttouch = 1; + button = 7; + if(button == key) + { + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[0][6], keypadstartY[0][6], btnsize, btnsize); + } + } + else if(TS_State.touchX[0]>= keypadstartX[0][7] && TS_State.touchX[0]<= keypadendX[0][7] && TS_State.touchY[0]>= keypadstartY[0][7] && TS_State.touchY[0]<= keypadendY[0][7] && keypad == 1) + { + correcttouch = 1; + button = 8; + if(button == key) + { + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[0][7], keypadstartY[0][7], btnsize, btnsize); + } + } + else if(TS_State.touchX[0]>= keypadstartX[0][8] && TS_State.touchX[0]<= keypadendX[0][8] && TS_State.touchY[0]>= keypadstartY[0][8] && TS_State.touchY[0]<= keypadendY[0][8] && keypad == 1) + { + correcttouch = 1; + button = 9; + if(button == key) + { + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[0][8], keypadstartY[0][8], btnsize, btnsize); + } + } + else if(TS_State.touchX[0]>= keypadstartX[0][9] && TS_State.touchX[0]<= keypadendX[0][9] && TS_State.touchY[0]>= keypadstartY[0][9] && TS_State.touchY[0]<= keypadendY[0][9] && keypad == 1) + { + correcttouch = 1; + button = 10; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[0][9], keypadstartY[0][9], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[1][0] && TS_State.touchX[0]<= keypadendX[1][0] && TS_State.touchY[0]>= keypadstartY[1][0] && TS_State.touchY[0]<= keypadendY[1][0] && keypad == 1) + { + correcttouch = 1; + button = 11; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[1][0], keypadstartY[1][0], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[1][1] && TS_State.touchX[0]<= keypadendX[1][1] && TS_State.touchY[0]>= keypadstartY[1][1] && TS_State.touchY[0]<= keypadendY[1][1] && keypad == 1) + { + correcttouch = 1; + button = 12; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[1][1], keypadstartY[1][1], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[1][2] && TS_State.touchX[0]<= keypadendX[1][2] && TS_State.touchY[0]>= keypadstartY[1][2] && TS_State.touchY[0]<= keypadendY[1][2] && keypad == 1) + { + correcttouch = 1; + button = 13; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[1][2], keypadstartY[1][2], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[1][3] && TS_State.touchX[0]<= keypadendX[1][3] && TS_State.touchY[0]>= keypadstartY[1][3] && TS_State.touchY[0]<= keypadendY[1][3] && keypad == 1) + { + correcttouch = 1; + button = 14; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[1][3], keypadstartY[1][3], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[1][4] && TS_State.touchX[0]<= keypadendX[1][4] && TS_State.touchY[0]>= keypadstartY[1][4] && TS_State.touchY[0]<= keypadendY[1][4] && keypad == 1) + { + correcttouch = 1; + button = 15; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[1][4], keypadstartY[1][4], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[1][5] && TS_State.touchX[0]<= keypadendX[1][5] && TS_State.touchY[0]>= keypadstartY[1][5] && TS_State.touchY[0]<= keypadendY[1][5] && keypad == 1) + { + correcttouch = 1; + button = 16; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[1][5], keypadstartY[1][5], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[1][6] && TS_State.touchX[0]<= keypadendX[1][6] && TS_State.touchY[0]>= keypadstartY[1][6] && TS_State.touchY[0]<= keypadendY[1][6] && keypad == 1) + { + correcttouch = 1; + button = 17; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[1][6], keypadstartY[1][6], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[1][7] && TS_State.touchX[0]<= keypadendX[1][7] && TS_State.touchY[0]>= keypadstartY[1][7] && TS_State.touchY[0]<= keypadendY[1][7] && keypad == 1) + { + correcttouch = 1; + button = 18; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[1][7], keypadstartY[1][7], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[1][8] && TS_State.touchX[0]<= keypadendX[1][8] && TS_State.touchY[0]>= keypadstartY[1][8] && TS_State.touchY[0]<= keypadendY[1][8] && keypad == 1) + { + correcttouch = 1; + button = 19; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[1][8], keypadstartY[1][8], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[1][9] && TS_State.touchX[0]<= keypadendX[1][9] && TS_State.touchY[0]>= keypadstartY[1][9] && TS_State.touchY[0]<= keypadendY[1][9] && keypad == 1) + { + correcttouch = 1; + button = 20; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[1][9], keypadstartY[1][9], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[2][0] && TS_State.touchX[0]<= keypadendX[2][0] && TS_State.touchY[0]>= keypadstartY[2][0] && TS_State.touchY[0]<= keypadendY[2][0] && keypad == 1) + { + correcttouch = 1; + button = 21; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[2][0], keypadstartY[2][0], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[2][1] && TS_State.touchX[0]<= keypadendX[2][1] && TS_State.touchY[0]>= keypadstartY[2][1] && TS_State.touchY[0]<= keypadendY[2][1] && keypad == 1) + { + correcttouch = 1; + button = 22; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[2][1], keypadstartY[2][1], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[2][2] && TS_State.touchX[0]<= keypadendX[2][2] && TS_State.touchY[0]>= keypadstartY[2][2] && TS_State.touchY[0]<= keypadendY[2][2] && keypad == 1) + { + correcttouch = 1; + button = 23; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[2][2], keypadstartY[2][2], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[2][3] && TS_State.touchX[0]<= keypadendX[2][3] && TS_State.touchY[0]>= keypadstartY[2][3] && TS_State.touchY[0]<= keypadendY[2][3] && keypad == 1) + { + correcttouch = 1; + button = 24; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[2][3], keypadstartY[2][3], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[2][4] && TS_State.touchX[0]<= keypadendX[2][4] && TS_State.touchY[0]>= keypadstartY[2][4] && TS_State.touchY[0]<= keypadendY[2][4] && keypad == 1) + { + correcttouch = 1; + button = 25; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[2][4], keypadstartY[2][4], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[2][5] && TS_State.touchX[0]<= keypadendX[2][5] && TS_State.touchY[0]>= keypadstartY[2][5] && TS_State.touchY[0]<= keypadendY[2][5] && keypad == 1) + { + correcttouch = 1; + button = 26; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[2][5], keypadstartY[2][5], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[2][6] && TS_State.touchX[0]<= keypadendX[2][6] && TS_State.touchY[0]>= keypadstartY[2][6] && TS_State.touchY[0]<= keypadendY[2][6] && keypad == 1) + { + correcttouch = 1; + button = 27; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[2][6], keypadstartY[2][6], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[2][7] && TS_State.touchX[0]<= keypadendX[2][7] && TS_State.touchY[0]>= keypadstartY[2][7] && TS_State.touchY[0]<= keypadendY[2][7] && keypad == 1) + { + correcttouch = 1; + button = 28; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[2][7], keypadstartY[2][7], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[2][8] && TS_State.touchX[0]<= keypadendX[2][8] && TS_State.touchY[0]>= keypadstartY[2][8] && TS_State.touchY[0]<= keypadendY[2][8] && keypad == 1) + { + correcttouch = 1; + button = 29; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[2][8], keypadstartY[2][8], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[2][9] && TS_State.touchX[0]<= keypadendX[2][9] && TS_State.touchY[0]>= keypadstartY[2][9] && TS_State.touchY[0]<= keypadendY[2][9] && keypad == 1) + { + correcttouch = 1; + button = 30; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[2][9], keypadstartY[2][9], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][0] && TS_State.touchX[0]<= keypadendX[3][0] && TS_State.touchY[0]>= keypadstartY[3][0] && TS_State.touchY[0]<= keypadendY[3][0] && keypad == 1) + { + correcttouch = 1; + button = 31; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][0], keypadstartY[3][0], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][1] && TS_State.touchX[0]<= keypadendX[3][1] && TS_State.touchY[0]>= keypadstartY[3][1] && TS_State.touchY[0]<= keypadendY[3][1] && keypad == 1) + { + correcttouch = 1; + button = 32; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][1], keypadstartY[3][1], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][2] && TS_State.touchX[0]<= keypadendX[3][2] && TS_State.touchY[0]>= keypadstartY[3][2] && TS_State.touchY[0]<= keypadendY[3][2] && keypad == 1) + { + correcttouch = 1; + button = 33; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][2], keypadstartY[3][2], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][3] && TS_State.touchX[0]<= keypadendX[3][3] && TS_State.touchY[0]>= keypadstartY[3][3] && TS_State.touchY[0]<= keypadendY[3][3] && keypad == 1) + { + correcttouch = 1; + button = 34; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][3], keypadstartY[3][3], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][4] && TS_State.touchX[0]<= keypadendX[3][4] && TS_State.touchY[0]>= keypadstartY[3][4] && TS_State.touchY[0]<= keypadendY[3][4] && keypad == 1) + { + correcttouch = 1; + button = 35; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][4], keypadstartY[3][4], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][5] && TS_State.touchX[0]<= keypadendX[3][5] && TS_State.touchY[0]>= keypadstartY[3][5] && TS_State.touchY[0]<= keypadendY[3][5] && keypad == 1) + { + correcttouch = 1; + button = 36; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][5], keypadstartY[3][5], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][6] && TS_State.touchX[0]<= keypadendX[3][6] && TS_State.touchY[0]>= keypadstartY[3][6] && TS_State.touchY[0]<= keypadendY[3][6] && keypad == 1) + { + correcttouch = 1; + button = 37; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][6], keypadstartY[3][6], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][7] && TS_State.touchX[0]<= keypadendX[3][7] && TS_State.touchY[0]>= keypadstartY[3][7] && TS_State.touchY[0]<= keypadendY[3][7] && keypad == 1) + { + correcttouch = 1; + button = 38; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][7], keypadstartY[3][7], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][8] && TS_State.touchX[0]<= keypadendX[3][8] && TS_State.touchY[0]>= keypadstartY[3][8] && TS_State.touchY[0]<= keypadendY[3][8] && keypad == 1) + { + correcttouch = 1; + button = 39; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][8], keypadstartY[3][8], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][9] && TS_State.touchX[0]<= keypadendX[3][9] && TS_State.touchY[0]>= keypadstartY[3][9] && TS_State.touchY[0]<= keypadendY[3][9] && keypad == 1) + { + correcttouch = 1; + button = 40; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][9], keypadstartY[3][9], btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][2] && TS_State.touchX[0]<= keypadendX[3][2] + 190 && TS_State.touchY[0]>= keypadstartY[3][2] + 38 && TS_State.touchY[0]<= keypadendY[3][2] + 38 && keypad == 1) + { + correcttouch = 1; + button = 41; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][2], keypadstartY[3][2] + 38, 225, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][0] && TS_State.touchX[0]<= keypadendX[3][0] + 38 && TS_State.touchY[0]>= keypadstartY[3][0] + 38 && TS_State.touchY[0]<= keypadendY[3][0] + 38 && keypad == 1) + { + correcttouch = 1; + button = 42; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][0], keypadstartY[3][0] + 38, 73, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][8] && TS_State.touchX[0]<= keypadendX[3][8] && TS_State.touchY[0]>= keypadstartY[3][8] + 38 && TS_State.touchY[0]<= keypadendY[3][8] + 38 && keypad == 1) + { + correcttouch = 1; + button = 43; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][8], keypadstartY[3][8] + 38, btnsize, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[3][9] && TS_State.touchX[0]<= keypadendX[3][9] + 38 && TS_State.touchY[0]>= keypadstartY[3][9] + 38 && TS_State.touchY[0]<= keypadendY[3][9] + 38 && keypad == 1) + { + correcttouch = 1; + button = 44; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[3][9], keypadstartY[3][9] + 38, 73, btnsize); + } + else if(TS_State.touchX[0]>= keypadstartX[0][9] + 38 && TS_State.touchX[0]<= keypadendX[0][9] + 38 && TS_State.touchY[0]>= keypadstartY[0][9] && TS_State.touchY[0]<= keypadendY[0][9] + 38 && keypad == 1) + { + correcttouch = 1; + button = 45; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[0][9] + 38, keypadstartY[0][9], btnsize, 73); + } + else if(TS_State.touchX[0]>= keypadstartX[2][9] + 38 && TS_State.touchX[0]<= keypadendX[2][9] + 38 && TS_State.touchY[0]>= keypadstartY[2][9] && TS_State.touchY[0]<= keypadendY[2][9] + 38 && keypad == 1) + { + correcttouch = 1; + button = 46; + lcd.SetTextColor(LCD_COLOR_GRAY); + lcd.FillRect(keypadstartX[2][9] + 38, keypadstartY[2][9], btnsize, 73); + } + else + { + correcttouch = 0; + button = 0; + } + ////////////////////////////////////////////////////////////////////////////////////////////////////// + } + } +} + +void F7_TSKeyboard::getkeys(char str[]) +{ + uint8_t text2[40]; + + Bckclr = lcd.GetBackColor(); + Txtclr = lcd.GetTextColor(); + *FontSize = *lcd.GetFont(); + + lcd.ClearStringLine(0); + DrawKeypad(); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.FillRect(0, 0, 480, 20); + + while(Enter != 1) + { + wait(0.0001); + + switch(state) + {////////check if pressed on screen/////// + case 0: + { + if(TS_State.touchDetected) + { + frstprsx = TS_State.touchX[0]; + frstprsy = TS_State.touchY[0]; + state = 10; + } + //////////////////////////////////////// + }break; + ////////check if correctly pressed////////// + case 10: + { + for(b = 0; b < 10; b++) + { + for(a = 0; a < 4; a++) + { + if(frstprsx >= keypadstartX[a][b] && frstprsx <= keypadendX[a][b] && frstprsy >= keypadstartY[a][b] && frstprsy <= keypadendY[a][b] || frstprsx >= keypadstartX[3][2] && frstprsx <= keypadendX[3][2] + 190 && frstprsy >= keypadstartY[3][2] + 38 && frstprsy <= keypadendY[3][2] + 38 || frstprsx >= keypadstartX[3][0] && frstprsx <= keypadendX[3][0] + 38 && frstprsy >= keypadstartY[3][0] + 38 && frstprsy <= keypadendY[3][0] + 38 || frstprsx >= keypadstartX[3][8] && frstprsx <= keypadendX[3][8] && frstprsy >= keypadstartY[3][8] + 38 && frstprsy <= keypadendY[3][8] + 38 || frstprsx >= keypadstartX[3][9] && frstprsx <= keypadendX[3][9] + 38 && frstprsy >= keypadstartY[3][9] + 38 && frstprsy <= keypadendY[3][9] + 38 || frstprsx >= keypadstartX[0][9] + 38 && frstprsx <= keypadendX[0][9] + 38 && frstprsy >= keypadstartY[0][9] && frstprsy <= keypadendY[0][9] + 38 || frstprsx >= keypadstartX[2][9] + 38 && frstprsx <= keypadendX[2][9] + 38 && frstprsy >= keypadstartY[2][9] && frstprsy <= keypadendY[2][9] + 38) + { + state = 15; + correcttouch = 1; + key = button; + a = 9; + b = 9; + } + else + { + state = 30; + } + } + } + + }break; + case 15: + { + if(button == key && button != 0) + { + if(TS_State.touchDetected == 0) + { + DrawKeypad(); + state = 20; + } + } + else if(button != key || button == 0) + { + state = 30; + } + + }break; + ////////////button functions////////// + case 20: + { ////////button 1///////////// + if(button == 1) + { + if(Func == 1 && Caps == 0) + { + keypressed = '@'; + } + else + { + keypressed = '1'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 2) + { + if(Func == 1 && Caps == 0) + { + keypressed = '#'; + } + else + { + keypressed = '2'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 3) + { + if(Func == 1 && Caps == 0) + { + keypressed = '$'; + } + else + { + keypressed = '3'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 4) + { + if(Func == 1 && Caps == 0) + { + keypressed = '%'; + } + else + { + keypressed = '4'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 5) + { + if(Func == 1 && Caps == 0) + { + keypressed = 38; + } + else + { + keypressed = '5'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 6) + { + if(Func == 1 && Caps == 0) + { + keypressed = '*'; + } + else + { + keypressed = '6'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 7) + { + if(Func == 1 && Caps == 0) + { + keypressed = '('; + } + else + { + keypressed = '7'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 8) + { + if(Func == 1 && Caps == 0) + { + keypressed = ')'; + } + else + { + keypressed = '8'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 9) + { + if(Func == 1 && Caps == 0) + { + keypressed = '-'; + } + else + { + keypressed = '9'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 10) + { + if(Func == 1 && Caps == 0) + { + keypressed = '+'; + } + else + { + keypressed = '0'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 11) + { + if(Func == 1 && Caps == 0) + { + keypressed = '='; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'Q'; + } + else + { + keypressed = 'q'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 12) + { + if(Func == 1 && Caps == 0) + { + keypressed = '_'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'W'; + } + else + { + keypressed = 'w'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 13) + { + if(Func == 1 && Caps == 0) + { + keypressed = '^'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'E'; + } + else + { + keypressed = 'e'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 14) + { + if(Func == 1 && Caps == 0) + { + keypressed = ';'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'R'; + } + else + { + keypressed = 'r'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 15) + { + if(Func == 1 && Caps == 0) + { + keypressed = '"'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'T'; + } + else + { + keypressed = 't'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 16) + { + if(Func == 1 && Caps == 0) + { + keypressed = '\''; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'Y'; + } + else + { + keypressed = 'y'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 17) + { + if(Func == 1 && Caps == 0) + { + keypressed = '<'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'U'; + } + else + { + keypressed = 'u'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 18) + { + if(Func == 1 && Caps == 0) + { + keypressed = '>'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'I'; + } + else + { + keypressed = 'i'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 19) + { + if(Func == 1 && Caps == 0) + { + keypressed = '/'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'O'; + } + else + { + keypressed = 'o'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 20) + { + if(Func == 1 && Caps == 0) + { + keypressed = '\\'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'P'; + } + else + { + keypressed = 'p'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 21) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else + { + keypressed = ':'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 22) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'A'; + } + else + { + keypressed = 'a'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 23) + { + if(Func == 1 && Caps == 0) + { + keypressed = '`'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'S'; + } + else + { + keypressed = 's'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 24) + { + if(Func == 1 && Caps == 0) + { + keypressed = '~'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'D'; + } + else + { + keypressed = 'd'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 25) + { + if(Func == 1 && Caps == 0) + { + keypressed = '{'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'F'; + } + else + { + keypressed = 'f'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 26) + { + if(Func == 1 && Caps == 0) + { + keypressed = '}'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'G'; + } + else + { + keypressed = 'g'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 27) + { + if(Func == 1 && Caps == 0) + { + keypressed = '['; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'H'; + } + else + { + keypressed = 'h'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 28) + { + if(Func == 1 && Caps == 0) + { + keypressed = ']'; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'J'; + } + else + { + keypressed = 'j'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 29) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'K'; + } + else + { + keypressed = 'k'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 30) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'L'; + } + else + { + keypressed = 'l'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 31) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else + { + keypressed = ','; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 32) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else + { + keypressed = '!'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 33) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'Z'; + } + else + { + keypressed = 'z'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 34) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'X'; + } + else + { + keypressed = 'x'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 35) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'C'; + } + else + { + keypressed = 'c'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 36) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'V'; + } + else + { + keypressed = 'v'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 37) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'B'; + } + else + { + keypressed = 'b'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 38) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'N'; + } + else + { + keypressed = 'n'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 39) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else if(Caps == 1 && Func == 0) + { + keypressed = 'M'; + } + else + { + keypressed = 'm'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 40) + { + if(Func == 1 && Caps == 0) + { + keypressed = ' '; + } + else + { + keypressed = '?'; + } + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 41) + { + keypressed = ' '; + m++; + textx += 12; + + str[m] = keypressed; + + m -= 1; + textx -= 12; + + str[m] = keypressed; + + m++; + textx += 12; + + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 42) + { + if(Func != 1) + { + keypressed = ' '; + Caps = !Caps; + Func = 0; + DrawKeypad(); + a = 0; + b = 0; + correcttouch = 0; + } + state = 0; + } + else if(button == 43) + { + keypressed = '.'; + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 44) + { + keypressed = ' '; + Func = !Func; + Caps = 0; + DrawKeypad(); + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 45) + { + keypressed = ' '; + + if(m != 0 || textx != 0) + { + m -= 1; + textx -= 12; + } + + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else if(button == 46) + { + keypressed = '\0'; + Enter = 1; + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + else + { + state = 0; + } + + str[m] = keypressed; + + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetFont(&Font20); + sprintf((char*)text2, "%c", str[m]); + lcd.DisplayStringAt(0 + textx, LINE(0), (uint8_t *)&text2, LEFT_MODE); + + if(keypressed != ' ') + { + m++; + textx += 12; + } + + key = 0; + keypressed = ' '; + + }break; + case 30: + { + if(keypad == 1) + { + DrawKeypad(); + keypad = 0; + } + + if(TS_State.touchDetected == 0) + { + DrawKeypad(); + a = 0; + b = 0; + correcttouch = 0; + state = 0; + } + }break; + } + } + + keypad = 0; + Enter = 0; + m = 0; + textx = 0; + state = 0; + Caps = 0; + Func = 0; + lcd.ClearStringLine(0); + lcd.SetTextColor(Bckclr); + lcd.FillRect(0, 0, 480, 20); + lcd.FillRect(keypadstartX[0][0],keypadstartY[0][0], 415, 187); + lcd.SetTextColor(Txtclr); + lcd.SetBackColor(Bckclr); + lcd.SetFont(FontSize); +} + +void F7_TSKeyboard::DrawKeypad() +{ + int i, o, stepx = 0, stepy = 0, Drawpointx, Drawpointy; + uint8_t text[30]; + + + char keyboard1[4][10] = { + {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'}, + {'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'}, + {':', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'}, + {',', '!', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '?'} + }; + + + char keyboard2[4][10] = { + {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'}, + {'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'}, + {':', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'}, + {',', '!', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '?'} + }; + + char keyboard3[4][10] = { + {'@', '#', '$', '%', 38, '*', '(', ')', '-', '+'}, + {'=', '_', '^', ';', '"', '\'', '<', '>', '/', '\\'}, + {'\0', '\0', '`', '~', '{', '}', '[', ']', '\0', '\0'}, + {'\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0'} + }; + + keypad = 1; + + for(o= 0; o< 10; o++) + { + for(i= 0; i < 4; i++) + { + lcd.SetTextColor(LCD_COLOR_WHITE); + + lcd.FillRect(Drawpointx = 33 + stepx, Drawpointy = 75 + stepy, btnsize, btnsize); + keypadstartX[i][o] = Drawpointx; + keypadstartY[i][o] = Drawpointy; + keypadendX[i][o] = Drawpointx + btnsize; + keypadendY[i][o] = Drawpointy + btnsize; + stepy += 38; + + if(Caps == 0 && Func == 0) + { + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetFont(&Font16); + sprintf((char*)text, "%c", keyboard1[i][o]); + lcd.DisplayStringAt(Drawpointx+ 13, Drawpointy+ 13, (uint8_t *)&text, LEFT_MODE); + } + else if(Caps == 1 && Func == 0) + { + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetFont(&Font16); + sprintf((char*)text, "%c", keyboard2[i][o]); + lcd.DisplayStringAt(Drawpointx+ 13, Drawpointy+ 13, (uint8_t *)&text, LEFT_MODE); + } + else if(Caps == 0 && Func == 1) + { + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetFont(&Font16); + sprintf((char*)text, "%c", keyboard3[i][o]); + lcd.DisplayStringAt(Drawpointx+ 13, Drawpointy+ 13, (uint8_t *)&text, LEFT_MODE); + } + + + if(stepy > 114) + { + stepy = 0; + } + } + + stepx += 38; + } + + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.FillRect(keypadstartX[3][2], keypadstartY[3][2] + 38, 225, btnsize); + lcd.FillRect(keypadstartX[3][0], keypadstartY[3][0] + 38, 73, btnsize); + lcd.FillRect(keypadstartX[3][8], keypadstartY[3][8] + 38, btnsize, btnsize); + lcd.FillRect(keypadstartX[3][9], keypadstartY[3][9] + 38, 73, btnsize); + lcd.FillRect(keypadstartX[0][9] + 38, keypadstartY[0][9], btnsize, 73); + lcd.FillRect(keypadstartX[2][9] + 38, keypadstartY[2][9], btnsize, 73); + + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetFont(&Font16); + + sprintf((char*)text, "<"); + lcd.DisplayStringAt(keypadstartX[0][9] + 50, keypadstartY[0][3] + 35, (uint8_t *)&text, LEFT_MODE); + lcd.SetFont(&Font12); + sprintf((char*)text, "E"); + lcd.DisplayStringAt(keypadstartX[2][9] + 50, keypadstartY[2][9] + 15, (uint8_t *)&text, LEFT_MODE); + sprintf((char*)text, "N"); + lcd.DisplayStringAt(keypadstartX[2][9] + 50, keypadstartY[2][9] + 25, (uint8_t *)&text, LEFT_MODE); + sprintf((char*)text, "T"); + lcd.DisplayStringAt(keypadstartX[2][9] + 50, keypadstartY[2][9] + 35, (uint8_t *)&text, LEFT_MODE); + sprintf((char*)text, "E"); + lcd.DisplayStringAt(keypadstartX[2][9] + 50, keypadstartY[2][9] + 45, (uint8_t *)&text, LEFT_MODE); + sprintf((char*)text, "R"); + lcd.DisplayStringAt(keypadstartX[2][9] + 50, keypadstartY[2][9] + 55, (uint8_t *)&text, LEFT_MODE); + sprintf((char*)text, "CAPS"); + lcd.DisplayStringAt(keypadstartX[3][0] + 20, keypadstartY[3][0] + 50, (uint8_t *)&text, LEFT_MODE); + sprintf((char*)text, "."); + lcd.DisplayStringAt(keypadstartX[3][8] + 16, keypadstartY[3][8] + 50, (uint8_t *)&text, LEFT_MODE); + sprintf((char*)text, "FUNC"); + lcd.DisplayStringAt(keypadstartX[3][9] + 20, keypadstartY[3][9] + 50, (uint8_t *)&text, LEFT_MODE); + + lcd.SetTextColor(Txtclr); + lcd.SetBackColor(Bckclr); + lcd.SetFont(FontSize); +} \ No newline at end of file