Implemented back button in display framework
This commit is contained in:
@@ -23,8 +23,6 @@ public:
|
|||||||
virtual int shownValue() const = 0;
|
virtual int shownValue() const = 0;
|
||||||
virtual void setShownValue(int value) = 0;
|
virtual void setShownValue(int value) = 0;
|
||||||
|
|
||||||
virtual void confirm() = 0;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Label m_titleLabel{5, 5}; // 230, 25
|
Label m_titleLabel{5, 5}; // 230, 25
|
||||||
Label m_valueLabel{26, 81}; // 188, 53
|
Label m_valueLabel{26, 81}; // 188, 53
|
||||||
@@ -55,13 +53,11 @@ public:
|
|||||||
void redraw() override;
|
void redraw() override;
|
||||||
|
|
||||||
void rotate(int offset) override;
|
void rotate(int offset) override;
|
||||||
void button() override;
|
void confirm() override;
|
||||||
|
|
||||||
int shownValue() const { return m_value; }
|
int shownValue() const { return m_value; }
|
||||||
void setShownValue(int value) { m_value = value; }
|
void setShownValue(int value) { m_value = value; }
|
||||||
|
|
||||||
void confirm() override;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Tvalue m_value{};
|
Tvalue m_value{};
|
||||||
|
|
||||||
@@ -132,12 +128,6 @@ void ChangeValueDisplay<Tvalue>::rotate(int offset)
|
|||||||
m_rotateOffset += offset;
|
m_rotateOffset += offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Tvalue>
|
|
||||||
void ChangeValueDisplay<Tvalue>::button()
|
|
||||||
{
|
|
||||||
m_pressed = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename Tvalue>
|
template<typename Tvalue>
|
||||||
void ChangeValueDisplay<Tvalue>::confirm()
|
void ChangeValueDisplay<Tvalue>::confirm()
|
||||||
{
|
{
|
||||||
|
@@ -7,10 +7,10 @@ namespace {
|
|||||||
class DemoDisplay : public Display, public virtual ActionInterface
|
class DemoDisplay : public Display, public virtual ActionInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void button() override;
|
void confirm() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
void DemoDisplay::button()
|
void DemoDisplay::confirm()
|
||||||
{
|
{
|
||||||
triggered();
|
triggered();
|
||||||
}
|
}
|
||||||
|
@@ -20,7 +20,8 @@ public:
|
|||||||
virtual void stop() {}
|
virtual void stop() {}
|
||||||
|
|
||||||
virtual void rotate(int offset) {}
|
virtual void rotate(int offset) {}
|
||||||
virtual void button() {}
|
virtual void confirm() {}
|
||||||
|
virtual void back() {}
|
||||||
|
|
||||||
virtual TextInterface *asTextInterface() { return nullptr; }
|
virtual TextInterface *asTextInterface() { return nullptr; }
|
||||||
virtual const TextInterface *asTextInterface() const { return nullptr; }
|
virtual const TextInterface *asTextInterface() const { return nullptr; }
|
||||||
|
@@ -29,7 +29,7 @@ public:
|
|||||||
void redraw() override;
|
void redraw() override;
|
||||||
void stop() override;
|
void stop() override;
|
||||||
|
|
||||||
void button() override;
|
void confirm() override;
|
||||||
void rotate(int offset) override;
|
void rotate(int offset) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -146,7 +146,7 @@ void Lockscreen::stop()
|
|||||||
currentMode = m_oldMode;
|
currentMode = m_oldMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Lockscreen::button()
|
void Lockscreen::confirm()
|
||||||
{
|
{
|
||||||
m_pressed = true;
|
m_pressed = true;
|
||||||
}
|
}
|
||||||
|
@@ -148,8 +148,8 @@ void StatusDisplay::redraw()
|
|||||||
m_labelBrems.redraw(String{brems});
|
m_labelBrems.redraw(String{brems});
|
||||||
m_progressBarBrems.redraw(brems);
|
m_progressBarBrems.redraw(brems);
|
||||||
|
|
||||||
m_frontStatus.redraw(front);
|
m_frontStatus.redraw(::front);
|
||||||
m_backStatus.redraw(back);
|
m_backStatus.redraw(::back);
|
||||||
|
|
||||||
tft.setTextFont(2);
|
tft.setTextFont(2);
|
||||||
m_labelWifiStatus.redraw(toString(WiFi.status()));
|
m_labelWifiStatus.redraw(toString(WiFi.status()));
|
||||||
|
@@ -27,7 +27,7 @@ public:
|
|||||||
void start() override;
|
void start() override;
|
||||||
void initScreen() override;
|
void initScreen() override;
|
||||||
void redraw() override;
|
void redraw() override;
|
||||||
void button() override;
|
void confirm() override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool m_finished;
|
bool m_finished;
|
||||||
@@ -85,7 +85,7 @@ void UpdateDisplay::redraw()
|
|||||||
m_progressBar.redraw(float(m_progress) / m_total * 100.f);
|
m_progressBar.redraw(float(m_progress) / m_total * 100.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateDisplay::button()
|
void UpdateDisplay::confirm()
|
||||||
{
|
{
|
||||||
if (m_finished)
|
if (m_finished)
|
||||||
switchScreen<StatusDisplay>();
|
switchScreen<StatusDisplay>();
|
||||||
|
@@ -22,7 +22,7 @@ public:
|
|||||||
void stop() override;
|
void stop() override;
|
||||||
|
|
||||||
void rotate(int offset) override;
|
void rotate(int offset) override;
|
||||||
void button() override;
|
void confirm() override;
|
||||||
|
|
||||||
virtual void itemPressed(int index);
|
virtual void itemPressed(int index);
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@ void MenuDisplay::rotate(int offset)
|
|||||||
m_rotateOffset += offset;
|
m_rotateOffset += offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuDisplay::button()
|
void MenuDisplay::confirm()
|
||||||
{
|
{
|
||||||
m_pressed = true;
|
m_pressed = true;
|
||||||
}
|
}
|
||||||
|
@@ -345,18 +345,32 @@ void updateDisplay()
|
|||||||
currentDisplay->initScreen();
|
currentDisplay->initScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (confirmButtonLongPressed)
|
|
||||||
{
|
|
||||||
confirmButtonLongPressed = false;
|
|
||||||
Serial.println("todo: implement long press");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (confirmButtonPressed)
|
if (confirmButtonPressed)
|
||||||
{
|
{
|
||||||
confirmButtonPressed = false;
|
confirmButtonPressed = false;
|
||||||
|
|
||||||
if (currentDisplay)
|
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)
|
if (currentDisplay)
|
||||||
|
Reference in New Issue
Block a user