From 3d1d79355089d27e4e8dc368b0bb7a41183fb7b1 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Mon, 26 Dec 2022 23:10:28 +0100 Subject: [PATCH] Solution for drawing strings in center --- TFT_eSPI.cpp | 10 +++++----- TFT_eSPI.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/TFT_eSPI.cpp b/TFT_eSPI.cpp index 7ce03c4..fb59af1 100644 --- a/TFT_eSPI.cpp +++ b/TFT_eSPI.cpp @@ -4104,8 +4104,9 @@ int16_t TFT_eSPI::drawChar(uint16_t uniCode, int32_t x, int32_t y, uint16_t colo ***************************************************************************************/ // With font number. Note: font number is over-ridden if a smooth font is loaded -int16_t TFT_eSPI::drawString(std::string_view string, int32_t poX, int32_t poY, uint16_t color, uint16_t bgcolor, uint8_t font) +int16_t TFT_eSPI::drawString(std::string_view string, int32_t poX, int32_t poY, uint16_t color, uint16_t bgcolor, uint8_t font, uint8_t datum) { + textdatum = datum; #ifdef CONFIG_TFT_IS_AUTOBAHN if (font == 4) { @@ -4331,6 +4332,7 @@ int16_t TFT_eSPI::drawString(std::string_view string, int32_t poX, int32_t poY, #endif //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ DEBUG ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +textdatum = 0; return sumX; } @@ -4343,8 +4345,7 @@ int16_t TFT_eSPI::drawCentreString(std::string_view string, int32_t dX, int32_t { uint8_t tempdatum = textdatum; int32_t sumX = 0; - textdatum = TC_DATUM; - sumX = drawString(string, dX, poY, color, bgcolor, font); + sumX = drawString(string, dX, poY, color, bgcolor, font, TC_DATUM); textdatum = tempdatum; return sumX; } @@ -4358,8 +4359,7 @@ int16_t TFT_eSPI::drawRightString(std::string_view string, int32_t dX, int32_t p { uint8_t tempdatum = textdatum; int16_t sumX = 0; - textdatum = TR_DATUM; - sumX = drawString(string, dX, poY, color, bgcolor, font); + sumX = drawString(string, dX, poY, color, bgcolor, font, TR_DATUM); textdatum = tempdatum; return sumX; } diff --git a/TFT_eSPI.h b/TFT_eSPI.h index 0aecdd0..e30db04 100644 --- a/TFT_eSPI.h +++ b/TFT_eSPI.h @@ -552,7 +552,7 @@ class TFT_eSPI { // Handle char arrays // Use with setTextDatum() to position string on TFT, and setTextPadding() to blank old displayed strings - int16_t drawString(std::string_view string, int32_t x, int32_t y, uint16_t color, uint16_t bgcolor, uint8_t font); // Draw string using specifed font number + int16_t drawString(std::string_view string, int32_t x, int32_t y, uint16_t color, uint16_t bgcolor, uint8_t font, uint8_t datum); // Draw string using specifed font number int16_t drawCentreString(std::string_view string, int32_t x, int32_t y, uint16_t color, uint16_t bgcolor, uint8_t font); // Deprecated, use setTextDatum() and drawString() int16_t drawRightString(std::string_view string, int32_t x, int32_t y, uint16_t color, uint16_t bgcolor, uint8_t font); // Deprecated, use setTextDatum() and drawString()