39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
| /***************************************************************************************
 | |
| // The following button class has been ported over from the Adafruit_GFX library so
 | |
| // should be compatible.
 | |
| // A slightly different implementation in this TFT_eSPI library allows the button
 | |
| // legends to be in any font
 | |
| ***************************************************************************************/
 | |
| 
 | |
| class TFT_eSPI_Button {
 | |
| 
 | |
|  public:
 | |
|   TFT_eSPI_Button(void);
 | |
|   // "Classic" initButton() uses center & size
 | |
|   void     initButton(TFT_eSPI *gfx, int16_t x, int16_t y,
 | |
|   uint16_t w, uint16_t h, uint16_t outline, uint16_t fill,
 | |
|   uint16_t textcolor, char *label, uint8_t textsize);
 | |
| 
 | |
|   // New/alt initButton() uses upper-left corner & size
 | |
|   void     initButtonUL(TFT_eSPI *gfx, int16_t x1, int16_t y1,
 | |
|   uint16_t w, uint16_t h, uint16_t outline, uint16_t fill,
 | |
|   uint16_t textcolor, char *label, uint8_t textsize);
 | |
|   void     drawButton(boolean inverted = false);
 | |
|   boolean  contains(int16_t x, int16_t y);
 | |
| 
 | |
|   void     press(boolean p);
 | |
|   boolean  isPressed();
 | |
|   boolean  justPressed();
 | |
|   boolean  justReleased();
 | |
| 
 | |
|  private:
 | |
|   TFT_eSPI *_gfx;
 | |
|   int16_t  _x1, _y1; // Coordinates of top-left corner
 | |
|   uint16_t _w, _h;
 | |
|   uint8_t  _textsize;
 | |
|   uint16_t _outlinecolor, _fillcolor, _textcolor;
 | |
|   char     _label[10];
 | |
| 
 | |
|   boolean  currstate, laststate;
 | |
| };
 |