/* Copyright(C) * not free * All right reserved * * @file ui_page_manager.h * @brief UI卡片页面滑动管理API头文件 * @author * @version V201 * @date 2022-12-15 */ #ifndef __UI_PAGE_H__ #define __UI_PAGE_H__ #include "generic/list.h" #include "system/spinlock.h" struct ui_page { struct list_head head; u32 id; u8 num; }; struct ui_page_head { struct list_head head; u8 ui_page_list_total_num; spinlock_t ui_page_list_lock; }; /* ------------------------------------------------------------------------------------*/ /** * @brief ui_page_init 卡片页面管理初始化 */ /* ------------------------------------------------------------------------------------*/ void ui_page_init(); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_page_add 添加页面到卡片 * * @param id 页面ID * * @return 0 正常,其他 异常 */ /* ------------------------------------------------------------------------------------*/ int ui_page_add(u32 id); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_page_del 把页面从卡片删除 * * @param id 待删除的页面ID * * @return 0 正常,其他 异常 */ /* ------------------------------------------------------------------------------------*/ int ui_page_del(u32 id); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_page_del_by_num 通过页面号从卡片删除指定页面 * * @param num 页面号 * * @return 0 正常,其他异常 */ /* ------------------------------------------------------------------------------------*/ int ui_page_del_by_num(u8 num); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_page_free 释放卡片页面管理模块 * * @return 0 正常,其他 异常 */ /* ------------------------------------------------------------------------------------*/ int ui_page_free(); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_page_next 获取卡片页面管理中,指定页面的下一个页面 * * @param id 指定页面的ID * * @return 指定页面的下一个页面ID */ /* ------------------------------------------------------------------------------------*/ u32 ui_page_next(u32 id); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_page_prev 获取卡片页面管理中,指定页面的上一个页面 * * @param id 指定页面的ID * * @return 指定页面的上一个页面ID */ /* ------------------------------------------------------------------------------------*/ u32 ui_page_prev(u32 id); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_page_list_all 打印出所有的卡片页面信息 * * @return 0 正常,-1 卡片页面未初始化 */ /* ------------------------------------------------------------------------------------*/ int ui_page_list_all(); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_page_search 搜索卡片页面中指定页面的链表节点元素 * * @param id 指定页面的ID * * @return 指定页面的链表节点 */ /* ------------------------------------------------------------------------------------*/ struct ui_page *ui_page_search(u32 id); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_page_has_been_init 获取卡片界面管理模块初始化状态 * * @return true 卡片管理模块已经初始化,false 卡片管理模块未初始化 */ /* ------------------------------------------------------------------------------------*/ int ui_page_has_been_init(); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_page_get_first 获取卡片界面链表的第一个界面节点元素 * * @return 卡片界面链表中第一个界面的元素 */ /* ------------------------------------------------------------------------------------*/ struct ui_page *ui_page_get_first(); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_page_list_id_modify 修改指定索引的卡片界面ID,将ID设置到第num位置 * * @param num 索引号 * @param id 页面ID * * @return 0 正常,其他异常 */ /* ------------------------------------------------------------------------------------*/ int ui_page_list_id_modify(u8 num, u32 id); u8 get_ui_page_list_total_num(); #endif