mirror of
https://git.mirrors.martin98.com/https://github.com/luc-github/ESP3D.git
synced 2025-06-20 17:58:52 +08:00
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;
|
|
};
|