GeekTrack/2.Firmware/components/GeekOS/Pages/_Template/Template.cpp

103 lines
1.8 KiB
C++
Raw Normal View History

2022-09-18 18:40:49 +08:00
#include "Template.h"
using namespace Page;
Template::Template()
: timer(nullptr)
{
}
Template::~Template()
{
}
void Template::onCustomAttrConfig()
{
SetCustomCacheEnable(false);
SetCustomLoadAnimType(PageManager::LOAD_ANIM_OVER_BOTTOM, 1000, lv_anim_path_bounce);
}
void Template::onViewLoad()
{
View.Create(_root);
//lv_label_set_text_fmt(View.ui.labelTitle, "#f1f1f1 Pages/_Template");
AttachEvent(_root);
Model.TickSave = Model.GetData();
}
void Template::onViewDidLoad()
{
}
void Template::onViewWillAppear()
{
Param_t param;
param.color = lv_color_black();
param.time = 15;
PAGE_STASH_POP(param);
lv_obj_set_style_bg_color(_root, param.color, LV_PART_MAIN);
timer = lv_timer_create(onTimerUpdate, param.time, this);
}
void Template::onViewDidAppear()
{
}
void Template::onViewWillDisappear()
{
}
void Template::onViewDidDisappear()
{
lv_timer_del(timer);
}
void Template::onViewDidUnload()
{
View.Delete();
}
void Template::AttachEvent(lv_obj_t* obj)
{
lv_obj_set_user_data(obj, this);
lv_obj_add_event_cb(obj, onEvent, LV_EVENT_ALL, this);
}
void Template::Update()
{
// lv_label_set_text_fmt(View.ui.labelTick, "#f1f1f1 tick = %d save = %d", Model.GetData(), Model.TickSave);
View.Update();
}
void Template::onTimerUpdate(lv_timer_t* timer)
{
Template* instance = (Template*)timer->user_data;
instance->Update();
}
void Template::onEvent(lv_event_t* event)
{
Template* instance = (Template*)lv_event_get_user_data(event);
LV_ASSERT_NULL(instance);
lv_obj_t* obj = lv_event_get_target(event);
lv_event_code_t code = lv_event_get_code(event);
if (obj == instance->_root)
{
if (code == LV_EVENT_SHORT_CLICKED || code == LV_EVENT_LEAVE)
{
instance->_Manager->Push("Pages/Startup");
}
}
}