1. ui管理模块增加扩展接口
This commit is contained in:
parent
cc177be0eb
commit
1c8727bc9f
@ -31,13 +31,10 @@
|
||||
#define UIPAGE_LEN len
|
||||
#define UIPAGE_CMD cmd
|
||||
|
||||
#if 1
|
||||
#define UIPAGE_CASE(page, func, ...) case page: { LogD("current page[%d], event[%s]", page, #page); func(__VA_ARGS__); LogD("event End"); } break
|
||||
#define UIPAGE_CASE_RET(page, func, ...) case page: { LogD("current page[%d], event[%s]", page, #page); return func(__VA_ARGS__); LogD("event End"); } break
|
||||
#else
|
||||
#define UIPAGE_CASE(page, func, ...) case page: { func(__VA_ARGS__); } break
|
||||
#define UIPAGE_CASE_RET(page, func, ...) case page: { return func(__VA_ARGS__); } break
|
||||
#endif
|
||||
#define UIPAGE_CASE_TRACE(page, func, ...) case page: { LogTr("current page[%d], event[%s]", page, #page); func(__VA_ARGS__); LogTr("event End"); } break
|
||||
#define UIPAGE_CASE_RET_TRACE(page, func, ...) case page: { LogTr("current page[%d], event[%s]", page, #page); return func(__VA_ARGS__); LogTr("event End"); } break
|
||||
|
||||
#define UIPAGE_INIT_FUNC(func, ...) UIPAGE_CASE(kCallInitPage, func, __VA_ARGS__)
|
||||
#define UIPAGE_FREE_FUNC(func, ...) UIPAGE_CASE(kCallFreePage, func, __VA_ARGS__)
|
||||
@ -58,7 +55,7 @@
|
||||
#define UI_CALL_EVENT_TYPE(value) ((HUiPageEvent_t *)value)
|
||||
|
||||
// HD集成任务处理
|
||||
#define HD_UIPAGE_EVENT_FUNC(func) UIPAGE_CASE(kCallNotifyEvent, func, *(UI_CALL_EVENT_TYPE(UIPAGE_DATA)))
|
||||
#define HD_UIPAGE_EVENT_FUNC(func) UIPAGE_CASE_TRACE(kCallNotifyEvent, func, *(UI_CALL_EVENT_TYPE(UIPAGE_DATA)))
|
||||
/** ================================================================= */
|
||||
|
||||
|
||||
@ -89,6 +86,9 @@ void HUIPageInit(initPageType_t initPage);
|
||||
// 设置主页, 切换到主页清空返回栈, 如果返回栈为空时, 当前页面不是主页, 则切换到主页
|
||||
void HUIPageSetHome(HUiPageIndex_t page);
|
||||
|
||||
// 获取主页
|
||||
HUiPageIndex_t HUIPageGetHome();
|
||||
|
||||
// 切换页面, 当前页面入栈, 相同页面不操作, 需要检查栈, 栈存在就回栈清空之后的, 不存在就压栈
|
||||
// 因为有些页面可能不用HUIPageBack来返回, 所以需要兼容这种情况
|
||||
void HUIPageSwitch(HUiPageIndex_t page);
|
||||
@ -148,6 +148,12 @@ uint8_t HUIPageSaveIndex(uint8_t value);
|
||||
// 获取当前页面索引, 仅在 HUIPageIsBack() 返回1时有效, 否则返回0
|
||||
uint8_t HUIPageGetIndex();
|
||||
|
||||
// 临时保存当前页面索引
|
||||
void HUIPageSaveTempIndex(uint8_t value);
|
||||
|
||||
// 获取临时保存的当前页面索引
|
||||
uint8_t HUIPageGetTempIndex();
|
||||
|
||||
// 获取当前页面
|
||||
HUiPageIndex_t HUIPageGetCurrPage();
|
||||
|
||||
|
||||
@ -34,6 +34,7 @@ typedef struct HUIPageManage
|
||||
uint8_t isInit : 1; ///< 初始化显示页面
|
||||
uint8_t saveIndex : 1; ///< 允许保存索引
|
||||
uint8_t isBack : 1; ///< 标记是否是返回
|
||||
uint8_t tmpIndex : 4; ///< 临时页面索引
|
||||
} HUIPageManage;
|
||||
|
||||
// 页面管理
|
||||
@ -176,6 +177,10 @@ void HUIPageSetHome(HUiPageIndex_t page) {
|
||||
pageManage.homePage = page;
|
||||
}
|
||||
|
||||
HUiPageIndex_t HUIPageGetHome() {
|
||||
return pageManage.homePage;
|
||||
}
|
||||
|
||||
// 切换页面, 当前页面入栈, 相同页面不操作, 需要检查栈, 栈存在就回栈清空之后的, 不存在就压栈
|
||||
// 因为有些页面可能不用HUIPageBack来返回, 所以需要兼容这种情况
|
||||
void HUIPageSwitch(HUiPageIndex_t page) {
|
||||
@ -436,6 +441,16 @@ uint8_t HUIPageGetIndex() {
|
||||
return HByteStackTop(indexStack);
|
||||
}
|
||||
|
||||
// 临时保存当前页面索引
|
||||
void HUIPageSaveTempIndex(uint8_t value) {
|
||||
pageManage.tmpIndex = value;
|
||||
}
|
||||
|
||||
// 获取临时保存的当前页面索引
|
||||
uint8_t HUIPageGetTempIndex() {
|
||||
return pageManage.tmpIndex;
|
||||
}
|
||||
|
||||
// 获取当前页面
|
||||
HUiPageIndex_t HUIPageGetCurrPage() {
|
||||
return pageManage.currPage;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user