@ -4,10 +4,8 @@
# include "Symbols.h"
# include "Symbols.h"
# include "lvgl/lvgl.h"
# include "lvgl/lvgl.h"
using namespace Pinetime : : Applications : : Screens ;
using namespace Pinetime : : Applications : : Screens ;
static void btnEventHandler ( lv_obj_t * obj , lv_event_t event ) {
static void btnEventHandler ( lv_obj_t * obj , lv_event_t event ) {
Timer * screen = static_cast < Timer * > ( obj - > user_data ) ;
Timer * screen = static_cast < Timer * > ( obj - > user_data ) ;
screen - > OnButtonEvent ( obj , event ) ;
screen - > OnButtonEvent ( obj , event ) ;
@ -49,14 +47,10 @@ void Timer::createButtons() {
lv_obj_set_width ( btnSecondsDown , 60 ) ;
lv_obj_set_width ( btnSecondsDown , 60 ) ;
txtSDown = lv_label_create ( btnSecondsDown , nullptr ) ;
txtSDown = lv_label_create ( btnSecondsDown , nullptr ) ;
lv_label_set_text ( txtSDown , " - " ) ;
lv_label_set_text ( txtSDown , " - " ) ;
}
}
Timer : : Timer ( DisplayApp * app , Controllers : : TimerController & timerController )
Timer : : Timer ( DisplayApp * app , Controllers : : TimerController & timerController )
: Screen ( app ) ,
: Screen ( app ) , running { true } , timerController { timerController } {
running { true } ,
timerController { timerController } {
time = lv_label_create ( lv_scr_act ( ) , nullptr ) ;
time = lv_label_create ( lv_scr_act ( ) , nullptr ) ;
lv_obj_set_style_local_text_font ( time , LV_LABEL_PART_MAIN , LV_STATE_DEFAULT , & jetbrains_mono_76 ) ;
lv_obj_set_style_local_text_font ( time , LV_LABEL_PART_MAIN , LV_STATE_DEFAULT , & jetbrains_mono_76 ) ;
@ -80,19 +74,19 @@ Timer::Timer(DisplayApp* app, Controllers::TimerController& timerController)
createButtons ( ) ;
createButtons ( ) ;
}
}
taskRefresh = lv_task_create ( RefreshTaskCallback , 20 , LV_TASK_PRIO_MID , this ) ;
}
}
Timer : : ~ Timer ( ) {
Timer : : ~ Timer ( ) {
lv_task_del ( taskRefresh ) ;
lv_obj_clean ( lv_scr_act ( ) ) ;
lv_obj_clean ( lv_scr_act ( ) ) ;
}
}
bool Timer : : Refresh ( ) {
void Timer : : Refresh ( ) {
if ( timerController . IsRunning ( ) ) {
if ( timerController . IsRunning ( ) ) {
uint32_t seconds = timerController . GetTimeRemaining ( ) / 1000 ;
uint32_t seconds = timerController . GetTimeRemaining ( ) / 1000 ;
lv_label_set_text_fmt ( time , " %02lu:%02lu " , seconds / 60 , seconds % 60 ) ;
lv_label_set_text_fmt ( time , " %02lu:%02lu " , seconds / 60 , seconds % 60 ) ;
}
}
return running ;
}
}
void Timer : : OnButtonEvent ( lv_obj_t * obj , lv_event_t event ) {
void Timer : : OnButtonEvent ( lv_obj_t * obj , lv_event_t event ) {
@ -118,7 +112,6 @@ void Timer::OnButtonEvent(lv_obj_t* obj, lv_event_t event) {
btnMinutesDown = nullptr ;
btnMinutesDown = nullptr ;
lv_obj_del ( btnMinutesUp ) ;
lv_obj_del ( btnMinutesUp ) ;
btnMinutesUp = nullptr ;
btnMinutesUp = nullptr ;
}
}
} else {
} else {
if ( ! timerController . IsRunning ( ) ) {
if ( ! timerController . IsRunning ( ) ) {
@ -153,17 +146,12 @@ void Timer::OnButtonEvent(lv_obj_t* obj, lv_event_t event) {
secondsToSet - - ;
secondsToSet - - ;
}
}
lv_label_set_text_fmt ( time , " %02d:%02d " , minutesToSet , secondsToSet ) ;
lv_label_set_text_fmt ( time , " %02d:%02d " , minutesToSet , secondsToSet ) ;
}
}
}
}
}
}
}
}
}
}
void Timer : : setDone ( ) {
void Timer : : setDone ( ) {
lv_label_set_text ( time , " 00:00 " ) ;
lv_label_set_text ( time , " 00:00 " ) ;
lv_label_set_text ( txtPlayPause , Symbols : : play ) ;
lv_label_set_text ( txtPlayPause , Symbols : : play ) ;