aboutsummaryrefslogtreecommitdiffstats
path: root/api.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'api.cpp')
-rw-r--r--api.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/api.cpp b/api.cpp
index 16d79ad..2617483 100644
--- a/api.cpp
+++ b/api.cpp
@@ -59,7 +59,7 @@ bool Api::gui_popup_text(std::string title, std::string body){
oledRectangle(&m_oled, 9,7, 119,63, 0, 1); // Background
oledRectangle(&m_oled, 9,7, 119,63, 1, 0); // Popup border
- oledRectangle(&m_oled, 9,7, 119,16, 1, 1); // Title background
+ oledRectangle(&m_oled, 9,7, 119,16, 1, 1); // Title background, FIXME pixel bleeding
oledDumpBuffer(&m_oled, m_ucBuffer); // Display rectangle
// Truncate longer strings to avoid wasting time in for loop and drawing on OLED
@@ -88,6 +88,25 @@ bool Api::gui_popup_text(std::string title, std::string body){
m_send_button_press_to_app = true;
}
+bool Api::gui_footer_text(std::string text, int offset_x, int offset_row, int invert) {
+ // Max chars per line for FONT_8x8 is 16 chars
+ // Max chars per line for FONT_6x8 is 21 chars
+ // Truncate longer text
+ if (text.size() > 21)
+ text.resize(21);
+
+ // Choose most adapted font size
+ int font;
+ if (text.size() > 16)
+ font = FONT_6x8;
+ else
+ font = FONT_8x8;
+
+ oledRectangle(&m_oled, 0,56, 128,64, invert, 1);
+ oledDumpBuffer(&m_oled, m_ucBuffer);
+ oledWriteString(&m_oled, 0,offset_x,7-offset_row, &text[0], font, invert, 1);
+}
+
bool Api::datetime_get(datetime_t *t) {
return rtc_get_datetime(t);
}