Skip to content

Commit

Permalink
Support external font classes in button class
Browse files Browse the repository at this point in the history
Original Adafruit button rendering code can be used with an external font class if "textFont" is set to 255.

See Bodmer#1536
  • Loading branch information
Bodmer committed Jan 8, 2022
1 parent bb2424f commit 73ff86b
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 15 deletions.
33 changes: 21 additions & 12 deletions Extensions/Button.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,21 +64,30 @@ void TFT_eSPI_Button::drawButton(bool inverted, String long_name) {
_gfx->fillRoundRect(_x1, _y1, _w, _h, r, fill);
_gfx->drawRoundRect(_x1, _y1, _w, _h, r, outline);

_gfx->setTextColor(text, fill);
_gfx->setTextSize(_textsize);
if (_gfx->textfont == 255) {
_gfx->setCursor(_x1 + (_w / 2) - (strlen(_label) * 3 * _textsize),
_y1 + (_h / 2) - (4 * _textsize));
_gfx->setTextColor(text);
_gfx->setTextSize(_textsize);
_gfx->print(_label);
}
else {
_gfx->setTextColor(text, fill);
_gfx->setTextSize(_textsize);

uint8_t tempdatum = _gfx->getTextDatum();
_gfx->setTextDatum(_textdatum);
uint16_t tempPadding = _gfx->getTextPadding();
_gfx->setTextPadding(0);
uint8_t tempdatum = _gfx->getTextDatum();
_gfx->setTextDatum(_textdatum);
uint16_t tempPadding = _gfx->getTextPadding();
_gfx->setTextPadding(0);

if (long_name == "")
_gfx->drawString(_label, _x1 + (_w/2) + _xd, _y1 + (_h/2) - 4 + _yd);
else
_gfx->drawString(long_name, _x1 + (_w/2) + _xd, _y1 + (_h/2) - 4 + _yd);
if (long_name == "")
_gfx->drawString(_label, _x1 + (_w/2) + _xd, _y1 + (_h/2) - 4 + _yd);
else
_gfx->drawString(long_name, _x1 + (_w/2) + _xd, _y1 + (_h/2) - 4 + _yd);

_gfx->setTextDatum(tempdatum);
_gfx->setTextPadding(tempPadding);
_gfx->setTextDatum(tempdatum);
_gfx->setTextPadding(tempPadding);
}
}

bool TFT_eSPI_Button::contains(int16_t x, int16_t y) {
Expand Down
2 changes: 1 addition & 1 deletion TFT_eSPI.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#ifndef _TFT_eSPIH_
#define _TFT_eSPIH_

#define TFT_ESPI_VERSION "2.4.23"
#define TFT_ESPI_VERSION "2.4.24"

// Bit level feature flags
// Bit 0 set: viewport capability
Expand Down
2 changes: 1 addition & 1 deletion library.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "TFT_eSPI",
"version": "2.4.23",
"version": "2.4.24",
"keywords": "Arduino, tft, ePaper, display, Pico, RP2040, STM32, ESP8266, NodeMCU, ESP32, M5Stack, ILI9341, ST7735, ILI9163, S6D02A1, ILI9481, ILI9486, ILI9488, ST7789, RM68140, SSD1351, SSD1963, ILI9225, HX8357D",
"description": "A TFT and ePaper SPI graphics library with optimisation for Raspberry Pi Pico, ESP8266, ESP32 and STM32",
"repository":
Expand Down
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=TFT_eSPI
version=2.4.23
version=2.4.24
author=Bodmer
maintainer=Bodmer
sentence=TFT graphics library for Arduino processors with performance optimisation for RP2040, STM32, ESP8266 and ESP32
Expand Down

0 comments on commit 73ff86b

Please sign in to comment.