diff --git a/src/changevaluedisplay.h b/src/changevaluedisplay.h index fab703f..54bd889 100644 --- a/src/changevaluedisplay.h +++ b/src/changevaluedisplay.h @@ -23,8 +23,6 @@ public: virtual int shownValue() const = 0; virtual void setShownValue(int value) = 0; - virtual void confirm() = 0; - protected: Label m_titleLabel{5, 5}; // 230, 25 Label m_valueLabel{26, 81}; // 188, 53 @@ -55,13 +53,11 @@ public: void redraw() override; void rotate(int offset) override; - void button() override; + void confirm() override; int shownValue() const { return m_value; } void setShownValue(int value) { m_value = value; } - void confirm() override; - private: Tvalue m_value{}; @@ -132,12 +128,6 @@ void ChangeValueDisplay::rotate(int offset) m_rotateOffset += offset; } -template -void ChangeValueDisplay::button() -{ - m_pressed = true; -} - template void ChangeValueDisplay::confirm() { diff --git a/src/demodisplay.h b/src/demodisplay.h index 8ad2d02..750f5cd 100644 --- a/src/demodisplay.h +++ b/src/demodisplay.h @@ -7,10 +7,10 @@ namespace { class DemoDisplay : public Display, public virtual ActionInterface { public: - void button() override; + void confirm() override; }; -void DemoDisplay::button() +void DemoDisplay::confirm() { triggered(); } diff --git a/src/display.h b/src/display.h index a1039d1..556a3e2 100644 --- a/src/display.h +++ b/src/display.h @@ -20,7 +20,8 @@ public: virtual void stop() {} virtual void rotate(int offset) {} - virtual void button() {} + virtual void confirm() {} + virtual void back() {} virtual TextInterface *asTextInterface() { return nullptr; } virtual const TextInterface *asTextInterface() const { return nullptr; } diff --git a/src/displays/lockscreen.h b/src/displays/lockscreen.h index 46b153d..ecf241b 100644 --- a/src/displays/lockscreen.h +++ b/src/displays/lockscreen.h @@ -29,7 +29,7 @@ public: void redraw() override; void stop() override; - void button() override; + void confirm() override; void rotate(int offset) override; private: @@ -146,7 +146,7 @@ void Lockscreen::stop() currentMode = m_oldMode; } -void Lockscreen::button() +void Lockscreen::confirm() { m_pressed = true; } diff --git a/src/displays/statusdisplay.h b/src/displays/statusdisplay.h index 154e382..8e00c32 100644 --- a/src/displays/statusdisplay.h +++ b/src/displays/statusdisplay.h @@ -148,8 +148,8 @@ void StatusDisplay::redraw() m_labelBrems.redraw(String{brems}); m_progressBarBrems.redraw(brems); - m_frontStatus.redraw(front); - m_backStatus.redraw(back); + m_frontStatus.redraw(::front); + m_backStatus.redraw(::back); tft.setTextFont(2); m_labelWifiStatus.redraw(toString(WiFi.status())); diff --git a/src/displays/updatedisplay.h b/src/displays/updatedisplay.h index add4fa1..7994998 100644 --- a/src/displays/updatedisplay.h +++ b/src/displays/updatedisplay.h @@ -27,7 +27,7 @@ public: void start() override; void initScreen() override; void redraw() override; - void button() override; + void confirm() override; public: bool m_finished; @@ -85,7 +85,7 @@ void UpdateDisplay::redraw() m_progressBar.redraw(float(m_progress) / m_total * 100.f); } -void UpdateDisplay::button() +void UpdateDisplay::confirm() { if (m_finished) switchScreen(); diff --git a/src/menudisplay.h b/src/menudisplay.h index 6c89d85..62babea 100644 --- a/src/menudisplay.h +++ b/src/menudisplay.h @@ -22,7 +22,7 @@ public: void stop() override; void rotate(int offset) override; - void button() override; + void confirm() override; virtual void itemPressed(int index); @@ -241,7 +241,7 @@ void MenuDisplay::rotate(int offset) m_rotateOffset += offset; } -void MenuDisplay::button() +void MenuDisplay::confirm() { m_pressed = true; } diff --git a/src/screens.h b/src/screens.h index 784b53b..e85a4ff 100644 --- a/src/screens.h +++ b/src/screens.h @@ -345,18 +345,32 @@ void updateDisplay() currentDisplay->initScreen(); } - if (confirmButtonLongPressed) - { - confirmButtonLongPressed = false; - Serial.println("todo: implement long press"); - } - if (confirmButtonPressed) { confirmButtonPressed = false; if (currentDisplay) - currentDisplay->button(); + currentDisplay->confirm(); + } + + if (confirmButtonLongPressed) + { + confirmButtonLongPressed = false; + Serial.println("todo: implement long press for confirm"); + } + + if (backButtonPressed) + { + backButtonPressed = false; + + if (currentDisplay) + currentDisplay->back(); + } + + if (backButtonLongPressed) + { + backButtonLongPressed = false; + Serial.println("todo: implement long press for back"); } if (currentDisplay)