Files
trail-mate/modules/ui_shared/include/ui/menu/menu_runtime.h
T
liu weikai 25381c5c22 refactor: align board runtimes, GAT562 app shell, and BLE integrations
- migrate ESP board-specific implementations and runtime adapters into boards/*
- continue GAT562/Tab5/UI runtime alignment across app and board layers
- sync BLE and runtime integrations, and apply repository clang-format rules
2026-03-23 11:20:39 +08:00

46 lines
1017 B
C++

#pragma once
#include <cstdint>
#include <stddef.h>
#include "lvgl.h"
namespace ui
{
namespace menu_runtime
{
enum class Scene : uint8_t
{
Menu = 0,
App,
WatchFace,
Sleeping,
};
struct Hooks
{
struct WatchFaceHooks
{
void (*create)(lv_obj_t* parent) = nullptr;
void (*set_time)(int hour, int minute, int month, int day, const char* weekday, int battery_percent) = nullptr;
void (*set_node_id)(uint32_t node_id) = nullptr;
void (*show)(bool show) = nullptr;
bool (*is_ready)() = nullptr;
void (*set_unlock_cb)(void (*cb)(void)) = nullptr;
} watch_face{};
bool (*format_time)(char* out, size_t out_len) = nullptr;
void (*show_main_menu)() = nullptr;
};
void init(lv_obj_t* screen_root, lv_obj_t* main_screen, lv_obj_t* menu_panel, const Hooks& hooks);
void showWatchFace();
void onWakeFromSleep();
void setMenuActive(bool active);
void setScene(Scene scene);
Scene currentScene();
} // namespace menu_runtime
} // namespace ui