diff --git a/SSD1306.cpp b/SSD1306.cpp index c71978e767d5a38f9e9800f26456228bdee03c41..29f845987e3ed50e37ea250b27edb319496d346e 100644 --- a/SSD1306.cpp +++ b/SSD1306.cpp @@ -434,6 +434,14 @@ uint16_t SSD1306::getStringWidth(const char* text, uint16_t length) { return max(maxWidth, stringWidth); } +uint16_t SSD1306::getStringWidth(String strUser) { + char* text = utf8ascii(strUser); + uint16_t length = strlen(text); + uint16_t width = getStringWidth(text, length); + free(text); + return width; +} + void SSD1306::setTextAlignment(SSD1306_TEXT_ALIGNMENT textAlignment) { this->textAlignment = textAlignment; } diff --git a/SSD1306.h b/SSD1306.h index 84cb5a9918654fda16e88045b207a085235da734..65f0828d3e0cf50a782608cb927eb764d6a0093d 100644 --- a/SSD1306.h +++ b/SSD1306.h @@ -203,6 +203,9 @@ class SSD1306 { // font settings uint16_t getStringWidth(const char* text, uint16_t length); + // Convencience method for the const char version + uint16_t getStringWidth(String text); + // Specifies relative to which anchor point // the text is rendered. Available constants: // TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH