#ifndef UI_H #define UI_H #include "lvgl.h" #include "esp_log.h" #include "gui_guider.h" #ifdef __cplusplus extern "C" { #endif #define UI_PAGE_COUNT 3 // 0:小奇, 1:天气, 2:时间, 3:G值, 4:里程 #define UI_IDX_PULLDOWN 3 // 下拉设置页 #define UI_IDX_COMPONENTS 4 // 小组件页 // --- 变量的“外部引用”声明 --- // 告诉编译器:这些变量在别处定义了,你尽管用 extern lv_obj_t * current_lottie; extern lv_obj_t * page_weather; extern lv_obj_t * page_time; extern lv_obj_t * page_gforce; extern lv_obj_t * page_trip; extern lv_obj_t * page_components; extern lv_obj_t * page_settings; extern lv_obj_t * page_zodiacs; extern int current_page_idx; extern int settings_page_idx; extern int last_page_idx; extern lv_timer_t * idle_timer; extern int lottie_id; extern bool is_ui_mode; extern const char * TAG_MAIN; // 共享 main.c 里的 TAG_MAIN extern lv_ui guider_ui; // --- 函数声明 --- void ui_event_gesture_cb(lv_event_t * e); void idle_timer_cb(lv_timer_t * timer); // 新增声明 void ui_pages_create(void); // 一次性创建所有页面 void ui_hide_all_pages(void); // 隐藏所有页面,回到动画 void ui_change_page(int new_idx, lv_screen_load_anim_t anim_type); // 核心切换函数 void ui_reset_idle_timer(void); #ifdef __cplusplus } #endif #endif