mirror of
https://gitee.com/jiuyilian/embedded-framework.git
synced 2025-01-06 10:16:51 -05:00
44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
#include "GuiLvgl.h"
|
|
#include "lvgl.h"
|
|
#include "Log.h"
|
|
#include "LvglWidget.h"
|
|
static void idle_queue_timer_cb(lv_timer_t *timer)
|
|
{
|
|
IdleQueueTimer *idleTimer = (IdleQueueTimer *)(timer->user_data);
|
|
std::shared_ptr<Context> ctx = idleTimer->ctx;
|
|
if (ctx->eventCallback)
|
|
{
|
|
ctx->eventCallback(ctx);
|
|
}
|
|
lv_timer_del(idleTimer->mTimer);
|
|
idleTimer->mTimer = nullptr;
|
|
delete (idleTimer);
|
|
}
|
|
GuiLvgl::GuiLvgl()
|
|
{
|
|
}
|
|
void GuiLvgl::IdleQueue(const std::shared_ptr<Context> &ctx)
|
|
{
|
|
IdleQueueTimer *newTimer = new IdleQueueTimer;
|
|
newTimer->ctx = ctx;
|
|
constexpr int NOT_SLEEP = 0;
|
|
newTimer->mTimer = lv_timer_create(idle_queue_timer_cb, NOT_SLEEP, newTimer);
|
|
}
|
|
std::shared_ptr<Widget> GuiLvgl::NewPage(void)
|
|
{
|
|
std::shared_ptr<LvglWidget> window = std::make_shared<LvglWidget>();
|
|
// window->mWidget = lv_win_create(lv_scr_act(), headerHeight);
|
|
window->mWidget = lv_obj_create(nullptr);
|
|
// window->mWidget = lv_win_create(lv_obj_create(nullptr), headerHeight);
|
|
LogInfo("create window %p\n", window->mWidget);
|
|
return window;
|
|
}
|
|
std::shared_ptr<Widget> GuiLvgl::NewImage(const std::shared_ptr<Widget> &parent)
|
|
{
|
|
std::shared_ptr<LvglWidget> widget = std::make_shared<LvglWidget>();
|
|
if (parent)
|
|
{
|
|
widget->mWidget = lv_img_create(std::dynamic_pointer_cast<LvglWidget>(parent)->mWidget);
|
|
}
|
|
return widget;
|
|
} |