From d7eb0941e3e8b18d3bb390eda2a43da5bd7dc04d Mon Sep 17 00:00:00 2001
From: Daniel Eichhorn <dani.eichhorn@squix.ch>
Date: Sat, 21 May 2016 11:15:43 +0200
Subject: [PATCH] Added convenience method for getStringWidth

---
 SSD1306.cpp | 8 ++++++++
 SSD1306.h   | 3 +++
 2 files changed, 11 insertions(+)

diff --git a/SSD1306.cpp b/SSD1306.cpp
index c71978e..29f8459 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 84cb5a9..65f0828 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
-- 
GitLab