Buttons changing color when tapped.
Dependencies: LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI
main.cpp
- Committer:
- fzajdel
- Date:
- 2019-05-19
- Revision:
- 2:bd49dd9c7bd6
- Parent:
- 1:dec3203ec015
File content as of revision 2:bd49dd9c7bd6:
#include "mbed.h" #include "TS_DISCO_F429ZI.h" #include "LCD_DISCO_F429ZI.h" #include "rectangle.h" #include "config.h" #include "button.h" #include <vector> using std::vector; int main() { LCD_DISCO_F429ZI LcdScreen; TS_DISCO_F429ZI TouchScreen; vector <Figure*> Figures(RECTANGLE_NR); vector <Widget*> Buttons(BUTTONS_NR); uint8_t XCoord = 0, YCoord = 0, ButtonCounter = 0; for(vector<Widget*>::iterator itWidget=Buttons.begin(); itWidget != Buttons.end(); itWidget++){ char ButtonCounterStr[4]; sprintf(ButtonCounterStr, "%u", ButtonCounter); *itWidget = new Button(XCoord, ((0 != YCoord) ? YCoord-1:YCoord) ,RECTANGE_WIDTH, RECTANGE_HEIGHT, ButtonCounterStr); YCoord += RECTANGE_HEIGHT; ButtonCounter++; } BSP_LCD_SetFont(&Font24); LcdScreen.Clear(LCD_COLOR_BLACK); LcdScreen.SetBackColor(LCD_COLOR_BLACK); uint8_t TsStatus = TouchScreen.Init(LcdScreen.GetXSize(), LcdScreen.GetYSize()); while(TS_OK == TsStatus) { TS_StateTypeDef TsState; uint16_t XCoord = SCREEN_WIDTH+1, YCoord = SCREEN_HEIGHT+1; TouchScreen.GetState(&TsState); for(vector<Widget*>::iterator ItWidget=Buttons.begin(); ItWidget != Buttons.end(); ItWidget++){ if(TsState.TouchDetected){ XCoord = TsState.X; YCoord = TsState.Y; } (*ItWidget)->Check(XCoord, YCoord); LcdScreen << (*ItWidget)->GetFigure(); } wait(0.1); } }