mirror of
https://github.com/No-Chicken/Power-Pico.git
synced 2026-04-03 13:02:36 +08:00
更新API
This commit is contained in:
@@ -19,7 +19,7 @@ void lv_lib_pm_load_init_screen(void) {
|
|||||||
|
|
||||||
Page_t* initial_page = PageManager.pages[0];
|
Page_t* initial_page = PageManager.pages[0];
|
||||||
if (initial_page->init) initial_page->init();
|
if (initial_page->init) initial_page->init();
|
||||||
lv_scr_load_anim(*initial_page->page_obj, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, true);
|
lv_screen_load_anim(*initial_page->page_obj, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, true);
|
||||||
PageManager.current_index = 0;
|
PageManager.current_index = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ void lv_lib_pm_register(Page_t* page) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 切换到下一个页面(循环链表)
|
* 切换到数组中下一个页面(循环)
|
||||||
*/
|
*/
|
||||||
void lv_lib_pm_next(void) {
|
void lv_lib_pm_next(void) {
|
||||||
if (PageManager.count == 0) return;
|
if (PageManager.count == 0) return;
|
||||||
@@ -46,7 +46,7 @@ void lv_lib_pm_next(void) {
|
|||||||
|
|
||||||
// 初始化新页面并切换
|
// 初始化新页面并切换
|
||||||
if (next->init) next->init();
|
if (next->init) next->init();
|
||||||
lv_scr_load_anim(*next->page_obj, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, true);
|
lv_screen_load_anim(*next->page_obj, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, true);
|
||||||
|
|
||||||
// 反初始化前页
|
// 反初始化前页
|
||||||
if (prev->deinit) prev->deinit();
|
if (prev->deinit) prev->deinit();
|
||||||
@@ -57,7 +57,7 @@ void lv_lib_pm_next(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 切换到上一个页面(循环链表)
|
* 切换到数组中上一个页面(循环)
|
||||||
*/
|
*/
|
||||||
void lv_lib_pm_prev(void) {
|
void lv_lib_pm_prev(void) {
|
||||||
if (PageManager.count == 0) return;
|
if (PageManager.count == 0) return;
|
||||||
@@ -67,7 +67,7 @@ void lv_lib_pm_prev(void) {
|
|||||||
Page_t* prev = PageManager.pages[prev_index];
|
Page_t* prev = PageManager.pages[prev_index];
|
||||||
|
|
||||||
if (prev->init) prev->init();
|
if (prev->init) prev->init();
|
||||||
lv_scr_load_anim(*prev->page_obj, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 200, 0, true);
|
lv_screen_load_anim(*prev->page_obj, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 200, 0, true);
|
||||||
|
|
||||||
if (current->deinit) current->deinit();
|
if (current->deinit) current->deinit();
|
||||||
|
|
||||||
@@ -77,10 +77,22 @@ void lv_lib_pm_prev(void) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 跳转到指定索引页面
|
* 跳转到指定索引页面
|
||||||
|
* @param page_name 页面名称,传入 NULL 则根据索引跳转
|
||||||
* @param index 目标页面索引
|
* @param index 目标页面索引
|
||||||
*/
|
*/
|
||||||
void lv_lib_pm_goto(uint8_t index) {
|
void lv_lib_pm_goto(const char* page_name, uint8_t index) {
|
||||||
if (index >= PageManager.count || PageManager.count == 0) return;
|
|
||||||
|
if (page_name != NULL) {
|
||||||
|
// 根据页面名称查找索引
|
||||||
|
for (uint8_t i = 0; i < PageManager.count; i++) {
|
||||||
|
if (strcmp(PageManager.pages[i]->name, page_name) == 0) {
|
||||||
|
index = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(index >= PageManager.count || PageManager.count == 0) return;
|
||||||
|
|
||||||
Page_t* current = PageManager.pages[PageManager.current_index];
|
Page_t* current = PageManager.pages[PageManager.current_index];
|
||||||
Page_t* target = PageManager.pages[index];
|
Page_t* target = PageManager.pages[index];
|
||||||
@@ -89,10 +101,17 @@ void lv_lib_pm_goto(uint8_t index) {
|
|||||||
if (current->deinit) current->deinit();
|
if (current->deinit) current->deinit();
|
||||||
PageManager.current_index = index;
|
PageManager.current_index = index;
|
||||||
if (target->init) target->init();
|
if (target->init) target->init();
|
||||||
lv_scr_load_anim(*target->page_obj, LV_SCR_LOAD_ANIM_FADE_IN, 200, 0, true);
|
lv_screen_load_anim(*target->page_obj, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 跳转到首页面
|
||||||
|
*/
|
||||||
|
void lv_lib_pm_goto_first(void) {
|
||||||
|
lv_lib_pm_goto(NULL, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取当前页面
|
* 获取当前页面
|
||||||
* @return 当前页面指针
|
* @return 当前页面指针
|
||||||
|
|||||||
@@ -31,7 +31,8 @@ void lv_lib_pm_register(Page_t* page);
|
|||||||
void lv_lib_pm_load_init_screen(void);
|
void lv_lib_pm_load_init_screen(void);
|
||||||
void lv_lib_pm_next(void);
|
void lv_lib_pm_next(void);
|
||||||
void lv_lib_pm_prev(void);
|
void lv_lib_pm_prev(void);
|
||||||
void lv_lib_pm_goto(uint8_t index);
|
void lv_lib_pm_goto(const char* page_name, uint8_t index);
|
||||||
|
void lv_lib_pm_goto_first(void);
|
||||||
Page_t* lv_lib_pm_get_current_page(void);
|
Page_t* lv_lib_pm_get_current_page(void);
|
||||||
void lv_lib_pm_handle_key_event(void* key_event);
|
void lv_lib_pm_handle_key_event(void* key_event);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user