Add the possibility to the screen to handle a touch gesture.
A default action is taken if the current screen doesn't handle it.
This commit is contained in:
@@ -70,3 +70,23 @@ uint8_t Brightness::LevelToInt(Pinetime::Controllers::BrightnessController::Leve
|
||||
default : return 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool Brightness::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
|
||||
switch(event) {
|
||||
case TouchEvents::SwipeLeft:
|
||||
brightness.Lower();
|
||||
SetValue();
|
||||
return true;
|
||||
case TouchEvents::SwipeRight:
|
||||
brightness.Higher();
|
||||
SetValue();
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void Brightness::SetValue() {
|
||||
lv_slider_set_value(slider, LevelToInt(brightness.Level()), LV_ANIM_OFF);
|
||||
lv_label_set_text(slider_label, LevelToString(brightness.Level()));
|
||||
}
|
||||
|
@@ -13,6 +13,7 @@ namespace Pinetime {
|
||||
~Brightness() override;
|
||||
bool Refresh() override;
|
||||
bool OnButtonPushed() override;
|
||||
bool OnTouchEvent(TouchEvents event) override;
|
||||
|
||||
void OnValueChanged();
|
||||
private:
|
||||
@@ -25,6 +26,7 @@ namespace Pinetime {
|
||||
const char* LevelToString(Controllers::BrightnessController::Levels level);
|
||||
uint8_t LevelToInt(Controllers::BrightnessController::Levels level);
|
||||
void SetValue(uint8_t value);
|
||||
void SetValue();
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#pragma once
|
||||
#include "../TouchEvents.h"
|
||||
|
||||
namespace Pinetime {
|
||||
namespace Applications {
|
||||
@@ -15,6 +16,9 @@ namespace Pinetime {
|
||||
// Return false if the button hasn't been handled by the app, true if it has been handled
|
||||
virtual bool OnButtonPushed() { return false; }
|
||||
|
||||
// Return false if the event hasn't been handled by the app, true if it has been handled
|
||||
virtual bool OnTouchEvent(TouchEvents event) { return false; }
|
||||
|
||||
protected:
|
||||
DisplayApp* app;
|
||||
};
|
||||
|
Reference in New Issue
Block a user