mirror of
https://github.com/No-Chicken/Power-Pico.git
synced 2026-04-03 13:02:36 +08:00
update ui manager
This commit is contained in:
@@ -100,3 +100,16 @@ Page_t* PageManager_get_current_page(void) {
|
||||
if (PageManager.count == 0) return NULL;
|
||||
return PageManager.pages[PageManager.current_index];
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理按键事件,调用当前页面的按键事件处理函数
|
||||
* @param key_id 按键ID
|
||||
*/
|
||||
void PageManager_handle_key_event(uint8_t key_id) {
|
||||
Page_t* current_page = PageManager_get_current_page();
|
||||
if (current_page && current_page->key_event_handler) {
|
||||
current_page->key_event_handler(key_id); // 调用当前页面的按键事件处理函数
|
||||
} else {
|
||||
printf("No key event handler for current page\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ typedef struct {
|
||||
void (*init)(void);
|
||||
void (*deinit)(void);
|
||||
lv_obj_t** page_obj; // 指向页面对象指针的指针
|
||||
void (*key_event_handler)(uint8_t key_id); // 按键事件处理函数
|
||||
const char* name; // 可选:用于调试
|
||||
} Page_t;
|
||||
|
||||
@@ -27,10 +28,11 @@ extern PageManager_t PageManager;
|
||||
// API 函数声明
|
||||
void PageManager_init(void);
|
||||
void PageManager_register(Page_t* page);
|
||||
void PageManager_load_init_screen(void);
|
||||
void PageManager_next(void);
|
||||
void PageManager_prev(void);
|
||||
void PageManager_goto(uint8_t index);
|
||||
Page_t* PageManager_get_current_page(void);
|
||||
void PageManager_load_init_screen(void);
|
||||
void PageManager_handle_key_event(uint8_t key_id);
|
||||
|
||||
#endif // PAGE_MANAGER_H
|
||||
|
||||
@@ -223,3 +223,8 @@ void ui_main_screen_destroy(void)
|
||||
_flush_timer = NULL;
|
||||
|
||||
}
|
||||
|
||||
void ui_main_page_key_handler(uint8_t key_id)
|
||||
{
|
||||
// nothing to do
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ extern "C" {
|
||||
// SCREEN: ui_Screen1
|
||||
void ui_main_screen_init(void);
|
||||
void ui_main_screen_destroy(void);
|
||||
void ui_main_page_key_handler(uint8_t key_id);
|
||||
|
||||
extern lv_obj_t * ui_HomeScreen;
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ Page_t pages[] = {
|
||||
.init = ui_main_screen_init,
|
||||
.deinit = ui_main_screen_destroy,
|
||||
.page_obj = &ui_HomeScreen,
|
||||
.key_event_handler = ui_main_page_key_handler,
|
||||
.name = "Main Page"
|
||||
},
|
||||
// 可以在这里添加更多页面
|
||||
@@ -28,6 +29,7 @@ Page_t pages[] = {
|
||||
*/
|
||||
static void main_timer(lv_timer_t * timer)
|
||||
{
|
||||
// do nothing
|
||||
// LV_LOG_WARN("Main timer");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user